Misal diberikan 5 pekerjaan dan 3 buah mesin. Setiap pekerjaan harus diproses pada setiap mesin dengan urutan tertentu. Satu mesin hanya dapat memproses satu pekerjaan pada satu waktu tertentu, dan jika sebuah mesin memulai satu pekerjaan, maka pekerjaan tersebut harus diselesaikan (tidak bisa ditunda untuk mengerjakan pekerjaan lain). Tujuannya adalah untuk meminimalkan jumlah waktu penyelesaian untuk setiap pekerjaan. Hubungan antara Pekerjaan, waktu, dan urutan pada setiap mesin diberikan pada tabel di bawah ini:

Pekerjaan
Mesin 1
Mesin 2
Mesin 3
1
URUTAN
3
2
1
WAKTU
10
7
5
2
URUTAN
2
1
3
WAKTU
5
9
1
3
URUTAN
1
3
2
WAKTU
15
2
8
4
URUTAN
2
3
1
WAKTU
3
8
10
5
URUTAN
3
1
2
WAKTU
7
5
2

Kemudian, saya coba menyelesaikannya menggunakan LINGO ver. 11. Kodenya kira-kira seperti ini:


! N = the number of jobs
M = the number of machine
P(i,j) = the processing time of job j on machine i
I=J(R) = at order R, the job J
;
DATA:
N=5;
M=3;
U=100;
! Variabel bantuan, r = m-1;
R=2;
ENDDATA
SETS:
JOB /1..N/;
MACHINE /1..M/;
R_MACHINE /1..R/;
ORDER /1..M/;
! Derived from JOB and MACHINE;
PIJ(MACHINE,JOB)/
1,1 1,2 1,3 1,4 1,5
2,1 2,2 2,3 2,4 2,5
3,1 3,2 3,3 3,4 3,5
/:P;
RJ(JOB,ORDER)/
1,1 1,2 1,3
2,1 2,2 2,3
3,1 3,2 3,3
4,1 4,2 4,3
5,1 5,2 5,3
/:I;
TIJ(MACHINE,JOB)/
1,1 1,2 1,3 1,4 1,5
2,1 2,2 2,3 2,4 2,5
3,1 3,2 3,3 3,4 3,5
/:T;
ENDSETS
! The data;
DATA:
P=
10 5 15 3 7
7 9 2 8 5
5 1 8 10 2;
I=
3 2 1
2 1 3
1 3 2
3 1 2
2 3 1;
ENDDATA
! Objective function;
MIN=@SUM(TIJ(M_,J_) M_ #EQ# M : T(I(J_,M_),J_));
! First Constraints;
@FOR(R_MACHINE(R_):
@FOR(JOB(J_):
T(I(J_,R_+1),J_) >= T(I(J_,R_),J_) + P(I(J_,R_),J_)
)
);
! Second constraints;
@FOR(MACHINE(I_):
@FOR(JOB(J_):
@FOR(JOB(K_):
T(I_,J_) - T(I_,K_) <= -1*P(I_,J_) + U*(1 - X(I_,J_,K_))
)
)
);
! Third constraints;
@FOR(MACHINE(I_):
@FOR(JOB(J_):
@FOR(JOB(K_):
T(I_,K_) - T(I_,J_) <= -1*P(I_,K_) + U*X(I_,J_,K_) ) ) ); ! Tij in non-negative; @FOR(MACHINE(I_): @FOR(JOB(J_): T(I_,J_)>= 0
)
);
! Xijk is Binary Variables;
@FOR(MACHINE(I_):
@FOR(JOB(J_):
@FOR(JOB(K_):
@BIN(X(I_,J_,K_))
)
)
);

Note: Ada satu baris yang saya hilangkan, apakah itu??

Nah, setelah saya solve, keluar pesan sebagai berikut:

The LINDO API returned the following error code: 2026
LINDO API routine: LSolveMIP
License is too small for the given problem.

Padahal license-nya Unlimited, dan Commercial Version. Ada yang bisa bantu?


Posted Under Category: Artikel, Matematika, Materi Kuliah


Related Posts

4 Responses to Jobs and Machine Scheduling : A solution with LINGO

  1. zero says:

    wah.. kasih tau dong mana baris yang dihilangkan,sy coba syntax di lingo keluar pesan ; error code 11

  2. Khaeroni says:

    Setelah
    TIJ(MACHINE,JOB)/
    1,1 1,2 1,3 1,4 1,5
    2,1 2,2 2,3 2,4 2,5
    3,1 3,2 3,3 3,4 3,5
    /:T;

    Sebelum
    ENDSETS
    Tambahkan
    XIJ(MACHINE,JOB,JOB):X;

  3. roni says:

    bagian
    MIN=@SUM(TIJ(M,J)M#EQ# M : T(I(J,M),J));

    kok error y?

  4. khaeroni says:

    Yang benar
    MIN=@SUM(TIJ(M_,J_) | M_ #EQ# M : T(I(J_,M_),J_));

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Quranic Verse


Categories


Portal Akademik


Portal E-Learning


My Affiliate

Join 4Shared Now!


My Face-book


Twitter


Yahoo! Messanger


My Count's