BAD错误CPLEX“ opl无法提取表达式::”

问题描述

我是梅拉。 我在印尼巴哈萨(Bahasa Indonesia)跑步。但是,我遇到一些错误“ opl无法提取表达式:Pembagian_Stasiun [m] [s] (sum(i in..306)Penugasan_Kerja [i] [m] Waktu_Proses [i] ( -1)+320“在我的目标函数中。但是在我的目标函数中,我不使用320就是Takttime的” (-1)+320“。最后,我收到错误消息” IBM ILOG CPLEX的异常:CPLEX错误1217:不存在解决方案。” 你能帮我吗? :(

这是我的模特照片 MY MODEL THAT HAVE ERROR IN OBJECTIVE FUNSTION ERROR THAT I HAVE

    //Parameter
 int n_Stasiun  =...;
 int n_Operasi  =...;
 int n_PekerjaM=...;
 int n_PekerjaE=...;
 int n_PekerjaT=...;
 int n_Pekerja = n_PekerjaM + n_PekerjaE + n_PekerjaT;
 float TaktTime   =...;
 float TotalTime  =...;
 {string} Skill=...;
 int M=1000000;
 
 range Stasiun = 1..n_Stasiun;
 range Operasi = 1..n_Operasi;
 range Pekerja = 1..n_Pekerja;
 range PekerjaM =1..n_PekerjaM;
 range PekerjaE =n_PekerjaM + 1 .. n_PekerjaM + n_PekerjaE;
 range PekerjaT =n_PekerjaM + n_PekerjaE + 1 .. n_Pekerja;
 
 range PekerjaM_Ringkas= 1..n_PekerjaM - 1;
 range PekerjaE_Ringkas= n_PekerjaM + 1 .. n_PekerjaM + n_PekerjaE - 1;
 range PekerjaT_Ringkas= n_PekerjaM + n_PekerjaE + 1 .. n_Pekerja - 1;
 
 int Kebutuhan_Pekerja [Skill][Operasi] = ...;
 float Waktu_Proses [Operasi] = ... ;
 float ES [Operasi] = ...;
 float LS [Operasi] = ...;
 int arrayOperasi [Skill][Operasi] = ...;
 
 tuple Precedence {
 int Predecessor;
 int Successor;
};
{Precedence} Precedences = ...;  

 tuple Pair {
 int P_Op1;
 int P_Op2;
};
 setof (Pair) A = {<P_Op1,P_Op2> | P_Op1,P_Op2 in Operasi : P_Op1!=P_Op2};

 tuple Samespot {
 int S_Op1; 
 int S_Op2;
 };
 {Samespot} Spot = ...;
 
 //Variables
 dvar float+ Waktu_Mulai [Operasi];
 dvar boolean Penugasan_Kerja [Operasi][Pekerja];
 dvar boolean Penugasan_Kerja_Rangkap [Operasi][Operasi];
 dvar boolean Penyelesaian_Operasi [Operasi][Operasi];
 dvar boolean Penugasan_Stasiun [Operasi][Stasiun];
 dvar boolean Pembagian_Stasiun [Pekerja][Stasiun];
 
 //Model Matematis
 dexpr float Waktu_Menganggur = sum (s in Stasiun)(sum (m in Pekerja)Pembagian_Stasiun [m][s]*(TaktTime-(sum (i in Operasi)Penugasan_Kerja [i][m]*Waktu_Proses[i])));
 
//Fungsi Objektif
minimize Waktu_Menganggur;

//Fungsi Pembatas
subject to {
 forall (i in Operasi)
   cons1 :
   sum (m in Pekerja) Penugasan_Kerja [i][m] == sum (j in Skill) Kebutuhan_Pekerja [j][i];
 forall (i in Operasi : arrayOperasi ["M"][i] == 1)
   cons2 :
   sum (m in PekerjaM) Penugasan_Kerja [i][m] == Kebutuhan_Pekerja ["M"][i];
 forall (i in Operasi : arrayOperasi ["E"][i] == 1)
   cons3 :
   sum (m in PekerjaE) Penugasan_Kerja [i][m] == Kebutuhan_Pekerja ["E"][i];
 forall (i in Operasi : arrayOperasi ["T"][i] == 1)
   cons4 :
   sum (m in PekerjaT) Penugasan_Kerja [i][m] == Kebutuhan_Pekerja ["T"][i];
 
  cons5 :
  Waktu_Mulai [n_Operasi] + Waktu_Proses [n_Operasi] <= TotalTime ;
 
 forall (<Predecessor,Successor> in Precedences)
  cons6 :
  Waktu_Mulai [Successor] - Waktu_Mulai [Predecessor] >= Waktu_Proses [Predecessor];
  
  forall (<P_Op1,P_Op2> in A : P_Op2>P_Op1)
  cons7 :
 Penugasan_Kerja_Rangkap [P_Op1][P_Op2] + Penugasan_Kerja_Rangkap [P_Op2][P_Op1] <= 1;
 
 forall (i in Operasi)
  cons8 :
  Penugasan_Kerja_Rangkap [i][i] == 0;
 
 forall (<P_Op1,P_Op2> in A : P_Op1>P_Op2)
 forall (m in Pekerja)
  cons9 :
  Penugasan_Kerja_Rangkap [P_Op1][P_Op2] + Penugasan_Kerja_Rangkap [P_Op2][P_Op1] >= Penugasan_Kerja [P_Op1][m] + Penugasan_Kerja [P_Op2][m] - 1;
 
 forall (<P_Op1,P_Op2> in A)
  cons10 :
  Waktu_Mulai [P_Op2] - Waktu_Mulai [P_Op1] >= Waktu_Proses [P_Op1] - M * (1 - Penugasan_Kerja_Rangkap [P_Op1][P_Op2]) ;
  
 forall (<S_Op1,S_Op2> in Spot )
  cons11 :
  Waktu_Mulai [S_Op2] + Waktu_Proses [S_Op2] <= Waktu_Mulai [S_Op1] + M * Penyelesaian_Operasi [S_Op1][S_Op2] ;
 
 forall (<S_Op1,S_Op2> in Spot )
  cons12 :
  Waktu_Mulai [S_Op1] + Waktu_Proses [S_Op1] <= Waktu_Mulai [S_Op2] + M * Penyelesaian_Operasi [S_Op2][S_Op1];
  
 forall (<S_Op1,S_Op2> in Spot )
  cons13 :
  Penyelesaian_Operasi [S_Op1][S_Op2] + Penyelesaian_Operasi [S_Op2][S_Op1] == 1;

 forall (i in Operasi)
   cons14 :
   sum (s in Stasiun) Penugasan_Stasiun [i][s] == 1 ;
   
 forall (<Predecessor,Successor> in Precedences  )
   cons15 :
   sum (s in Stasiun) s * (Penugasan_Stasiun [Predecessor][s] - Penugasan_Stasiun [Successor][s]) <= 0 ;
 
 forall (i in Operasi)
  forall (s in Stasiun)
   cons16 :
   sum (m in Pekerja) Penugasan_Kerja [i][m] == sum (j in Skill) Kebutuhan_Pekerja [j][i] * Penugasan_Stasiun [i][s];
   
 forall (i in Operasi)
 forall (m in Pekerja)
   cons17 :
   Penugasan_Kerja [i][m] <= sum (s in Stasiun) Pembagian_Stasiun [m][s];  

 forall (i in Operasi)
 forall (m in Pekerja)
 forall (s in Stasiun)
  cons18 :
  Penugasan_Kerja[i][m] + Penugasan_Stasiun [i][s] <= 1 + Pembagian_Stasiun [m][s];

 forall (m in PekerjaM_Ringkas)
  cons19 :
  sum (s in Stasiun) (Pembagian_Stasiun [m][s] - Pembagian_Stasiun [m+1][s]) >= 0;

 forall (m in PekerjaE_Ringkas)
  cons20 :
  sum (s in Stasiun) (Pembagian_Stasiun [m][s] - Pembagian_Stasiun [m+1][s]) >= 0;

 forall (m in PekerjaT_Ringkas)
  cons21 :
  sum (s in Stasiun) (Pembagian_Stasiun [m][s] - Pembagian_Stasiun [m+1][s]) >= 0;

 forall (i in Operasi)
  cons22 :
  Waktu_Mulai [i] >= ES [i];

 forall (i in Operasi)
  cons23 :
  Waktu_Mulai [i] <= LS [i];

 forall (i in Operasi)
  cons24 :
  Waktu_Mulai [i] >= (-1 + sum(s in Stasiun) s * Penugasan_Stasiun [i][s]) * TaktTime;

 forall (i in Operasi)
  cons25 :
  Waktu_Mulai [i] + Waktu_Proses [i] <= (sum (s in Stasiun) s * Penugasan_Stasiun [i][s]) * TaktTime;

 forall (m in Pekerja)
  cons26 :
  sum (i in Operasi) Penugasan_Kerja [i][m] <= 0 + M * sum (s in Stasiun) Pembagian_Stasiun [m][s];
}




   n_Operasi = 306 ;
 n_Stasiun = 3 ;
 Skill = {M,E,T};
 arrayOperasi = [
 [1,1,//30
 1,//60
 1,//90
 1,//120
 0,//150
 1,//180
 1,//210
 0,//240
 0,//270
 1,//300
 0,1],[0,//30
 0,//60
 0,//90
 0,//120
 1,//150
 0,//180
 0,//270
 0,0],//210
 1,//240
 1,//300
 1,0]
 ];
 
Precedences = 
{<1,2>,<1,3>,4>,5>,6>,<6,7>,<7,8>,<8,9>,10>,<10,11>,12>,13>,<11,14>,<12,<13,<14,15>,16>,<16,17>,<17,18>,19>,20>,<18,21>,<19,<20,<21,22>,<22,23>,<15,24>,<23,25>,<24,26>,27>,28>,<28,29>,30>,31>,<29,32>,<30,<31,<32,33>,34>,35>,36>,37>,<37,38>,39>,<39,40>,41>,42>,<41,43>,<42,<43,44>,45>,46>,<46,47>,48>,49>,50>,51>,52>,<52,53>,<35,54>,<36,<45,<47,<48,<49,<50,<51,<53,<78,<80,<54,55>,<55,56>,<56,57>,58>,59>,60>,61>,<61,62>,63>,64>,65>,<65,66>,67>,68>,<68,69>,70>,<70,71>,72>,73>,<73,74>,75>,<75,76>,<82,<76,77>,78>,79>,80>,81>,82>,83>,<85,84>,85>,86>,87>,<87,88>,89>,<88,<89,90>,<69,91>,<84,92>,93>,94>,<93,95>,<94,96>,97>,98>,99>,100>,<96,<97,<98,<99,101>,<101,102>,103>,104>,105>,106>,<106,107>,108>,<102,<103,<104,<105,<107,109>,110>,<86,<109,111>,112>,<60,113>,114>,<114,115>,116>,117>,118>,119>,120>,<191,121>,<115,<116,<117,<118,<119,<120,<128,<121,122>,123>,<90,124>,<108,<110,<111,<112,<113,<124,125>,126>,127>,128>,<77,129>,<91,<92,<95,<125,<126,<127,<129,130>,<130,131>,<131,132>,<132,133>,<133,134>,<134,135>,<74,136>,<135,<136,137>,138>,<138,139>,140>,141>,142>,143>,144>,145>,146>,147>,148>,149>,150>,151>,152>,<152,153>,154>,155>,<155,156>,157>,158>,159>,160>,<26,161>,<44,162>,<2,163>,<3,<4,<5,<58,<63,<64,<66,<140,<141,<142,<143,<144,<145,<146,<147,<148,<149,<150,<151,<153,164>,<154,165>,<157,<156,//196
<72,166>,<159,<160,<57,167>,168>,169>,170>,171>,172>,<81,<34,173>,<67,174>,<186,175>,<179,<180,176>,<185,177>,<161,178>,<177,179>,180>,<158,181>,182>,183>,184>,<181,185>,<182,<183,<184,186>,187>,188>,189>,190>,191>,192>,193>,194>,195>,196>,197>,198>,199>,200>,201>,202>,203>,204>,205>,206>,207>,208>,209>,210>,211>,212>,213>,214>,215>,216>,217>,218>,219>,220>,221>,222>,223>,224>,225>,226>,227>,228>,229>,230>,231>,232>,233>,234>,235>,236>,237>,<237,238>,239>,240>,<187,<188,241>,<189,<190,242>,<192,243>,<71,244>,<238,<25,245>,<38,<40,246>,247>,248>,<247,<137,249>,<162,<163,<164,<165,<166,<167,<168,<169,<170,<171,<172,<173,<174,<175,<176,<178,<193,<194,<195,<196,<197,<198,<199,<200,<201,<202,<203,<204,<205,<206,<207,<208,<209,<210,<211,<212,<213,<214,<215,<216,<217,<218,<219,<220,<221,<222,<223,<224,<225,<226,<227,<228,<229,<230,<231,<232,<233,<234,<235,<236,<239,<240,<241,<242,<243,<244,<245,<246,<248,<249,250>,<250,251>,<251,252>,253>,254>,255>,256>,<256,257>,<257,258>,259>,260>,<9,261>,<27,<33,<59,<122,<123,<258,<259,<260,262>,263>,<263,264>,265>,<83,<264,266>,267>,268>,269>,270>,<266,<267,<268,<269,271>,272>,273>,<271,<272,274>,275>,276>,277>,278>,<278,279>,<279,280>,281>,282>,<281,283>,284>,<283,<277,285>,286>,287>,288>,<288,289>,290>,291>,<291,292>,<292,293>,294>,295>,296>,297>,298>,299>,300>,<62,301>,<79,<139,<261,<262,<265,<270,<273,<274,<275,<276,<280,<282,<284,<285,<286,<287,<289,<290,<293,<294,<295,<296,<297,<298,<301,302>,<302,303>,<252,305>,<253,<254,<255,<304,<305,306>};

Spot = {<1,306>};
 
TaktTime = 320;
TotalTime = 960;
 
Waktu_Proses = [2.75,2.31,3.39,3.32,8.51,6.41,17.22,5.99,6.59,7.92,//10
3.55,1.78,10.79,9.03,7.48,4.03,9.07,0.65,//23
0.65,4.76,0.81,6.31,5.06,5.24,5.32,7.31,17.27,11.26,3.61,12.1,5.25,//36
1.15,7.73,1.05,5.31,2.93,10.88,4.74,1.59,10.13,4.61,//49
7.84,3.14,5.9,6.92,15,10.39,8.69,3.77,9.37,7.74,4.52,8.74,2.59,0.79,//63
0.84,4.18,3.51,10.52,8.16,22.93,10.35,4.05,18.25,28.41,3.08,7.35,11.27,//76
79.14,4.01,2.91,6.07,8.82,3.72,16.16,1.41,62.47,4.22,33.15,//89
20.03,95.93,32.86,40.04,3.99,12.62,4.35,19.34,3.23,22.47,79.29,19.17,//101
2,2.49,2.19,17.56,8.33,1.37,4.89,2.38,37.34,10.93,11.54,13.73,9.3,//114
1.32,3.55,9.46,6.55,2.77,3.48,35.19,7.39,12.88,10.4,6.83,6.75,10.16,//127
0.42,8,3.27,3.04,2.6,1.95,5.3,3.69,5.91,//145
6.5,2.89,1.87,4.92,4.53,5.75,8.63,7.52,10.15,2.02,6.04,6.11,//159
10.84,2.63,10.6,9.81,3.5,3.91,30.85,25.1,12.55,11,//172
10.55,4.31,4.55,7.43,7.78,6.78,9.06,3.35,30.96,4.29,16.11,//185
8.38,2.21,2.86,3,1.92,1.36,5.17,9.6,9.85,15.76,18.83,7,6.33,//200
10.13,11.04,10.12,3.88,10.26,3.36,5.33,13.03,//213
12.6,17.42,11.06,4,8.55,11.66,6.79,10.47,//226
6.83,11.76,4.32,8.86,2.2,7.13,3.38,0.41,// 239
4.47,3.97,5.27,8.41,8.72,7.41,8.17,12.02,//252
5.75,8.37,6.71,6.49,7.12,17.1,25.06,2.51,12.35,7.83,0.87,//265
5.38,8.08,24.87,6.62,7.25,4.4,6.23,3.34,4.83,28.51,//279
0.79,2.14,47.66,5.43,1.22,1.54,0.19,2.28,3.78,2.56,//292
1.18,6.44,1.96,6.02,3.68,1.76,0.38,14.11,3.03,10.07,3.25,3.2,6.9];
 
Kebutuhan_Pekerja = [
[3,2,6,5,6  //33
4,//66
4,//99
0,//132
0,//165
0,//198
0,//231
0,//264
2,//297
2,//33
0,//66
0,//99
2,//264
0,//297
0,//210
 2,//240
 2,//300
 2,0]
 ];

n_PekerjaM = 30 ;
n_PekerjaE = 6 ;
n_PekerjaT = 11 ;
 
ES = [0,24,32,56,64,//22
72,72,//44
56,80,112,120,16,//71
0,136,//99
80,192,//124
200,200,224,232,240,248,256,264,272,280,288,//144
0,//168
280,//190
0,//240
280,328,336,344,360,//256
368,368,392,296,//276
224,//296
0,352,392];

LS = [0,312,304,88,//16
280,//32
312,//49
232,128,176,//65
312,//83
64,168,144,184,//102
184,//118
136,//134
288,//150
312,//166
296,//182
256,//198
344,//214
304,//230
336,//246
304,//262
304,//278
296,//294
344,392]; 

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...