Кодирование для LINGO / LINDO (целочисленное линейное программирование) - PullRequest
1 голос
/ 12 июля 2020

Не понимаю, как писать код на LIN GO для этой модели (модель на pi c). Я хочу, чтобы «Период» (точка на английском sh) был последовательным. Я пробовал этот код, это возможно, но не в последовательные периоды. Может ли кто-нибудь помочь мне с этой проблемой?

(вот код, который я пробовал)

SETS:

HARI/I1..I3/;

PERIODE/J1..J4/;

PERIOD/P1..P3/;

SKS/T1..T2/;

KM/K1..K4/:A;

DOSEN/L1..L4/:G;

MK/M1..M8/:H, B;

RUANGAN/N1..N3/;

JADWAL(HARI, PERIODE, KM, DOSEN, MK, RUANGAN):X;

PREFERENSI(HARI, PERIODE, DOSEN):Y;

ULANG(HARI, PERIODE, KM):Z;

CONSECUTIVE(HARI, PERIOD, KM, SKS, MK, RUANGAN):W;

ENDSETS

DATA:

H = 2 2 2 2 2 2 2 2;

B = 1 1 1 1 1 1 1 1;

G = 4 4 4 4;

A = 4 4 4 4;

ENDDATA


@FOR(HARI(I): @FOR(KM(K): @FOR(DOSEN(L): @FOR(MK(M): @FOR(RUANGAN(N): @FOR(SKS(T)|T#EQ#2: X(I,1,K,L,M,N) - X(I,T,K,L,M,N)<=0))))));

@FOR(HARI(I): @FOR(KM(K): @FOR(DOSEN(L): @FOR(MK(M): @FOR(RUANGAN(N): @FOR(PERIOD(P)|P#EQ#1#AND#P#EQ#2#AND#P#EQ#3: @FOR(SKS(T)|T#EQ#2:T+P<=4)))))));

@FOR(HARI(I): @FOR(KM(K): @FOR(DOSEN(L): @FOR(MK(M): @FOR(RUANGAN(N): @FOR(PERIOD(P)|P#EQ#1#AND#P#EQ#2#AND#P#EQ#3: @FOR(SKS(T)|T#EQ#2:-X(I,J,K,L,M,N)+X(I,P+1,K,L,M,N)-X(I,P+T,K,L,M,N)<=0)))))));

@FOR(HARI(I): @FOR(KM(K): @FOR(DOSEN(L): @FOR(MK(M): @FOR(RUANGAN(N): @FOR(SKS(T)|T#EQ#2: X(I,4,K,L,M,N) - X(I,4-T,K,L,M,N)<=0))))));

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...