- 在线时间
- 2 小时
- 最后登录
- 2012-7-10
- 注册时间
- 2012-7-5
- 听众数
- 0
- 收听数
- 0
- 能力
- 0 分
- 体力
- 14 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 6
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 3
- 主题
- 3
- 精华
- 0
- 分享
- 0
- 好友
- 2
升级   1.05% 该用户从未签到
 群组: 数学建摸协会 |
哪位高人能帮小弟解决这个问题,小弟不甚感激!!! . j3 `4 k( F4 y n5 }3 u, T9 m
model "Burglar 1"8 A' A! _/ L) o8 q) y
uses "mmxprs"! J, k) Q" J9 s) A9 y
declarations
' V2 a+ X* f5 y& g# ?' S7 nITEMS = 1..8 ! 物品标号范围
7 I) H; b& q6 aWTMAX = 102 ! 允许携带的重量最大值 q& H$ s9 P: Z2 L' f: h
VALUE: array(ITEMS) of real ! 物品价值
6 ]5 n8 M v6 a H6 }6 _: cWEIGHT: array(ITEMS) of real ! 物品重量6 X2 V8 A7 b0 G+ X) N$ m
take: array(ITEMS) of mpvar ! 1 表示带走物品i,0 表示不带走物品i; q9 b7 y D$ s2 y$ m
end-declarations( q8 S: Q) R9 ]0 u9 y; \# g
! 物品: 1 2 3 4 5 6 7 8
. _, t5 W- k# O8 Y0 \VALUE := [ 15, 100, 90, 60, 40, 15, 10, 1]
6 R8 y1 B+ [4 H. A8 u' kWEIGHT := [ 2, 20, 20, 30, 40, 30, 60, 10]7 V9 t* t c9 r+ z
! 目标: 使带走的总价值最大5 C4 ^: ^# |- H) e* T% x
MaxVal:= sum(i in ITEMS) VALUE(i)*take(i)
$ ~. U3 |& a& r" K' u" ^7 ~! 重量限制) z, J6 h0 I7 I1 [
sum(i in ITEMS) WEIGHT(i)*take(i) <= WTMAX
( M# n. J4 ]# ]* ?) [4 G7 N! 所有变量取值都为0 或1
' j/ }5 C# V* z% I6 w: mforall(i in ITEMS) take(i) is_binary
2 Q, X& V2 H' A, X6 x6 n- a/ s$ _maximize(MaxVal) ! 求解混合整数问题& r! R5 A1 B) @; ^
! 打印输出结果
: ~1 J8 ^" M/ g7 @; \) ~0 xwriteln("Solution:\n Objective: ", getobjval)5 S% `+ ~: X+ L, z) v' L" J- J
forall(i in ITEMS) writeln(" take(", i, "): ", getsol(take(i)))
, K- D: H" Z( G% xend-model
) B Q- N% Z* _4 \* D这段程序运行不了
. O; D' W! [7 @! v |
zan
|