CPM费用调节

时间:2016-12-25 03:43:31

标签: modeling ampl

我需要使用AMPL制作成本的CPM模型。

我的.mod:

set TASKS;

set ARCS within {TASKS cross TASKS};

param duration{TASKS} >= 0;

param cost{TASKS} >=0; 
param description{TASKS} symbolic;

var
TASKS_ES{TASKS} >= 0;     #Earliest Start 
var 
TASKS_EF{TASKS} >= 0;     # Earliest Finish 
var 
TASKS_LS{TASKS} >= 0;     # Latest Start 
var 
TASKS_LF{TASKS} >= 0;     # Latest Finish 
var 
TASKS_SLACK{TASKS} >= 0;  # Slacks 

#Final time (global) 

var TF >= 0;

minimize CPM: card(TASKS)*TF - sum {j in TASKS} TASKS_SLACK[j];

.. #constraints

我的.dat:

param : TASKS : duration cost description :=
   T01   5 5 'A'
   T02   1 1 'B'
   T03   2 2 'C'
   T04   3 3 'D'
   T05   2 2 'E'
   T06   3 3 'F'
   T07   4 4 'G'
   T08   2 2 'H'
   T09   1 1 'I'
   T10   1 1 'J'
;

set ARCS := 
   T01  T02
   T01  T03
   T02  T03
   T02  T05
   T03  T04
   T05  T07
   T04  T07
   T03  T06
   T06  T07
   T07  T08
;

完美的工作,但我需要添加这个约束来计算所有任务的成本(我可以最小化所有任务的持续时间,但我需要每个任务的最佳时间):

cost(duration_task(i,j))= k(i,j) - cost(i,j)* duration_task(i,j)

duration_task是使用所有约束最小化我的目标函数的时间。

这就像:

受ARCS成本{(i,j)影响}:max_cost +(min_cost - max-cost / max_time - min_time)*(time_task(i,j) - min_time)

示例:

enter image description here

需要一些帮助,谢谢。

  • EDITED!

0 个答案:

没有答案