Anda di halaman 1dari 5

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/281113346

Penyelesaian Travelling Salesman Problem dengan Algoritma Greedy

Conference Paper · December 2011

CITATIONS READS

5 25,669

2 authors, including:

Andi Lukman
STIMED Nusa Palapa
4 PUBLICATIONS   12 CITATIONS   

SEE PROFILE

All content following this page was uploaded by Andi Lukman on 21 August 2015.

The user has requested enhancement of the downloaded file.


Penyelesaian Travelling Salesman Problem dengan Algoritma Greedy

Andi Lukman Rubinah AR Nurhayati


Dosen Teknik Informatika Dosen Teknik Informatika Mahasiswa Pasca Sarjana Teknik Elektro
STIMED Nusa Palapa AMIK Rizky Universitas Hasanuddin
Makassar, Indonesia Makassar, Indonesia Makassar, Indonesia
uke@stimednp.ac.id rubykhaeril@gmail.com wide_ocean86@yahoo.com

Abstract—Traveling Salesman Problem (TSP) merupakan salah disederhanakan tetap terjadi ledakan kombinasi. Hal tersebut
satu masalah optimasi klasik dengan konsep yang sederhana menunjukkan bahwa solusi eksak terhadap masalah TSP yang
namun rumit dipecahkan secara konvensional. Tujuannya agar mempunyai banyak node sangat sulit dilakukan. Oleh karena
menememukan rute perjalanan terpendek untuk melewati itu dirancang sebuah solusi yang menggunakan Algoritma
sejumlah kota dengan jalur tertentu sehingga setiap kota hanya
Greedy dengan penanda untuk memberikan pemecahan
terlewati satu kali dan perjalanan diakhiri dengan kembali ke
kota semula. Proses penelitian menggunakan data input berupa alternatif yang mempunyai waktu komputasi jauh lebih cepat.
kota dan jarak antar kota kemudian diolah menggunakan
II. LANDASAN TEORI
algoritma greedy dengan penanda sehingga didapatkan jalur
terpedek dan total biayanya. Penanda dalam algoritma A. Algoritma Brute Force
digunakan agar setiap kota hanya sekali dikunjungi. Pendekatan
algoritma greedy dengan penanda memberikan solusi yang
Algoritma Brute Force pada dasarnya adalah alur
mempunyai kompleksitas waktu komputasi jauh lebih singkat penyelesaian suatu permasalahan dengan cara berpikir yang
dibandingkan dengan sejumlah algoritma lain seperti Algoritma sederhana, tidak membutuhkan suatu permikiran yang cukup
Brute Force dan Dynamic Programming. lama untuk dapat menyelesaikan sebuah permasalahan tertentu.
Karena alasan di atas, Algoritma ini banyak dipilih dalam
Keywords: Traveling Salesman Problem; Algoritma Greedy; penyelesaian sebuah permasalahan yang sederhana [2]. Cara kerja
Penanda; Kompleksitas algoritma ini adalah membangkitkan seluruh kemungkinan solusi
kemudian dipilih solusi yang paling optimal. Sehingga
I. PENDAHULUAN membutuhkan jumlah langkah yang besar dalam penyelesaian
Travelling Salesman Problem (TSP) merupakan salah satu suatu permasalahan.
permasalahan optimasi klasik yang sulit untuk dipecahkan Setiap solusi harus dibangkitkan terlebih sehingga
secara konvensional. Penyelesaian eksak terhadap persoalan kompleksitas algoritmanya sangat tinggi. Khususnya jika
ini akan melibatkan algoritma yang mengharuskan mencari diterapkan pada TSP, jika terdapat n node maka kompleksitasnya
adalah n!. Hal ini belum terasa jika jumlah nodenya hanya sedikit,
kemungkinan semua solusi yang ada [1]. Sehingga akan
namun jika jumlah nodenya banyak, maka akan terjadi ledakan
terjadi ledakan kombinasi dan membuat kompleksitas waktu
kombinasi. Sebagai ilustrasi, misalnya jika computer mampu
dari eksekusi algoritma sangat tinggi.
menyelesaikan 1 milyar proses per detik (109/detik) maka untuk
Masalah TSP melibatkan seorang sales yang harus menyelesaikan TSP dengan 20 node atau kota, dibutuhkan waktu
melakukan kunjungan ke sejumlah kota dalam menjajakan sebanyak (2,4329x1018)/109 detik yaitu 2,4329x109 detik atau
produknya. Rangkaian kota-kota yang dikunjungi harus lebih dari 77 tahun. Bagaimana jika terdapat 30 node, 50 node
membentuk suatu jalur sedemikian sehingga kota-kota atau 1.000 node?
tersebut hanya boleh dilewati tepat satu kali dan kemudian Kompleksitas algoritma ini masih sangat cepat jika jumlah
kembali lagi ke kota awal. Kasus seperti ini sering diistilahkan node hanya 10 kebawah. Dalam kasus TSP, solusi yang
dengan sirkuit hamilton, representasinya dikenal dengan ditawarkan algoritma ini pasti solusi optimal atau jalur
istilah hamiltonian [2]. Penyelesaian terhadap permasalahan terpedek. Namun dengan ilustrasi diatas, kita tidak akan
TSP ini adalah untuk memperoleh jalur terpendek. menunggu selama 77 tahun hanya untuk mendapatkan jalur
Penyelesaian eksak terhadap masalah TSP mengharuskan terpendek dari 20 kota yang akan kita lalui.
untuk melakukan perhitungan terhadap semua kemungkinan
B. Dynamic Programming
rute yang dapat diperoleh, kemudian memilih salah satu rute
yang terpendek [1]. Untuk itu jika terdapat n kota yang harus Dynamic programming juga merupakan algoritma yang
dikunjungi, maka terdapat n! kombinasi kota yang akan digunakan untuk menemukan nilai optimal dari suatu
dibandingkan jarak masing-masing. Dengan cara ini waktu permasalahan. Dalam dynamic programming, pemecahan
komputasi yang dibutuhkan akan jauh meningkat seiring suatu masalah dibagi menjadi beberapa tahapan (stage)
dengan bertambahnya jumlah kota yang harus dikunjungi. sedemikian hingga solusi dari sebuah persoalan dapat
Sebagai ilustrasi, untuk 20 kota saja, diperlukan proses dipandang sebagai serangkaian stage yang saling berkaitan.
pencarian jalur sebanyak 2,4329x1018 rute. Ini dapat Prinsip algoritma ini yaitu dengan membuat memorisasi, jadi
disederhanakan dengan mengeliminasi kombinasi rute yang setiap langkah harus dicatat atau di mememorisasikan.
sama menggunakan rumus (n-1)!/2 [2], sehingga jalur yang Algoritma ini tetap merekam solusi-solusi sebelumnya sampai
akan dibandingkan sebanyak 6,08226x1016. Meskipun solusi terakhir kemudian membandingkan solusi mana yang
paling optimal.

Sponsor : STIMED Nusa Palapa Makassar


Kompleksitas algoritma ini dalam penerapan untuk berulang. Hal ini memudahkan pelacakan untuk kembali ke
memecahkan TSP seperti yang telah dihitung [3] adalah n2.2n, kota asal.
masih lebih cepat dibandingkan algoritma brute force. Namun C. Pseudo Code
untuk kasus dengan node yang banyak masih sangat lama.
Sebagai ilustrasi, jika kita menggunakan contoh kasus pada Ide sederhana untuk membuat pseudo codenya adalah
algoritma brute force yaitu 20 kota, maka hanya diselesaikan sebagai berikut :
dalam waktu 0.42 detik (bandingkan dengan 77 tahun). 1. Input jumlah node
Namun apabila diberi 50 kota, maka dibutuhkan waktu selama
2. Input jarak antar kota, dimana jarak yang diinput
89 tahun lebih. Apa yang terjadi jika lebih dari 50 kota?
cukup sekali, misalnya cukup menginput jarak antara
Kompleksitas algoritma ini masih sangat cepat jika
kota A ke kota B, secara otomatis, program akan
dibandingkan dengan brute force dan jika nodenya antara 10 mengisi jarak antara kota B ke kota A.
sampai dengan 20. Dalam kasus TSP, solusi yang ditawarkan
algoritma ini pasti solusi optimal atau jalur terpedek. Namun 3. Setiap yang telah dilewati diberi penanda = 1,
dengan ilustrasi diatas, kita tidak akan menunggu selama 89 sementara kota yang belum dilewati secara default
tahun hanya untuk mendapatkan jalur terpendek dari 50 kota mempunyai penanda = 0.
yang akan kita lalui. 4. Gunakan algoritma greedy untuk mencari optimum
local step by step dengan tidak memproses kota yang
III. ALGORITMA GREEDY DENGAN PENANDA
telah dilewati (yaitu ditandai dengan penanda=1).
A. Algoritma Greedy 5. Outpunya berupa jalur optimal sesuai prinsip greedy
Algoritma greedy merupakan algoritma yang memecahkan dan total cost yang dibutuhkan.
masalah langkah demi langkah dengan mengambil pilihan yang
terbaik yang dapat diperoleh saat itu yang diistilahkan dengan Pseudo code untuk aplikasi pemecahan TSP mengunakan
optimum local. Algoritma ini berharap bahwa dengan memilih algoritma greedy dengan penanda sebagai berikut:
optimum lokal pada setiap langkah akan mencapai optimum TSP-Greedy-Penanda(Lintasan, Total)
global. Prinsipnya take what you can get now!, tidak ada waktu 1 n  jumlah node
untuk balik mengecek ke belakang atau ke depan.
2 for i  1 to length[n]
Di dalam algoritma greedy prinsip Pencarian jalur 3 for j  i to length[n]
terpendek memakai fungsi seleksi dan itu sangat berguna untuk 4 cost[i,j]  jarak antar kota i ke j
menentukan jalan tersingkat untuk menuju suatu tempat sesuai 5 for i  1 to length[n]
dengan asumsi diatas. dalam penerapannya, algoritma ini tidak 6 for j  i to length[n]
selalu mendapatkan solusi optimal namun pasti menemukan
solusi. Kelebihan algoritma ini adalah kemampuannya 7 cost[j,i]  cost[i,j]
menemukan solusi dengan jumlah node yang banyak dilakukan 8 total  0
dengan sangat cepat. 9 x0
10 asal  1
Algoritma greedy biasanya digunakan untuk menentukan
11 i  0
memecahkan masalah lintasan linier dimana asal dan tujuan
12 repeat
merupakan node yang berbeda. Hal ini menjadi kendala apabila
diterapkan pada kasus TSP, dimana jalur yang ada merupakan 13 kecil  10000
jalur hamiltonian. Hal ini dapat diatasi dengan menggunakan 14 x  x+1
penanda. 15 i  i+1
16 for j  2 to length[n]
B. Penanda
17 tujuan  j
TSP merupakan jalur Hamiltonian, sehingga setiap node 18 if cost[asal,j] = 0 or tanda[tujuan] = 1 then
dimungkinkan memiliki dua arah. Jika kita menggunakan 19 continue
algoritma greedy pada kasus ini, maka harus dilengkapi dengan
20 k  cost[asal,tujuan]
kemampuan untuk mengenali kota yang telah dilewati agar
tidak terjadi perulangan. Dengan kata lain, satu kota hanya di 21 if k < kecil then
kunjungi sekali. 22 kecil  k
23 temp[x]  tujuan
Untuk menyelesaikan hal tersebut, dibutuhkan sebuah 24 total  total + kecil
penanda setiap kota yang telah dikunjungi. Kota atau node
25 asal  temp[x]
yang telah dikunjungi harus ditandai, misalnya inisialisasi
setiap kota mempunya tanda = 0, jika kota telah dikunjungi, 26 lintasan  lintasan + Chr(64+asal)
maka tandanya berubah menjadi 1. Ketika proses pelacakan 27 tanda[asal]  1
jalur terjadi, kota dengan tanda = 1 tidak perlu dilewati/ 28 until i  n-1
diproses. 29 total:=total+cost[asal,1];
30 lintasan:='A'+lintasan+'A';
Dengan adanya penanda pada algoritma greedy, proses
31 return Lintasan, Total
pelacakan dapat dilakukan tanpa ada kota yang dikunjungi
Dengan menginput jumlah node (n) dan jarak antar kota dengan waktu yang sangat cepat. Hal tersebut dapat dibuktikan
(cost[i,j]) pseudo code diatas akan menghasilkan jalur optimal dengan menghitung kompleksitas algoritma.
(Lintasan) beserta total jarak yang dibutuhkan (cost) sesuai
prinsip greedy. E. Kompleksitas Algoritma
Untuk memudahkan menghitung kompleksitas algoritma
D. Aplikasi TSP greedy dengan penanda, berikut diberikan contoh lintasan TSP
Merujuk kepada Pseude Code, maka dapat dirancang beserta costnya. Misalnya terdapat 4 kota yaitu ABCDE,
sebuah aplikasi menggunakan bahasa pemrograman Borland dimana jarak A ke B = 7, A ke C = 3, A ke D = 4, B ke C = 5,
Delphi 7 untuk memecahkan TSP menggunakan Algoritma B ke D = 8 dan C ke D = 2. Grafnya dapat dilihat pada Gambar
Greedy dengan Penanda. Berikut gambar tampilan input dan 2.
output aplikasi, dimana yang diinput adalah jumlah kota yang
akan dikunjungi dan jarak antar kota. Kemudian hasilnya 7
A B
berupa jalur terpendek (versi greedy) dan total cost atau jarak.
4 5
8 3

D C
2
Gambar 2. Graf TSP dengan empat node
Proses pelacakan / penentuan lintasan sesuai dengan pseudo
code dapat digambarkan dalam bentuk tree seperti berikut:

A
7 3 4
B C D
5 2
B D
8

B
7
A
Gambar 3. Contoh Pelacakan dalam bentuk tree
Dari Gambar 3, ditemukan solusi jalur terpendek adalah A-
C-D-B-A dengan total cost adalah 20. Kompleksitas yang
terjadi pada contoh diatas untuk mendapatkan solusi sebanyak
7 rute, yaitu A-B, A-C, A-D, C-B, C-D, D-B dan B-A.
Dengan cara yang sama, jika terdapat 3 node, maka
Gambar 1. Tampilan Input dan Output TSP
diperoleh kompleksitas sebanyak 4 rute, 5 node,
Untuk menggunakan aplikasi ini, pertama-tama user kompleksitasnya adalah 11, 10 node, kompleksitasnya adalah
memasukkan jumlah node atau kota yang akan dilalui 46. Hal tersebut membentuk sebuah pola sehingga dapat
kemudian menekan tombol masukkan jarak node. Setelah itu, disimpulkan bahwa untuk menghitung kompleksitas Algoritma
user cukup menginput jarak kota pada matriks segitiga atas Greedy dengan penanda dalam menyelesaikan TSP, jika
(batasnya adalah jarak kota = 0 yang secara otomatis diinput n kota, maka akan terjadi (n(n-1)/2)+1.
dibangkitkan oleh program), kemudian menekan tombol Jika dibandingkan dengan kompleksitas algoritma brute
process. Program secara otomatis menyesuaikan isi dari force dan dynamic programming, kompleksitas algoritma
matriks segitiga atas ke matriks segitiga bawah, kemudian greedy dengan penanda jauh lebih cepat. table berikut
mengolahnya. Output dari pengolahan data tersebut adalah merupakan ilustrasi perbandingan brute force, dynamic
jalur terpendek dan total cost. programming dan greedy dalam hal kompleksitas masing-
User menggunakan aplikasi ini untuk memecahkan TSP masing.
dengan data berbeda dengan menekan tombol coba lagi,
kemudian melakukan proses seperti di atas. Aplikasi ini dapat
memecahkan masalah traveling dengan ratusan ribu kota
n Brute Force Dynamic Greedy IV. KESIMPULAN
Programming Algoritma Brute Force dan Dynamic Programming dalam
5 120 800 11 memecahkan TSP selalu mendapatkan solusi paling optimal,
namun sangat terbatas dalam jumlah node atau kota yang dapat
10 3,6288 x 106 102.400 46 dikunjungi. Algoritma Brute Force masih maksimal digunakan
15 1,3077 x 10 12
7,3728 x 10 6
106 jika jumlah node < 10, sementara Dynamic Programming jika
jumlah node antara 10 sampai dengan 20 node. Selebihnya
20 2,433 x 1020 4,194 x 108 191 akan membutuhkan waktu komputasi yang tinggi, bahkan tak
terhingga (unlimited).
25 1,551 x 1025 2,097 x 1010 301
64 18
Berbeda dengan kedua algoritma diatas, greedy tidak selalu
50 3,041 x 10 2,8147 x 10 1.226 mendapatkan solusi yang paling optimal, namun algoritma ini
100 9.332 x 10157 1.267 x 1034 4.951 menjanjikan pasti menemukan solusi. Apalagi jika dibenturkan
dengan jumlah node yang banyak, maka diantara beberapa
307
1000 unlimited 1.0715 x 10 499.501 algoritma diatas, algoritma greedy dengan penandalah yang
1005 unlimited unlimited 504.511 paling cepat dalam memecahkan masalah TSP.

Tabel 1. Perbandingan Kompleksitas Algoritma untuk TSP


Referensi :
Dari Tabel 1 dapat dilihat bahwa untuk node yang sangat
kecil, kita masih dapat memperoleh solusi yang paling optimal [1] Sukma Puspitorini, Penyelesaian Masalah Travelling Salesman Problem
dengan menggunakan algoritma brute force atau dynamic Dengan Jaringan Saraf Self Organizing, Media Informatika Vol.6 No.1,
Juni 2008, 39-55, http://journal.uii.ac.id/index.php/media-
programming. Namun jika node dalam TSP sudah lebih dari 20 informatika/article/view/108/68, diakses 23 November 2011.
node, penggunaan algoritma greedy sangatlah efektif. misalnya
[2] Wendy Arif Kurnianto, dkk, Pemakaian Algoritma Brute Force pada
jika computer mampu menyelesaikan 1 milyar proses per detik Permasalahan TSP, http://juornal.ui.ac.id/upload, diakses 2 November
(109/detik) maka untuk menyelesaikan TSP dengan 100 node, 2011
algoritma brute force membutuhkan waktu 2,95x10141 tahun, [3] Steven Halim dan Felix Halim, Competitive Programming 2: Handbook
dynamic programming membutuhkan waktu 4,02x1017, For ACM ICPD and IOI Contestant, 2011
sementara algoritma greedy hanya membutuhkan waktu [4] Chiung Moon, dkk, Discrete Optimization: An Efficient genetic
4,951x10-6 detik atau hanya membutuhkan nano detik. Bahkan algorithm for Travelling Salesman Problem With Precedence constrains,
jika terdapat 40.000 node atau kota, algoritma greedy dapat Eroupean Jurnal of Operational Research 140, 2002, 606-617,
http://www.elsevier.com/locate/dsw, diakses 23 November 2011.
menyelesaikannya kurang dari 1 detik.
[5] Thomas H. Cormen, dkk , Introduction to Algorithms Second Edition,
MIT Press, London, 2001.
[6] Anita Desiani dan Muhammad Arhami, Konsep Kecerdasan Buatan.
ANDI: Yogyakarta, 2006.

View publication stats

Anda mungkin juga menyukai