請問在lingo8.0程式語法可以跑 但轉換到lingo12卻無法跑 請問哪裡要修正
本帖最后由 tommy0507 于 2015-3-1 16:22 编辑程式語法如下 不知道lingo8升級到lingo12怎麼會跑不出來
在lingo8可以跑出結果 但lingo12一直顯示錯誤
因為已經使用win8如果灌lingo8 所以只能使用lingo12
請各位大神們 幫忙一下
!================================================;
Model:
Sets: !設定巨集開始;
people/1..28/:i; !輪班人員(i=1~28);
job/1..3/:j; !勤務模式(j=1~3);
timezone/1..3/:k; !出勤時段(k=1~3);
day/1..7/:d; !每周有7天(d=1~7);
PP(Job,Timezone):p; !勤務需求人力pjk;
XX(People,Job,Day,Timezone):x; !決策變數x(i,j,d,k);
YY(People,Day):y; !決策變數y(i,d);
Endsets
!================================================;
Data:
!設定常數;
p=@OLE('d:\Excel.xlsx','pjk');
!引入需求人數;
@OLE('d:\Excel.xlsx','xijdk')=x;
!引出執行結果;
W1=1; !k=1 早班加權*1;
W2=2; !k=2 晚班加權*2;
W3=3; !k=3 大夜班加權*3;
Enddata
!設定資料結束;
!================================================;
Min=Z-W;
!每位輪班人員出勤次數之最大平均數(3-1);
@for(people(i): <===這裡一直顯示錯誤
@sum(XX(i,j,d,k)|k#eq#1:x(i,j,d,k))*W1+
@sum(XX(i,j,d,k)|k#eq#2:x(i,j,d,k))*W2+
@sum(XX(i,j,d,k)|k#eq#3:x(i,j,d,k))*W3<=Z);
!最大排班次數小於等於Z(3-2);
@for(people(i): <===如果忽略前面 這裡也會
@sum(XX(i,j,d,k)|k#eq#1:x(i,j,d,k))*W1+ 基本上以下都會
@sum(XX(i,j,d,k)|k#eq#2:x(i,j,d,k))*W2+ 但lingo8卻可以出來
@sum(XX(i,j,d,k)|k#eq#3:x(i,j,d,k))*W3>=W);
!最大排班次數小於等於Z(3-2);
@for (people(i):
@for(day(d):
@sum(XX(i,j,d,k):x(i,j,d,k))<=1));
!每天每人僅能一種勤務模式(3-3);
@for(people(i):
@for(day(d)|d#le#6:
@sum(Job(j):x(i,j,d,3)+x(i,j,d+1,1))<=1));
!每日大夜班之次日不得排列早班(3-4);
@for(people(i):
@sum(Job(j):x(i,j,7,3)+x(i,j,1,1))<=1);
!每周最後一日大夜班次日不得排列早班(3-5);
@for(people(i)|i#le#14:
@for(day(d):
@sum(Timezone(k):x(i,3,d,k))=0));
!正職人員可任職之限制(3-6);
@for(people(i)|i#ge#15:
@for(day(d):
@sum(Timezone(k):x(i,1,d,k))=0));
!約僱人員可任職之限制(3-7);
@for(job(j):
@for(day(d):
@for(Timezone(k):
@sum(XX(i,j,d,k):x(i,j,d,k))>=p(j,k))));
!各時段人力需求限制(3-8);
@for(people(i):
@sum(XX(i,j,d,k):x(i,j,d,k))<=5);
!每人排程內不超過五天班 (3-9);
!================================================;
!決策變數Xijdk,屬於0或1的限制;
@for(people(i):
@for(job(j):
@for(Timezone(k):
@for(day(d):
@bin(x(i,j,d,k))))));
@for(people(i):
@for(day(d):
@bin(y(i,d))));
!================================================;
END
没有发现明显的问题。你的@OLE中读入的excel文件如果能提供的话,我可以尝试帮你运行一下。
页:
[1]