BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem...

26
IV-14 BAB IV PERANCANGAN DAN IMPLEMENTASI 4.1 Pendahuluan Sistem multiagen untuk menyelesaikan permasalahan job shop scheduling diimplementasikan dalam bentuk program yang menerima masukan berupa definisi permasalahan job shop scheduling dan kemudian melakukan simulasi untuk mendapatkan jadwal pengerjaan job yang terbaik yaitu yang makespan tersingkat. Agen-agen yang telah dijelaskan pada BAB III Analisis akan diimplementasikan sebagai bagian dari program. Selama melakukan simulasi ini agen-agen (machine agent) akan melakukan pembelajaran (menyimpan pengalaman dan melakukan inferensi) untuk memperoleh aturan (policy) terbaik untuk mengambil keputusan dalam pemrosesan job (menentukan urutan operasi job yang akan dikerjakan). 4.2 Perancangan Kelas Program ini dirancang menggunakan metode berorientasi objek sehingga program ini dibagi menjadi kelas-kelas dengan tanggung jawab tertentu. Tabel daftar kelas perancangan program dan jenisnya dapat dilihat pada Tabel IV-1 Daftar Jenis Kelas. Tabel IV-1 Daftar Jenis Kelas No Nama Kelas Jenis 1 Jsspui Interface 2 Job Entity 3 Case Entity 4 schedule Entity 5 controlAgent Controller 6 controlAgentBehaviour Controller 7 machineAgent Controller

Transcript of BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem...

Page 1: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-14

BAB IV

PERANCANGAN DAN IMPLEMENTASI

4.1 Pendahuluan

Sistem multiagen untuk menyelesaikan permasalahan job shop scheduling diimplementasikan

dalam bentuk program yang menerima masukan berupa definisi permasalahan job shop

scheduling dan kemudian melakukan simulasi untuk mendapatkan jadwal pengerjaan job

yang terbaik yaitu yang makespan tersingkat.

Agen-agen yang telah dijelaskan pada BAB III Analisis akan diimplementasikan sebagai

bagian dari program. Selama melakukan simulasi ini agen-agen (machine agent) akan

melakukan pembelajaran (menyimpan pengalaman dan melakukan inferensi) untuk

memperoleh aturan (policy) terbaik untuk mengambil keputusan dalam pemrosesan job

(menentukan urutan operasi job yang akan dikerjakan).

4.2 Perancangan Kelas

Program ini dirancang menggunakan metode berorientasi objek sehingga program ini dibagi

menjadi kelas-kelas dengan tanggung jawab tertentu. Tabel daftar kelas perancangan program

dan jenisnya dapat dilihat pada Tabel IV-1 Daftar Jenis Kelas.

Tabel IV-1 Daftar Jenis Kelas

No Nama Kelas Jenis

1 Jsspui Interface

2 Job Entity

3 Case Entity

4 schedule Entity

5 controlAgent Controller

6 controlAgentBehaviour Controller

7 machineAgent Controller

Page 2: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-15

8 machineAgentBehaviour Controller

Tabel rincian tanggung jawab setiap kelas dapat dilihat padaTabel IV-2 Daftar Tanggung

Jawab Kelas.

Tabel IV-2 Daftar Tanggung Jawab Kelas

No Nama Kelas Daftar Tanggung Jawab

1 jsspui 1. Menerima input dari user dan menjalankan

program

2. Menerima output dari program dan

menampilkannya kepada user

2 job 1. Menyimpan data spesifikasi setiap job (rute,

waktu operasi)

2. Menyimpan status (perubahan) tiap job yang

diproses oleh sistem

3 Case 1. Menyimpan kasus untuk basis pengetahuan agen

case-based reasoning

2. Mengelola case

4 schedule 1. Menyimpan penjadwalan dari hasil simulasi

sistem

2. Mengelola schedule

5 controlAgent 1. Menerima definisi job shop problem dari file

input

2. Mengontrol seluruh proses job shop scheduling

3. Menjalankan controlAgentBehaviour

6 controlAgentBehaviour 1. Mengirimkan kondisi sistem kepada

machineAgent

2. Menerima keputusan (pilihan aksi) dari

machineAgent

3. Mengirimkan reward kepada machineAgent

4. Mencatat hasil simulasi job shop scheduling dan

Page 3: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-16

menuliskannya di file output

7 machineAgent 1. Mengambil pengetahuan (case) dari file

eksternal

2. Menjalankan machineAgentBehaviour

8 machineAgentBehaviour 1. Mengelola pengetahuan (case) di dalam memori

2. Mengambil keputusan aksi berdasarkan kondisi

sistem dari controlAgent dan basis pengetahuan

yang dimiliki

3. Memutakhirkan basis pengetahuan berdasar kan

nilai reward dari aksi, yang diberikan oleh

controlAgent

4. Menuliskan kembali pengetahuan (case) yang

telah dimutakhirkan ke file eksternal

Diagram kelas perancangan dapat dilihat pada Gambar IV-1. Kelas jsspui merupakan kelas

yang hanya bertugas menghidupkan seluruh agen yang dibutuhkan sesuai dengan definisi

permasalahan job shop scheduling yang diberikan oleh user. Kelas machineAgentBehaviour

merupakan bagian dari kelas machineAgent sedangkan kelas controlAgentBehavior

merupakan bagian dari kelas controAgent. Dengan demikian kelas machineAgentBehaviour

dapat menggunakan atribut dan method yang ada pada kelas machineAgent dan

controlAgentBehaviour dapat menggunakan atribut dan method yang ada pada kelas

controlAgent.

Diagram sequence perancangan dari program dapat dilihat padaGambar IV-2 Diagram

sequence perancangan program. Sequence program ini akan berulang sampai seluruh job

yang didefinisikan selesai. Status job terus menerus dicek pada setiap akhir iterasi dengan

fungsi isJobsDone() yang dimiliki kelas controlAgent. Gambar IV-2 Diagram sequence

perancangan program berpadanan dengan flowchart pada Gambar III-3.

Page 4: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-17

Gambar IV-1 Diagram perancangan kelas program

Keterangan lebih rinci dari setiap atribut dan operasi dapat dilihat pada Tabel IV-3 Kelas

jsspui, Tabel IV-4 Kelas job, Tabel IV-5 Kelas Case, Tabel IV-6 Kelas schedule, Tabel IV-7

Kelas controlAgent, Tabel IV-8 Kelas controlAgentBehaviour, Tabel IV-9 Kelas

machineAgent dan Tabel IV-10 Kelas machineAgentBehaviour.

Page 5: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-18

Gambar IV-2 Diagram sequence perancangan program

Page 6: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-19

Tabel IV-3 Kelas jsspui

No Nama atribut Visibility Tipe

1 - - -

No Nama operasi Visibility Deskripsi

1 jsspui() Public Konstruktor kelas

2 out() Public Menampilkan output program kepada

user

Tabel IV-4 Kelas job

No Nama atribut Visibility Tipe

1 route Public Array of Integer

2 optime Public Array of Integer

3 next Public Integer

4 prev Public Integer

5 ticker Public Integer

No Nama operasi Visiblility Deskripsi

1 job() Public Konstrktor kelas

2 process() Public

Memutakhirkan (menambah) nilai atribut

ticker pada job yang menandakan bahwa

job telah diproses

3 isDone() Public

Mencek apakah job sudah selesai

diproses pada setiap mesin pada rute

(sesuai urutan)

Tabel IV-5 Kelas Case

No Nama atribut Visibility Tipe

1 p Public Array of Integer

Page 7: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-20

2 sol Public solution (internal class)

No Nama operasi Visiblility Deskripsi

1 Case() Public Konstrktor kelas

2 out() Public Mencetak nilai atribut sebuah Case ke

dalam String

3 updateExp() Public Melakukan pemutakhiran pengalaman

(experience) yang disimpan dalam Case

4 updateExpN() Public

Melakukan pemutakhiran update-counter

(N) dari sebuah aksi pada pengalaman

dalam sebuah Case

5 getExpUpdate() Public

Mengembalikan nilai updateCounter (N)

dari sebuah aksi pada pengalaman dalam

sebuah Case

6 getExpQ() Public Mengembalikan nilai Q dari sebuah aksi

pada pengalaman dalam sebuah Case

7 getExpAction() Public Mengembalikan nilai aksi pada

pengalaman dalam sebuah Case

Tabel IV-6 Kelas schedule

No Nama atribut Visibility Tipe

1 table Public Array of array of Integer

2 time Public Integer

No Nama operasi Visiblility Deskripsi

1 schedule() Public Konstrktor kelas

2 occupy() Public

Memutakhirkan nilai table sebagai log

dari penjadwalan yang dihasilkan

simulasi

3 out() Public Mengembalikan table ke dalam bentuk

String

Page 8: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-21

Tabel IV-7 Kelas controlAgent

No Nama atribut Visibility Tipe

1 AID Public AID

2 jobs Public Array of job

3 schedule Public Schedule

4 machineAgents Public Array of AID

No Nama operasi Visiblility Deskripsi

1 controlAgent() Public Konstrktor kelas

2 setup() Public Fase persiapan agen. Penambahan

behaviour dilakukan di sini

3 addBehaviour() Public Penambahan behaviour atau perilaku

agen

4 updateList() Public Melakukan pendaftara seluruh agen yang

aktif

5 getTotalTime() Public

Memperoleh nilai total dari proses yang

dibutuhkan untuk menyelesaikan seluruh

job secara sekuensial (worst case)

6 isJobsDone() Public

Mencek apakah seluruh job telah selesai

diproses (melalui setiap mesin sesuai rute

yang telah didefinisikan)

7 doDelete() Public

Memberikan sinyal kepada agen untuk

memicu prosedur takeDown() untuk

mematikan agen

8 takeDown() Public Mematikan agen

9 out() Public

Mengembalikan bentuk String dari data

keluaran agen :

1. DPR yang digunakan,

2. Waktu hasil penjadwalan

(makespan) dan

Page 9: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-22

3. Exploration rate tiap machineAgent

Tabel IV-8 Kelas controlAgentBehaviour

No Nama atribut Visibility Tipe

1 status Public Integer

No Nama operasi Visibility Deskripsi

1 controlAgentBehaviour() Public Konstruktor kelas

2 action()

Public Mendefinisikan perilaku (urutan

aksi) yang harus dilakukan agen saat

diaktifkan/dihidupkan

Tabel IV-9 Kelas machineAgent

No Nama atribut Visibility Tipe

1 AID Public AID

2 CB Public Vector of Case

3 controlAgent Public AID

No Nama operasi Visiblility Deskripsi

1 machineAgent() Public Konstrktor kelas

2 setup() Public Fase persiapan agen. Penambahan behaviour

dilakukan di sini

3 addBehaviour() Public Penambahan behaviour atau perilaku agen

4 NN() Public Mencari Nearest Neighbour (Case) dari

sebuah kondisi (state)

5 selectIndex() Public Memilih indeks dari aksi (dispatch rule) yang

akan dilakukan untuk memilih job

6 selectJob() Public Memilih job berdasarkan indeks aksi

7 shellSort() Public Mengurutkan nilai Q dari sebuah Case

(ascending sort)

Page 10: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-23

8 doDelete() Public

Memberikan sinyal kepada agen untuk

memicu prosedur takeDown() untuk

mematikan agen

9 takeDown() Public Mematikan agen

Tabel IV-10 Kelas machineAgentBehaviour

No Nama atribut Visibility Tipe

1 status Public Integer

No Nama operasi Visibility Deskripsi

1 machineAgentBehaviour() Public Konstruktor kelas

2 action() Public

Mendefinisikan perilaku (urutan aksi)

yang harus dilakukan agen saat

diaktifkan/dihidupkan

4.3 Implementasi

IV.3.1 Lingkungan implementasi

Lingkungan implementasi yang dipilih adalah bahasa pemrograman Java dengan

framework JADE. Bahasa Java dipilih karena merupakan bahasa yang dapat

menghasilkan program multiplatform. Selain itu, alasan dipilihnya bahasa

pemrograman Java adalah tersedianya framework khusus untuk mengembangkan

sistem berbasis multiagent yaitu JADE. Java SDK yang digunakan adalah versi 1.6.

IDE yang digunakan untuk membuat program ini adalah Net Beans vesi 6.0.1 yang

dijalankan pada sistem operasi Windows XP SP2.

IV.3.2 Implementasi kelas

Tabel implementasi kelas dapat dilihat pada Tabel IV-11 Implementasi kelas.

Sebagian dari kelas yang diimplementasikan merupakan turunan dari kelas-kelas

bawaan framework JADE. Selain itu ada kelas-kelas bawaan lain dari JADE yang

digunakan dalam sistem. Daftar seluruh kelas bawaan dari JADE berikut deskripsi

Page 11: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-24

tanggung jawabnya dapat dilihat pada Tabel IV-12 Daftar kelas bawaan dari

framework.

Tabel IV-11 Implementasi kelas

No Nama Kelas Nama File Fisik

1 Jsspui jsspui.java

2 Job job.java

3 Case case.java

4 Schedule schedule.java

5 controlAgent controlAgent.java

6 controlAgentBehaviour controlAgent.java

7 machineAgent machineAgent.java.java

8 machineAgentBehaviour machineAgent.java.java

Tabel IV-12 Daftar kelas bawaan dari framework

No Nama Kelas Daftar Tanggung Jawab

1 Jade.core.agent Parent dari kelas controlAgent dan

machineAgent

2 Jade.core.behaviours Parent dari kelas controlAgentBehaviour

dan machineAgentBehaviour

3 Jade.core.AID Mengelola ID khusus untuk tiap agen

4 Jade.domain.FIPAAgentManagement Mengelola deskripsi agen dan layananya

(service)

5 Jade.domain.FIPAException Mengelola exception dari aksi

6 Jade.domain.DFService Mengelola layanan yang terkait dengan

agen-agen

7 Jade.lang.acl.ACLMessage Mengelola pesan untuk komunikasi antar

agen

IV.3.3 Sintaks untuk menjalankan program

Sintaks run program:

Page 12: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-25

java jsspui [path_dari_file_job_shop_input]

[learning_exploration_rate][test_value]

contoh :

1. D:\My Documents\NetBeansProjects\JSSP\build\classes >java jsspui

C:\tes1.txt

2. D:\My Documents\NetBeansProjects\JSSP\build\classes >java jsspui

C:\tes1.txt 5

3. D:\My Documents\NetBeansProjects\JSSP\build\classes >java jsspui

C:\tes1.txt 5 1

Keterangan:

1 learning_exploration_rate

Bernilai {0..10} 0 = tidak melakukan ekplorasi; 10 = terus melakukan explorasi;

2 test_value

Nilai untuk mengeksekusi test agent yang hanya menggunakan satu jenis DPR. 0

= EDD agent, 1 = MS agent, 2 = SPT agent

3 Program harus dijalankan di folder di mana seluruh kelas JSSP berada

IV.3.4 Spesifikasi file input

# JSS

# 10 5 // [jumlah_job] [jumlah_mesin]

# 1 72 0 87 4 95 2 66 3 60

# 4 5 3 35 0 48 2 39 1 54

# 1 46 3 20 2 21 0 97 4 55

# 0 59 3 19 4 46 1 34 2 37

# 4 23 2 73 3 25 1 24 0 28

# 3 28 0 45 4 5 1 78 2 83

# 0 53 3 71 1 37 4 29 2 12

# 4 12 2 87 3 33 1 55 0 38

# 2 49 3 83 1 40 0 48 4 7

# 2 65 3 17 0 90 4 27 1 23

Page 13: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-26

//[mesin1] [optime1] [mesin2] [optime2] … [mesinN] [optimeN]

Contoh file input tes2.txt dapat dilihat pada Gambar IV-4 Contoh file input.

Gambar IV-3 Diagram kelas implementasi program.

Page 14: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-27

Gambar IV-4 Contoh file input

IV.3.5 Spesifikasi file output

Program akan menghasilkan 2 jenis output (kedua file output ini di buat oleh program

di folder yang sama di tempat seluruh kelas program ini berada):

1. Schedule.txt : dibagi menjadi dua bagian yaitu spesifikasi job yang diberikan

(ditulis ulang) dan hasil penjadwalan (schedule). Contoh file ada pada Gambar

IV-5 Contoh file output program schedule.txt. Penjelasan dari setiap baris dalam

file adalah sebagai berikut :

1

0 2 1

4 7 3

1. Baris pertama adalah id dari job

2. Baris kedua adalah urutan mesin (rute) yang harus dilalui job

3. Baris ketiga adalah waktu operasi job di tiap mesin. Pada contoh diatas :

waktu operasi pada mesin 4 adalah 88, mesin 8 adalah 68 .dst

Page 15: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-28

Total time = 34

Machine[0] 0 0 0 0 - 1 1 1 1 1 - - - - - - - - - - - - - - - 2 2 2 2 2 2 2 2 2 - - - - - - - - - - - - - Machine[1] - - - - - - - - - - 1 1 1 1 1 1 0 0 0 2 2 2 2 2 2 - - - - - - - - - - - - - - - - - - - - - - Machine[2] 1 1 1 1 1 0 0 0 0 0 0 0 2 2 2 2 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

1. Baris pertama adalah makespan

2. Baris kedua dan seterusnya adalah tabel (baris dan kolom) jadwal pengerjaan

yang dihasilkan sistem. Bagian baris (machine[1], machine[2], machine[1])

adalah mesin yang bekerja pada sistem. Sedangkan bagian kolom adalah

waktu (t). Lambang ‘-‘ berarti pada saat itu mesin sedang idle. Sedangkan

lambang berupa angka tertentu adalah id dari job yang sedang diproses pada

mesin tersebut.

Gambar IV-5 Contoh file output program schedule.txt

2. Case [n].txt : representasi pengetahuan dari tiap machine Agent. Contoh file

output case base dapat dilihat pada Gambar IV-6 Contoh file case base dari agen.

Penjelasan dari bagian-bagian dalam file ini adalah :

10 11 15

0

Page 16: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-29

0 2 0.6041666666666666

1 3 0.4166666666666667

2 0 0.0

1. Baris pertama merupakan state dari case yaitu case[i].state

2. Baris kedua merupakan evaluation value dari tiap case[i].solution

3. Baris ketiga dan seterusnya adalah experience[i] = <kode_aksi

jumlah_update nilai_q> atau Case[i].solution.E[j] = <a, n, Q>.

Tuple E = <a, n, Q> selalu terurut menaik berdasarkan Q

Gambar IV-6 Contoh file case base dari agen

Page 17: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-30

IV.3.6 Contoh penyelesaian kasus

Pada sistem multiagent ini, control agent dan beberapa (dalam kasus ini tiga) machine

agent akah saling berinteraksi untuk melakukan simulasi job shop scheduling dengan

spesifikasi kasus job shop di atas. Dalam simulasi ini, sistem tidak mengambil pilihan

acak (exploration rate = 0), sehingga perilaku agen lebih mudah ditelaah. Contoh

kasus yang disimulasikan adalah kasus job shop 3 job 3 mesin dengan representasi

sebagai berikut :

3 3

0 4 2 7 1 3

2 5 0 5 1 6

2 5 1 6 0 9

Dalam skenario satu, semua machine agent belum memiliki pengetahuan (case) sama

sekali. Jadi dalam simulasi ini ditunjukkan tahap-tahap pembuatan dan penambahan

case oleh setiap machine agent. Mengacu pada siklus CBR, maka setiap kasus yang

ditemukan oleh agen akan disimpan (retained). Sesuai dengan algoritma global

program pada Algoritma III-9 penambahan kasus baru akan mengakibatkan

reinisialisasi dari case yang mengacu pada kasus baru tersebut.

Flowchart skenario satu dibagi menjadi tiga bagian yaitu control agent, machine

agent 0, machine agent 1 dan machine agent 2. Keseluruhan flowchart dibagi dalam

beberapa bagian gambar :

1. Control agent : terdapat pada Gambar IV-7, Gambar IV-8, Gambar A - 1,

Gambar A - 2 dan Gambar A - 3

2. Machine agent 0 : terdapat pada Gambar IV-9, Gambar IV-10 dan Gambar A - 4

3. Machine agent 1 : terdapat pada Gambar A - 5, Gambar A - 6 dan Gambar A - 7

4. Machine agent 2 : terdapat pada Gambar IV-11, Gambar IV-12 dan Gambar A - 8

Legenda dari flowchart dapat dilihat pada Gambar III-3.

Page 18: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-31

mulai

J[0].route = {0, 2, 1}; j[0].optime = {4, 7, 3}

J[1].route = {2, 0, 1}; j[1].optime = {5, 5, 6}

J[2].route = {2, 1, 0}; j[2].optime = {5, 6, 9}

Kirim daftar job :

Machine[0] = {j[0]}

Machine[2] = {j[1],j[2]}

21

Kirim state (total duedate, total slack,

total processing time, current time) :

14 50 14 0

3 4

Terima pilihan job:

Machine[0] = j[0] (0 0 4 0)

Machine[2] = j[1] (0 0 5 0)

5

Reward = 0 + 0 + ((7+3)+(5+6)+(5+6+9))/3

= 1387

6

9

Gambar IV-7 Flowchart control agent (1)

Gambar IV-8

Gambar IV-9

Gambar IV-9

Gambar IV-9

Gambar IV-11

Gambar IV-11

Gambar IV-11

Page 19: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-32

Gambar IV-8 Flowchart control agent (2)

Gambar IV-7

Gambar A - 1

Gambar IV-10

Gambar IV-10

Gambar IV-10

Gambar IV-12

Gambar IV-10

Gambar IV-10

Page 20: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-33

J[0].route = {0, 2, 1}; j[0].optime = {4, 7, 3}2

State: 14 50 14 0

Tambah case :

14 50 14 0

0

2 0 0.0

1 0 0.0

0 0 0.0

Cold == Cnew (tidak ada transisi

state)

Action_ix = selectIndex(0)

Cnew.sol.E[Action_ix].action = 2 (SPT)

Cnew.sol.E[Action_ix].n++

Cnew:

14 50 14 0

1

2 1 0.0

1 0 0.0

0 0 0.0

PT(j[0]) = 4

Kirim pilihan job = j[0]

Kirim start, completion time,

reward lokal:

0 0 4 0

5

getReward(4,4) = 0

Reward global = 13

Cold = Cnew (14 50 14 0)

Old_action = Action_ix = 0

8

41

4

mulai

Gambar IV-9 Flowchart machine agent 0 (1)

Gambar IV-7

Gambar IV-7

Gambar IV-7

Gambar IV-10

Page 21: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-34

Gambar IV-10 Flowchart machine agent 0 (2)

Gambar IV-9

Gambar IV-8

Gambar IV-8

Gambar IV-8

Gambar A - 4

Page 22: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-35

J[1].route = {2, 0, 1}; j[1].optime = {5, 5, 6}

J[2].route = {2, 1, 0}; j[2].optime = {5, 6, 9}1

State: 14 50 14 0

Tambah case (Cnew) :

14 50 14 0

0

2 0 0.0

1 0 0.0

0 0 0.0

Cold == Cnew (tidak ada transisi state)

Jadi nilai tidak diupdate

Action_ix = selectIndex(0)

Cnew.sol.E[Action_ix].action = 2 (SPT)

Cnew.sol.E[Action_ix].n++

Cnew:

14 50 14 0

1

2 1 0.0

1 0 0.0

0 0 0.0

PT(j[1]) = 5

PT(j[2]) = 5

Kirim pilihan job = j[1]

Kirim start, completion time,

reward lokal:

0 0 5 0

6

getReward(5,5) = 0

Reward global = 13

Cold = Cnew (14 50 14 0)

Old_action_ix = Action_ix = 0

7

46

3

Mulai

Gambar IV-11 Flowchart machine agent 2 (1)

Gambar IV-7

Gambar IV-7

Gambar IV-7

Gambar IV-12

Page 23: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-36

Gambar IV-12 Flowchart machine agent 2 (2)

Gambar IV-8

Gambar IV-8

Gambar IV-8

Gambar IV-11

Gambar A - 8

Page 24: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-37

Pada skenario dua ditunjukkan proses pemutakhiran nilai Q yang disimpan dalam

pengetahuan machine agent. Skenario ini hanya melengkapi skenario sebelumnya jadi

tidak ditampilkan lengkap (dari awal simulasi sampai akhir) melainkan hanya

sebagian saja. Flowchart skenario dua hanya ditampilkan sebagian karena secara

keseluruhan, mirip dengan skenario satu. Flowchart skenario dua terdapat pada

Gambar IV-13, Gambar IV-14 dan Gambar IV-15.

Gambar IV-13 Flowchart control agent (skenario 2)

Gambar IV-14 Gambar IV-15

Gambar IV-15

Gambar IV-15

Gambar IV-14

Gambar IV-14

Page 25: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-38

Gambar IV-13 Flowchart control agent (skenario 2) menunjukkan interaksi yang

dinisiasi oleh control agent. Pada Gambar IV-13 mengirimkan plihan job pada

machine agent 0 dan machine agent 2.

CB[1]

26 41 17 5

1

2 1 0.0

0 0 0.0

1 0 7.5

CB[0]

14 50 14 0

1

2 2 0.0

1 0 0.0

0 0 0.0

CB[2]

34 12 12 22

1

2 2 0.0

1 0 0.0

0 0 0.0

J[1].route = {0, 1}; j[1].optime = {5, 6}12

State: 26 41 17 513

Cold = (14 50 14 0)

Reward global = 13

Old_action_ix = 0

Alpha = 1 / 1 + 2 = 0.33

Q = (1-0.33) (0) + (0.33) (13 + 0.5 * 0.0) = 4.33

Cold.sol.E[Old_action_ix].q = 4.33

Resort(Cold.sol.E)

14 50 14 0

1

1 0 0.0

0 0 0.0

2 2 4.33

Action_ix = SelectIndex(5)

Cnew.sol.E[Action_ix].action = 2 (SPT)

Cnew.sol.E[Action_ix].n++

Cnew:

26 41 17 5

1

2 1 0.0

1 0 0.0

0 0 0.0

PT(j[1]) = 5

Kirim pilihan job = j[1]

Kirim start, completion time,

reward lokal:

(1 5 10 0)

getReward(10,10) = 0

Reward global = 15

Cold = Cnew (26 41 17 5)

Old_action_ix = Action_ix = 0

14

16

CB[1]

26 41 17 5

1

2 2 0.0

0 0 0.0

1 0 7.5

CB[0]

14 50 14 0

1

1 0 0.0

0 0 0.0

2 2 4.33

CB[2]

34 12 12 22

1

2 2 0.0

1 0 0.0

0 0 0.0

Cnew = NN(state, CB)

CB[1]

26 41 17 5

1

2 1 0.0

0 0 0.0

1 0 7.5

Gambar IV-14 Flowchart machine agent 0 (skenario 2)

Pada Gambar IV-14 ditunjukkan proses pemutakhiran nilai Q (yang diikuti dengan

resorting) pada case yang dimiliki machine agent 0. Tiga kotak di sebelah kiri atas

Gambar IV-13

Gambar IV-13

Gambar IV-13

Page 26: BAB IV PERANCANGAN DAN IMPLEMENTASI · Mengelola case 4 schedule 1 ... dijalankan pada sistem operasi Windows XP SP2. ... 3 Program harus dijalankan di folder di mana seluruh kelas

IV-39

merupakan case base awal dari machine agent 0, sedangkan tiga kotak di sebelah kiri

bawah merupakan case base akhir dari machine agent 0.

Gambar IV-15 Flowchart machine agent 2 (skenario 2)

Pada Gambar IV-15 ditunjukkan proses pemutakhiran nilai Q (yang diikuti dengan

resorting) pada case yang dimiliki machine agent 2. Tiga kotak di sebelah kiri atas

merupakan case base awal dari machine agent 0, sedangkan tiga kotak di sebelah kiri

bawah merupakan case base akhir dari machine agent 0.

Gambar IV-13

Gambar IV-13

Gambar IV-13