当前位置:   article > 正文

目标规划 序贯式算法 数据包络算法(DEA) Lingo实现_序贯算法lingo

序贯算法lingo

1、目标规划序贯式算法

使用Lingo计算的通用程序:

model:
sets:
level/1..3/:p,z,goal;!p是优先因子,目标级别,z是中间变量,表示每一级目标的偏差和;
!goal需要每一轮输入,表示目标约束的最优偏差;
variable/1..2/:x;
h_con_num/1..1/:b;!硬约束不等式右边的向量;
s_con_num/1..4/:g,dplus,dminus;!g是软约束等式右边的向量,dplus和dminus是偏差变量;
h_con(h_con_num,variable):a;!硬约束的系数矩阵;
s_con(S_Con_Num,variable):c;!软约束的系数矩阵;
obj(level,s_con_num)/1 1,2 2,3 3,3 4/:wplus,wminus;!偏差变量的权重,双斜杠中间的数字是坐标位置,例如1 1表示下标为[1][1]位置的权重,没有1 2则是因为dplus(2)和dminus(2)不在第一级目标中,不需要对应的权重;
endsets

data:
ctr=?;!表示进行第几级目标计算;
goal=? ? 0;!输入值很大表示对应的约束不起作用,每计算一轮,对应的更新最优偏差;
b=12;
g=1500 0 16 15;
c=200 300 2 -1 4 0 0 5;
wplus=0 1 3 1;
wminus=1 1 3 0;
enddata

min = @sum(level:p*z);
p(ctr)=1;!ctr为输入的目标级别,为1则表示做第一级目标计算;
@for(level(i)|i#ne#ctr:p(i)=0);!表示其他级别的优先级P记为0,不做运算;
@for(level(i):z(i)=@sum(obj(i,j):wplus(i,j)*dplus(j)+wminus(i,j)*dminus(j)));!z(i)为第i级目标约束偏差;
@for(h_con_num(i):@sum(variable(j):a(i,j)*x(j))<b(i));!硬约束;
@for(s_con_num(i):@sum(variable(j):c(i,j)*x(j))+dminus(i)-dplus(i)=g(i));!软约束;
@for(level(i)|i #lt# @size(level):@bnd(0,z(i),goal(i)));!bnd函数表示替换约束条件,0<=z(i)<=goal(i),对应最优偏差是否起作用;
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

2、数据包络算法(DEA)

CCR模型判断方法:
在这里插入图片描述

CCR模型的Lingo实现

model:
sets:
dmu/1..6/:s,t,p; !决策单元;
inw/1..2/:w; !输入权重,即\omega;
outw/1..2/:u; !输出权重,即\miu;
inv(inw,dmu):x; !输入变量,投入指标;
outv(outw,dmu):y; !输入变量,产出指标;
endsets

data:
ctr=?;
x=89.39 86.25 108.13 106.38 62.40 47.19
  64.3 99 99.6 96 96.2 79.9;
y=25.2 28.2 29.4 26.4 27.2 25.2
  223 287 317 291 295 222;
enddata

max=@sum(dmu:p*t); !即某决策单元的效率;
p(ctr)=1;
@for(dmu(i)|i#ne#ctr:p(i)=0);
@for(dmu(j):
s(j)=@sum(inw(i):w(i)*x(i,j));
t(j)=@sum(outw(i):u(i)*y(i,j));
s(j)>t(j));
@sum(dmu:p*s)=1;
end

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

DEA相关参考资料

1、Matlab:数据包络分析 (DEA)> 入门教程——详细解释DEA理论、CCR和BCC两种模型,含Matlab代码
2、数据包络分析(DEA)详解——DEA原理、两种模型介绍、Matlab&Python实现

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/55638
推荐阅读
相关标签
  

闽ICP备14008679号