模糊综合评判+C代码

例:

对某件衣服的评判,评判因素有:色彩u1、做工u2、面料u3、款式u4;它构成论域U={u1, u2, u3, u4}。

仅色彩讲,假设70%评委认为是“好”、20%为较好、5%为较差、5%为差

则色彩评价为: r1 = {0.7, 0.2, 0.05, 0.05};

同理:r2 = {0.5,0.1,0.2, 0.2};     r3 = {0.6, 0.2, 0.1, 0.1};     r4 = {07, 0.2, 0.1, 0};

写成评价矩阵R为:

0.7, 0.2, 0.05, 0.05

0.5,    0.1,    0.2,      0.2

0.6,    0.2,    0.1,      0.1

07,     0.2,    0.1,      0


假设权重为:色彩0.3,做工0.3,面料0.1,款式0.3:

A = {0.3, 0.3, 0.1, 0.3};

所以评委对这件衣服的综合评价为:

B = AR


c代码如下:

#include "stdio.h"
#include "math.h"


#define MAX(a, b) (a>b?a:b)
#define MIN(a, b) (a<b?a:b)


void main()
{
int i, j, k;


double A[4][4] = {0.7, 0.2, 0.05, 0.05,  0.5, 0.1, 0.2, 0.2,  0.6, 0.2, 0.1, 0.1,  0.7, 0.2, 0.1, 0};
double B[4]= {0.3, 0.3, 0.1, 0.3};
double temp[4] = {0};
  double Y[4];
double max, min;


for(i=0; i<4; i++)
{
for(j=0; j<4; j++)
temp[j] = MIN(B[j], A[j][i]);    //模糊集中A交B


max = temp[0];
for(j=1; j<4; j++)
max = MAX(max, temp[j]);


Y[i] = max;
}


printf("综合评判为:\n");

for(i=0; i<4; i++)
printf("%4lf", Y[i]);
printf("\n");
}


模糊综合评判法(Fuzzy Comprehensive Evaluation Method)是一种基于模糊逻辑的评价方法,常用于多指标的综合评价和决策分析。在Python中可以使用模糊逻辑库(如scikit-fuzzy)来实现这一方法。 首先,我们需要引入相应的库,并创建一个空模糊控制系统: ```python import numpy as np import skfuzzy as fuzz # 创建模糊控制系统 ctrl = fuzz.ControlSystem() ``` 接下来,我们需要定义输入和输出的模糊集合以及它们之间的模糊规则。例如,假设我们要评价一个商品的好坏,我们可以定义三个输入变量:价格、质量和口碑,并定义一个输出变量:评价值。 ```python # 定义输入和输出的模糊集合 price = fuzz.Antecedent(np.arange(0, 11, 1), 'price') quality = fuzz.Antecedent(np.arange(0, 11, 1), 'quality') reputation = fuzz.Antecedent(np.arange(0, 11, 1), 'reputation') evaluation = fuzz.Consequent(np.arange(0, 11, 1), 'evaluation') # 定义模糊规则 rule1 = fuzz.Rule(price['poor'] | quality['poor'] | reputation['poor'], evaluation['poor']) rule2 = fuzz.Rule(quality['average'] | reputation['average'], evaluation['average']) rule3 = fuzz.Rule(price['good'] | quality['good'] | reputation['good'], evaluation['good']) # 添加规则到模糊控制系统 ctrl.addrules([rule1, rule2, rule3]) ``` 然后,我们可以定义输入的模糊集合和模糊控制系统: ```python # 定义输入模糊集合的隶属度函数 price.automf(names=['poor', 'average', 'good']) quality.automf(names=['poor', 'average', 'good']) reputation.automf(names=['poor', 'average', 'good']) # 定义输出模糊集合的隶属度函数 evaluation.automf(names=['poor', 'average', 'good']) # 创建模糊控制系统 fuzzy_ctrl = fuzz.ControlSystemSimulation(ctrl) ``` 最后,我们可以输入具体的数值,计算出评价值: ```python # 输入具体数值 fuzzy_ctrl.input['price'] = 5.5 fuzzy_ctrl.input['quality'] = 6.8 fuzzy_ctrl.input['reputation'] = 7.2 # 运行模糊控制系统 fuzzy_ctrl.compute() # 获取评价值 evaluation_value = fuzzy_ctrl.output['evaluation'] print("评价值:", evaluation_value) ``` 这就是用Python实现模糊综合评判法的基本步骤。通过定义输入的模糊集合、模糊规则和输出的模糊集合,以及输入具体数值并运行模糊控制系统,我们可以得到一个评价值,用于综合评价和决策分析。当然,具体的业务场景和评价指标需要根据实际情况进行设计和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值