#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];
`