找回密码
 注册
Simdroid-非首页
查看: 82|回复: 0

[1stOpt] 物品交易效应最大化问题的1stOpt解法

[复制链接]
发表于 2007-7-29 23:59:30 | 显示全部楼层 |阅读模式 来自 北京
本问题来自Matlab版:http://simwe.com/forum/thread-789653-1-4.html

问题描述如下:

比尔与杰克如何交换手中的商品,使两人效用乘积最大,且交换后两人效用都提高。
比尔    bill效用     jack效用
1                2                4
2                5                2
3                2                7
4                2                2
5                4                1
杰克
6                10                1
7                1                1
8                6                3
9                2                2
一件物品换一件物品

1stOpt代码:

Constant n = 9, n1 = 6;
Constant Bill_Profit(1:n)=[2,5,2,2,4,10,1,6,2],
         Jack_Profit(1:n)=[4,2,7,2,1,1,1,3,2];
Parameter p(1:n)=[1,n];
Exclusive = True;
PassParameter BillSum, JackSum;
Maximum;
StartProgram [Pascal];
Procedure MainModel;
var k: integer;
    bill_sum, jack_sum: double;
Begin
    bill_sum := 0;
    jack_sum := 0;
    for k := 1 to n do begin
        if k < n1 then
           bill_sum := bill_sum + Bill_Profit[p[k]]
        else
           jack_sum := jack_sum + jack_Profit[p[k]];
    end;
    BillSum := bill_sum;
    JackSum := jack_sum;
    FunctionResult := bill_sum*jack_sum;
End;
EndProgram;

结果如下:
目标函数值(最大): 390
p1: 2
p2: 5
p3: 7
p4: 8
p5: 6
p6: 1
p7: 3
p8: 4
p9: 9
传递参数(PassParameter):
billsum: 26
jacksum: 15

Jack的6、7、8与Bill的1、3、4互换,得最大效应26*15=390。

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-5-12 02:58 , Processed in 0.035676 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表