首页 > 解决方案 > 有没有办法让 AMPL 做更少的迭代?我希望我的代码在某个点停止运行(在最终优化之前,但有些完成))

问题描述

我正在为运输模型运行 AMPL 代码,我希望它在最终优化之前停止运行。这样做的原因是,我的代码要求我使用一个虚拟变量,当它运行时,太多的单位被放入虚拟变量中,因此我希望它在之前停止一些迭代或者看看最好的优化在哪里之前也是许多单位被放入假人。

谢谢

*请参阅下面的数据和代码数据:

param: ORIG: supply := # defines set "ORIG" and param "supply"
MP1 400
MP2 270
MP3 250
MP4 380
MP5 350
MP6 320
DUMMY 1030 ; 

param: DEST: demand := # defines "DEST" and "demand"
DC1 500
DC2 500
DC3 500
DC4 500
DC5 500
DC6 500 ;

param cost:
        DC1 DC2 DC3 DC4 DC5 DC6 :=
MP1     30  17  35  23  21  25 
MP2     26  15  21  27  24  18 
MP3     28  14  22  31  25  21 
MP4     29  15  29  23  35  23
MP5     25  10  23  26  33  29
MP6     27  18  27  28  22  19
DUMMY   0   0   0   0   0   0 ;

代码:

    reset;`
set ORIG; # origins
set DEST; # destinations
param supply {ORIG} >= 0; # amounts available at origins
param demand {DEST} >= 0; # amounts required at destinations
check: sum {i in ORIG} supply[i] = sum {j in DEST} demand[j];
param cost {ORIG,DEST} >= 0; # shipment costs per unit
var Trans {ORIG,DEST} >= 0; # units to be shipped
minimize Total_Cost:
sum {i in ORIG, j in DEST} cost[i,j] * Trans[i,j];
subject to Supply {i in ORIG}:
sum {j in DEST} Trans[i,j] = supply[i];
subject to Demand {j in DEST}:
sum {i in ORIG} Trans[i,j] = demand[j];
`

标签: ampl

解决方案


推荐阅读