目标规划 序贯式算法 数据包络算法(DEA) 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

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

DEA相关参考资料:

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值