python实现《直觉模糊集决策与对策分析方法》05基于方案的线性规划方法

这是李登峰老师《直觉模糊集决策与对策分析方法》第三章权重未知的直觉模糊多属性决策分式数学规划方法。基本思想是不对模糊权重进行分析,而是直接通过n个分式线性规划求解方案间的偏好关系进行排序选优。
决策的基本步骤为:
将给定的决策矩阵和权重向量分别用区间值形式表达;
对每个方案构造一对分式数学规划,确定方案的相对贴进度;
计算方案两两比较的包含比较概率,并构造包含比较概率矩阵;
利用类似topsis的优属度确定排序。
对于给出的算例进行独立重复实验。代码关键步骤有注释。
线性规划使用lingo代码实现了结果。

'''
权重未知的直觉模糊多属性决策分式数学规划方法。
区别就是之前的决策情况是
首先是第一步,需要根据线性规划求解直觉模糊集合的相对贴进度,用lingo实现,这里约束条件不变,因此只有目标函数进行更换。
!min = (((0.75*w1)^2+(0.6*w2)^2+(0.8*w3)^2)^0.5)
/(((0.75*w1)^2+(0.6*w2)^2+(0.8*w3)^2)^0.5+
((0.25*w1)^2+(0.4*w2)^2+(0.2*w3)^2)^0.5);

!max= (((0.9*w1)^2+(0.75*w2)^2+(0.8*w3)^2)^0.5)/
(((0.9*w1)^2+(0.75*w2)^2+(0.8*w3)^2)^0.5+
((0.1*w1)^2+(0.25*w2)^2+(0.2*w3)^2)^0.5);

!min = (((0.8*w1)^2+(0.68*w2)^2+(0.45*w3)^2)^0.5)
/(((0.8*w1)^2+(0.68*w2)^2+(0.45*w3)^2)^0.5+
((0.2*w1)^2+(0.32*w2)^2+(0.55*w3)^2)^0.5);

!max= (((0.85*w1)^2+(0.8*w2)^2+(0.5*w3)^2)^0.5)/
(((0.85*w1)^2+(0.8*w2)^2+(0.5*w3)^2)^0.5+
((0.15*w1)^2+(0.2*w2)^2+(0.95*w3)^2)^0.5);

!min=(((0.4*w1)^2+(0.75*w2)^2+(0.6*w3)^2)^0.5)/
(((0.4*w1)^2+(0.75*w2)^2+(0.6*w3)^2)^0.5+
((0.6*w1)^2+(0.25*w2)^2+(0.4*w3)^2)^0.5);

max= (((0.55*w1)^2+(0.95*w2)^2+(0.7*w3)^2)^0.5)/
(((0.55*w1)^2+(0.95*w2)^2+(0.7*w3)^2)^0.5+
((0.45*w1)^2+(0.05*w2)^2+(0.3*w3)^2)^0.5);
@bnd(0.25,w1,0.75);

@bnd(0.35,w2,0.6);

@bnd(0.3,w3,0.35);

w1+w2+w3=1;
'''
import pandas as pd#bikor算法实现
import  numpy as  np
np.set_printoptions(suppress=True)
c=pd.DataFrame([[0.6708,0.8096],[0.6117,0.5959],[0.5748,0.7727]])#这些数据就是注释中的lingo代码所得。
print(c)
p=c[1]-c[0]
print(p)
p12=max(1-max((c.iloc[1,1]-c.iloc[0,0])/(p[0]+p[1]),0),0)
p23=max(1-max((c.loc[2,1]-c.loc[1,0])/(p[1]+p[2]),0),0)
p13=max(1-max((c.loc[2,1]-c.loc[0,0])/(p[0]+p[2]),0),0)
pmatrix=pd.DataFrame([[0.5,p12,p13],[1-p12,0.5,p23],[1-p13,1-p23,0.5]])
print(pmatrix)
n=3
for i in range(0,3):
    x=1/6*(sum(pmatrix.T[i])+1.5-1)
    print(x)

在这里插入图片描述

github仓库在https://github.com/rivendelltom/decision-making-study

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值