python实现《直觉模糊集决策与对策分析方法》04线性规划方法
2021/6/13 20:21:43
本文主要是介绍python实现《直觉模糊集决策与对策分析方法》04线性规划方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
这是李登峰老师《直觉模糊集决策与对策分析方法》第三章权重与属性值均为直觉模糊集合的多属性线性规划方法。先将属性和权重都改成区间形式,然后线性规划是求出该区间里的最优权重。
对于给出的算例进行独立重复实验。代码关键步骤有注释。
中间的线性规划出问题做不出来,用lingo代码实现了结果。
''' 求解属性值和权重值均为直觉模糊集合的多属性线性规划方法。 主要思想是吧直觉模糊集合转化为区间值进行权重的区间求解。 ''' from scipy import optimize as op import pandas as pd#bikor算法实现 import numpy as np np.set_printoptions(suppress=True) w=[0.25,0.45,0.3] def getdef(n):#获取矩阵 return pd.read_excel('D:\study\\test\data\\t13.xlsx',sheet_name=n) def getmatirx(df): df.iloc[:, [i % 2 == 1 for i in range(len(df.columns))]] = 1 - df.iloc[:, [i % 2 == 1 for i in range(len(df.columns))]] return df def getliner(df): pass ''' lingo语言 max =0.35*x1+0.47*x2+0.15*x3; x1<=0.75; -x1<=-0.25; x2<=0.6; -x2<=-0.35; x3<+0.35; -x3<=-0.3; x1+x2+x3=1; ''' def ranks(df): d1 = df.iloc[:, ::2] d2 = df.iloc[:, 1::2] df1=d1.T.reset_index(drop=True).T df2= d2.T.reset_index(drop=True).T print(df1) print(df2) gl=np.dot(df1,w) gu=np.dot(df2,w) print(gl) print(gu) g=gu/(1+gu-gl) return g if __name__ == '__main__': df =getdef(0) print(df) df1=getmatirx(df) print(df1) print(ranks(df1))
github仓库在https://github.com/rivendelltom/decision-making-study
这篇关于python实现《直觉模糊集决策与对策分析方法》04线性规划方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门