A公司面临破产,只余下100种物品,表1中给出了每种物品的数量,现有1000名公司债权人,表格中给出了债权人对不同物品的偏好(数值越大越喜欢),要求你们对这些资产进行处置,应该如何安排呢?给出Lingo求解代码
时间: 2024-05-05 21:22:00 浏览: 78
企业破产后债权的清偿顺序.pdf
我们可以使用线性规划来解决这个问题。下面是Lingo代码:
```
SETS:
ITEMS: 1..100;
CREDITORS: 1..1000;
DATA:
b(i): set of CREDITORS;
q(i): integer; ! 物品i的数量
p(i,j): integer; ! 债权人j对物品i的偏好
VARIABLES:
x(i): integer; ! 物品i的数量
OBJECTIVE:
MAXIMIZE sum(j in CREDITORS) sum(i in ITEMS) p(i,j)*min(x(i),q(i))/q(i);
CONSTRAINTS:
sum(i in ITEMS) x(i) = 100; ! 所有物品数量之和为100
x(i) >= 0, integer, for all i in ITEMS; ! 物品数量为非负整数
sum(j in b(i)) min(x(i),q(i))*p(i,j) <= sum(j in b(i)) q(i)*p(i,j), for all i in ITEMS; ! 每个债权人的偏好之和小于等于物品数量乘以偏好
END
```
解释一下代码:
首先定义了两个集合:ITEMS表示物品,CREDITORS表示债权人。然后定义了三个数据:b(i)表示喜欢物品i的债权人的集合,q(i)表示物品i的数量,p(i,j)表示债权人j对物品i的偏好值。
接下来定义一个变量x(i),表示物品i的数量。我们的目标是将这些物品最大化地分配给债权人,使得所有债权人对自己得到的物品都最满意。因此目标函数的含义是:对于每个债权人j和物品i,计算出j对i的偏好值,然后将x(i)和q(i)中的较小值作为实际分配的数量,再乘以偏好值,最后将所有的结果求和。
约束条件有三个:第一个是所有物品数量之和为100;第二个是物品数量为非负整数;第三个是对于每个物品i,将喜欢它的债权人j的偏好值乘以实际分配的数量,再将所有债权人的结果求和,不能超过物品数量乘以偏好值的总和。
这个问题可以用Lingo求解。
阅读全文