• Tidak ada hasil yang ditemukan

IMPLEMENTASI SISTEM MULTIAGENT DENGAN CASE-BASED REASONING DAN REINFORCEMENT LEARNING UNTUK PENYELESAIAN JOB SHOP SCHEDULING PROBLEM

N/A
N/A
Protected

Academic year: 2021

Membagikan "IMPLEMENTASI SISTEM MULTIAGENT DENGAN CASE-BASED REASONING DAN REINFORCEMENT LEARNING UNTUK PENYELESAIAN JOB SHOP SCHEDULING PROBLEM"

Copied!
18
0
0

Teks penuh

(1)

IMPLEMENTASI SISTEM MULTIAGENT DENGAN

CASE-BASED REASONING DAN REINFORCEMENT LEARNING

UNTUK PENYELESAIAN JOB SHOP SCHEDULING PROBLEM

Oleh :

Entot Suhartono STIE Bank BPD Jateng

Abstrak

Job shop scheduling adalah model permasalahan penjadwalan

pekerjaan manufaktur yang bertujuan memperoleh total waktu pengerjaan (makespan) minimum. Permasalahan ini bersifat

NP-hard sehingga untuk tingkat kesulitan yang semakin tinggi, sangat

sulit untuk menemukan solusi optimal dari sebuah kasus job shop

scheduling. Solusi dari permasalahan job shop scheduling ini dapat

ditemukan dengan menggunakan sebuah penjadwal (scheduler) dengan kemampuan komputasi tertentu. Perkembangan sistem komputasi dewasa ini bergerak ke arah komputasi terdistribusi sehingga sistem penjadwalan berkembang mengikutinya. Dalam penelitian ini, penulis membangun sistem multiagent untuk mengimplementasikan penjadwalan terdistribusi pada permasalahan

job shop scheduling. Sistem multiagent ini memiliki kemampuan

penalaran dan pembelajaran untuk dapat menentukan solusi terbaik untuk permasalahan yang berbeda secara otomatis. Sistem ini menggunakan case-based reasoning sebagai penalarannya dan

reinforcement learning sebagai pembelajarannya.

Setelah membangun dan menguji sistem multiagent dengan case-based reasoning dan reinforcement learning ini, penulis menyimpulkan bahwa sistem multiagent dapat menyelesaikan permasalahan job shop scheduling dan dapat belajar untuk menghasilkan solusi yang optimal untuk setiap kasus.

Keyword : Multiagent, Case-Based Reasoning, Reinforcement

Learning, Jobshop Scheduling

Pendahuluan

Job shop scheduling adalah model permasalahan yang bertujuan

menghasilkan penjadwalan penggunaan sejumlah mesin dengan kemampuan proses tertentu untuk menyelesaikan pekerjaan yang terdiri dari sejumlah operasi (dengan waktu pemrosesan yang bervariasi untuk tiap operasi). Job-shop

Scheduling Problem (JSP) merupakan suatu permasalahan untuk menentukan

urutan operasi yang dilakukan dalam mesin yang ada dengan tujuan meminimumkan waktu proses total yang dibutuhkan. Tujuan utama dari algoritma yang digunakan pada jobshop scheduling ini adalah menghasilkan

(2)

penjadwalan kerja yang meminimasi waktu yang dibutuhkan untuk menyelesaikan semua job yang ada dengan memanfaatkan sumber daya (mesin) yang tersedia (Peter Brucker, 2006).

Solusi alternatif untuk meningkatkan kemampuan sistem pemrosesan tanpa perlu sering melakukan penggantian adalah dengan menggabungkan lebih dari satu unit pemrosesan. Konsep ini umumnya dikenal dengan sistem terdistribusi (distributed system). Jadi peningkatan kemampuan pemrosesan dilakukan dengan menambah jumlah unit pemrosesan dan menghubungkan unit-unit pemrosesan yang ada sebagai subsistem pemrosesan. Kelebihan utama dari solusi ini adalah skalabilitas dan adaptabilitas sistem yang tinggi. Hal ini disebabkan pendistribusian beban penjadwalan pada tiap-tiap mesin yang ada. Karena kelebihannya ini, sistem ini banyak diimplementasikan dan terus dikembangkan. Solusi yang diusulkan untuk membangun penjadwal (scheduler) untuk jobshop

scheduling ini adalah sistem multiagent. Sistem multiagent adalah penerapan

konsep sistem terdistribusi dengan agen-agen sebagai subsistemnya (Gerhard Weiss, 1999). Agar memperoleh perilaku sistem yang optimal, tiap agen menyimpan pengalaman yang diperolehnya, melakukan penalaran untuk menggunakan pengalaman yang disimpannya dan melakukan pembelajaran untuk mencari jadwal pemrosesan optimal bagi dirinya sendiri dengan juga mempertimbangkan mengenai pengaruhnya pada sistem secara keseluruhan.

Rumusan masalah yang dibahas dalam penelitian ini adalah bagaimana menangani permasalahan jobshop scheduling dalam lingkungan terdistribusi dengan memanfaatkan sistem multiagen yang dilengkapi kemampuan penalaran dengan case-based reasoning dan kemampuan belajar dengan reinforcement

learning. Tujuan dari pembahasan yang dilakukan di dalam penelitian ini adalah

membangun sistem multiagen yang dapat melakukan penalaran (menggunakan

case-based reasoning) dan pembelajaran (menggunakan reinforcement learning)

untuk menghasilkan perilaku penjadwalan optimal dalam model permasalahan

job shop scheduling.

Tahapan yang dilalui dalam pelaksanaan penelitian ini adalah (1) memahami konsep jobshop scheduling; (2) memahami konsep sistem multiagent,

case-based reasoning dan reinforcement learning; (3) analisis dan implementasi

sistem multiagent dengan melakukan eksplorasi pada framework yang dibutuhkan, serta membuat aplikasi/software yang memodelkan implementasi sistem multiagent pada model masalah job shop scheduling; (4) evaluasi hasil implementasi, yaitu melakukan evaluasi dengan membandingkan hasil penjadwalan dari solusi yang tidak memanfaatkan penalaran dan pembelajaran. Landasan Teori

Jobshop

Definisi formal job shop scheduling (JS)adalah sebagai berikut:

Job set J = { j1, j2, …, jn}

(3)

Operations O = { o1, o2, …, on} O1 = { o11, o12, …, o1m}

Tiap operation punya processing time { 11, 12, …, 1m}

Untuk tiap O terdefinisi A, yaitu relasi biner urutan antar operasi. Jika (v, w)  A maka v harus dikerjakan sebelum W.

Tujuan utama dari algoritma yang digunakan pada JS ini adalah menghasilkan jadwal (schedule) yang meminimasi waktu (makespan) yang dibutuhkan untuk menyelesaikan semua job yang ada dengan memanfaatkan machine yang tersedia (Peter Brucker, 2006).

Sistem Multi Agen

Caglayan (1997) mendefinisikan agent adalah suatu entitas perangkat lunak komputer yang memungkinkan user (pengguna) untuk mendelegasikan tugas kepadanya secara mandiri (autonomously). Kemudian Brenner (1998) menambahkan bahwa agent harus bisa berjalan dalam kerangka lingkungan jaringan. Dalam perkembangan aplikasi dan penelitian tentang agent, bagaimanapun juga dalam suatu komunitas sebuah sistem tidak dapat dihindari akan dibutuhkannya lebih dari satu agent, seiring dengan semakin kompleksnya tugas yang dikerjakan oleh sistem tersebut. Diharapkan bahwa meskipun berbeda vendor dan pembuat, antara satu agent dan agent lain bisa tetap berkomunikasi dan berkoordinasi berhubungan dengan suatu pekerjaan. Paradigma pengembangan sistem dimana dalam suatu komunitas sistem terdapat beberapa agent, yang saling berinteraksi, bernegosiasi dan berkoordinasi satu sama lain dalam menjalankan pekerjaan, disebut dengan multi agent system (MAS). (Romi S. W., 2003).

Case-Based Reasoning

Secara singkat Case-Based reasoning (CBR) didefinisikan sebagai sebuah metodologi untuk penyelesaian masalah dengan memanfaatkan pengalaman sebelumnya [Mulyana and Hartati, 2009]. CBR merupakan sebuah paradigma utama dalam penalaran otomatis (automated reasoning) dan mesin pembelajaran (machine learning). Di dalam CBR, seseorang yang melakukan penalaran dapat menyelesaikan masalah baru dengan memperhatikan kesamaannya dengan satu atau beberapa penyelesaian dari permasalahan sebelumnya.

Struktur sistem CBR dapat digambarkan sebagai kotak hitam seperti pada Gambar: 1, yang mencakup mekanisme penalaran dan aspek eksternal, meliputi :

 Spesifikasi masukan atau kasus dari suatu permasalahan  Solusi yang diharapkan sebagi luaran

 Kasus-kasus sebelumnya yang tersimpan sebagai referensi pada mekanisme penalaran.

(4)

Gambar 1 : Arsitektur sebuah sistem CBR [Main dkk, 2001]

Secara singkat, tahap-tahap penyelesaian masalah berbasis CBR adalah sebagai berikut : [Mantaras dkk, 2006]

 Pengambilan kembali kasus-kasus yang sesuai dari memori (hal ini membutuhkan pemberian indeks terhadap kasus-kasus dengan menyesuaikan fitur-fiturnya).

 Pemilihan sekelompok kasus-kasus yang terbaik.  Memilih atau menentukan penyelesaian.

 Evaluasi terhadap penyelesaian (hal ini dimaksudkan untuk meyakinkan agar tidak mengulang penyelesaian yang salah)

 Penyimpanan penyelesaian kasus terbaru dalam penyimpan kasus/memori. Sesuai dengan tahap-tahap tersebut, Aamodt dan Plaza [Aamodt dan Plaza, 1994] menjelaskan sebuah CBR sebagai sebuah siklus yang disingkat 4 R yaitu,

Retrieve, Reuse, Revise dan Retain seperti pada Gambar-2 berikut ini :

Gambar 2 : Siklus CBR [Aamodt dan Plaza, 1994]

Tahapan proses dalam CBR Pada gambar diatas dijelaskan bahwa dalam proses PBK dibutuhkan empat (4) tahap, yaitu:

 RETRIEVE adalah menemukan kembali kasus yang sama atau yang paling mirip dengan kasus baru

 REUSE adalah menggunakan kembali informasi dan pengetahuan dari basis kasus untuk memecahkan masalah kasus baru (proses ini disebut “tansfer solusi”),

(5)

 REVISE adalah merevisi atau memperbaiki solusi yang diusulkan.

 RETAIN adalah menyimpan pengalaman untuk memecahkan masalah yang akan datang kedalam basis kasus.

Reinforcement Learning

Reinforcement Learning (RL) adalah salah satu tehnik atau algoritma

pembelajaran yang berinteraksi dengan lingkungan. Agen yang menggunakan

Reinforcement Learning belajar dari konsekuensi (berupa reward) tindakan

(action) yang diambilnya pada suatu kondisi tertentu pada masa lampau dan eksplorasi aksi baru. Dengan kata lain, agen tersebut melakukan pembelajaran yang bersifat trial and error (Scholarpedia, 70).

Reinforcement Learning merupakan salah satu paradigma baru dalam learning theory. Reinforcement Learning dibangun dari porses pemetaan

(mapping) dari situasi yang ada di dalam lingkungan (states) ke bentuk aksi perilaku (behavior) agar dapat memaksimalkan reward. Agen yang bertindak sebagai learner tidak perlu diberitahukan behavior apakah yang akan sepatutnua dilakukan, atau dengan kata lain biarlah sang learner belajar sendiri dari pengalamannya. Ketika ia melakukan sesuatu yang benar berdasarkan rule yang telah ditentukan, maka ia akan mendapat reward, dan sebaliknya (A. Ridho, 2006). Tujuan akhir dari proses yang dilakukan agen dalam Reinforcement

Learning adalah mempelajari control policy atau aturan yang memberikan

kinerja atau performansi global yang optimal (memaksimalkan reward). Analisis

Representasi job shop problem

Penelitian ini mengacu pada definisi permasalahan job shop scheduling pada Operational Research (OR) Library (http://people.brunel.ac.uk/~mastjjb/ jeb/orlib/files/jobshop1.txt):

Jumlah_job jumlah_mesin

Job[0] <no_mesin1 waktu_operasi1> <no_mesin2 waktu_operasi2>... Job[1] <no_mesin1 waktu_operasi1> <no_mesin2 waktu_operasi2>... ...

Job[jumlah_job] <no_mesin1 waktu_operasi1> <no_mesin2 waktu_operasi2>...

jumlah_job adalah jumlah job yang harus diselesaikan. jumlah_mesin adalah jumlah mesin yang tersedia untuk menyelesaikan seluruh job yang ada. Tiap job memiliki dua atribut, yaitu:

a. no_mesin adalah mesin yang harus dilalui oleh job tersebut untuk dapat dinyatakan selesai.

b. no_mesin adalah waktu operasi pada setiap mesin ke-no_mesin

jumlah_mesin dan definisi tiap job harus konsisten. Jika di dalam urutan_mesin terdapat instan mesin yang indeks-nya berada di luar batas jumlah_mesin, maka masalah job shop scheduling tersebut tidak dapat dislesaikan.

(6)

Untuk melakukan simulasi penyelesaian tiap job yang ada, maka dibuat sebuah struktur data untuk memuat informasi setiap job Job: <urutan_mesin, urutan_waktu_operasi, penghitung>. Mengacu pada contoh representasi permasa-lahan job shop scheduling di atas. Maka struktur data dari job pertama adalah Job[0] < {9 8 0 1 6 5 7 4 2 3}, {83 61 83 65 64 85 78 85 55 77}, > 0 Penghitung adalah nilai yang akan terus dimutakhirkan sesuai dengan lama proses yang telah dialami job tersebut (jadi diinisialisasi dengan 0).

Representasi Agent

Pendekatan sistem multiagen untuk menyelesaikan permasalahan job shop

scheduling ini dilakukan dengan membuat agen, yaitu machine agent, untuk tiap

mesin yang bertugas untuk mengambil keputusan (job atau operasi yang dipilih) pada tiap kondisi dan melakukan pembelajaran dari tiap keputusan yang diambil. Tugas dari machine agent hanyalah untuk mengambil keputusan dan melakukan pembelajaran, karena itu diperlukan sebuah agen lagi, yaitu control

agent, yang berltugas mengatur seluruh proses pembuatan jadwal. Control agent

bertugas untuk memulai dan menghentikan proses simulasi, melakukan simulasi pemberian daftar job ke setiap machine agent, melakukan pemutakhiran status tiap job dan status tiap machine agent saat simulasi dan mencatat semua aksi yang diambil seluruh machine agent disetiap waktu dalam sebuah jadwal.

Representasi Pengetahuan Agent

Representasi pengetahuan yang dimiliki oleh machine agent berupa sejumlah kasus Casebase = <state, solution>. Diagram ini representasi pengetahuan agen adalah sebagai berikut:

Gambar 3 : Diagram representasi pengetahuan agen

Bagian state yang merupakan indentifier dari tiap kasus direpresentasikan oleh sistem yang digambarkan oleh status job dan mesin. Menurut (Riedmiller, 1999) keadaan sistem dapat dibedakan menjadi dua, yaitu:

1. Keadaan sistem statik, yaitu spesifikasi awal dari sistem tersebut. Contoh: jumlah job, jumlah mesin, estimasi maskepan (dengan perhitungan)

2. Keadaan sistem dinamis, yaitu keadaan sistem yang berbeda dari waktu ke waktu. Keadaan sistem dinamis, menggambarkan progress sistem tersebut saat beroperasi.

a. Kondisi job : due date setiap job, processing time job, slack time dari job.

(7)

b. Konsekuensi aksi : slack time rata-rata akibat penerapan aksi. c. Hubungan antara job/operasi : urutan operasi yang belum dilalui tiap

job.

Pembelajaran Agen

Pembelajaran dilakukan dengan reinforcement learning (metode

Q-learning) dengan tujuan untuk menemukan policy, yaitu aksi (dispatching rule)

yang paling tepat untuk tiap kondisi sistem secara global.

Pada sistem multiagen, di mana terdapat banyak agen yang bekerja secara konkuren, maka aksi yang dipelajari oleh sistem sebenarnya adalah vektor dari aksi-aksi elementer tiap agen. Setiap agen memberikan kontribusi aksi untuk menghasilkan vektor aksi gabungan (join action vector). Jadi tujuan bersama dari tiap agen (tujuan dari pembelajaran sistem) adalah mencari joint policy yang merupakan pemetaan kondisi-aksi untuk setiap agen yang menghasilkan reward yang optimal (Gabel, 2006).

Pada model permaslahan job shop scheduling ini, tujuan utama yang ingin dicapai adalah menghasilkan rangkaian cara pemilihan job yang tepat untuk tiap

achine agent sehingga dapat dihasilkan jadwal kerja yang optimal. Jadwal kerja

yang optimal dicapai dengan menghasilkan keterlambatan penyelesaian (tardiness) yang minimal untuk seluruh job.

Implementasi penalaran case-based reasoning dan pembelajaran

Reinforcement Learning, akan terbentuk suatu basis pengetahuan yang terdiri

dari kumpulan case yang saling terhubung pada tiap agen. Bentuk basis pengetahuan yang terbentuk dapat diilustrasikan seperti pada Gambar 4 Ilustrasi basis pengetahuan yang terbentuk.

Gambar 4: Ilustrasi basis pengetahuan yang terbentuk

Algoritma Program

Tiap agen (machine agent) mewakili tiap mesin yang bertugas untuk mengambil keputusan. Setiap mesin diberi nama/kode berupa : [0 …jumlah_mesin]. Sedangkan seluruh simulasi proses pembuatan jadwal

(8)

dilakukan pada satu agen yaitu control agent. Adapun urutan kerja agen adalah sebagai berikut:

1. Control agent akan mengirimkan daftar job kepada setiap machine agent. 2. Machine agent akan memutuskan job yang dipilih berdasarkan

pengetahuan yang dimilikinya dan mengirimkan keputusannya kepada

control agent.

3. Control agent memutakhirkan jadwal dan status job dan machine agent

dan kemudian kembali mengirimkan job kepada tiap machine agent. 4. Jika semua job sudah selesai diproses maka control agent akan

menghentikan prosesnya (shutdown dirinya) dan semua machine agent. Setiap machine agent melakukan pembelajaran mesin dengan Reinforcement

Learning. Tujuan pembelajaran ini adalah mencari policy atau aturan yang

meminimumkan wakut total yang dibutuhkan untuk menyelesaikan seluruh job (meminimumlan waktu jadwal selesai). Algoritma program utam (main program) dijelaskan pada flowchart program pada Gambar 5, sedangkan pseudoces program dapat dilihat pada algoritma 1.

1. CB : list of cassebase <state,solution>; Ct : global time;

Jumlah_mesin : jumlah machine agent; S : kondisi (state)

S‟ : kondisi suksesor V : casebase

2. Repeat a. S := S‟;

b. For machine agents (i…jumlah_mesin) do

i. If CB = 0 or tidak ada kasus yang cukup dekat then Tambah case base dengan kondisi S dan solusi kosong;

Reinisialisasi 2 kases terdekat dengan S

ii. Cari V:= casebase terdekat (nearest neighbour) dari kondisi S dan CB;

iii. Pilih aksi a[i]:= yang terbaik atau random; c. Terapkan joint-actions a:= {a[0], a[1],..,a[i]}; d. Berikan global reward ke semua agen; e. S‟:= kondisi suksesor akibat a;

f. For machine agents (i..jumlah_mesin) do

i. V‟:= casebase terdekat (nearest neighbour)dari kondisi S‟ pada CB;

ii. Tentukan := 1/1 + V‟.solution.E[i].nilai_update; iii. Tentukan V.solution.E[i].nilai_Q :=

(1-)V.solution.E[i].nilai_Q + (r+V‟.solution.E[0].nilai_Q; iv. V.solution.E[i].nilai_update ++;

(9)

v. urutkan E menaik berdasarkan nilai_Q; g. Until (semua job selesai dikerjakan)

Algoritma 1 : Algoritma global program Start

Deskripsi masalah job shop

Control agent (CA) : Validasi masalah dan spesifikasi sistem Machine agent (MA):

Load Knowledge

Machine agent Case base

Kirim daftar job ke machine agent (MA) yang bersangkutan

CA memeriksa apakah semua dafta job sudah

terkirim? tidak

CA: mengirim kondisi (state) sistem ke MA

ya

MA memeriksa apakah daftar job kosong?

MA melakukan learning untuk memilih job dari daftar dan mengirimkan pilihan ke CA

tidak

CA : terima job pilihan dari semua machine

agent

CA: apakah semua job pilihan telah

diterima?

CA : terapkan vektor aksi (kumpulan job pilihan).

Generate reward dan kirimkan ke semua MA

tidak

ya

CA : update jadwal dan kondisi sistem

CA : apakah semua job sudah selesai

dikerjakan?

tidak

ya

CA : Simpan case base. Cetak hasil jadwal

Machine agent Case Base Schedule

END ya

Gambar 5: Flowchart program secara global

cb adalah kumpulan case base dari tiap machine agent (tiap machine agent memiliki cb sendiri). Ct adalah global time, yang menjadi acuan waktu yang sama bagi seluruh elemen sistem. Sedangkan jumlah_mesin adalah jumlah mesin yang didefinisikan pada permasalahan job shop tersebut siklus CBR pada sistem ini adalah sebagai berikut:

1. Retain

Untuk semua machine agent , ditambahkan case base dari kondisi (state) yang baru s jika CB machine agent kosong atau c tidak memiliki

neighbour yang cukup dekat (dibatasi dengan nilai treshold yang

(10)

baru dengan state s ditambahkan, maka dua case terdekat dengan case baru harus direinisialisasi karea setelah case baru ditambahkan, transisi dari kedua case tersebut akan berubah.

2. Retrieval dan Reuse

Ambil V yaitu case base yang palinh dekat dengan kondisi s. Pilih aksi sebagai solusi elementer dari V. Aksi bisa dipilih secara acak (eksplorasi) atau dipilih aksi terbaik (eksploitasi, menggunakan aksi yang memiliki nilai Q terendah). Kedua kemungkinan pemilih aksi ini ditentukan dengan nilai probabilitas eksplorasi yang juga ditentukan oleh user.

3. Revise

Aksi yang diperoleh dari setiap machine agent , yang memiliki daftar pekerjaan pada saat itu, digabungkan menjadi vektor aksi yang kemudian diterapkan pada sistem. Setelah menerima immediate reward dari hasil penerapan aksi tersebut, nilai immediate reward dikirim ke semua agen yng berkontribusi di dalam vektor aksi yang telah diterapkan. Setelah itu, kondisi (state) suksesor S‟ adalah kondisi sistem akibat dari penerapan vektor aksi pada sistem.

Siklus dimulai dari retain karena pada awal sistem ini digunakan untuk memilih aksi, machine agent harus memiliki basis pengetahuan dulu (minimal satu case). Jika machine agent belum memiliki case sama di dalam basis pengetahuannya, maka machine agent tidak bisa memutuskan aksi yang akan digunakan.

(11)

Perancangan Kelas

Perancangan kelas program dapat dilihat pada Gambar 6. Kelas jsspui merupakan kelas yang hanya bertugas menghidupkan seluruh agen yang dibutuhkan sesuai dengan definisi permasakahan job shop scheduling yang diberikan oleh user. Kelas machineAgentBehaviour merupakan bagian dari kelas

machineAgent sedangkan kelas controlAgentBehaviour merupakan bagian dari

kelas controlAgent. Kelas dapat menggunakan atribut dan metode yang ada pada kelas machineAgent dan controlAgentBehaviour dpt menggunakan atribut dan metode yang ada pada kelas controlAgent.

Implementasi

Lingkungan implementasi yang digunakan pada penelitian adalah bahasa pemrograman Java dengan framework JADE. Bahasa pemrograman Java digunakan karena merupakan bahasa yang dapat menghasilkan program multiplatform. Selain itu, bahasa pemrograman Java juga menyediakan framework khusus untuk mengembangkan sistem multigane, yaitu JADE (Java

Agent Development). Java SDK (SE Development Kit) yang digunakan adalah

versi 1.7 dan IDE yang digunakan untuk membuat program adalah NetBeans 7.0 yang dijalankan pada sistem operasi Windows 7.

Sintaks untuk menjalankan program job shop scheduling adalah sebagai berikut:

java jsspui [path_dari_file_job_shop_input] [learning_exploration_rate][test_value]

Contoh:

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

2. C:\My Documents\NetBeansProjects\JSSP\build\classes>java jsspui D:\test1.text 5

3. C:\My Documents\NetBeansProjects\JSSP\build\classes>java jsspui D:\test1.text 5 1

Keterangan :

1. learning_exploration_rate

Bernilai {0 … 10} 0 = tidak melakukan eksplorasi; 10 = terus melakukan eksplorasi:

2. test_value

Nilai untuk mengeksekusi test agnet yang hanya menggunakan jenis DPR.0 = EDD agent, 1 = MS agent, 2 = SPT agent

3. Program harus dijalankan di folder di mana seluruh kelask JSSP berada Spesisifikasi file input yang digunakan untuk program yang dibuat penelitian ini adalah sebagai berikut :

(12)

# 10 5 //[jumlah_job] [jumlah_mesin] # 1 72 0 87 4 95 2 66 3 60 # 4 3 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

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

Data yang diinput sesuai dengan spesifikasi file diketik dengan menggunakan program text editor Notepad++ seperti yang terlihat pada ilustrasi berikut ini (Gambar 7):

Gambar 7: Contoh file input

Sepesifikasi file output, program akan menghasilkan 2 jenis output, yaitu:

1. Schedule.txt : dibagi menjadi dua bagian yaitu spesifikasi job yang diberikan dan hasil penjadwalan (Gambar 8).

1 0 2 1 4 7 3

- Baris pertama adalah id dari job

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

- Baris ketiga adalah waktu operasi job ditiap mesin. Pada contoh di atas: waktu operasi pada mesin 4 adalah 88, mesin 8 adalah 68 dan seterusnya.

Total time = 34

Machine[0] 0 0 0 0 – 1 1 1 1 1 - - - 2 2 2 2 2 2 2 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 2 - - - Machine[2] 1 1 1 1 1 0 0 0 0 0 0 0 2 2 2 2 2 -- Baris pertama adalah maskepan

- Baris kedua dan seterusnya adalah tabel (baris dan kolom) jadwal pengerjaan yang dihasilkan sistem. Bagian baris (machine[1], machine[2],

(13)

machine[1]) adalah mesin yang bekerja pada sistem. Sedangkan bagian

kolom adalah waktu (t). Lambang „-„ berarti pada saat itu mesing sedang

idle. Sedangkan lambang berupa angka tertentu adalah id dari job yang

sedang diproses pada mesin tersebut.

Gambar 8: 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 9, adapun penjelasan dari bagian-bagian dalam file tersebut adalah:

10 11 15 0 0 0 2 0.6041666666666666 1 3 0.4166666666666667 2 0 0.0

- Baris pertama merupakan state dari case yaitu case[i].state - Baris kedua merupakan evaluation value dari tiap case[i].solution - 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

(14)

Pengujian

Berdasarkan tujuan, pengujian program dilakukan menjadi dua, yaitu: a. Validitas hasil pendjawalan oleh sistem multiagent dengan Case-Based

Reasoning dan Reinforcement Learning : menguji apakah sistem multiagent dapat menghasilkan jadwal yang valid atau dapat

dilaksanakan.

b. Optimalisasi hasil penjadwalan: menguji optimalitas hasil penjadwalan berdasarkan maskepan dengan membandingkan sistem multiagent lain yang tidak menggunakan learning dan reasoning.

Pengujian dilakukan dengan mencoba kasus job shop scheduling yang dimasukkan dalam file-file input untuk program JSSP.

Tahapan pengujian yang dilakukan untuk kedua jenis pengujian yang akan dilakukan adalah sebagai berikut:

a. Validasi hasil penjadwalan oleh sistem multiagent

- Menentukan dua kasus penjadwalan job shop sederhana (3 job 3 mesin dan 6 job 6 mesin)

- Melakukan simulasi job shop scheduling menggunakan program yang sudah dibuat untuk memperoleh jadwal (urutan pengerjaan)

- Melakukan analisis pada hasil keluaran program (jadwal) b. Optimalitas hasil penjadwalan

- Memilih tiga sistem multiagent lain (yang tidak menggunakan

reasoning dan learning) sebagai pembanding

- Memilih 10 jenis kasus penjadwalan (6 job 6 mesin, 10 job 10 mesin, 15 job 5 mesin, 15 job 15 mesin, 20 job 5 mesin, 20 job 10 mesin, 20

job 15 mesin, 20 job 20 mesin, 30 job 10 mesin, 50 job 10 mesin).

Untuk setiap jenis digunakan tiga kasus yang berbeda sehingga total kasus yang diuji 30 buah kasus.

- Melakukan simulasi berulang untuk setiap kasus dan mencatat

makespan paling baik (minimum) yang dapat dihasilkan oleh sistem.

Sistem multiagent tanpa reasoning dan learning menghasilkan

makespan yang sama setiap iterasi (perulangan). Makespan yang

dihasilkan sistem multiagent dengan reasoning dan learning akan terus berubah seiring dengan pembelajaran yang dilakukan.

- Melakukan anilisis terhadap rata-rata makespan yang dihasilkan setiap sistem untuk setiap jenis kasus (berdasarkan 10 jenis kasus yang diuji)

Validasi Hasil pendjadwalan oleh Sistem Multiagent

Hasil pengujian dari program JSSP diawali dengan validasi hasil penjadwalan oleh sistem multiagent adalah sebagai berikut (lihat hasil penjadwalan kasus 1 pada tabel 1):

(15)

Kasus I : 3 job 3 mesin (3x3.txt) # JSS # 3 3 # 0 4 2 7 1 3 # 2 5 0 5 1 6 # 2 5 1 6 0 9

Hasil penjadwalan kasus 1 menunjukkan bahwa program dapat menghasilkan penjadwalan yang valid, dimana:

- Setiap t, hanya ada sebuah job yang diproses di sebuah mesin. Untuk setiap t, tidak ada mesin yang mengerjakan job yang sama.

- Job0 : operasi1 dikerjakan pada t=0 s.d t=3, operasi2 dikerjakan pada t=10 s.d

t=16 dan operasi3 dikerjakan pada t=22 s.d t=24

Job1 : operasi1 dikerjakan pada t=0 s.d t=4, operasi2 dikerjakan pada t=5 s.d

t=9 dan operasi3 dikerjakan pada t=10 s.d t=15

Job2 : operasi1 dikerjakan pada t=5 s.d t=9, operasi2 dikerjakan pada t=16 s.d

t=21 dan operasi3 dikerjakan pada t=22 s.d t=30

- Semua operasi pada setiap job telah dikerjakan Kasus II : 6 job 6 mesin (6x6.txt)

# JSS # 6 6 # 2 1 0 3 1 6 3 7 5 3 4 6 # 1 8 2 5 4 10 5 10 0 10 3 4 # 2 5 3 4 5 8 0 9 1 1 4 7 # 1 5 0 5 2 5 3 3 4 8 5 9 # 2 9 1 3 4 5 5 4 0 3 3 1 # 1 3 3 3 5 9 0 10 4 4 2 1

Hasil penjadwalan kasus 2(1) (tabel 2) dan kasus 2(2) (tabel 3) menunjukkan bahwa program dapat menghasilkan penjadwalan yang valid, dimana:

- Setiap t, hanya ada sebuah job yang diproses di sebuah mesin. Untuk setiap t, tidak ada mesin yang mengerjakan job yang sama.

- Job0 : operasi1 dikerjakan pada t=0 s.d t=3, operasi2 dikerjakan pada t=10 s.d

t=16 dan operasi3 dikerjakan pada t=22 s.d t=24

Job1 : operasi1 dikerjakan pada t=0 s.d t=4, operasi2 dikerjakan pada t=5 s.d

t=9 dan operasi3 dikerjakan pada t=10 s.d t=15

Job2 : operasi1 dikerjakan pada t=5 s.d t=9, operasi2 dikerjakan pada t=16 s.d

t=21 dan operasi3 dikerjakan pada t=22 s.d t=30

(16)

Tabel 1

Hasil penjadwalan kasus 1

Total time = 34 Time 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 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 2 2 2 2 2 2 0 0 0 – – – – – – – Machine[2] 1 1 1 1 1 2 2 2 2 2 0 0 0 0 0 0 0 – – – – – – – – – – – – – – – Tabel 2

Hasil penjadwalan kasus 2(1)

Total time = 70 Time 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 Machine[0] - - - 3 3 3 3 3 0 0 0 5 5 5 5 5 5 5 5 5 5 - 2 2 2 2 2 2 2 2 2 Machine[1] 5 5 5 3 3 3 3 3 1 1 1 1 1 1 1 1 4 4 4 0 0 0 0 0 0 - - - - Machine[2] 4 4 4 4 4 4 4 4 4 0 2 2 2 2 2 3 3 3 3 3 1 1 1 1 1 - - - - Machine[3] - - - 5 5 5 - - - - - - - 2 2 2 2 - 3 3 3 - - 0 0 0 0 0 0 0 - - - - Machine[4] - - - - - - 4 4 4 4 3 3 3 3 3 3 3 3 3 5 5 5 5 Machine[5] - - - 5 5 5 5 5 5 5 5 5 - - - - 2 2 2 2 2 2 2 2 4 4 4 4 - 3 3 3 3 Tabel 3

Hasil penjadwalan kasus 2(2)

Total time = 70 Time 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 Machine[0] 4 4 4 - - - 1 1 1 1 1 1 1 1 1 1 - - - - - Machine[1] 2 - - - - Machine[2] 5 - - - - Machine[3] - - - 4 - - - - Machine[4] 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 2 2 2 2 2 2 2 - - - - Machine[5] 3 3 3 3 3 0 0 0 - - 1 1 1 1 1 1 1 1 1 1 - - - -

Optimalitas Hasil Penjadwalan

Rata-rata makespan untuk setiap kasus dapat dilihat pada Tabel 4 Rata-rata

makespan. Hasil pengujian tersebut dapat dilihat bahwa sistem multiagent dapat

menghasilkan rata-rata makespan yang lebih kecil dibandingkan dengan ketiga sistem yang lainnya.

Tabel 4: Rata-rata makespan

6x6 10x10 15x15 15x5 20x5 20x10 20x15 20x20 30x10 50x10 EDD 76.3 1304.7 2040.3 110.67 1371 1792.3 1675.7 2122.7 2241 2848.3

MS 73.3 1355.7 2108.3 1169.3 1420.7 1875.3 1586.3 2125.3 2340.7 4077.3

SPT 81.67 1208 1834 1007 1314.3 1673 1553.3 2000.3 2062 3624

Multi 69.67 1110.7 1726 967 1258 1587.3 1350.7 1792.3 2010 3518.7

Pada Tabel 4: Rata-rata makespan, dapat dilihat bahwa seiring dengan meningkatnya kompleksitas kasus (meningkatnya rata-rata makespan) selisih

makespan daris sistem multiagent dan sistem yang lainnya juga semakin besar.

Berdasarkan Tabel 4: Rata-rata makespan dapat dilihat bahwa pada kasus dengan mesin terbanyak, sistem multiagent yang menggunakan Case-Based Reasoning

(17)

dan Reinforcement Learning menunjukkan hasil yang lebih signifikan dibandingkan dengan sistem multiagent tanpa reasoning dan learning.

Kesimpulan

Berdasarkan hasil analisis dan pengujian yang telah dilakukan, maka dapat dbuat kesimpulan adalah sebagai berikut:

1) Sistem multiagent dapat digunakan untuk menyelesaikan permasalahan job shop Scheduling;

2) Penalaran menggunakan case-based reasoning dan pembelajaran

meng-gunakan reinforcement learning dapat mengekstraksi aturan (policy) penggunaan dispatch rules untuk tiap kasus job shop scheduling;

3) Sistem multiagent dengan kemampuan penalaran (reasoning) dan dengan kemampuan belajar (learning) memberikan hasil penjadwalan yang lebih baik dibanding dengan sistem multiagent lain yang hanya menggunakan satu dispatch rules (tanpa kemampuan reasoning dan learning);

4) Sistem multiagent memberikan hasil yang lebih signifikan untuk kasus yang lebih kompleks (terdiri dari banyak job dan banyak mesin).

Daftar Pustaka

Aamodt, Agnar, and Enric Plaza. AICom - Artificial Intelligence

Communications, IOS Press, Vol. 7: 1, pp. 39-59. 1994

Monfroy, Eric, 2001, Constraint Programming: Introduction, Universite de Nantes.

Gabel, Thomas & Martin Riedmiller. Multi-agent Case-Based. 2006.

Champandard, A.J., 2002, Reinforcement Learning: Plain and Simple, http://reinforcement learning.aidepot.com/Main.html,

Sutton, R. S. and A. G. Barto, 1998, Reinforcement Learning : An ntroduction, London. MIT Press.

M, Pinedo, Introduction to Scheduling – Algorithms, 1994.

Johan K. W., Adrianto H. dan Marsolim, Perancangan Dan Implementasi Papan

Jadwal Perkuliahan Berdasarkan Sistem Penjadwalan Otomatis, Jurnal

Teknik Elektro - TESLA Vol. 8 No. 2, 75 – 95 (Oktober 2006)

Mauridhi Hery P; Agus Kurniawan, Supervised Neural Networks dan

Aplikasinya, Graha Ilmu, Yogyakarta, 2006.

Horng, Horg-Chyi. Comparing Steady-state Performance of Dispatching

Rule-pairs in Open Shops. International Journal of Applied Science and Engineering. 2006.

Lesser and Victor R, Multiagent Systems: An Emerging Subdiscipline of AI. Vidal, Jose. Fundamentals of Multiagent Systems. 2007

Gerhard Weiss, Multiagent Systems: A Modern Approach to Distributed Modern

(18)

Bayegan, Elisabeth, and Nytrø,Oystein, and Grimsmo, Anders, “Ontologies for

Knowledge Representation in a Computer-Based Patient Record”, Journal

from Department of Computer and Information Science Departmen. 2007. Sri Mulyana dan Sri Hartati, Tinjauan Singkat Perkembangan Case–Based

Reasoning, ISSN: 1979-2328, Seminar Nasional Informatika UPN

Yogyakarta, 2009,

Main, J.; Dillon, T.S.; Shiu, S., A Tutorial on Case-Based Reasoning : Soft

Computing in Case-Based Reasoning (Eds), Sprenger-Verlag, London, pp.

1-28. 2001.

Mitchell, Tom M. Machine Learning. McGraw-Hill. 1997.

Scholarpedia. http://www.scholarpedia.org/article/Reinforcement_learning.

2007.

Riedmiller, Simone & Martin Riedmiller. A Neural Reinforcement Learning

Approach to Learn Local Dispatching Policies in Production Scheduling.

Gambar

Gambar 2 : Siklus CBR [Aamodt dan Plaza, 1994]
Gambar 3 : Diagram representasi pengetahuan agen
Gambar 5: Flowchart program secara global
Gambar 6: Diagram perancagan kelas program
+3

Referensi

Dokumen terkait

Saliva adalah cairan yang tidak berwarna dengan konsistensi seperti lendir. Saliva merupakan sekresi yang berkaitan dengan mulut dan diproduksi oleh tiga pasang

2 Pastikan blender sudah bersih, siap pakai, dan terhubung dengan arus listrik. Menunjukkan langkah pertama “Pertama …. Ananda sudah menguraikan bagian-bagian teks prosedur

Penelitian ini bertujuan untuk mengungkap nilai- nilai dan norma-norma sosial yang masih dimiliki masyarakat nelayan yang berperan memelihara keberlanjutan sumberdaya

Perlindungan hukum bagi pemegang hak adat atas tanah ulayat tidak lepas dari ketentuan Pasal 18 ayat (2) UUD Negara Kesatuan Republik Indonesia secara tegas

Berdasarkan pada Tabel 2 bahwa sebanyak 6 orang siswi yang mengalami dismenorea (11,8%) berada di skala nyeri ringan, sebanyak 38 orang siswi yang mengalami dismenorea

Hasil penelitian menunjukkan bahwa insektisida berbahan aktif pada konsentrasi 0,5 gr/l dan 1,5gr/l efektif menyebabkan mortalitas larva sebesar 100% pada hari ke-3, perlakuan

Berdasarkan latar belakang yang telah diuraikan sebelumnya, maka yang menjadi masalah dalam penelitian ini adalah Pengaruh Penerapan Sistem Informasi Manajemen Daerah

Direktur RSB Permata Sarana Husada adalah pejabat yang diangkat dan merupakan perwakilan RSB Permata Sarana Husada yang bertugas melakukan pengawasan dan