TA : Penyelesaian Masalah Transportasi Menggunakan Ant Colony Algorithm.

(1)

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 u

s 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(0q01) 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 : sSopt:(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 , , max

arg ' 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 allowed

k 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 (NCn2m ) 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(nm). Sejak ditemukan relasi linear antara jumlah kota dan jumlah semut terbaik, kompleksitas algoritma adalah O(NCn3).

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 Xij

i=1 j= n

dengan kendala

Xij = si, untuk i= 1, 2,…, m j=1

n

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

i

a

I

Untuk 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

JD : 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 ji (t)

Pij (t) = hihih(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.