TA : Penyelesaian Masalah Transportasi Menggunakan Ant Colony Algorithm.
vi
Halaman
ABSTRAKSI ………. iii
KATA PENGANTAR ……….…. iv
DAFTAR ISI ……….……….…….. vi
DAFTAR TABEL ………viii
DAFTAR GAMBAR ………... ix
DAFTAR LAMPIRAN ……… xi
BAB I PENDAHULUAN……… . 1
1.1 Latar Belakang Masalah ……… 1
1.2 Perumusan Masalah ………... 2
1.3 Pembatasan Masalah ………. 2
1.4 Tujuan ……… 3
1.5 Sistematika Penulisan ……… 3
BAB II LANDASAN TEORI ……… 5
2.1 Landasan Teori Tentang Permasalahan ……… 5
2.1.1 Masalah Transportasi ……… 5
2.1.2 Teori Ant Colony ……….. 6
2.1.3 Sistem Semut ……… 7
2.1.4 Perilaku Semut ……….. 9
2.1.5 Peranan Feromon ………. 11
2.1.6 Artificial Ant Colony Sistem ……….. 15
2.1.7 Ant Colony Algorithm ……… 18
(2)
vii
BAB III METODE PENELITIAN ……… 26
3.1 Penerapan Ant Colony Algorithm Pada Masalah Transportasi ……… 26
3.2 Fisibility (Kemungkinan) Dari Masalah Transportasi … 27 3.3 Membuat Kemungkinan Solusi ………... 29
3.4 Pengubahan Jejak ……… 31
3.5 Algoritma Ant Colony untuk Masalah Transportasi ………. 31
3.6 Rancangan Penyimpanan ……… 39
3.7 Rancangan Input Output ………. 39
BAB IV IMPLEMENTASI DAN EVALUASI ……… 43
4.1 Implementasi ……….. 43
4.1.1 Kebutuhan Perangkat Keras ………. 43
4.1.2 Implementasi Update Trail ……… 43
4.1.3 Implementasi DrawEgde ………... 45
4.1.4 Penjelasan Pemakaian Program ………. 45
4.2 Evaluasi ……… 52
BAB V PENUTUP ………... ………... 64
5.1 Kesimpulan ……….. 63
5.2 Saran ……… 63
DAFTAR PUSTAKA ………. 65
BIODATA PENULIS ……….. 66
(3)
PENDAHULUAN
1.1 Latar Belakang Masalah
Masalah transportasi adalah salah satu hal yang penting dalam dunia perindustrian, dimana menyangkut pengiriman barang atau produk dari sejumlah sumber (gudang) ke sejumlah tujuan (pelanggan). Hal ini menjadi penting karena menyangkut biaya pengiriman yang harus diperhitungkan dengan seksama guna mendapatkan biaya terendah (cost least) yaitu dengan mencari jarak terdekat atau
seoptimal mungkin dari sumber ke tujuan agar tujuan dari masalah transportasi dapat terpenuhi. Untuk itu harus digunakan cara atau metode yang tepat untuk membantu menyelesaikan masalah transportasi tersebut.
Pada masa sekarang algoritma ant colony telah memperoleh perhatian yang sangat besar berkenaan dengan kemampuannya sebagai teknik optimasi untuk persoalan-persoalan yang komplek dan telah berhasil diterapkan pada bidang teknik dalam dunia industri, seperti masalah transportasi, pengurutan dan penjadwalan (scheduling and sequencing), masalah perjalanan salesman
(Traveling Salesman Problem), dan lain-lain.
Algoritma ant colony merupakan pendatang baru di sistem cerdas. Algoritma ini diinspirasi oleh perilaku semut yang digunakan untuk menyelesaikan masalah optimasi. Dalam algoritma ini dikenal istilah feromon (pheromone). Feromon merupakan zat yang dikeluarkan oleh semut untuk
mendeteksi dan merespon keberadaan dari semut lain. Dari keberadaan feromon inilah dihasilkan jejak feromon (pheromone trail). Titik kunci dari algoritma ini
(4)
dan pemilihan elemen-elemen grafik lintasan (yang berupa komponen dan persambungan) dari feromon.
1.2 Perumusan Masalah
Mengacu pada latar belakang diatas maka didapat beberapa permasalahan yang dihadapi adalah :
1. Bagaimana merancang dan membuat program menggunakan algoritma ant colony guna meminimalisasikan masalah transportasi. Masalah transportasi yang dimaksud disini adalah masalah penentuan biaya terendah untuk pengiriman barang dari sejumlah pusat distribusi (misal gudang) ke sejumlah tujuan (misal customer).
2. Memperlihatkan unjuk kerja dari algoritma ant colony berkaitan dengan ketepatan solusi dan kecepatan waktu proses.
1.3 Pembatasan Masalah
Adapun pembahasan permasalahan ini dibatasi pada :
1. Penulisan TA ini diarahkan pada pembuatan program dengan penekanan pada pembuatan model untuk menyelesaikan masalah transportasi untuk mencari total biaya terendah dari sistem distribusi dengan menggunakan algoritma ant colony.
2. Masalah transportasi dalam tugas akhir ini dibatasi hanya membicarakan masalah dengan kondisi-kondisi tertentu yaitu:
Masalah transportasi dengan kondisi berimbang (balanced, besar nilai
(5)
Tiap lokasi sumber (source) dan tiap lokasi tujuan (destination)
masing-masing dianggap unik (tidak ada lokasi sumber dan lokasi tujuan yang sama).
3. Program aplikasi algoritma ant colony untuk menyelesaikan masalah transportasi ini dibuat dalam menggunakan beberapa kelas dengan menggunakan bahasa Borland Delphi 6.
1.4 Tujuan
Tujuan dari pembuatan tugas akhir ini untuk membuat suatu sistem yang mampu memberikan keputusan tentang :
1. Menerapkan pendekatan Ant Colony untuk masalah transportasi.
2. Membandingkan hasil penyelesaian masalah transportasi menggunakan Ant Colony Algorithm dengan hasil metode lain yang diambil dari literatur, yaitu metode Northwest Corner Method (NWCR) dan metode Minimum Cell Cost Method (MCCM).
1.5 Sistematika Penulisan
Dalam Penyusunan laporan tugas Akhir ini, sistematika penulisan akan dibagi menjadi beberapa bab. Adapun pembagiannya adalah:
BAB I PENDAHULUAN
Dalam bab ini akan dibahas tentang latar belakang masalah, perumusan masalah, pembatasan masalah, tujuan dari sistem yang akan dibuat dan sistematika penulisan.
(6)
BAB II LANDASAN TEORI
Dalam bab ini dibahas tentang teori-teori yang berkaitan dalam penyelesaian masalah serta teori yang mendukung dalam pembuatan sistem. Teori-teori tersebut antara lain: Masalah transportasi, teori ant colony, sistem semut, perilaku semut, peranan feromon, artificial ant colony system dan algoritma ant cyle.
BAB III METODE PENELITIAN
Dalam bab ini dibahas tentang model penelitian dan prosedur penelitian dengan menggunakan Ant colony dalam pemecahan masalah, antara lain: Penerapan Ant Colony Algorithm pada masalah transportasi, Fisibiliti (kemungkinan) dari problem transportasi, membuat kemungkinan solusi, pengubahan jejak, ant colony algorithm dan rancangan interface.
BAB IV IMPLEMENTASI DAN EVALUASI
Dalam bab ini dibahas tentang implementasi ke bahasa pemrograman dan uji coba dengan data-data yang sudah dikondisikan.
BAB V PENUTUP
Dalam bab ini berisi kesimpulan dari uji coba dan saran-saran pengembang.
(7)
2.1 Landasan Teori Tentang Permasalahan
Merupakan landasan teori yang terdapat pada permasalahan yang dibahas. 2.1.1 Masalah tranportasi
Masalah tranportasi dalam dunia distribusi pada perusahaan yang menyangkut pendistribusian barang kepada customer yang berupa barang pesanan ataupun bahan baku yang akan dijadikan menjadi bahan jadi. Sistem transportasi yang terdiri dari node-node yang saling berhubung satu sama lain yang dapat diilustrasikan seperti dibawah ini (K. Doerner,2000:3):
Gambar 2.1. Grafik dengan 2 gudang dan 4 pesanan
J = {1,....,n} menunjukkan rangkaian pesanan, dan D = {1,....,m} menunjukkan rangkaian pusat distribusi, dimana gudang dari truk. Kemudian, masalah pada TA ini digambarkan pada gambar diatas bahwa grafik G = {V,A,d}, dimana V =
(8)
{v1,v2,v3,....,vn,vn+1,....,Vn+m} adalah rangkaian vektek. Vertek v1 sampai vn
menunjukkan pesanan 1 sampai n (kita arahkan bagian dari V sebagai Vo), vertek vn+1sampai vn+mmenunjukkan gudang 1 sampai m (kita arahkan bagian dari V
sebagai Vd ). A = {(vi,vj); i j, V x V \ Vd x Vd} adalah rangkaian dari arcs. Arcs
(vi,vj) menggambarkan perpindahan kendaraan kosong yang dibutuhkan diantara pesanan i dan j, dan besarnya non-negatif jarak dij.
Berdasarkan grafik, untuk semua constraint bahwa semua node pesanan vi Vo adalah tepat yang akan didatangi dan tiap putaran mengikutkan tepat satu node gudang vj Vd, .
Ciri-ciri khusus masalah transportasi adalah (Tjutju Tarliah Dimyati,2002:129):
1. Terdapat sejumlah sumber dan sejumlah tujuan tertentu.
2. Kuantitas komoditas atau barang yang didistribusikan dari setiap sumber dan yang diminta oleh setiap tujuan, besarnya tertentu.
3. Komoditas yang dikirim atau diangkut dari suatu sumber ke suatu tujuan, besarnya sesuai dengan permintaan dan atau kapasitas sumber.
4. Ongkos pengangkutan komoditas dari suatu sumber ke suatu tujuan besarnya tertentu.
2.1.2 Teori Ant Colony
Menurut K. Doerner dalam (2000:3) menyebutkan bahwa optimasi ant colony (Ant Colony Optimation-ACO) merupakan sistem cerdas yang diinspirasi oleh perilaku semut dan koloninya, yang digunakan untuk menyelesaikan permasalahan optimasi diskrit. Sistem ACO pertama kali diperkenalkan oleh
(9)
Marco Dorigo (1992), dan dinamakan sistem semut (Ant System-AS) yang pertama kali digunakan untuk menyelesaikan masalah perjalanan salesman (The Travelling Salesman Problem-TSP). AS sebagai hasil penelitian dalam bidang komputasi cerdas yang digunakan untuk mendekati permasalahan optimasi kombinator.
2.1.3 Sistem Semut (Marco Dorigo,1999:3)
Sebuah analogi terhadap bagaimana koloni semut berfungsi memberikan sebuah definisi baru model perhitungan, yang dinamakan Sistem Semut (Ant System-AS). Sistem Semut dikemukakan sebagai sebuah pendekatan baru untuk optimasi kombinatorial. Karakteristik utama dari model ini adalah feedback positip, perhitungan distribusi dan menggunakan konsepsi greedy heuristic. Feedback positip untuk menghitung penemuan solusi yang baik secara cepat, perhitungan distribusi untuk menghindari pertemuan sebelum waktunya dan greedy heuristic untuk membantu menemukan solusi yang cocok dalam mengatur sejak awal proses pencarian.
Karakteristik algorithma heuristic yang dapat digunakan untuk memecahkan perbedaan masalah optimasi kombinatorial adalah sebagai berikut: 1. Serbaguna, yaitu dapat digunakan untuk versi serupa dari masalah yang sama;
sebagai contoh, sebuah perluasan pendekatan masalah dari masalah perjalanan salesmen untuk masalah perjalanan salesmen asymmetric.
2. Handal, maksudnya dapat digunakan hanya dengan perubahan minimal untuk masalah optimasi kombinatorial yang lain seperti quadratic asignment problem (QAP) dan masalah job-shop scheduling.
(10)
3. Pendekatan berdasarkan jumlah pertumbuhan, Ini menarik karena membolehkan ekploitasi feedback positip sebagai sebuah mekanisme pencarian dan juga membuat sistem menerima untuk implementasi paralel.
Sifat ini mengimbangi dengan fakta bahwa, untuk beberapa aplikasi, sistem semut dapat menjadi outperformed khususnya pada algorithma. Ini adalah sebuah masalah kerjasama dengan pendekatan populer yang lain seperti Simulated Annealing (SA) dan Tabu Search (TS), dibandingkan dengan sistem semut. Aktivitas pencarian semut adalah sebagai agen yang kemampuannya sangat mendasar sekali dalam meniru perilaku semut sesungguhnya. Penelitian perilaku semut sesungguhnya sangat mengilhami kerja manusia. Salah satu masalah yang dipelajari oleh ethologist adalah memahami bagaimana binatang yang hampir buta seperti semut dapat mengatur untuk menentukan jalur rute terpendek ke sumber makanan dan jalan kembalinya. Telah ditemukan bahwa media yang digunakan untuk komunikasi informasi diantara individu-individunya berkaitan dengan jalur, dan digunakan untuk menentukan kemana dia pergi adalah jejak feromon. Semut yang berjalan meninggalkan beberapa feromon dalam jumlah yang berbeda ditanah kemudian jalur ditandai dengan substansi ini. Sementara semut yang terisolasi bergerak secara random, semut yang menjumpai jalur yang ditandai sebelumnya dapat menemukannya dan memutuskan dengan probabilitas yang tinggi untuk mengikuti jalur tersebut, kemudian meningkatkan jalur dengan feromonnya sendiri. Perilaku kolektif yang muncul adalah bentuk perilaku autocatalytic dimana lebih banyak semut yang mengikuti sebuah jalur, semakin menarik jalur tersebut dan menjadikannya semakin diikuti. Prosesnya kemudian digolongkan sebagai positive-feedback loop, dimana probabilitas dengan jalur
(11)
yang dipilih oleh semut meningkat dengan sejumlah semut yang sebelumnya telah memilih jalur yang sama.
2.1.4 Perilaku Semut
Untuk dapat membayangkan algoritma koloni semut bekerja, ada baiknya melihat bagaimana secara nyata semut dan koloninya menjalani kehidupannya. Jika kita amati, perjalanan semut dari sarang ke tempat makanan dan sebaliknya dari tempat makanan kembali ke sarang, cenderung membentuk iring-iringan. Rute dari iring-iringan tersebut menyerupai sebuah garis, seperti diperlihatkan pada Gambar 2.1. Cara utama yang digunakan oleh para semut untuk membentuk dan memelihara garis ini yaitu dengan apa yang dikenal dengan istilah jejak feromon (pheromone trail). Feromon adalah zat yang dikeluarkan oleh semut untuk mendeteksi dan merespon keberadaan dari semut lain. Pada saat berjalan, feromon yang tercium lebih kuat secara probabilistik akan lebih menarik semut lain untuk mengikutinya, daripada yang tercium lemah. Dengan demikian semut-semut itu cenderung mengikuti teman terdekatnya, dan membentuk iring-iringan semut.
Gambar 2.2. perilaku semut
Dasar perilaku semut diatas dapat digunakan untuk menjelaskan bagaimana mereka dapat menemukan rute terpendek dan menyambung kembali rute yang terputus akibat adanya penghalang. Iring-iringan semut ketika diberi penghalang, dapat dilihat pada Gambar 2.2.
(12)
Gambar 2.3. Iring-iringan semut diberi penghalang
Ketika ada penghalang, maka semut yang berada di depan penghalang tidak dapat melanjutkan dan mengikuti jejak feromon. Yang terjadi kemudian, semut-semut itu bisa memilih untuk belok ke kanan atau ke kiri dengan probabilias yang sama. Keadaan ini digambarkan seperti pada Gambar 2.3.
Gambar 2.4. Pola awal perjalanan semut
Selanjutnya menarik untuk dicatat, bahwa semut yang kebetulan memilih sisi lintasan yang lebih pendek segera menemukan dan menyambung kembali jejak feromon yang telah terputus dibandingkan dengan mereka yang memilih sisi lintasan yang lebih panjang. Dengan kejadian ini, pada sisi lintasan yang lebih pendek akan terbentuk sejumlah feromon yang lebih banyak akibat banyaknya semut yang memilih lintasan tersebut. Proses ini diberi istilah autocatalytic process dengan umpanbalik positif. Segera setelah itu semua semut mengikuti
(13)
lintasan tersebut yang ternyata sebagai lintasan terpendek. Seperti terlihat pada gambar 2.5.
Gambar 2.5. Pola akhir perjalanan semut
Aspek yang sangat menarik dari proses autocatalytic ini adalah penemuan rute terpendek di sekitar penghalang merupakan kejadian yang muncul oleh adanya interaksi antara bentuk penghalang dan perilaku distribusi semut. Dengan asumsi semua semut bergerak dengan kecepatan yang hampir sama dan tumpukan jejak feromon rata-rata sama, maka waktu yang dibutuhkan akan lebih cepat jika dipilih rute terpendek, jika dibandingkan apabila mereka memilih lintasan yang lebih jauh.
2.1.5. Peranan Feromon
CSP dinyatakan dengan grafik lintasan G = (C, L) yang didefinisikan
sedemikian hingga simpul-simpul (komponen) merupakan pasangan (variabel, nilai) dan persambungan antar simpul yang secara penuh menghubungkan simpul-simpul (lihat Gambar 2.6). Solusinya adalah berupa rangkaian atau urutan n simpul yang dijadikan sejumlah n variabel. Semut-semut menyusun solusi secara probabilitas dengan melakukan pemilihan simpul dari tetangganya yang paling mungkin. Tetangga yang paling mungkin dari semut k didefinisikan sebagai
(14)
kumpulan pasangan (variabel, nilai) sedemikian hingga variabel tersebut belum memberikan nilai. Tetangga yang dipilih menerapkan kendala yaitu simpul yang memiliki variabel yang sama bukanlah pada solusi yang sama. Titik kunci dari algoritma ini adalah pemilihan elemen-elemen grafik (komponen dan persambungan) dari feromon.
Gambar 2.6. Grafik lintasan CSP dengan variabel biner
a. Feromon di komponen
Hal pertama yang mungkin adalah meletakkan feromon pada komponen. Dalam kasus ini sejumlah feromon secara proporsional merupakan keinginan dari pencarian solusi. Dengan pemilihan ini, aturan transisi keadaan ACS digunakan oleh semut k (dinamakan aturan pseudo-random-proportional) yang dinyatakan dalam :
lainnya , jika , max arg 0 z q q us u Jk
lainnya , 0 jika , ) ( ) ( ) ( k J u k J z u z z p k (2.1) dimana,(15)
s adalah simpul berikutnya, (u) adalah nilai feromon pada simpul u, Jk adalah kumpulan simpul dari tetangga dari semut k yang paling mungkin, q adalah variabel random yang terdistribusi serbasama pada [0,1], q0(0q01) berupa parameter dari algoritma dan z dipilih secara probabilitas pk.
Aturan pembaharuan feromon dinyatakan dengan persambungan berikut : 1. Pembaharuan feromon tahap demi tahap :
, . ) ( .) 1 ( ) ( : ,
semut 0
k s Sk s s
2. Pembaharuan feromon offline : sSopt:(s)(1 .)(s).g(Sopt), dimana Sk adalah solusi yang dibangun oleh semut k, Sopt sebagai solusi terbaik yang diperoleh, ,,[01,],
0
adalah parameter-parameter algoritma dan
( )
0 g Sopt adalah fungsi monotonik yang tidak menghasilkan penurunan
dari kualitas solusi Sopt. Untuk keadaan seperti terlihat pada Gambar 2.1, yang bersesuaian antar simpul dan penempatannya adalah :
z z z z y y y y x x x
x1,) ,( ,0) ,( 1,) ,( ,0) ,( 1,) ,( ,0)
( .
b. Feromon di persambungan
Alternatif lain dari penempatan feromon adalah bukan pada komponennya tetapi pada persambungannya. Jadi jumlah feromon yang terletak pada persambungan dua simpul secara proporsional merupakan keuntungan dari pemilihan dua alternatif pencarian solusi. Untuk semut k yang bergerak dari simpul r ke simpul s, aturan (2.1) menjadi :
lainnya , jika , , max arg 0 z q q u r(16)
lainnya , 0 jika , ) , ( ) , ( ) , ( k J u k J z u r z r z r p k (2.2) dimana, ) , (r u adalah level komponen pada persambungan (r; u). Aturan pembaharuan feromon merupakan pengembangan dari aturan sebelumnya.
c. Feromon di persambungan (dengan Jumlah)
Kemungkinan terakhir adalah dengan cara melakukan perhitungan ketergantungan dari apa yang telah dilakukan sebelumnya. Untuk melakukan hal ini, Persamaan (2.1) diubah menjadi sebagai berikut :
lainnya , jika , , maxarg ' 0
z
q q u
w
s u Jk w Sk
lainnya , 0 jika , ) , ( ) , ( ) ,( ' ' k
S w J u S w k J z u w z w z r p k k k (2.3) dimana, ' k
S menyatakan kumpulan simpul dari bagian lintasan yang sedang dilalui. Persamaan (2.3) menyatakan jumlah feromon dari persambungan antar simpul. Aturan pembaharuan feromon diubah agar persambungan tiap pasangan simpul dari solusi terbarui (ter-update).
Dengan demikian, terdapat tiga penempatan yang penting dari feromon sehingga dihasilkan grafik lintasan untuk pencarian solusi terbaik berdasarkan kendala yang diberikan. Yaitu feromon diletakkan di komponen, di persambungan dan di persambungan dalam jumlah feromon tertentu. Solusi terbaik inilah yang diharapkan sebagai penyelesaian dari kasus pencarian rute terpendek.
(17)
2.1.6 Artificial Ant Colony System
Karakteristik utama dalam ant system (K. Doerner,2000:3): - Tidak memiliki control pusat.
- Memiliki kemampuan auto-organization.
- Terdapat keadaan biasa yang objektif bagi semua indivdu/agen dalam sistem. - Berdasarkan pada tugas suatu divisi.
Gambar 2.7 semut mencari jalan terpendek
Pemisalan alami dimana algoritma semut didasarkan adalah koloni semut. Semut asli mampu menemukan rute terpendek dari sumber makanan ke sarang mereka, tanpa menggunakan isyarat visual dengan memanfaatkan informasi feromon. Ketika berjalan semut menempatkan feromon di tanah dan mengikuti feromon yang sebelumnya telah diletakkan oleh semut lain menurut probabilitasnya. Cara semut memanfaatkan feromon untuk menemukan rute terpendek antara dua titik diperlihatkan pada Gambar 2.8.
Pada Gambar 2.8.a. : Semut-semut datang pada titik keputusan dimana mereka harus memutuskan hendak berbelok ke kiri atau ke kanan. Karena mereka tidak memiliki petunjuk mana pilihan yang terbaik, mereka memilih secara random. Berdasarkan hal ini bisa diperkirakan bahwa secara rata – rata separuh
(18)
dari semut-semut tersebut memutuskan untuk berbelok ke kiri dan separuh yang lain berbelok ke kanan. Hal ini terjadi juga kepada semut yang bergerak dari kiri ke kanan (mereka yang memiliki nama depan L) dan mereka yang bergerak dari kanan ke kiri (yang bernama depan R). Gambar 2.8.b. dan 2.8.c. menunjukkan apa yang terjadi berikut : Misalkan semua semut berjalan dengan kecepatan yang kurang lebih sama. Jumlah garis tanda kurang lebih sebanding dengan jumlah feromon yang telah ditempatkan semut di tanah. Karena rute paling bawah adalah lebih pendek daripada yang paling atas, secara rata – rata lebih banyak semut yang akan mendatanginya, dan oleh karenanya feromon terkumpul dengan cepat. Setelah periode lintasan pendek perbedaan jumlah feromon pada dua rute cukup besar sehingga dapat mempengaruhi keputusan semut yang baru datang ke dalam sistem (hal ini diperlihatkan pada Gambar 2.8.d.). Sejak saat ini, semut akan lebih memilih secara probabilitas rute yang paling bawah, karena pada titik keputusan mereka merasakan jumlah feromon yang sangat besar pada rute paling bawah. Hal ini memicu peningkatan, dengan pengaruh positive feedback, jumlah semut yang memilih rute yang paling bawah dan rute yang terpendek. Dalam waktu singkat semua semut akan menggunakan rute terpendek.
(19)
Gambar 2.8. Cara semut menggunakan feromon untuk menemukan rute terpendek diantara 2 titik
Keterangan Gambar 2.8 :
a. Semut datang di titik keputusan
b. Beberapa semut memilih rute teratas dan beberapa semut lainnya memilih rute terbawah. Pemilihan dilakukan secara random.
c. Karena semut bergerak dengan kecepatan konstan, semut yang memilih rute terbawah dan terpendek, mencapai titik keputusan yang berlawanan lebih cepat dibandingkan dengan yang memilih rute yang teratas dan terjauh. d. Feromon terkumpul dengan nilai yang lebih tinggi pada rute terpendek.
Jumlah garis tanda kurang lebih sebanding dengan jumlah feromon yang diletakkan oleh semut.
Perilaku semut asli diatas terinspirasi ant system, sebuah algoritma dimana sekumpulan semut buatan bekerjasama untuk menyelesaikan masalah
(20)
dengan saling bertukar informasi lewat feromon yang ditempatkan pada busur grafik. Ide dasar Ant Colony System (ACS) adalah memiliki sekumpulan agen , disebut dengan semut , mencari secara sejajar penyelesaian yang baik untuk rute terpendek dan bekerja sama melalui media tak langsung yaitu feromon dan komunikasi global. Memory mengambil bentuk feromon yang ditempatkan semut pada busur, sementara informasi heuristic diberikan oleh panjang busur.
Bagaimana ACS bekerja dapat digambarkan sebagai berikut : awalnya m semut ditempatkan pada n kota yang dipilih sesuai dengan beberapa initialization rule (misalnya secara random). Masing – masing semut membangun sebuah tur dengan berulang – ulang menggunakan sebuah stochastic greedy rule ( state transition rule). Sementara membangun tur mereka, semut juga mengubah sejumlah feromon pada busur yang dikunjungi dengan menggunakan local updating rule. Sekali semua semut mengakhiri tur mereka, sejumlah feromon pada busur diubah kembali (dengan menggunakan global updating rule). Semut dikendalikan , dalam membangun tur mereka, dengan informasi heuristic (mereka lebih memilih busur yang pendek) dan dengan informasi feromon : sebuah busur dengan jumlah feromon yang tinggi merupakan pilihan yang lebih diinginkan. Pheromon updating rule didesain sehingga mereka cenderung untuk memberikan feromon lebih untuk busur yang harus dikunjungi oleh semut.
2.1.7 Ant Colony Algorithm
Diketahui satu set n kota, rute terpendek dapat ditetapkan sebagai masalah untuk menemukan jarak terdekat. Misalkan dij adalah jarak dari jalur
(21)
antara kota i dan j, dalam kasus Euclidian TSP, dij adalah jarak antara i dan j (dengan nilai dij=[(xi-xj)2 + (yi-yj)2 ]1/2).
Sebagai contoh diberikan oleh sebuah grafik (N,E), dimana N = set dari kota, E=set simpul antar kota.
Misalkan bi(t)(I=1,2,…n) adalah jumlah semut pada kota i pada saat t dan m=
ni1bi adalah jumlah total semut. Tiap semut adalah agen sederhana ( )t dengan karakteristik sebagi berikut :1. Jika memilih kota tujuan dengan suatu probabilitas itu adalah sebuah fungsi dari jarak kota dan jumlah dari tampilan jejak pada busur penghubung. 2. Untuk memaksa semut untuk melakukan legal tur, transisi ke kota yang telah
dikunjungi tidak diperbolehkan sampai tur selesai (yang dikontrol oleh tabu list).
3. Ketika tur selesai , semut meninggalkan substansi yang disebut trail (jalur) pada setiap busur(i,j) yang dikunjungi.
Misalkan ij (t) adalah intensitas jalur pada busur (i,j) pada waktu t. Masing – masing semut pada waktu t memilih kota berikutnya , dimana itu terjadi pada waktu t+1. Oleh karena itu jika memanggil sebuah iterasi dari algoritma AS, m gerakan dibawa oleh m semut dalam interval (t,t+1) kemudian setiap n iterasi dari algoritma (dimana disebut sebagai satu cycle) setiap semut harus sudah menyelesaikan sebuah tur. Dalam hal ini intensitas jalur diperbarui menurut persamaan berikut:
ij (t+n)= .ij (t)+ ij (2.4) dimana,
(22)
adalah koefisien seperti (1-) mewakili penguapan (evaporation) dari jalur antara waktu t dan t+n,
ij =
mk1 ijk (2.5) dimana,ijk adalah jumlah per unit dari panjang substansi jalur (peromon pada semut sebenarnya) yang diletakkan pada busur(i,j) oleh semut ke-k antara waktu t dan t+n, yang diberikan oleh :
k
LQ jika semut ke-k menggunakan busur (I,j) dalam tournya (diantara waktu t dan t+n)
ijk =
0 sebaliknya (2.6) dimana,
Q adalah konstan dan Lk adalah panjang tour dari semut ke-k.
Koefisien harus diset dengan nilai <1 untuk menghindari penimbunan jalur yang tak terbatas. Diset intensitas jalur pada waktu 0, ij (0), ke nilai konstan positif c.
Dengan tujuan memenuhi batasan dimana semut mengunjungi semua n kota yang berbeda, dihubungkan dengan masing – masing semut sebuah struktur data bernama tabu list, yang menyimpan kota yang sudah dikunjungi sampai waktu t dan melarang semut untuk mengunjunginya lagi sebelum n iterasi (satu tur) telah diselesaikan. Ketika satu tur telah selesai, tabu list digunakan untuk menghitung hasil semut saat ini ( yaitu jarak dari jalur yang diikuti semut). Tabu list lalu dikosongkan dan semut bebas untuk memilih lagi. Definisi tabuk adalah vektor yang tumbuh secara dinamik dimana mengandung tabu list dari semut
(23)
ke-k, kumpulan tabuk dihasilkan dari elemen-elemen tabuk , dan tabuk (s) adalah elemen ke-s dari daftar (yaitu kota ke-s yang telah dikunjungi oleh semut ke-k pada tur saat ini).
Disebutkan bahwa visibility ij adalah sejumlah 1/dij . Jumlah ini tidak berubah selama menjalankan AS, sebagai kebalikan dari jalur dimana malah berubah sesuai dengan persamaan sebelumnya ( Persamaan (2.4)).
Didefinisikan probabilitas transisi dari kota i ke kota j untuk semut ke-k sebagai :
k allowedk ik ik
ij ij . )t ( . )t (
jika j allowedi
k ij
p (t)= (2.7)
0 sebaliknya dimana,
allowedk ={N-tabuk} dan dimana dan adalah parameter yang mengontrol kepentingan relatif jalur melawan visibility. Oleh karena itu probabilitas transisi adalah sebuah pertukaran antara visibility (yang mana dikatakan bahwa kota terdekat harus dipilih dengan probabilitas tinggi, hingga diterapkan sebuah greedy constructive heuristic) dan intensitas jalur pada waktu t ( yang disebutkan bahwa jika pada busur (i,j) terdapat lalu lintas yang ramai maka busur tersebut sangat diinginkan, hingga diterapkan proses autocatalytic).
(24)
Pada saat t=0, fase inisialisasi dilakukan pada waktu semut diposisikan pada kota-kota yang berbeda dan inisial values ij (0) untuk intensitas jalur diset pada busur-busur. Elemen pertama dari tabu list masing – masing semut diset sama dengan kota awalnya. Kemudian setiap semut bergerak dari kota i ke kota j memilih kota tujuan dengan probabilitas yang berupa fungsi (dengan parameter dan , lihat Persamaan (2.7.) ) dari 2 perhitungan yang diinginkan. Yang pertama, jalur ij (t) , memberikan informasi tentang berapa banyak semut sebelumnya telah memilih busur (i,j)yang sama; yang kedua, visibility ij , mengatakan bahwa semakin dekat sebuah kota maka semakin diinginkan untuk dipilih. Jelasnya, diset nilai =0, level jalur tidak diperhitungkan, dan algoritma stochastic greedy dengan titik awal yang dikalikan diukur.
Setelah n iterasi semua semut telah menyelesaikan tur, dan tabu list-nya akan penuh. Pada keadaan ini untuk setiap semut k nilai Lk akan dihitung dan nilai dari ijk diperbarui sesuai dengan Persamaan (2.6). Dan rute terpendek yang ditemukan oleh semut (yaitu min Lk, k=1,.., m) disimpan dan semua tabu list dikosongkan. Proses ini teriterasi sampai counter tur mencapai maksimum (user-defined) jumlah cycles NCMAX, atau semua semut membuat tur yang sama yang disebut sebagai stagnation behaviour karena ia merupakan suatu situasi dimana algoritma berhenti mencari solusi alternatif.
2.1.8 Algorithma ant cycle Step 1 : Inisialisasi
Set t:=0 {t adalah time counter} Set n:c=0 {NC adalah Cycles counter}
(25)
Untuk setiap busur (i,j) set sebuah initial value ij (t)=c untuk intensitas jalur dan ij=0
Letakkan m semut pada simpul n
Step 2 : Set s:=1 {s adalah tabu list index} For k:=1 to m do
Letakkan kota awal dari semut ke- k dalam tabuk(s)
Step 3 : Repeat until tabu list penuh {langkah ini akan diulang (n-1) kali} Set s:=s+1
For k:=1 to m do
Pilih kota j untuk bergerak, dengan probabilitas pijk(t) diberikan oleh pers(4) {pada saat t semut ke- k berada pada kota i=tabuk(s-1)} Pindahkan semut ke-k ke kota j
Sisipkan kota j dalam tabuk(s) Step 4 : For k:=1 to m do
Pindahkan semutke-k dari tabuk(n) ke tabuk(1) Hitung jarak Lk dari tur yang dibuat oleh semut ke-k Perbarui rute terpendek yang sudah ada
Untuk setiap busur(i,j) For k:=1 to m do
k
LQ jika (I,j) tur di buat oleh tabuk ijk =
0 sebaliknya ij=ij + ijk ;
Step 5 : Untuk setiap busur(i,j) hitung ij (t+n) sesuai dengan persamaan ij (t+n)=. ij (t) +ij
Set t:=t+n
Set NC:=NC+1
(26)
Step 6 : If (NC<NCMAX) and (not stagnation behaviour) then
Kosongkan semua tabu list Goto step 2
else
Print rute terpendek Stop
Kompleksitas dari algoritma ant cycle adalah O (NCn2m ) jika algoritma dihentikan setelah NC cycles. Pada faktanya step 1 adalah O(n2+m), step 2 adalah O(m), step 3 adalah O(n2m), step 4 adalah O(n2m),step 5 adalah O(n2), step 6 adalah O(nm). Sejak ditemukan relasi linear antara jumlah kota dan jumlah semut terbaik, kompleksitas algoritma adalah O(NCn3).
Terdapat dua algoritma AS yang lain yang disebut sebagai algoritma ant-density dan ant-quantity. Mereka berbeda dalam hal memperbarui jalur. Dalam dua model ini masing – masing semut meletakkan jalurnya pada setiap step, tanpa menunggu akhir dari tur. Dalam model ant density sebuah kwantitas Q dari jalur ditinggalkan pada busur(i,j) setiap kali semut berangkat dari i ke j; dalam model ant-quantity seekor semut berangkat dari i ke j meninggalkan sebuah kwantitas Q/dij dari jalur pada busur(i,j) setiap kali ia berangkat dari i ke j. Oleh karena itu, dalam model ant-density terdapat:
Q jika semut ke-k berangkat dari i ke j antara waktu t dan t+1 ijk =
(27)
dan dalam model ant-quantity kita mempunyai :
Q/dij jika semut ke-k berangkat dari i ke j antara waktu t dan t+1 ijk = (2.9) 0 sebaliknya Dari definisi ini maka jelas bahwa peningkatan dalam jalur pada busur (i,j) ketika seekor semut berangkat dari i ke j adalah berdiri sendiri dari dij dalam model ant-density, sementara ia berbanding terbalik dengan dij dalam model ant-quantity (yaitu busur terdekat dibuat lebih diinginkan oleh semut dalam model ant-quantity).
(28)
METODE PENELITIAN
3.1 Penerapan Ant Colony Algorithm Pada Masalah Transportasi
Masalah Transportasi berisikan proses pendistribusian beberapa komoditi yang homogen dari berbagai tempat (source) ke sekumpulan tempat tujuan
(destination), setiap permintaan dispesifikasikan dengan tingkat komoditi
tersebut. Tujuan masalah ini untuk mengalokasikan persediaan yang tersedia pada setiap tempat asal (source) dalam memenuhi permintaan pada setiap tempat tujuan
(destination) agar optimal. Fungsi obyektif yang paling umum adalah untuk
meminimalisasi total biaya transportasi atau total jarak yang ditempuh dari proses pengalokasian.
Diberikan m tempat sumber (source) dan n tempat tujuan (destination)
sehingga problem dapat dirumuskan sebagai sebuah model program linier:
m n
Min Z =
Cij Xiji=1 j= n
dengan kendala
Xij = si, untuk i= 1, 2,…, m j=1n
Xij = dj, untuk i= 1, 2,…, n i=1(29)
Dimana Z adalah biaya distribusi total dan
Xij (i = 1, 2, …, m; j = 1, 2, …, n) adalah jumlah unit yang harus distribusi
dari sumber i ke tujuan j.
3.2 Fisibiliti (Kemungkinan) Dari Masalah Transportasi
Perumusan diatas beranggapan bahwa total unit yang tersedia dan yang diminta adalah sama satu dengan lainnya, dapat dituliskan
m n
ai
=
bj
i=1 j=1
Dibawah asumsi kondisi berimbang, problem transportasi selalu memiliki solusi yang fleksibel. Dengan mudah dapat dilihat bahwa persamaan dibawah ini menghasilkan solusi yang fleksibel.
ai bj
Xij = , i = 1, 2,…, m & j = 1, 2, …, n
ia
IUntuk catatan, setiap komponen Xij harus memenuhi syarat 0 Xij min ai, bj
Problem transportasi biasanya ditampilkan dalam tabel transportasi seperti dapat dilihat pada gambar dibawah ini, dimana baris mewakili bagian source,
kolom mewakili bagian destination dan setiap sel pada baris ke-i dan kolom ke-j
mewakili variable keputusan Xij. Kotak dipojok kanan atas pada sel (i,j) mewakili
(30)
Tabel 3.1 Problem transportasi To
From 1 2 …. N Supply
1
∟C11
X11
∟C12
X11
∟C1n
X1n A1
2
∟C21
X21
∟C22
X22
∟C2n
X2n A2
… …
M
∟Cm1
Xm1
∟Cm2
Xm2
∟Cmn
Xmn Am
Demand B1 B2 … Bn
Sebuah matriks biasanya digunakan untuk mewakili solusi dari problem transportasi. Alokasi matriks dari problem transportasi dapat ditulis demikian
X11 X12 … X1n
X21 X22 … X2n
Xp = … … … …
Xm1 Xm2 … Xmn
Dimana Xp = melambangkan semut ke-p
(31)
3.3 Membuat Kemungkinan Solusi
Membuat kemungkinan solusi pada ACO dapat mengikuti sebagai berikut: Dimulai pada saat t = 0 rangkaian truk dengan pesanan. Setelah setiap pesanan ditempatkan, waktu t akan di update, ini digunakan untuk menentukan waktu pengiriman sebenarnya dari penempatan terakhir. Penempatan pesanan akan berlanjut hingga akhir dari rencana jangkauan T terpenuhi, atau tidak ada lagi penenpatan pesanan selanjutnya. Ini berarti kendaraan lain membawanya hingga digunakan, t berubah menjadi t = 0 dan penepatan lain masih berlanjut. Prosedur ini berjalan hingga semua pesanan ditempatkan.
Untuk pesanan terpilih yang belum ditempatkan kedalam truk, dua aspek yang perlu diperhitungkan: bagaimana memberikan harapan tentang pesanan secara umum, dan seberapa baik pilihan tersebut untuk pesanan pada iterasi algoritma sebelumnya. Informasi yang terlebih dahulu adalah jarak penglihatan (visibility), kemudian informasi feromon.
a. Visibility (Kemungkinan).
Informasi visibility disimpan kedalam matrik (t). Tiap matrik ij(t)
adalah positif, jika dan hanya jika penempatan pesanan j setelah pesanan i
dikerjakan. Penempatan pesanan j dikerjakan , jika pesanan dapat terjadwal
kedalam kendaraan yang pasti tanpa pelanggaran waktu. Oleh sebab itu telah jelas
bergantung pada waktu. Catatan bahwa setiap iterasi hanya merupakan gabungan dari baris dengan penempatan pesanan pada iterasi sebelumnya telah dihitung. Nilai visibility sebenarnya dari pesanan j bergantung pada aturan
(32)
b. Informasi Feromon
Informasi feomon dapat dibaca melalui dua cara. Yang pertama, nilai ij yang bergabung dengan (vi,vj) mewakili informasi feromon yang sebenarnya.
Keduanya menguraikan pola i ≤n, j ≤n, nilai ij mewakili informasi feromon dari
penempatan pesanan j ditengah-tengah pesanan i. Pada penguraian pertama ini
nilai τij, i ≤ n, j ≥n + i menggambarkan informasi feromon untuk memulai suatu
perjalanan dengan truk lain pada gudang j ditetapkan bahwa pesanan i adalah
pesanan terakhir di kendaraan.
Kebalikannya, metode penguraian kedua, informasi feromon untuk memilih gudang untuk kendaraan telah ada pada suatu extra array dan berdiri sendiri dari pesanan terakhir yang diberikan olek kendaraan lain dan gudang dari semua kendaraan lainnya.
Akhirnya, untuk kedua penguraian τij, i ≤ n, j ≥n + i menggambarkan
informasi feromon untuk pesanan j bersamaan pesanan pertama dimulai dari
gudang i.
c. Aturan Keputusan
Dari visibility dan informasi feromon yang telah dijelaskan, dan i(t) = {j
J D : ij(t) > 0}, pesanan atau gudang j terpilih akan segera dikunjungi
setelah pesanan atau gudang i memberikan ukuran aturan secara acak:
[ij] [ij(t)] jika ji (t)
Pij (t) = hihih(t)
(33)
Distribusi probabilitas ini dibiaskan oleh parameter dan yang menetukan dampak relatif dari jejak dan visibility, secara tepat.
3.4 Pengubahan Jejak
Setelah peta semut telah dibuat, pengupdetan feromon dilakukan dengan prosedure:
ij new = . ij old + ij vi,vj V
=1
dimana ρ adalah jejak (dengan 0 ≤ ρ ≤ 1). Hanya semut deangan terbaik yang akan mengupdate informasi feromon. Jika arc (vi,vj) digunakan oleh semut terbaik jejak feromon meningkat dengan nilai ij
nilai peng-update-tan dapat digambarkan sebagai berikut: ij = 1 - -1 jika 1
0 sebaliknya
3.5 Algoritma Ant Colony Untuk Masalah Transportasi
Pada saat penginisialisasian, jumlah semut dan parameter-parameter lain telah ditentukan. Kemudian kedua tahap dasar – membangun perjalanan dan mengubah jejak, akan dieksekusi agar memberikan bilangan iterasi. Sebelumnya, procedur ant colony system dapat dijelaskan sebagai berikut:
procedure TFAntColonySystem.starting;
var _simulated : integer; label go;
begin goto go; _counter := 0;
StatusBar1.Panels[0].Text := 'Computing'; repeat
// StatusBar1.Panels[0].Text := 'Enter Simulate'; _simulated := simulateAnts;
(34)
showmessage(intToStr(_simulated));
StatusBar1.Panels[0].Text := intToStr(_simulated); updateTrail;
if _simulated = 1 then begin
//updateTrail; restartAntsSystem;
_counter := _counter + 1;
// StatusBar1.Panels[3].Text := intToStr(_Counter)+' Restarting Ants System' ;
_restart := _restart + 1;
showmessage('Ant System Restarted ...'); checkContent(0);
// drawEdges;
// _problemSolved := True; end ;
//Animate; //drawEdges; sleep(50);
until _problemSolved = True;
// StatusBar1.Panels[0].Text := 'Job Done....';
{MessageDlg('Job Done !!!', mtInformation, [mbOK], 0);} sleep(1000);
go:
TriyingToCalculate;
grProgress.Visible := false; CubeSpin1.Continuous := false; ShowMessage('Finish....!!!'); ExitThread(0);
end;
Sedangkan algoritma untuk masalah transportasi dapat digambarkan pada flowchart sebagai berikut:
(35)
Gambar 3.1. Flow Chart algoritma ACO untuk Transportasi Keterangan:
Ganbar 3.1 menunjukkan algoritma ACO, dimana algoritma tersebut merupakan inti dari algoritma untuk menyelesaikan masalah transportasi algoritma ini menjelaskan alur perjalanan tiap semut dari lokasi asal (source) ke
(36)
algoritma tersebut terdapat beberapa proses yang saling berhubungan untuk mendapatkan total cost least, antara lain:
Proses simulate ant
Proses ini ini lakukan untuk memastikan masih ada tujuan lagi yang harus didatangai oleh semut pada setiap melakukan suatu perjalanan.
(37)
Proses update trail
Proses ini dilakukan setelah pengalokasian pengiriman barang dari tiap asal ke tujuan terpenuhi, dimana feromon trails dijadikan landasan pencarian oleh tiap-tiap semut.
(38)
(39)
Proses restart ant system
Proses ini dilakukan untuk mengeset ulang sistem tiap kali semut selesai melakukan perjalannya, apabila perjalanan semut adalah yang terjauh, maka akan disimpan di WorstIndex. Sedangkan apabila perjalanan semut adalah yang
terpendek maka akan disimpan ke dalam BestIndex. Kemudian Index akan kembali keawal lagi menjadi 0 apabila semut akan memulai perjalanan barunya.
(40)
Proses drawegde/returnpath
Proses ini untuk menggambarkan jalur yang telah dilewati. Semut dengan
BestIndex feromon akan diurut dari yang terendah sampai yang tertinggi (terdekat
- terjauh) kemudian jalurnya akan digambar sampai dengan jumlah kota terakhir.
(41)
3.6 Rancangan Penyimpanan
Rancangan penyimpanan yang digunakan pada sistem ini menggunakan file text yang disimpan ke memori komputer, sehingga masalah transportasi yang telah dimasukkan dapat digunakan atau dipanggil kembali melalui file text tersebut kapan saja. Dimana file ini berisi matriks masalah transportasi itu sendiri dan feromon yang dihasilkan
3.7 Rancangan Input Output
Rancangan user interface yang digunakan pada sistem ini dibuat agar dapat menggunakan mouse atau keyboard secara maksimal karena pada dasarnya aplikasi ini berbasis windows yang selalu menggunakan mouse dan keyboard dalam mempermudah dalam pemasukkan data.
Dalam menampilkan form, penulis merancangnya denggan menggunakan konsep interaksi manusia dengan komputer diman seorang user dengan hanya melihat form user akan mudah mengenali apa yang akan dilakukan selanjutnya.
Didalam form tersebut digunakan kontrol-kontrol untuk mengolah data atau menampilkan data. Adapun kontrol-kontrol yang digunakan antara lain: 1. Command Button, digunakan untuk mengeksekusi atau memproses data
setelah pemakai melakukan masukkan atau melakukan suatu pilihan.
2. Text Box, digunakan sebagai tempat penginputan data yang ada dalam sistem, pada text box ini pemakai dapat mengubah tulisan maupun angka secara langsung.
Berikut ini adalah bentuk rangcangan input dari sistem yang nantinya akan diimplementasikan dalam bentuk aplikasi:
(42)
Num of Surce : Num of Destination :
Gambar 3.6. Rancangan Input Source dan Destination
Form ini digunakan untuk melakukan pengisian banyaknya sumber (source) dan tujuan (destination).
Supply Amounts Supply1
Supply2 Supply3
Gambar 3.7. Rancangan Input Besar Supply
Form ini digunakan untuk melakukan pengisian banyaknya barang yang akan diangkut (supply).
Demand Amounts Demand 1
Demand 2 Demand 3
Gambar 3.8. Rancangan Input Besar Demand
Form ini digunakan untuk memasukkan besarnya batasan demand.
Create Exit Num of source
(43)
D1 D2 D3 Supply S1
S2 Demand
Gambar 3.9. Rancangan Input Nilai dari Unit Cost dan Ant Parameter Form ini digunakan untuk melakukan pengisian tiap unit cost dari masalah transportasi dan ant parameter untuk pencarian solusi.
Sedangkan untuk rancangan output dapat dilihat pada Gambar 3.4. dibawah ini:
Gambar 3.10. Rancangan Output Masalah Transportasi.
Ant Parameter
Reset Solve
Save
Close
Detail total cost
Final Matrik transportation
Detail Total Cost
Ant parameter
Reset Solve
Save
(44)
Form ini digunakan untuk menampilkan hasil dari pencarian total cost least, yang berupa matrik akhir dari masalah transportasi dan detail dari total cost least.
(45)
IMPLEMENTASI DAN EVALUASI
4.1 Implementasi
Dalam tahap ini dibahas mengenai kebutuhan peragkat keras, implementasi Update trail, implementasi DrawEdge, penjelasan pemakaian program dan evaluasi dari aplikasi yang telah dibuat.
4.1.1 Kebutuhan Perangkat Keras
Spesifikasi Minimum
Untuk menjalankan aplikasi tugas akhir ini, spesifikasi perangkat keras minimum yang digunakan adalah komputer Pentium I-33 Mhz, memory 65 MB, VGA 8 MB, Hard disk 6 GB.
Spesifikasi yang disarankan
Untuk menerapkan Optimasi Masalah Transportasi menggunakan Ant Colony Algorithm ini agar berjalan baik, penulis menyarankan menggunakan komputer Pentium II keatas, memory 65 MB keatas, VGA 8 MB, Hard disk 40 GB. Hal ini dikarenakan agar dalam proses pencarian dapat lebih cepat.
4.1.2 Implementasi Update Trail
Mengacu ke rancangan pada bab 3.5, pada proses ini menggambarkan pengubahan jejak (update trail) tiap melakukan perjalanan.
// procedure to update pheromone trail each looping procedure TFAntColonySystem.updateTrail();
var _from, _to, _ant : integer; I, num, ii, ij: Integer; begin
try
// Pheromone evaporation
for _from := 0 to MAX_CITIES -1 do // Iterate begin
(46)
for _to := 0 to MAX_CITIES -1 do // Iterate begin
TPheromone[_from][_to] := TPheromone[_from][_to] * (1.0 - RHO); if ( TPheromone[_from][_to] <= 0.0 ) then TPheromone[_from][_to] := INIT_PHEROMONE;
end; // for end; // for
Menambahkan jejak feromon baru,dengan melihat perjalanan pada tiap semut for _ant := 0 to MAX_ANTS - 1 do // Iterate
begin
//update each leg of the tour given the tour length for I := 1 to MAX_CITIES do // Iterate begin
if ( i <= MAX_CITIES) then begin
_from := TAnts[_ant].path[i]; _to := TAnts[_ant].path[i+1]; end else
begin
_from := TAnts[_ant].path[i]; _to := TAnts[_ant].path[0]; end;
if _ant >= MAX_ANTS then MessageDlg('Kakean Semut sing metu', mtError, [mbOK], 0);
if _to < 0 then begin
//MessageDlg('Nang njobo vektor', mtError, [mbOK], 0); _to:= MAX_CITIES -1 ; end;
if ((_from > MAX_CITIES-1) or (_from < 0 )) then _From := random(MAX_CITIES-1);
if ((_to > MAX_CITIES-1) or (_to < 0 )) then _to := random(MAX_CITIES-1);
Apabila diluar jangkauan, kembalikan lagi
// ShowMessage('Pheromone From := '+intToStr(_from)+' to '+intToStr(_to));
(* if (_from >= MAX_CITIES) or (_to >= MAX_CITIES) then ShowMessage('Pheromone From := '+intToStr(_from)+' to '+intToStr(_to))
else begin *)
// ShowMessage('Pheromone := '+FloatToStr(TPheromone[_from][_to]) +' '+FloatToStr(TPheromone[_to][_from])) ;
TPheromone[_from][_to] := TPheromone[_from][_to] + (QVAL / TAnts[_ant].tourLength);
TPheromone[_to][_from] := TPheromone[_from][_to]; floattostr(TPheromone[_from][_to]));
// update to real pheromone 2D num := 1;
{if _from <> _to then begin
TPheromone[_to][_from] := TPheromone[_from][_to]; end;
(47)
{end;} end; // for end; // for except
//ExitThread(0);
MessageDlg('ERROR on updatetrail Pheromone From := '+intToStr(_from)+' to '+intToStr(_to), mtError, [mbOK], 0);
end;
for _from := 0 to MAX_CITIES -1 do // Iterate begin
for _to := 0 to MAX_CITIES -1 do // Iterate begin
TPheromone[_from][_to] := TPheromone[_from][_to] * RHO; TPheromone[_to][_from] := TPheromone[_from][_to]; end; // for
end; // for
4.1.3 Implementasi DrawEdges / ReturnPath / jalurnya
Mengacu ke rancangan pada bab 3.5, pada proses ini menggambarkan penempatan jejak (trail) yang pada setiap kota yang telah dilalui.
// Procedure to draw egdes each city procedure TFAntColonySystem.drawEdges();
var _colStep, i, _from, _to, _pher : integer; _phLow, _phHi, _phTemp, _phStep : double; begin
_colStep := 255; _phLow := 1110; _phHi := 0;
Iterasi feromon selesai dan mencari feromon yang tertinggi dan terendah. for _from := 0 to MAX_CITIES - 1 do // Iterate
begin
for _to := 0 to MAX_CITIES - 1 do // Iterate begin
if (_from <> _to) then begin
_phTemp := TPheromone[_from][_to];
if _phTemp > _phHi then _phHi := _phTemp; if _phTemp < _phLow then _phLow := _phTemp; end;
end;
end; // for
4.1.4. Penjelasan Pemakaian Program
Dalam bagian ini akan dijelaskan cara pemakaian program aplikasi yang sebelumnya telah diinstalasi ke dalam media penyimpanan. Penjelasan pemakaian program dimulai dari cara pemanggilan program hingga tampilan hasil proses penyelesaian masalah transportasi dengan menggunakan Ant colony algorithm.
(48)
Gambar 4.1 Tampilan awal program
Setelah pemanggilan program aplikasi, akan muncul tampilan awal program seperti pada Gambar 4.1. Selanjutnya dapat dilakukan pemilihan pada menu utama (Main Menu): Read Exiting Problem, Create New Problem dan Exit.
Gambar 4.2. Menu utama
Pada Gambar 4.2. menu utama masing-masing dapat dijelaskan sebagai berikut: 1. Read Exiting Problem, pilihan ini digunakan untuk menampilkan form Open
file, dimana pada form ini user dapat memanggil data masukkan masalah transportasi dari sebuah file yang telah disimpan sebelumnya (file *.ant) seperti pada Gambar 4.3.
(49)
Gambar 4.3. Form Open File
2. Create New Problem, pilihan ini digunakan untuk masukkan masalah transportasi baru. Apabila dipilih akan muncul form masukkan (Gambar 4.4.).
Gambar 4.4. Input New Problem
2.a. Number of Destination, digunakan untuk menginputkan jumlah dari tujuan (destination).
2.b. Number of Demand, digunakan untuk menginputkan jumlah dari sumber (source).
2.c. Tombol Create, tombol ini berfungsi untuk membuat matrik sesuai dengan tujuan dan sumber yang telah dimasukkan. Apabila tombol ini dipilih akan
(50)
muncul form pesan Confirm (Gambar 4.5.), untuk memastikan apakah user ingin medefinisikan nama sumber dan tujuan sesuai dengan keinginannya atau tidak.
Gambar 4.5. Konfirmasi Nama sumber dan tujuan
Jika ya, akan muncul form Entry New Source Name dan Form Entry New Destination (Gambar 4.6. dan Gambar 4.7.), jika tidak maka nama sumber dan tujuan akan otomatis sesuai default.
Gambar 4.6. Form Entry New Source
Pada Gambar 4.6. user akan mengisikan nama source baru sesuai keinginannya. Setelah tombol create dipilih, akan muncul form Entry New Destination.
(51)
Gambar 4.7. Form Entry New Destination Names
User mengisikan nama destination baru sesuai dengan keinginannya. Setelah tombol Create dipilih akan muncul form masukkan besarnya supply dan demand (Gambar 4.8. dan 4.9)
(52)
Pada form ini, user memasukkan batasan besarnya supply dan demand dari masalah transportasi. Jumlah batasan yang dimasukkan sesuai dengan jumlah dari destination dan source yang sebelumnya telah dimasukkan.
Gambar 4.9. Form Entry Demand Cost.
Setelah dilakukan pengisian kedua form tersebut dan tombol dreate dipilih, selanjutnya akan muncul form Transportation Problem (Gambar 4.10.) dimana user harus mengisikan cost tiap unitnya dan juga parameter dari ant colony sistem yang terdiri dari Num ant, Beta, Alpha dan Rho.
(53)
Pada Gambar 4.10 juga terdapat tombol Solve, Reset, Save dan Close. Dimana masing-masing dapat dijelaskan sebagai berikut:
1. Solve, tombol ini untuk memulai perhitungan masalah transportasi yang telah diinputkan dengan menggunakan Ant Colony Algorithm. Sehingga akan muncul form Hasil seperti pada Gambar 4.11, yang merupakan hasil akhir proses pencarian dari masalah transportasi yang dimasukkan.
Gambar 4.11. Form Hasil Transportation Problem
Hasil akhir dari proses pencarian ini berupa tabel transportasi, total cost dan waktu proses.
2. Save, tombol ini digunakan untuk menyimpan masalah transportasi ke dalam file *.ant yang sewaktu-waktu dapat dibuka kembali pada menu utama Read Exiting Problem.
3. Close, tombol ini digunakan untuk keluar dari form dan kembali ke menu utama.
(54)
2.d. Tombol Exit, tombol ini berfungsi untuk keluar dari form Input New Problem dan kembali ke menu utama.
3. Exit, pilihan ini digunakan untuk keluar dari sistem.
4.2 Evaluasi
Pada tahap ini peneliti melakukan evaluasi untuk mengetahui apakah hasil yang diperoleh telah optimal atau tidak, dan membandingkan hasil yang didapat dengan pemecahan masalah transportasi biasa (konvensional). Selain itu evaluasi juga dilakukan pada proses pencarian dan jumlah semut. Data-data yang digunakan pada uji coba diperoleh dari literatur-literatur yang digunakan yaitu Tjutju (2002:124), Johannes Supranto (1988:178) dan data yang dibuat sendiri oleh penulis.
Data Uji coba tersebut adalah: 1. Matrik 3x3 (Tjutju, 2002:124)
Tabel 4.1. Uji coba matrik 3x3 Tujuan
Sumber A B C Supply
I 6 8 10 150
II 7 11 11 175
III 4 5 12 275
Demand 200 100 300 600
Pada tabel diatas, sebuah perusahaan tegel mempunyai 3 pabrik dan 3 gudang. Pabrik I bisa memproduksi 150 m2/hari, pabrik II bisa memproduksi 175 m2/hari, pabrik III 275 m2/hari. Setelah diproduksi tegel-tegel tersebut akan disimpan ke 3 gudang sesuai dengan kapasitasnya. Gudang A kapasitasnya 200 m2/hari, gudang B kapsditasnya100 m2/hari dan gudang C 300 m2/hari. Biaya untuk mengangkut tegel dari pabrik ke gudang seperti nampak pada Tabel 4.1 (Ket: biaya angkut
(55)
barang dalam satuan rupiah). Tentukan jumlah tegel yang harus didistribusikan dari tiap pabrik ke tiap gudang agar biaya pengangkutan minimal.
Penyelesaian:
Dari data yang dimasukkan didapatkan tabel penyesaian sebagai berikut: Tabel 4.2. Penyelesaian matrik 3x3
Tujuan
Sumber A B C Supply
I 0 || 6 25 || 8 125 || 10 150
II 0 || 7 0 || 11 175 || 11 175 III 200 || 4 75 || 5 0 || 12 275
Demand 200 100 300 600
Tegel yang harus didistribusikan dari masing-masing pabrik ke masing-masing gudang per hari agar ongkos minimum dapat dilihat dari tabel sebagai berkut:
Tabel 4.3.Pengiriman barang 1
Dari pabrik Ke gudang Distribusi barang (Unit) Biaya/unit (Rp.)
I A 0 6
B 25 8
C 125 10
II A 0 7
B 0 11
C 175 11
III A 200 4
B 75 5
C 0 12
Jadi, total biaya (total cost least) distribusi
= (6x0) + (8x25) + (10x125) + (7x0) + (11x0) + (11x175) + (4x200) + (5x75) + (12x0)
= 0 + 200 +1250 + 0 + 0+ 1925 + 800 + 375 + 0 = Rp. 4.550
(56)
2. Matrik 5x3 (Johannes Supranto, 1988:178)
Tabel 4.4. Uji coba matrik 5x3 Tujuan
Sumber G1 G2 G3 G4 G5 Supply
P1 50 80 60 60 30 800
P2 40 70 70 60 50 600
P3 80 40 60 60 40 1100
Demand 400 400 500 400 800 2500
Pada tabel diatas terdapat 5 tujuan yaitu gudang G1, G2, G3, G4, G5 dan 3 sumber yaitu pabrik PI, PII, PIII. Dengan batasan bahwa pabrik I dapat menyuplai sebasar 800/hari, pabrik II sebesar 600/hari dan pabrik III sebesar 1100/hari. Sedangkan besar kapasitas (demand) gudang G1 sebesar 400/hari, gudang G2 sebesar 400/hari, gudang G3 sebesar 500/hari, gudang G4 sebesar 400/hari dan gudang G5 sebesar 800/hari. Biaya angkut perunit dari produk seperti nampak pada Tabel 4.2. (Ket: biaya angkut per unit barang dalam satuan rupiah). Berapakah alokasi pengiriman barang dari tiap sumber ke tiap gudang agar didapatkan biaya transportasi yang minimal.
Penyelesaian:
Dari data yang dimasukkan didapatkan tabel penyesaian sebagai berikut: Tabel 4.5. Penyelesaian Matrik 5x3
Tujuan
Sumber G1 G2 G3 G4 G5 Supply
P1 0 || 50 0 || 80 0 || 60 0 || 60 800 || 30 800 P2 400 || 40 0 || 70 0 || 70 200 || 60 0 || 50 600 P3 0 || 80 400 || 40 500 || 60 200 || 60 0 || 40 1100
Demand 400 400 500 400 800 2500
(57)
Tabel 4.6. Pengiriman barang 2
Dari pabrik Ke gudang Distribusi barang (Unit) Biaya/unit (Rp.)
P1 G1 0 50
G2 0 80
G3 0 60
G4 0 60
G5 80 30
P2 G1 400 40
G2 0 70
G3 0 70
G4 200 60
G5 0 50
P3 G1 0 80
G2 400 40
G3 500 60
G4 200 60
G5 0 40
Jadi, total biaya (total cost least) pengiriman
= (50x0) + (80x0) + (60x0) + (60x0) + (30x800) + (40x400) + (70x0) + (70x0) + (60x200) + (50x0) +(80x0) + (40x400) + (60x500) + (60x200) + (40x0)
= 0 + 0 +0 + 0 + 24.000 + 16.000 + 0 + 0 + 12.000 + 0 + 0 + 16.000 + 30.000 + 12.000 + 0
(58)
3. Matrik 10x10
Tabel 4.7. Uji coba matrik 10x10 Tuj
Sum A B C D E F G H I J Sup
1 3 5 1 2 2 8 1 2 4 9 100
2 10 2 4 1 1 7 5 1 3 1 75
3 2 1 2 4 4 1 2 5 1 3 125
4 1 2 6 6 6 1 1 1 2 4 50
5 2 2 3 3 1 1 1 6 8 9 25
6 1 5 4 4 2 3 4 2 3 1 75
7 6 3 11 6 11 4 1 8 5 1 100
8 8 1 6 8 6 5 1 7 6 2 50
9 7 2 1 1 1 6 2 1 1 3 25
10 1 2 1 2 1 1 2 6 2 5 125
Dm 125 25 50 100 75 25 50 125 75 100 800 Pada tabel diatas terdapat 10 sumber dan 10 tujuan, dimana masing-masing mempunyai batasan dan nilai biaya per unit sendiri-sendiri seperti terlihat pada tabel tersebut. (Ket: biaya angkut per unit barang dalam satuan rupiah). Tentukan biaya transportasi pengiriman barang dari masing sumber ke masing-masing tujuan.
Penyelesaian:
Dari data yang dimasukkan didapatkan tabel penyesaian sebagai berikut: Tabel 4.8. Penyelesaian Matrik 10x10
Tuj
Sum A B C D E F G H I J Sup
1 0 || 3 0 || 5 50 || 1 0 || 2 0 || 2 0 || 8 50 || 1 0 || 2 0 || 4 0 || 9 100 2 0 || 10 0 || 2 0 || 4 75 || 1 0 || 1 0 || 7 0 || 5 0 || 1 0 || 3 0 || 1 75 3 0 || 2 25 || 1 0 || 2 0 || 4 0 || 4 25 || 1 0 || 2 0 || 5 75 || 1 0 || 3 125 4 50 || 1 0 || 2 0 || 6 0 || 6 0 || 6 0 || 1 0 || 1 0 || 1 0 || 2 0 || 4 50 5 0 || 2 0 || 2 0 || 3 0 || 3 25 || 1 0 || 1 0 || 1 0 || 6 0 || 8 0 || 9 25 6 75 || 1 0 || 5 0 || 4 0 || 4 0 || 2 0 || 3 0 || 4 0 || 2 0 || 3 0 || 1 75 7 0 || 6 0 || 3 0 || 11 0 || 6 0 || 11 0 || 4 0 || 1 0 || 8 0 || 5 100 || 1 100 8 0 || 8 0 || 1 0 || 6 0 || 8 0 || 6 0 || 5 0 || 1 50 || 7 0 || 6 0 || 2 50 9 0 || 7 0 || 2 0 || 1 25 || 1 0 || 1 0 || 6 0 || 2 0 || 1 0 || 1 0 || 3 25 10 0 || 1 0 || 2 0 || 1 0 || 2 50 || 1 0 || 1 0 || 2 75 || 6 0 || 2 0 || 5 125 Dm 125 25 50 100 75 25 50 125 75 100 800
(59)
Biaya pengangkutan dari tiap-tiap sumber ke tiap-tiap gudang adalah: Tabel 4.9. Pengiriman barang 3
Dari pabrik Ke gudang Distribusi barang (Unit) Biaya/unit (Rp.)
1 A 0 3
B 0 5
C 50 1
D 0 2
E 0 2
F 0 8
G 50 1
H 0 2
I 0 4
J 0 9
2 A 0 10
B 0 2
C 0 4
D 75 1
E 0 1
F 0 7
G 0 5
H 0 1
I 0 3
J 0 1
3 A 0 2
B 25 1
C 0 2
D 0 4
E 0 4
F 25 1
G 0 2
(60)
I 75 1
J 0 3
4 A 50 1
B 0 2
C 0 6
D 0 6
E 0 6
F 0 1
G 0 1
H 0 1
I 0 2
J 0 4
5 A 0 2
B 0 2
C 0 3
D 0 3
E 25 1
F 0 1
G 0 1
H 0 6
I 0 8
J 0 9
6 A 75 1
B 0 5
C 0 4
D 0 4
E 0 2
F 0 3
G 0 4
H 0 2
(61)
J 0 1
7 A 0 6
B 0 3
C 0 11
D 0 3
E 0 11
F 0 4
G 0 1
H 0 8
I 0 5
J 100 1
8 A 0 8
B 0 1
C 0 6
D 0 8
E 0 6
F 0 5
G 0 1
H 50 7
I 0 6
J 0 2
9 A 0 7
B 0 2
C 0 1
D 25 1
E 0 1
F 0 6
G 0 2
H 0 1
I 0 1
(62)
10 A 0 1
B 0 2
C 0 1
D 0 2
E 50 1
F 0 1
G 0 2
H 75 6
I 0 2
J 0 5
Jadi, total biaya (total cost least) transportasi
= (3x0) + (5x0) + (1x50) + (2x0) + (2x0) + (8x0) + (1x50) + (2x0) + (4x0) + (9x0) + (10x0) + (2x0) + (4x0) + (75x1) + (1x0) + (7x0) + (5x0) + (1x0) + (3x0) + (1x0) + (2x0) + (25x1) + (2x0) + (4x0) + (4x0) + (25x1) + (2x0) + (5x0) + (75x1) + (3x0) + (50x1) + (2x0) + (6x0) + (6x0) + (6x0) + (1x0) + (1x0) + (1x0) + (2x0) + (4x0) + (2x0) + (2x0) + (3x0) + (3x0) + (25x1) + (1x0) + (1x0) + (6x1) + (8x0) + (9x0) + (75x1) + (5x0) + (4x0) + (4x0) + (2x0) + (3x0) + (4x0) + (2x0) + (3x0) + (1x0) + (6x0) + (3x0) + (11x0) + (6x0) + (11x0) + (4x0) + (1x0) + (8x1) + (5x0) + (1x100) + (8x0) + (1x0) + (6x0) + (8x0) + (6x0) + (5x0) + (1x0) + (7x50) + (6x0) + (2x0) + (7x0) + (7x0) + (2x0) + (1x0) + (1x25) + (1x0) + (6x0) + (2x0) + (1x0) + (1x0) + (3x0) + (1x0) + (2x0) + (1x0) + (2x0) (50x1) + (1x0) + (2x0) + (6x75) + (2x0) + (5x0)
(63)
a. Uji coba untuk hasil pencarian optimal
Uji coba ini dilakukan untuk mengetahui hasil optimal dari ACO dan hasilnya akan dibandingkan dengan hasil optimal cara konvensional. Dari serangkaian uji coba yang telah dilakukan maka didapat hasil sebagai berikut:
Tabel 4.10. Hasil pencarian optimal
Matrik Hasil ACO Hasil NWCR Hasil MCCM
1 4.550 5.925 4.550
2 110.000 143.000 158.000
3 1.425 2.900 1.675
Pada tabel diatas terlihat bahwa hasil pemecahan masalah transportasi menggunakan ACO lebih optimal dibandingkan dengan penyelesaian cara biasa (konvensional).
Gambar 4.12. Perbandingan hasil ACO dengan konvensional.
b. Uji coba untuk jumlah semut terhadap waktu dan hasil.
Uji coba ini dilakukan untuk mengetahui waktu proses pencarian terhadap parameter jumlah semut. Dari serangkaian uji coba yang telah dilakukan maka didapat hasil sebagai berikut:
4.550 5.925 4.550
110.000
143.000 158.000
1.425 2.900 1.675
Hasil ACO Hasil
NWCR MCCMHasil
To
ta
l c
os
t (
R
p)
Matrik 1 Matrik 2 Matrik 3
(64)
Tabel 4.11. Perbandingan jumlah semut terhadap waktu dan hasil. Jumlah semut Waktu matrik1
(s) Hasil matrik1 Waktu matrik2 (s) Hasil matrik2 Waktu matrik3 (s) Hasil matrik3 2 58.690 4.550 45.070 110.000 57.414 1.425 5 20.690 4.550 20.780 110.000 31.549 1.425 10 12.106 4.550 12.701 110.000 22.926 1.425 20 8.044 4.550 6.231 110.000 18.78 1.425 50 5.621 4.550 5.436 110.000 16.066 1.425 100 4.794 4.550 4.545 110.000 15.221 1.425 Pada tabel diatas dapat dilihat bahwa jumlah semut yang dimasukkan akan berpengaruh terhadap waktu proses pencarian tetapi tidak berpengaruh terhadap hasil cost least. Ini berarti pencarian dengan jumlah semut sedikitpun telah mendapatkan hasil yang optimal.
Gambar 4.13. Pengaruh jumlah semut terhadap waktu pada matrik 1
c. Uji coba ketetapan hasil optimal
Uji coba ini dilakukan untuk mengetahui apakah hasil yang diperoleh sudah teroptimal atau tidak, dengan melakukan pengujian berulang-ulang pada data yang sama. Dari data uji coba yang telah diinputkan maka didapatkan hasil sebagai berikut:
0 20 40 60 80 100 120
2 5 10 20 50 100
Jumlah semut
Waktu
Jumlah semut Waktu matrik1 (s)
(65)
Tabel 4.12. Hasil optimal Matrik Banyak
percobaan Hasil ACO Hasil NWCR Hasil MCCM
1 1
5 10 15 20 4.550 4.550 4.550 4.550 4.550 5.925 5.925 5.925 5.925 5.925 4.550 4.550 4.550 4.550 4.550
2 1
5 10 15 20 110.000 110.000 110.000 110.000 110.000 143.000 143.000 143.000 143.000 143.000 158.000 158.000 158.000 158.000 158.000
3 1
5 10 15 20 1.425 1.425 1.425 1.425 1.425 2900 2900 2900 2900 2900 1.675 1.675 1.675 1675 1675 Dari tabel diatas dapat dilihat bahwa pengulangan percobaan pada data yang sama menghasilkan nilai yang sama, ini berarti hasil yang diperoleh dari penyelesaian masalah transportasi dengan menggunakan Ant Colony Algorithm adalah optimal.
(66)
64 PENUTUP
5.1 Kesimpulan
Dari hasil penelitian dan pengimplentasinya terhadap program, dapat diambil beberapa kesimpulan sebagai berikut:
1. Sistem dapat memberikan total cost terkecil dari pengiriman sejumlah barang dari sumber (source) ke sejumlah tujuan (destination) dengan menggunakan ant colony algorithm melalui data yang telah dimasukkan sebelumnya.
2. Hasil dari penggunaan algoritma ini mendapatkan nilai yang optimal dibandingkan dengan total cost terkecil dari pemecahan masalah transportasi lainnya, seperti metode Northwest Corner Method (NWCR) dan metode Minimum Cell Cost Method (MCCM).
3. Jumlah semut tidak berpengaruh terhadap hasil, ini dapat dibuktikan bahwa penyelesaian optimal dapat dicapai dengan jumlah semut yang sedikit.
4. Hasil penyelesaian masalah transportasi dengan menggunakan algoritma ant colony adalah optimal, ini dapat dibuktikan dari pengulangan percobaan pada data yang sama menghasilkan nilai yang sama.
5.2 Saran
Saran yang dapat disampaikan adalah untuk penelitian selanjutnya sebagai bahan pembanding dapat juga digunakan algoritma lain untuk memecahkan masalah transportasi, seperti Algoritma Genetik atau algoritma yang lain.
(67)
(68)
64
Alam J. Agus M, 2002, Belajar Sendiri Borland Delphi 6, PT. Elex Media
Computindo, Jakarta.
Aquilar, Jose, 2002, A General Ant Colony Model to Solve Combinatorial
Optomization Problem, Universidad de los Andes, Merida, Venezuela.
Dimyati Tarliah, Tjutju, 2002, Operations research: Model-model Pengambilan
Keputusan, Sinar Baru Algensindo, Bandung.
Doerner K, Hartl F.R, Reimann M, 2000, Cooperative Ant Colonies for
Optimizing Resource Allocation in Transportation, 16 November 2000, Departement of Management Science, Universiy of Vienna, Auatria.
Doerner K, Hartl F.R, Reimann M, 2000, Ant Colony Optimization apllied to The
Pickup and Delivery Problem, 9 November 2000, Departement of Management Science, Universiy of Vienna, Austria.
Doerner K, Hartl F.R, Reimann M, 2001, A Hybrid ACO algorithm for The Full
Truckload in Transportation, 10 Mei 2001, Departement of Management Science, Universiy of Vienna, Auatria.
Dorigo, Marco. Drs, 2002, Ant Colony optomization, 21 Juni 2002,
URL:http://iridia.ulb.ac.be/dorigo/ACO/ACO.html
Hiller S.Frederick, 1994, Pengantar Riset Operasi, Erlangga, Jakarta.
Parpinelli S. Rafael and Lopes S. Heitor, 2002, An Ant Colony Algorithm for
(1)
61
a. Uji coba untuk hasil pencarian optimal
Uji coba ini dilakukan untuk mengetahui hasil optimal dari ACO dan hasilnya akan dibandingkan dengan hasil optimal cara konvensional. Dari serangkaian uji coba yang telah dilakukan maka didapat hasil sebagai berikut:
Tabel 4.10. Hasil pencarian optimal
Matrik Hasil ACO Hasil NWCR Hasil MCCM
1 4.550 5.925 4.550
2 110.000 143.000 158.000
3 1.425 2.900 1.675
Pada tabel diatas terlihat bahwa hasil pemecahan masalah transportasi menggunakan ACO lebih optimal dibandingkan dengan penyelesaian cara biasa (konvensional).
Gambar 4.12. Perbandingan hasil ACO dengan konvensional.
b. Uji coba untuk jumlah semut terhadap waktu dan hasil.
Uji coba ini dilakukan untuk mengetahui waktu proses pencarian terhadap parameter jumlah semut. Dari serangkaian uji coba yang telah dilakukan maka didapat hasil sebagai berikut:
4.550 5.925 4.550 110.000
143.000 158.000
1.425 2.900 1.675 Hasil ACO Hasil
NWCR MCCMHasil
To
ta
l c
os
t (
R
p)
Matrik 1 Matrik 2 Matrik 3
(2)
62
Tabel 4.11. Perbandingan jumlah semut terhadap waktu dan hasil. Jumlah semut Waktu matrik1
(s) Hasil matrik1 Waktu matrik2 (s) Hasil matrik2 Waktu matrik3 (s) Hasil matrik3
2 58.690 4.550 45.070 110.000 57.414 1.425
5 20.690 4.550 20.780 110.000 31.549 1.425
10 12.106 4.550 12.701 110.000 22.926 1.425
20 8.044 4.550 6.231 110.000 18.78 1.425
50 5.621 4.550 5.436 110.000 16.066 1.425
100 4.794 4.550 4.545 110.000 15.221 1.425
Pada tabel diatas dapat dilihat bahwa jumlah semut yang dimasukkan akan berpengaruh terhadap waktu proses pencarian tetapi tidak berpengaruh terhadap hasil cost least. Ini berarti pencarian dengan jumlah semut sedikitpun telah mendapatkan hasil yang optimal.
Gambar 4.13. Pengaruh jumlah semut terhadap waktu pada matrik 1
c. Uji coba ketetapan hasil optimal
Uji coba ini dilakukan untuk mengetahui apakah hasil yang diperoleh sudah teroptimal atau tidak, dengan melakukan pengujian berulang-ulang pada data yang sama. Dari data uji coba yang telah diinputkan maka didapatkan hasil sebagai berikut:
0 20 40 60 80 100 120
2 5 10 20 50 100 Jumlah semut
Waktu
Jumlah semut Waktu matrik1 (s)
(3)
63
Tabel 4.12. Hasil optimal Matrik Banyak
percobaan Hasil ACO Hasil NWCR Hasil MCCM
1 1
5 10 15 20 4.550 4.550 4.550 4.550 4.550 5.925 5.925 5.925 5.925 5.925 4.550 4.550 4.550 4.550 4.550
2 1
5 10 15 20 110.000 110.000 110.000 110.000 110.000 143.000 143.000 143.000 143.000 143.000 158.000 158.000 158.000 158.000 158.000
3 1
5 10 15 20 1.425 1.425 1.425 1.425 1.425 2900 2900 2900 2900 2900 1.675 1.675 1.675 1675 1675 Dari tabel diatas dapat dilihat bahwa pengulangan percobaan pada data yang sama menghasilkan nilai yang sama, ini berarti hasil yang diperoleh dari penyelesaian masalah transportasi dengan menggunakan Ant Colony Algorithm adalah optimal.
(4)
64
BAB V PENUTUP
5.1 Kesimpulan
Dari hasil penelitian dan pengimplentasinya terhadap program, dapat diambil beberapa kesimpulan sebagai berikut:
1. Sistem dapat memberikan total cost terkecil dari pengiriman sejumlah barang
dari sumber (source) ke sejumlah tujuan (destination) dengan menggunakan ant colony algorithm melalui data yang telah dimasukkan sebelumnya.
2. Hasil dari penggunaan algoritma ini mendapatkan nilai yang optimal
dibandingkan dengan total cost terkecil dari pemecahan masalah transportasi lainnya, seperti metode Northwest Corner Method (NWCR) dan metode Minimum Cell Cost Method (MCCM).
3. Jumlah semut tidak berpengaruh terhadap hasil, ini dapat dibuktikan bahwa
penyelesaian optimal dapat dicapai dengan jumlah semut yang sedikit.
4. Hasil penyelesaian masalah transportasi dengan menggunakan algoritma ant
colony adalah optimal, ini dapat dibuktikan dari pengulangan percobaan pada data yang sama menghasilkan nilai yang sama.
5.2 Saran
Saran yang dapat disampaikan adalah untuk penelitian selanjutnya sebagai bahan pembanding dapat juga digunakan algoritma lain untuk memecahkan masalah transportasi, seperti Algoritma Genetik atau algoritma yang lain.
(5)
(6)
64
DAFTAR PUSTAKA
Alam J. Agus M, 2002, Belajar Sendiri Borland Delphi 6, PT. Elex Media Computindo, Jakarta.
Aquilar, Jose, 2002, A General Ant Colony Model to Solve Combinatorial
Optomization Problem, Universidad de los Andes, Merida, Venezuela. Dimyati Tarliah, Tjutju, 2002, Operations research: Model-model Pengambilan
Keputusan, Sinar Baru Algensindo, Bandung.
Doerner K, Hartl F.R, Reimann M, 2000, Cooperative Ant Colonies for Optimizing Resource Allocation in Transportation, 16 November 2000, Departement of Management Science, Universiy of Vienna, Auatria. Doerner K, Hartl F.R, Reimann M, 2000, Ant Colony Optimization apllied to The
Pickup and Delivery Problem, 9 November 2000, Departement of Management Science, Universiy of Vienna, Austria.
Doerner K, Hartl F.R, Reimann M, 2001, A Hybrid ACO algorithm for The Full Truckload in Transportation, 10 Mei 2001, Departement of Management Science, Universiy of Vienna, Auatria.
Dorigo, Marco. Drs, 2002, Ant Colony optomization, 21 Juni 2002,
URL:http://iridia.ulb.ac.be/dorigo/ACO/ACO.html
Hiller S.Frederick, 1994, Pengantar Riset Operasi, Erlangga, Jakarta.
Parpinelli S. Rafael and Lopes S. Heitor, 2002, An Ant Colony Algorithm for clasification Rule Discovery, Idea Group Publihsing.