数据包网络分析(C2R模型)

数据包网络分析(C2R模型)

一、数据

14.40   0.65   31.30  3621.00    0.00
16.90   0.72   32.20  3943.00    0.09
15.53   0.72   31.87  4086.67    0.07
15.40   0.76   32.23  4904.67    0.13
14.17   0.76   32.40  6311.67    0.37
13.33   0.69   30.77  8173.33    0.59
12.83   0.61   29.23  10236.00   0.51
13.00   0.63   28.20  12094.33   0.44
13.40   0.75   28.80  13603.33   0.58
14.00   0.84   29.10  14841.00   1.00

其中设置前3列作为输入变量,后3列作为输出变量。

二、代码实现

#程序文件ex14_5.py
import numpy as np
import cvxpy as cp

d = np.loadtxt('data14_5.txt')
# a:代表所有行,0到3,b则代表所有行,从3开始到结尾
a = d[:,:3]; b = d[:,3:]
# cp.Variable是cvxpy中用于定义优化变量的函数。
# 3代表有3个元素,pos=True是一个关键字参数,指定这个变量是非负的。
# 也就是说,变量u中的每个元素都必须大于或等于0。
# v同理
u = cp.Variable(3, pos=True); v = cp.Variable(2, pos=True)

#计算相关参数
# j从0到9循环
for j in range(10):
    # u是输入的线性权重
    # 列表 con 因此会包含两个布尔值,
    # 分别表示 a @ u 是否大于等于 b @ v,以及 a[j] @ u 是否等于1。
    con = [ a @ u >= b @ v, a[j] @ u ==1]
    # 目标函数是b[j] @ v,即第j个对象的价值,v是优化变量(输出变量)
    obj = cp.Maximize(b[j]@v)
    # prob:这是一个优化问题对象。
    # .solve():这是prob对象的一个方法,用于求解优化问题。调用这个方法会启动求解过程,
    # 并尝试找到满足所有约束条件且使目标函数达到最优(最大或最小)的变量值。
    prob = cp.Problem(obj, con)
    # solver='SCIPY':这是.solve()方法的一个参数,它指定了用于求解优化问题的求解器。在这个例子中,
    # 它告诉.solve()方法使用SciPy库中的求解器。SciPy是一个广泛使用的Python库,
    # 提供了大量的数学、科学和工程计算功能,包括优化问题的求解。
    prob.solve(solver='SCIPY')
    # 通过访问v.value来获取优化后的变量值。
    # round(prob.value, 4) 表示将 prob.value 的值四舍五入到小数点后4位。
    # prob中存放的是最优值
    print('第',str(j+1),'个对象最优值:',round(prob.value,4))
    # u、v中存放的是最优解
    print('最优解:\n', np.round(u.value,4),'\n', np.round(v.value,4))

三、结果分析

结果如下:

1 个对象最优值: 0.2902
最优解:
 [0.     1.5385 0.    ] 
 [0.0001 0.    ]2 个对象最优值: 0.2854
最优解:
 [0.     0.8997 0.0109] 
 [0.0001 0.    ]3 个对象最优值: 0.2968
最优解:
 [0.     0.9029 0.011 ] 
 [0.0001 0.    ]4 个对象最优值: 0.3425
最优解:
 [0.     0.8682 0.0106] 
 [0.0001 0.    ]5 个对象最优值: 0.4595
最优解:
 [0.     1.3158 0.    ] 
 [1.000e-04 1.914e-01]6 个对象最优值: 0.7183
最优解:
 [0.     1.4493 0.    ] 
 [0.     1.2174]7 个对象最优值: 0.9069
最优解:
 [0.     1.6393 0.    ] 
 [1.000e-04 2.385e-01]8 个对象最优值: 1.0
最优解:
 [0.     1.0279 0.0125] 
 [0.0001 0.    ]9 个对象最优值: 1.0
最优解:
 [2.630e-02 8.327e-01 8.000e-04] 
 [0.0001 0.    ]10 个对象最优值: 1.0
最优解:
 [0.     0.     0.0344] 
 [0. 1.]

且中最优解>0且最优目标值=1,则说明评价对象DEA是有效的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值