MODEL:
!装配线平衡模型;
SETS:
!任务集合,有一个完成时间属性T;
TASK/ A B C D E F G H I J K/: T;
!任务之间的优先关系集合(A 必须完成才能开始B,等等);
PRED( TASK, TASK)/ A,B B,C C,F C,G F,J G,J
J,K D,E E,H E,I H,J I,J /;
! 工作站集合;
STATION/1..4/;
TXS( TASK, STATION): X;
! X是派生集合TXS的一个属性。如果X(I,K)=1,则表示第I个任务
指派给第K个工作站完成;
ENDSETS
DATA:
!任务A B C D E F G H I J K的完成时间估计如下;
T = 45 11 9 50 15 12 12 12 12 8 9;
ENDDATA
! 当任务超过15个时,模型的求解将变得很慢;
!每一个作业必须指派到一个工作站,即满足约束①;
@FOR( TASK( I): @SUM( STATION( K): X( I, K)) = 1);
!对于每一个存在优先关系的作业对来说,前者对应的工作站I必须小于后
者对应的工作站J,即满足约束②;
@FOR( PRED( I, J): @SUM( STATION( K): K * X( J, K) - K * X( I, K)) >= 0);
!对于每一个工作站来说,其花费时间必须不大于装配线周期;
@FOR( STATION( K):
@SUM( TXS( I, K): T( I) * X( I, K)) <= CYCTIME);
!目标函数是最小化转配线周期;
MIN = CYCTIME;
!指定X(I,J) 为0/1变量;
@FOR( TXS: @BIN( X));
END