Analisis Perbandingan Algoritma Generate and Test Dengan Hill Climbing Pada Penyelesaian Traveling Salesman Problem Untuk Kunjungan Wisata di Kabupaten Tapanuli Tengah

5

BAB 2
TINJAUAN PUSTAKA

Pada bab ini akan dibahas landasan teori, penelitian terdahulu, kerangka berpikir, dan
hipotesis yang mendasari penyelesaian Traveling Salesman Problem dalam
menentukan lintasan tercepat untuk kunjungan wisata di Kabupaten Tapanuli Tengah
dengan algoritma Generate and Test dan algoritma Hill Climbing.
2.1

Traveling Salesman Problem (TSP)

Dalam traveling salesman problem, erat kaitannya dengan masalah hamiltonian cycle,
dimana salesman harus mengunjungi n kota. Masalah dimodelkan dengan
menggunakan graf lengkap dengan n simpul, kita dapat mengatakan bahwa salesman
ingin melakukan tur, atau hamiltonian cycle, mengunjungi setiap kota tepat sekali dan
kembali ke kota tempat dia memulai perjalanannya. Salesman akan memikul biaya
integer non-negatif c(i,j) untuk melakukan perjalanan dari kota i ke kota j, dan
salesman ingin membuat tur dengan total biaya minimum, dimana total biaya adalah
jumlah biaya individual sepanjang edges dari tur. Dalam bahasa formal untuk

keputusan yang sesuai adalah (Cormen et al, 2009):

TSP = {(G,c,k): G = (V,E) adalah sebuah graf lengkap,
c adalah sebuah fungsi dari V x V → Z,
k Z, dan
G memiliki biaya tur traveling-salesman dengan biaya terbesar k}.

Traveling salesman problem merupakan persoalan yang mempunyai konsep
sederhana dan mudah dipahami. Optimasi pada suatu penyelesaian fungsi berarti
penentuan jarak lokasi minimum atau maksimum dari fungsi tersebut. Pada TSP,
optimasi diinginkan agar ditemukan rute perjalanan terpendek untuk melewati
sejumlah kota dengan jalur tertentu sehingga setiap kota hanya terlewati satu kali dan
perjalanan diakhiri dengan kembali ke kota semula. Terdapat dua macam bentuk

Universitas Sumatera Utara

6

persoalan TSP ditinjau dari jumlah pelaku perjalanan, bentuk pertama dengan satu
orang yang berkeliling dan dengan lebih dari satu (banyak) orang yang berkeliling

sebagai bentuk kedua. (Puspitorini, 2008)
2.2

Graf

Teori graf merupakan salah satu cabang ilmu matematika yang mempelajari mengenai
terminology dari graf, jenis, dan sifat – sifatnya. Graf yang dimaksud dalam teori graf
berbeda dengan “grafik”. Dalam teori graf, sebuah graf merupakan kumpulan benda
yang direpresentasikan dalam bentuk simpul (vertex) dan terdapat garis – garis atau
yang disebut dengan sisi (edge) yang menghubungkan simpul – simpul. Garis pada
graf dapat berupa garis panah atau garis lurus.
Graf dalam teknologi masa kini banyak diterapkan dalam mekanisme
pencarian rute terpendek dalam GPS, algoritma pencarian dalam game atau
penanganan serangan virus dalam sebuah jaringan, dan permasalahan penjadwalan.
Suatu graf G didefinisikan sebagai pasangan himpunan (V, E) yang dinotasikan
dengan G = (V, E), dimana: V adalah himpunan tidak kosong dari titik, simpul, vertex
atau nodes dari G yaitu V = {v1, v2, v3, ......... vn} dan E adalah himpunan rusuk, edges
atau sisi dari G yang menghubungkan sepasang simpul, yaitu E = {e1, e2, e3, ......... en}.
Definisi graf diatas menyatakan bahwa V tidak boleh kosong, sedangkan E boleh
kosong. Jadi sebuah graf dimungkinkan tidak mempunyai sisi satu buahpun, tetapi

simpulnya harus ada, minimal satu graf. (Rinaldi, 2005)
2.3

Jenis-Jenis Graf

Graf dapat dikelompokkan menjadi beberapa jenis. Pengelompokan jenis graf
bergantung pada sudut pandang pengelompokkannya. Pengelompokkan graf dapat
dipandang berdasarkan ada atau tidak adanya sisi ganda atau sisi kalang, berdasarkan
jumlah simpul, berdasarkan orientasi arah pada sisi, berdasarkan keterhubungan
simpul, serta berdasarkan bobotnya.
Berdasarkan ada atau tidak adanya sisi ganda pada suatu graf, maka graf data
dikategorikan menjadi dua jenis, yaitu:
1. Graf Sederhana (Simple Graph)
Graf sederhana merupakan graf yang tidak mengandung gelang maupun sisi ganda.
Pada graf sederhana, sisi (u,v) sama dengan sisi (v,u).

Universitas Sumatera Utara

7


2. Graf Tak Sederhana (Unsimple Graph)
Graf tak sederhana merupakan graf yang mengandung sisi ganda atau gelang. Ada dua
jenis graf tak sederhana, yaitu:
a. Graf Ganda (Multigraph) yaitu graf yang mengandung sisi ganda yang
menghubungkan sepasang simpul bisa lebih dari dua buah simpul. Sisi ganda
dapat diasosiasikan sebagai pasangan tak terurut yang sama.
b. Graf Semu (Pseudograph) yaitu graf yang mengandung gelang (loop) yang
dapat terhubung ke dirinya sendiri.
Berdasarkan jumlah simpul pada suatu graf, maka graf dapat dikategorikan
menjadi dua jenis, yaitu:
1. Graf Berhingga (Limited Graph)
Graf berhingga merupakan graf yang jumlah simpulnya sejumlah n berhingga.
2. Graf Tak Berhingga (Unlimited Graph)
Graf tak berhingga merupakan graf yang jumlah simpulnya, n, tidak berhingga
banyaknya.
Berdasarkan orientasi arah pada sisiya, graf dapat dikategorikan menjadi dua
jenis, yaitu:
1. Graf Tak Berarah (Undirected Graph)
Graf tak berarah merupakan graf yang sisinya tidak mempunyai orientasi arah
sehingga urutan pasangan simpul yang dihubungkan oleh sisi tidak diperhatikan. Graf

tak berarah G terdiri dari suatu himpunan V dari simpul – simpul dan suatu himpunan
E dari sisi – sisi sedemikian rupa sehingga setiap sisi e ε E dikaitkan dengan pasangan
simpul tak terurut. Jika terdapat sebuah sisi e yang menghubungkan simpul (vertex) v
dan w, maka dapat dituliskan dengan e = (v,w) atau e = (w,v) yang menyatakan sebuah
sisi (edge) antara v dan w. Graf tak berarah dapat dilihat pada Gambar 2.1.
v1

v2

e1
e6
v5

e5

e2
e4

v4


e3

v3

Gambar 2.1 Graf Tak Berarah

Universitas Sumatera Utara

8

2. Graf Berarah (Directed Graph atau Digraph).
Graf berarah merupakan graf yang pada setiap sisinya diberikan orientasi arah. Pada
graf tak berarah (undirected graph) elemen dari E disebut dengan edge, sedangkan
pada graf berarah (directed graph) elemen dari E(A) disebut dengan arc. Graph
berarah G terdiri dari suatu himpunan V dari simpul - simpul dan suatu himpunan
E(A) dari arc sedemikian rupa sehingga setiap arc a ε A menghubungkan pasangan
simpul terurut. Jika terdapat sebuah arc a yang menghubungkan pasangan terurut
(v,w) dari simpul-simpul, maka dapat ditulis dengan a=(v,w), yang menyatakan
sebuah arc dari v ke w.
Pada suatu graf jika dua buah simpul (vertex) v1 dan v2 dihubungkan oleh suatu

edge(arc), maka kedua simpul (vertex) tersebut dikatakan adjacent. Pada Gambar 2.2
simpul (vertex) v1 adjacent (bertetangga) dengan simpul v2. Sementara itu, arc a1
dikatakan incident (bersisian) dengan simpul v1 dan simpul v2.
v1

v2
e1
e2
e4
e3
v4

v3

Gambar 2. 2 Graf Berarah
Berdasarkan keterhubungan simpul pada suatu graf, maka graf dikategorikan
menjadi dua jenis, yaitu:
1.

Graf Terhubung (Connected Graph)


Graf terhubung merupakan graf yang terdapat bila ada dua titik dalam graf G yang
terhubung. Misalkan u dan v adalah titik yang berbeda pada graf G. Maka titik u dan v
dapat dikatakan terhubung (connected) jika terdapat lintasan u – v di G. Sedangkan
suatu graf G dapat dikatakan terhubung (connected) jika untuk setiap titik u dan v di G
terhubung. (Lubis, Ibnu H. 2011)
v1

v2
e1
e2

e4

e3
v4

v3

Gambar 2. 3 Graf Terhubung


Universitas Sumatera Utara

9

2.

Graf Tidak Terhubung (Unconnected Graph)

Sebuah graf G dikatakan tidak terhubung bila dan hanya bila ada dua titik dalam graf
G tidak membentuk lintasan. Graf Tidak Terhubung dapat dilihat pada Gambar 2.4.
v1

v2
e1
e2

e3
v4


v3

Gambar 2. 4 Graf Tidak Terhubung
Berdasarkan bobotnya graf dapat dikategorikan menjadi dua jenis, yaitu:
1.

Graf Tidak Berbobot (Unweighted Graph)

Graf Tidak Berbobot (Unweighted Graph) merupakan graf yang tidak mempunyai
bobot atau nilai.
2.

Graf Berbobot (Weighted Graph)

Graf berbobot (weighted graph) adalah suatu graf yang setiap garisnya berhubungan
dengan suatu bilangan riil positif yang menyatakan bobot garis tersebut. Bobot garis e
biasanya diberi simbol w(e). Jumlah bobot semua garis disebut total bobot. Graf
berbobot dapat dilihat pada Gambar 2.5. (Surendro, R. 2008)
v1


v2
2
v5

5
4

3
7
8
v4

v3

Gambar 2. 5 Graf Berbobot

2.4

Lintasan (Path)

Misalkan v0 sampai vn adalah simpul - simpul yang ada dalam sebuah graph. Sebuah
lintasan dari v0 sampai vn adalah sebuah barisan berselang – seling dari n+1 simpul
dan n edges yang berawal dari v0 dan berakhir di vn yang berbentuk (v0, e1, v1, e2, v2, ...
vn-1, en, vn+1) dengan edge ei insiden pada simpul vi-1 dan vi untuk i = 1, ... , n
(Johnsonbaugh, 1998).

Universitas Sumatera Utara

10

Jika lintasan berawal dan berakhir pada satu simpul (vertex) yang sama, maka
graph dengan lintasan tersebut disebut dengan graph tertutup, dan sebaliknya, jika
lintasan berawal dan berakhir pada lintasan berbeda, maka graph dengan lintasan
tersebut disebut dengan graph terbuka. Panjang lintasan pada graph adalah jumlah
semua bobot edge pada graph tersebut. (Lubis, H. 2009)
2.5

Algoritma

Algoritma adalah prosedur komputasi yang terdefenisi dengan baik yang
menggunakan beberapa nilai sebagai masukan dan menghasilkan beberapa nilai yang
disebut keluaran. Dalam beberapa konteks, algoritma merupakan spesifikasi urutan
langkah untuk melakukan pekerjaan tertentu.Kata algoritma berasal dari nama seorang
ilmuwan Arab yang bernama Abu Jafar Muhammad Ibnu Musa Al Khuwarizmi
penulis buku berjudul Aljabar Wal Muqabala. Kata Al Khuwarizmi dibaca orang barat
menjadi Algorism yang kemudian lambat laun menjadi Algorithm, dan diserap dalam
bahasa Indonesia menjadi Algoritma. (Munir, 2007).
Secara non formal, algoritma sering didefinisikan menjadi prosedur
komputasional yang menggunakan beberapa nilai atau serangkaian nilai sebagai
masukan dan menghasilkan nilai atau serangkaian nilai sebagai keluaran. Algortima
itu sendiri ialah urutan langkah-langkah komputasional yang berubah dari input
menjadi output. Kita juga dapat melihat algoritma sebagai alat untuk menyelesaikan
permasalahan komputasional secara spesifik. Pernyataan dari permasalahan spesifik
dalam istilah umum merupakan hubungan input/output yang diinginkan (Cormen et
al, 2009).
2.5.1 Pembangkitan dan Pengujian (Generate and Test)
Pada prinsipnya metode ini merupakan penggabungan antara depth-first search
dengan pelacakan mundur (backtracking), yaitu bergerak ke belakang menuju satu
keadaan awal. Nilai pengujian berupa jawaban „ya‟ atau „tidak‟.
Langkah – langkah dalam menentukan hasil dari Algoritma Generate and Test adalah:
1.

Bangkitkan suatu kemungkinan solusi (membangkitkan suatu titik tertentu atau
lintasan tertentu dari keadaan awal).

Universitas Sumatera Utara

11

2.

Uji untuk melihat apakah node tersebut benar-benar merupakan solusinya dengan
cara membandingkan node tersebut atau node akhir dari suatu lintasan yang
dipilih dengan kumpulan tujuan yang diharapkan.

3.

Jika solusi ditemukan, keluar. Jika tidak ulangi kembali langkah yang pertama.

Contoh Kasus : Traveling Salesman Problem (TSP)
Seorang salesman ingin mengunjungi n kota. Jarak antara tiap-tipa kota sudah
diketahui. Kita ingin mengetahui rute terpendek dimana kota boleh dikunjungi tepat 1
kali. Misalkan ada 4 kota dengan jarak antara tiap-tiap kota seperti terlihat pada
Gambar 2.6.

A

4

3
7

C

B

8

5

6

D

Gambar 2. 6 Contoh Kasus TSP
Disini penyelesaian dengan menggunakan Generate and Test dilakukan dengan
membangkitkan solusi-solusi yang mungkin dengan menyusun kota-kota dalam urutan
abjad, yaitu :


A–B–C–D



A–B–D–C



A–C–B–D



A–C–D–B



Dan seterusnya (Gambar 2.7).

Universitas Sumatera Utara

12

B

A

B

C

D

C

D

C

D

B

D

C

B

D

C

D

B

B

C

Gambar 2. 7 Generate and Test
Misalkan pertama-tama kita mulai dari node A. Kita pilih sebagai keadaan
awal adalah lintasa ABCD dengan panjang lintasan (19). Kemudian kita lakukan
backtracking untuk mendapatkan lintasan ABDC (18). Lintasan ini kita bandingkan
dengan lintasan ABCD, jika lebih kecil maka lintasan terpilih adalah ABDC. Kita
lakukan backtracking lagi untuk mendapatkan lintasan ACBD (12), jika lebih kecil
dari ABDC maka lintasan terpilih menjadi ACBD. Demikian seterusnya hingga kita
temukan solusi yang sebenarnya.
Tabel 2. 1 Alur pencarian dengan generate and test pada TSP
Pencarian
Panjang
Lintasan
keLintasan
1
2
3
4
5
6
7
8
9
10
11
12
13
14

ABCD
ABDC
ACBD
ACDB
ADBC
ADCB
BACD
BADC
BCAD
BCDA
BDAC
BDCA
CABD
CADB

19
18
12
13
16
18
17
21
15
18
14
13
15
14

Lintasan Terpilih

Panjang
Lintasan
Terpilih

ABCD
ABDC
ACBD
ACBD
ACBD
ACBD
ACBD
ACBD
ACBD
ACBD
ACBD
ACBD
ACBD
ACBD

19
18
12
12
12
12
12
12
12
12
12
12
12
12

Universitas Sumatera Utara

13

15
16
17
18
19
20
21
22
23
24

CBAD
CBDA
CDAB
CDBA
DABC
DACB
DBAC
DBCA
DCAB
DCBA

20
16
21
18
20
15
15
12
17
19

ACBD
ACBD
ACBD
ACBD
ACBD
ACBD
ACBD
ACBD atau DBCA
ACBD atau DBCA
ACBD atau DBCA

12
12
12
12
12
12
12
12
12
12

Salah satu kelemahan dari metode generate and test ini adalah perlu
membangkitkan semua kemungkinan sebelum dilakukan pengujian, sehingga
membutuhkan waktu yang cukup besar dalam pencariaannya (Sri Kusumadewi,
2003).
2.5.2 Pendakian Tebing (Hill Climbing)
Metode ini hampir sama dengan metode pembangkitan & pengujian hanya saja proses
pengujian dilakukan dengan menggunakan fungsi heuristik. Pembangkitan keadaan
berikutnya sangat tergantung pada feedback dari prosedur pengetesan. Tes yang
berupa fungsi heuristik ini akan menunjukkan seberapa baiknya nilai terkaan yang
diambil terhadap keadaan-keadaan lainnya yang memungkinkan.
Ada dua macam metode Hill Climbing Search, yaitu Simple Hill Climbing dan
Steepest-ascent Hill Climbing.
Simple Hill Climbing

1.

Algoritma untuk Simple Hill Climbing adalah sebagai berikut:
1.

Mulai dari keadaan awal, lakukan pengujian: jika merupakan tujuan, maka
berhenti; dan jika tidak, lanjutkan dengan keadaan sekarang sebagai keadaan
awal.

2.

Kerjakan langkah-langkah berikut sampai solusinya ditemukan, atau sampai tidak
ada node baru yang akan diaplikasikan pada keadaan sekarang:
a.

Cari node yang belum pernah digunakan; gunakan node ini untuk
mendapatkan keadaan yang baru.

Universitas Sumatera Utara

14

b.

Evaluasi keadaan baru tersebut.
 Jika keadaan baru merupakan tujuan, keluar.
 Jika bukan tujuan, namun nilainya lebih baik daripada keadaan sekarang,
maka jadikan keadaan baru tersebut menjadi keadaan sekarang.
 Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka
lanjutkan pencarian.

Pada simple hill climbing ini, ada 3 masalah yang mungkin, yaitu :
1.

Algoritma akan berhenti kalau mencapai nilai optimum lokal.

2.

Urutan penggunaa operator akan sangat berpengaruh pada penemuaan solusi.

3.

Tidak diizinkan untuk melihat satupun langkah sebelumnya.

Contoh Kasus: TSP dengan simple hill climbing.
Disini ruang keadaan berisi semua kemungkinan lintasan yang mungkin. Operator
digunakan untuk menukar posisi kota-kota yang bersebelahan. Fungsi heuristik yang
digunakan adalah panjang lintasan terjadi.

ABCD
(19)
BACD
ACBD
(17)

2,

3

Tk
3,4

1

Tk 2
,4

DACB

Tk 4
,1

Tk 2,4

3,
4
Tk

Tk 1,3

DBCA

ADBC

BDAC

CABD

Tk 1,3

CBAD
BACD BCDA
DCAB
(20)
(18)
(17)

ACBD

BDAC
(14)

2,3
Tk

4,1
Tk

Tk 1,2

Tk
2,4

Tk 1,3

DBAC
BADC
BDCA
CDAB
(15)
(21)
(13)

Tk 1,2

Tk
2,3

BDCA

Tk
3,4

3,4
Tk

BDAC

Tk 4,1

Tk 2,4

4,1
Tk

,3
Tk 2

Tk 1,2

DBCA
BCDA
(12)

CBAD

Tk 1,3

,4

Tk

4,

ABDC

Tk
3

BCAD
BACD
(15)
Tk 1,2

ABCD

3,4
Tk

,3
Tk 2

Tk 1,2

Tk

Tk 2
,4

4,1
Tk

,3
Tk 2

Tk 1,2

Tk
2,4

ADCB

BCAD

ADBC

Tk 1,3

BACD

CDBA

Tk 1,3

DCBA
DBAC
ABCD
DACB
CBDA
(19)
(15)
(19)
(15)
(16)

Gambar 2. 8 Simple Hill Climbing

Universitas Sumatera Utara

15

Operator yang akan kita gunakan adalah menukar posisi 2 kota dalam suatu
lintasan. Apabila ada n kota, dan kita ingin mencari kombinasi lintasan dengan
menukar posisi urutan 2 kota, maka kita akan mendapatkan sebanyak:
Sehingga kalau ada 4 kota, kita bisa memperoleh:

4!
2! 4−2 !

�!

2! � −2 !

= 6 kombinasi. Keenam

kombinasi ini akan kita pakai semuanya sebagai operator, yaitu:
1.

Tukar 1,2 (menukar urutan posisi kota ke-1 dengan kota ke-2).

2.

Tukar 2,3 (menukar urutan posisi kota ke-2 dengan kota ke-3).

3.

Tukar 3,4 (menukar urutan posisi kota ke-3 dengan kota ke-4).

4.

Tukar 4,1 (menukar urutan posisi kota ke-4 dengan kota ke-1).

5.

Tukar 2,4 (menukar urutan posisi kota ke-2 dengan kota ke-4).

6.

Tukar 1,3 (menukar urutan posisi kota ke-1 dengan kota ke-3).
Pada Gambar 3 terlihat bahwa, pada keadaan awal, lintasan terpilih adalah

ABCD (19). Pada level pertama, hill climbing akan mengunjungi BACD (17) yang
ternyata memiliki nilai heuristik lebih kecil dibandingkan dengan ABCD (17 n0 . Dalam grafik nilai f(n) di sebelah kanan n0
selalu berada di atas cg(n). (Anany Levitin, 2011)

Universitas Sumatera Utara

19

Gambar 2. 12 Grafik fungsi big- omega
(Sumber: Anany Levitin, 2011)

Universitas Sumatera Utara

Dokumen yang terkait

ANALISIS PERBANDINGAN ALGORITMA GENETIKA DAN ALGORITMA FUZZY EVOLUSI DALAM PENYELESAIAN TRAVELING SALESMAN PROBLEM.

1 9 12

Analisis Perbandingan Algoritma Generate and Test Dengan Hill Climbing Pada Penyelesaian Traveling Salesman Problem Untuk Kunjungan Wisata di Kabupaten Tapanuli Tengah

0 0 14

Analisis Perbandingan Algoritma Generate and Test Dengan Hill Climbing Pada Penyelesaian Traveling Salesman Problem Untuk Kunjungan Wisata di Kabupaten Tapanuli Tengah

0 0 2

Analisis Perbandingan Algoritma Generate and Test Dengan Hill Climbing Pada Penyelesaian Traveling Salesman Problem Untuk Kunjungan Wisata di Kabupaten Tapanuli Tengah

0 6 4

Analisis Perbandingan Algoritma Generate and Test Dengan Hill Climbing Pada Penyelesaian Traveling Salesman Problem Untuk Kunjungan Wisata di Kabupaten Tapanuli Tengah Chapter III V

0 1 38

Analisis Perbandingan Algoritma Generate and Test Dengan Hill Climbing Pada Penyelesaian Traveling Salesman Problem Untuk Kunjungan Wisata di Kabupaten Tapanuli Tengah

0 6 2

Analisis Perbandingan Algoritma Generate and Test Dengan Hill Climbing Pada Penyelesaian Traveling Salesman Problem Untuk Kunjungan Wisata di Kabupaten Tapanuli Tengah

0 0 3

INISIALISASI POPULASI PADA ALGORITMA GENETIKA MENGGUNAKAN SIMPLE HILL CLIMBING (SHC) UNTUK TRAVELING SALESMAN PROBLEM (TSP)

0 0 5

SISTEM PENENTUAN LINTASAN TERPENDEK TRAVELING SALESMAN PROBLEM DENGAN ALGORITMA SIMPLE HILL CLIMBING

0 0 5

HYBRID ALGORITMA IMPROVED ANT COLONY OPTIMIZATION (IACO) DENGAN HILL CLIMBING (HC) UNTUK MENYELESAIKAN TRAVELING SALESMAN PROBLEM (TSP)

0 1 18