Studi Metode Program Dinamik Dalam Mencari Solusi Optimal Pada Persoalan Travelling Salesman Problem (TSP)

(1)

STUDI METODE PROGRAM DINAMIK DALAM MENCARI

SOLUSI OPTIMAL PADA PERSOALAN TRAVELLING

SALESMAN PROBLEM ( TSP)

SKRIPSI

NICOLAS R N SIAGIAN

050803031

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2010


(2)

PERSETUJUAN

Judul : STUDI METODE PROGRAM DINAMIK DALAM

MENCARI SOLUSI OPTIMAL PADA PERSOALAN TRAVELLING SALESMAN PROBLEM (TSP)

Kategori : SKRIPSI

Nama : NICOLAS R N SIAGIAN

Nomor Induk Mahasiswa : 050803031

Program Studi : SARJANA (S1) MATEMATIKA

Departemen : MATEMATIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN

ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, Maret 2010

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Drs. Henry Rani Sitepu, M.Si Prof. DR. Herman Mawengkang

NIP 195303031983031002 NIP 1946112819744031001

Diketahui/Disetujui oleh

Departemen Matematika FMIPA USU Ketua,

Dr. Saib Suwilo, M.Sc. NIP 1964010919880301004


(3)

3

PERNYATAAN

STUDI METODE PROGRAM DINAMIK DALAM MENCARI SOLUSI OPTIMAL PADA PERSOALAN TRAVELLING SALESMAN PROBLEM (TSP)

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Maret 2010

NICOLAS R N SIAGIAN 050803031


(4)

PENGHARGAAN

Puji syukur kepada Allah Bapa di Surga atas segala berkat, kasih karunia serta bimbingan yang masih senantiasa diberikan-Nya kepada saya hingga saat ini sehingga saya mampu untuk menyelesaikan skripsi ini.

Penulis menyampaikan rasa terima kasih yang sebesar-besarnya kepada orangtua tercinta U R Siagian dan J Silaban atas segala kasih sayang, dukungan baik secara moril maupun materil yang senantiasa mereka berikan kepada penulis.Dan penulis juga ingin menyampaikan terima kasih kepada:

1. Bapak Prof.DR. Herman Mawengkang dan Bapak Drs. Henry Rani Sitepu,

M.Si, selaku dosen pembimbing yang telah memberikan bimbingan dan pengarahan kepada penulis sehingga skripsi ini dapat penulis selesaikan.

2. Bapak Drs.Ramli Barus, M.Si dan Bapak Drs.H.Haluddin Panjaitan selaku

dosen penguji.

3. Bapak Dr.Saib Suwilo, M.Sc selaku Ketua Departemen Matematika dan Bapak

Henry Rani Sitepu selaku Sekretaris Departemen Matematika

4. Semua dosen di Departemen Matematika dan pegawai di FMIPA USU.

5. Kakak-kakak saya (Febri,Vero,Eva,Sari), dan adik saya (Nova,Lucky) atas

segala motivasi yang diberikan kepada penulis serta seluruh keluarga.

6. Anak-anak matematika 2005 yang telah membantu penulis selama

ini.Anak-anak futsal yang telah mengajari saya berolah raga hingga seperti ini.Kalian semua selalu ada di dalam hati saya.

7. Seseorang yang telah banyak memberikan saya pengalaman berharga.Serta

semua orang yang telah membantu saya yang tidak dapat saya sebut satu per satu.Thanks for all.

Penulis menyadari masih banyak kekurangan dalam penulisan ini. Untuk itu penulis menerima saran dan kritik yang membangun dari pembaca.

Akhir kata penulis mengucapkan terima kasih, semoga skripsi ini dapat bermanfaat bagi kata semua. Semoga semua bantuan saudara mendapat balasan yang lebih dari Tuhan Yang Maha Esa.

Medan, Maret 2010

Penulis,


(5)

5

ABSTRAK

Travelling Salesman Problem (TSP) merupakan salah satu permasalahan yang penting dalam dunia matematika dan informatika.Travelling Salesman Problem dapat diartikan sebagai perjalanan seorang salesman yang harus mengunjungi semua kota yang ada dan hanya dikunjungi tepat satu kali.Dalam tulisan ini akan dibahas cara menyelesaikan TSP dengan metode program dinamik.

Program dinamik adalah suatu teknik matematis yang biasanya digunakan untuk membuat suatu keputusan dari serangkaian keputusan yang berkaitan dengan pencarian solusi optimum.Sehingga program dinamik dapat digunakan untuk mencari jarak terpendek dalam TSP.


(6)

ABSTRACT

Travelling salesman problem (TSP) is the one of important problems in mathematics and informatics. Travelling salesman problem can be meant as a salesman path that has to come all towns once. This thesis explains how to solve TSP with dynamic programming.

Dynamic programming is a mathematical technique, used to make a decision from some decisions to find optimum solution. Therefore, dynamic programming can be used to find a shortest path in TSP.


(7)

7

DAFTAR ISI

Halaman

PERSETUJUAN ii

PERNYATAAN iii

PENGHARGAAN iv

ABSTRAK v

ABSTRACT vi

DAFTAR ISI vii

DAFTAR GAMBAR viii

BAB 1 PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Perumusan Masalah 3

1.3 Pembatasan Masalah 3

1.4 Tujuan Masalah 3

1.5 Manfaat Penelitian 3

1.6 Metodologi Penelitian 4

1.7 Tinjauan Pustaka 4

BAB 2 LANDASAN TEORI 6

2.1 Graf 6

2.1.1 Terminologi Dasar 7

2.1.2 Graf Bipartite 8

2.1.3 Komplemen Graf 10

2.1.4 Graf Berlabel/ Berbobot 11

2.1.5 Subgraf 12

2.1.6 Lintasan dan Sirkuit 13

2.1.7 Lintasan dan Sirkuit Hamilton 15

2.1.8 Matriks dan Graf 18

2.1.9 Graf Planar 21

2.2 Program Dinamik 22

2.2.1 Karakteristik Program Dinamik 23

2.2.2 Pendekatan Program Dinamik 24

2.2.3 Pernyataan Matematis Program Dinamik 25

2.2.4 Formulasi Program Dinamik untuk Persoalan TSP 26

BAB 3 PEMBAHASAN 28

3.1 Contoh Perjalanan Seorang Salesman 28

BAB 4 KESIMPULAN DAN SARAN 36

4.1 Kesimpulan 36

4.2 Saran 36


(8)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Graf 6

Gambar 2.2 Graph berarah 7

Gambar 2.3 Multigraf 8

Gambar 2.4 Graf Bipartite 10

Gambar 2.5 Graf G 11

Gambar 2.6 Graf G 11

Gambar 2.7 Graf Berbobot 12

Gambar 2.8 Subgraf 13

Gambar 2.9 Graf Terhubung dan Graf tak Terhubung 14

Gambar 2.10 Dodecahedron 15

Gambar 2.11 Lintasan 17

Gambar 2.12 Lintasan (vx,vk,vk+1,...,vj1,vp,vp1, ...,vj,v1,v2,...,vk1) 17

Gambar 2.13 Graf 19

Gambar 2.14 Lintasan i ke k 21

Gambar 2.15 Graf Planar 22

Gambar 2.16 Program Dinamik Maju 24

Gambar 2.17 Program Dinamik Mundur 24

Gambar 3.1 Graf Lengkap dengan 6 Simpul 28


(9)

5

ABSTRAK

Travelling Salesman Problem (TSP) merupakan salah satu permasalahan yang penting dalam dunia matematika dan informatika.Travelling Salesman Problem dapat diartikan sebagai perjalanan seorang salesman yang harus mengunjungi semua kota yang ada dan hanya dikunjungi tepat satu kali.Dalam tulisan ini akan dibahas cara menyelesaikan TSP dengan metode program dinamik.

Program dinamik adalah suatu teknik matematis yang biasanya digunakan untuk membuat suatu keputusan dari serangkaian keputusan yang berkaitan dengan pencarian solusi optimum.Sehingga program dinamik dapat digunakan untuk mencari jarak terpendek dalam TSP.


(10)

ABSTRACT

Travelling salesman problem (TSP) is the one of important problems in mathematics and informatics. Travelling salesman problem can be meant as a salesman path that has to come all towns once. This thesis explains how to solve TSP with dynamic programming.

Dynamic programming is a mathematical technique, used to make a decision from some decisions to find optimum solution. Therefore, dynamic programming can be used to find a shortest path in TSP.


(11)

9

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Travelling Salesman Problem (TSP) merupakan salah satu permasalahan yang penting dalam dunia matematika dan informatika. TSP dapat diilustrasikan sebagai perjalanan seorang salesman keliling yang harus mengunjungi sebanyak n kota dengan aturan sebagai berikut:

1. Ia harus mengunjungi setiap kota hanya sebanyak 1 kali

2. Ia harus meminimalisasi total jarak atau biaya perjalanannya

3. Pada akhirnya ia harus kembali ke kota asalnya berangkat.

Solusi dari TSP ialah jalur yang dilalui oleh salesman tersebut. Tentunya solusi terbaik atau optimal dari permasalahan ini adalah jalur dengan jarak terpendek atau dapat disebut juga dengan rute perjalanan minimum. Guna memudahkan permasalahan, pemetaan n kota tersebut akan digambarkan dengan sebuah graf. Rute perjalanan dengan aturan pengunjungan satu dan hanya satu kali pada setiap simpul dalam graf disebut dengan jalur Hamilton.Bila perjalanan dimulai dan berakhir di simpul yang sama maka jalur ini disebut siklus Hamilton. Dengan kata lain TSP termasuk ke dalam problem menemukan jalur atau siklus Hamilton.


(12)

Traveling Salesman Problem dapat dimodelkan dengan baik melalui teori graf. Graf adalah sekumpulan objek yang disebut simpul (verteks) yang dihubungkan oleh sambungan – sambungan yang disebut sisi (edge). Permasalahan yang menggunakan graf pertama kali dikemukakan oleh matematikawan Swiss yang bernama L.Euler.

Pada TSP, graf yang digunakan adalah graf tidak berarah dengan bobot atau jarak pada setiap sisi. Konsep TSP banyak diterapkan untuk penyelesaian berbagai masalah antara lain :

1. Menentukan rute perjalanan minimum dengan melewati semua kota

2. Pengoptimalan proses perjalanan pesan (message) pada jaringan inter koneksi

komputer

3. Perancangan pemasangan pipa saluran, dll

Penentuan permasalahan ini juga tidak hanya terbatas pada masalah jarak. TSP dapat digunakan untuk memodelkan permasalahan waktu atau biaya transportasi yang dibutuhkan untuk melewati beberapa simpul.Permasalahan ini kelihatannya gampang untuk jumlah simpul yang sedikit. Namun, TSP akan menjadi permasalahan yang sangat kompleks jika jumlah simpul mencapai ratusan atau bahkan ribuan.

Penyelesaian eksak terhadap masalah TSP mengharuskan untuk melakukan perhitungan terhadap semua kemungkinan rute yang dapat diperoleh, kemudian memilih salah satu rute yang terpendek. Penggunaan program dinamik dalam mencari solusi terbaik TSP merupakan suatu alternatif dari sekian banyak metode yang digunakan dalam pencarian solusi TSP seperti algoritma Greedy, algoritma heuristic,dll.

Program dinamik adalah suatu teknik matematis yang biasanya digunakan untuk membuat suatu keputusan dari serangkaian keputusan yang berkaitan. Penemu dan yang mengembangkan program dinamik adalah Richard Bellman. Tujuan utama


(13)

11

model ini ialah untuk mempermudah penyelesaian persoalan optimasi yang mempuyai karakteristik tertentu. Ide dasar program dinamik ialah membagi persoalan menjadi beberapa bagian yang lebih kecil sehingga memudahkan penyelesaiannya.

Pada persoalan program dinamik tidak terdapat formulasi yang standar. Karena itu, persamaan yang terpilih untuk digunakan harus dikembangkan agar dapat memenuhi masing – masing situasi yang dihadapi.Dengan demikian, maka antara persoalan yang satu dengan persoalan lainnya dapat mempunyai struktur penyelesaian persoalan yang berbeda.

1.2 Perumusan Masalah

Masalah pokok yang dibahas dalam tulisan ini adalah bagaimana cara metode program dinamik dalam mencari jalur atau siklus Hamilton yang memiliki bobot minimum dari persoalan Traveling Salesman Problem.

1.3 Batasan Masalah

Pada tulisan ini masalah dibatasi hanya sampai pada pencarian jalur atau siklus Hamilton yang memiliki bobot minimum dari persoalan Travelling Salesman Problem (TSP) pada graf lengkap.


(14)

1.4 Tujuan Penelitian

Tujuan penelitian ini adalah :

1. Mencari jalur atau siklus Hamilton yang memiliki bobot minimum

dengan metode Program Dinamik pada persoalan Travelling Salesman Problem

2. Menunjukkan bahwa pada graf Hamilton yang berbobot minimum

dapat ditemukan solusi Travelling Salesman Problem.

1.5 Manfaat Penelitian

Manfaat penelitian ini adalah :

1. Sebagai bahan pertimbangan bagi salesman untuk menentukan

solusi optimal dari persoalan yang dihadapi.

2. Sebagai bahan tambahan dalam pembahasan graf Hamilton bagi

para pembaca.

3. Sebagai penerapan ilmu pengetahuan yang dimiliki penulis

1.6 Metodologi Penelitian

Metode penelitian yang akan digunakan adalah literatur. Prosedur yang dilakukan adalah :

1. Menguraikan teori dasar yang menunjang terhadap pembahasan.


(15)

13

a) menguraikan solusi menjadi sekumpulan tahap sedemikian rupa

dimana solusi pada setiap tahap dibangun dari hasil solusi tahap sebelumnya.

b) Menggunakan persyaratan optimasi dan kendala untuk membatasi

sejumlah pilihan yang harus dipertimbangkan pada suatu tahap.

3. Membentuk jalur atau siklus Hamilton pada graf yang mencakup semua

simpul pada graf tersebut.

1.7 Tinjauan Pustaka

Sebagai pendukung dalam penulisan tugas akhir ini digunakan beberapa buku, yaitu : Marhaendi dalam jurnalnya “Graf dan Analisis Algoritma” menyatakan Sebuah Graf G mengandung 2 himpunan yaitu himpunan V, yang elemennya disebut simpul atau verteks dan himpunan E yang merupakan pasangan tak terurut dari verteks-verteks yang disebut garis atau edge. Sehingga sebuah graf dinotasikan sebagai G ( V, E ).

Munir Rinaldi dalam jurnalnya “Strategi Algoritmik Program Dinamis yang

menyatakan misalkan G = (V, E) adalah graf lengkap berarah dengan sisi-sisi yang

diberi harga cij> 0 untuk setiap i dan j adalah simpul-simpul di dalam V. Misalkan

V= n dan n > 1. Setiap simpul diberi nomor 1, 2, …, n.Asumsikan perjalanan (tur)

dimulai dan berakhir pada simpul 1. Setiap tur pasti terdiri dari sisi (1, k) untuk

beberapa kV – {1} dan sebuah lintasan dari simpul k ke simpul 1.

Lintasan dari simpul k ke simpul 1 tersebut melalui setiap simpul di dalam V


(16)

dari simpul k ke simpul 1 juga menjadi lintasan k ke 1 terpendek yang melalui simpul-simpul di dalam V – {1, k}. Misalkan f(i, S) adalah bobot lintasan terpendek yang

berawal pada simpul i, yang melalui semua simpul di dalam S dan berakhir pada

simpul 1. Nilai f(1, V – {1}) adalah bobot tur terpendek. Berdasarkan prinsip

optimalitas tersebut, diperoleh hubungan rekursif sebagai berikut:

(1 , {1}) min{1 ( , {1, })}

2 c f k V k

V

f k

n

k + −

= −

≤ (1)

Dengan merampatkan persamaan (1), diperoleh f(i ,∅)=ci,1 , 2 ≤in (basis)

})} { , ( { min ) ,

(i S c f j S j

f ij

S

j + −

=

∈ (rekurens) (2)

Persamaan (1) dapat dipecahkan untuk memperoleh {1}) jika diketahui f(k, V – {1,

k}) untuk semua pilihan nilai k. Nilai f tersebut dapat diperoleh dengan menggunakan

persamaan (2).

Kemudian gunakan persamaan (2) untuk memperoleh f(i, S) untuk S = 1,

kemudian dapat diperoleh f(i, S) untuk S= 2, dan seterusnya. Bila S= n – 1, nilai i

dan S ini diperlukan sedemikian sehingga i≠ 1, 1 ∉S dan iS.


(17)

BAB 2

LANDASAN TEORI

2.1.Graf

Teori Graf mulai dikenal pada saat seorang matematikawan bangsa Swiss,

bernama Leonhard Euler, berhasil mengungkapkan Misteri Jembatan Konigsberg

pada tahun 1736.

Sebuah Graf G mengandung 2 himpunan yaitu himpunan V, yang elemennya disebut simpul atau verteks dan himpunan E yang merupakan pasangan tak terurut dari verteks-verteks yang disebut garis atau edge. Sehingga sebuah graf dinotasikan

sebagai G ( V, E ). Dalam menggambarkan sutu graf tidak ada ketentuan khusus dalam

penyajian graf secara geometri, seperti dimana dan bagaimana menyajikan simpul dan ruas. Berikut contoh penyajian Graf yang sama, tetapi disajikan berbeda.

Jika diketahui G ( V, E ) dimana

V = { A, B, C, D } dan E = {(A,B),( B, C ), ( C, D), ( D, A ), ( B, D ) }.

Gambar 2.1.graf C

A

D

A A

B D B

C D

B


(18)

2.1.1 Terminologi Dasar

Definisi 2.1

Graf berarah (directed graph) G terdiri dari suatu himpunan V dari verteks-verteks

dan himpunan E dari edge sedemikian rupa sehingga setiap rusuk e ∈ E

menghubungkan pasangan verteks terurut.Jika terdapat sebuah edge tunggal yang menghubungkan pasangan terurut (v,w) dari verteks-verteks, dituliskan e = (v,w) yang menyatakan sebuah edge dari v ke w.

Graf tak berarah (undirected graph) G terdiri dari dari suatu himpunan V dari verteks-verteks dan himpunan E dari edge sedemikian rupa sehingga setiap edge e

∈ E dikaitkan dengan pasangan verteks tak berurut..Jika terdapat sebuah edge tunggal

yang menghubungkan verteks v dan w, dituliskan e = (v,w) atau e = (w,v) yang menyatakan sebuah edge antara v dan v dan bukan sebuah pasangan terurut. Gambar 2.2 merupakan contoh graf berarah.

Gambar 2.2.Graf berarah

Edge yang hanya berhubungan dengan verteks yang sama (sebuah verteks) disebut dengan Loop. Edge paralel yaitu jika terdapat edge-edge yang


(19)

17

jika ada edge yang menghubungkan keduanya. Verteks yang tidak memiliki edge yang

berhubungan dengannya disebut verteks terasing (isolated verteks).

Sebuah graf dikatakan multigraf bila graf tersebut mengandung edge paralel atau loop. Sedangkan graf yang tidak mengandung edge paralel atau loop dikenal sebagai graf sederhana, atau yang disebut graf.

Dari gambar tersebut dapat dijelaskan bahwa Loop adalah e2. Edge paralel adalah e5 dan e6.Verteks yang adjacent adalah A dan B, A dan C, B dan C,dll.Verteks terasing adalah E

E

Gambar 2.3 Multigraf B

C D

e2

A e3

e4 e1

e5


(20)

2.1.2.Graf Bipartite

Definisi 2. 2

Graf lengkap dengan n verteks adalah graf sederhana dengan n verteks (simbol kn),di

mana setiap 2 verteks berbeda dihubungkan dengan suatu edge.

Teorema 2.1

Banyaknya edge dalam suatu graf lengkap dengan n verteks adalah

2 ) 1 (nn

buah.

Bukti:

Misalkan G adalah sebuah graf lengkap dengan n verteks v1,v2,…,vn.Ambil

sembarang titik (sebut saja v1).Oleh karena G merupakan graf lengkap, maka v1

dihubungkan dengan (n-1) verteks lainnya (v2,v3,…,vn).Jadi, ada (n-1) buah edge.

Selanjutnya ambil sembarang verteks kedua (sebut saja v2).Oleh karena G

adalah graf lengkap,maka v2 juga dihubungkan dengan semua verteks sisanya

(v1,v3,…,vn) sehingga ada (n-1) buah edge yang berhubungan dengan v2.Salah satu

edge tersebut menghubungkan v2 dengan v1.Edge tersebut telah diperhitungkan pada

waktu menghitung banyaknya edge yang berhubungan dengan v1.Jadi, ada (n-2) edge

yang belum diperhitungkan.

Proses dilanjutkan dengan menghitung banyaknya edge yang berhubungan


(21)

19

didapatkan berturut-turut adalah (n-3), (n-4),…, 3,2,1.Jadi secara keseluruhan terdapat (n-1) + (n-2) +…+ 2 + 1 =

2 ) 1 (nn

buah.

Definisi 2.3

Suatu graf G disebut bipartite (dwi pihak) apabila V (G) merupakan gabungan dari 2

himpunan tak kosong v1danv2 dan setiap garis dalam G menghubungkan suatu titik

dalam v1 dengan titik dalam v2. Apabila dalam graf bipartite setiap verteks

dalamv1berhubungan dengan setiap verteks dalam v2, maka grafnya disebut graf

bipartite lengkap(simbol km,n).

Gambar 2.4 Graf bipartite

2.1.3 Komplemen Graf

Komplemen suatu graf G (simbol G) dengan n verteks adalah suatu graf sederhana

dengan

a. Verteks-verteks (G) sama dengan verteks-verteks G. Jadi V(G) = V(G)

b. Edge G adalah komplemen verteks-verteks G terhadp graf lengkapnya (Kn).


(22)

Verteks-verteks yang dihubungkan dengan edge dalam G tidak terhubung dalam

G.Sebaliknya, verteks- verteks yang terhubung dalam G menjadi tidak terhubung

dalam G.

Contoh :

Gambarlah G dari graf berikut ini.

b a

c d

e

Gambar 2.5.Graf G

Pada gambar diatas verteks-verteks yang tidak dihubungkan dengan edge dalam G


(23)

21

a b

c d

e

Gambar 2.6 GrafG 2.1.4.Graf Berlabel/Berbobot

Graf berlabel/ berbobot adalah graf yang setiap ruasnya mempunyai nilai/bobot berupa bilangan non negatif.Dalam graf berbobot bisa dipakai graf berarah maupun graf tidak berarah.

Contoh :

Gambar 2.7.Graf Berbobot 2.1.5 Subgraf

Definisi 2.4

Misalkan G (V,E) adalah suatu graf.Graf G‘(V‘, E‘) adalah Subgraf bila dan hanya bila:

B D F

C E G

H A

3

19 8

13 3

3

4

2 2

2

12

6


(24)

a. ' V ⊆V

b. '

E ⊆ E

c. Setiap edge dalam H memiliki verteks ujung yang sama dengan edge tersebut

dalam G.

Apabila E‘ mengandung semua ruas di E yang kedua ujungnya di V‘ , maka G‘ adalah Subgraf yang dibentuk oleh V‘

Contoh

Gambar 2.8 Subgraf

(Spanning Subgraph)

e

e e

e

e

C D

A

B

G

e e

A B

D

G’ :

G’ subgraf dari G

e

e e

A B

D

G’ :


(25)

23

2.1.6 Lintasan dan Sirkuit

Definisi 2.5

Misalkan v0dan vn adalah verteks-verteks dalam sebuah graf. Sebuah lintasan dari v0

ke vn dengan panjang n adalah sebuah barisan berselang seling dari n+1 verteks n

dan n edge yang berawal dengan verteks v0 dan berakhir dengan verteks vn,

(v0,e1,v1,e2,v2,...,vn1,en,vn)

dengan edge e1 insiden pada verteks vi1danvi untuk I = 1,2, …,n.

Teorema 2.2

Di dalam suatu graf (baik berarah maupun tidak berarah) dengan n verteks , jika ada suatu lintasan dari verteks v1 ke verteks v2, maka ada suatu lintasan dengan tidak lebih dari n-1 rusuk dari verteks v1 ke verteks v2.

Bukti:

Misalkan ada suatu lintasan dari v1 ke v2. Misalkan pula (v1, … , vi, …,v2) adalah barisan verteks yang ditemui lintasan itu ketika ditelusuri dari v1 dan v2. Jika ada l

buah edge dalam lintasan itu , maka ada l+1 verteks di dalam barisan verteks tersebut.

Agar l lebih besar daripada n-1, harus ada verteks vk yang muncul lebih dari sekali di

dalam barisan itu. Dengan kata lain, barisan verteks itu mempunyai bentuk umum (v1,

… , vk,..., vk,...,v2). Jika edge di dalam lintasan yang membawa vk kembali ke vk

itu dibuang, maka akan diperoleh suatu lintasan dari v1 ke v2 yang memiliki lebih

sedikit rusuk daripada jumlah rusuk semula.Argumentasi dapat diulang sampai ada lintasan dengan n-1 edge atau lebih sedikit lagi.


(26)

Definisi 2.6

Sebuah graf dikatakan tersambung (conected) jika diketahui sembarang verteks v dan w di G, maka terdapat sebuah lintasan dari v ke w.

(a) (b)

Gambar 2.9 Graf terhubung dan Graf tidak terhubung

Definisi 2.7

Misalkan v0dan vn adalah verteks-verteks dalam sebuah graf. Sebuah sirkuit dari v0

ke vn dengan panjang n adalah sebuah barisan berselang seling dari n+1 verteks n

dan n edge yang berawal dengan verteks v0 dan berakhir dengan verteks vn,lalu

kembali lagi ke v0

(v0,e1,v1,e2,v2,...,vn−1,en,vn,e0,v0)

dengan edge e1 insiden pada verteks vi1danvi untuk I = 1,2, …,n.

Lintasan dan Sirkuit Hamilton

Lintasan Hamilton (Sirkuit Hamilton) didefinisikan sebagai suatu lintasan (rangkaian) yang melalui setiap verteks tepat satu kali. Sir Wiliam Hamilton menciptakan


(27)

25

mencari rute pada dodecahedron yang melalui setiap titik sudut sekali dan hanya sekali.

Gambar 2.10 Dodecahedron

Teorema 2.3

Misalkan G sebuah graf linear dengan n verteks.Jika jumlah derajat semua pasangan verteks di dalam G lebih kecil atau sama dengan n-1, maka ada lintasan Hamilton di dalam G.

Bukti:

Pertama tama akan ditunjukkan bahwa G sebuah graf terhubung.Misalkan G

mempunyai dua atau lebih komponen yang tidak terhubungkan.Misalkan v1 sebuah

vertks di dalam satu komponen yang mempunyai n1 verteks dan v2adalah sebuah

verteks di dalam komponen lain yang mempunyai n2verteks. Karena derajat v1 tidak


(28)

tidak lebih dari n1 + n2-2, yang masih lebih kecil dari n-1, dan ini berarti sebuah kontradiksi.

Sekarang akan ditunjukkan bagaimana lintasan Hamilton dapat dibuat setahap demi setahap , mulai dengan lintasan yang terdiri dari satu rusuk.Misalkan ada lintasan dengan p-1 edge, p< n, di dalam G yang bertemu dengan barisan verteks-verteks (v1,v2,...,vp).Jika v1 atau vp berdekatan dengan sebuah verteks yang tidak berada pada lintasan ini, dengan mudah lintasan ini dapat diperluas agar mencakup verteks tadi sehingga memperoleh lintasan dengan p edge. Jika tidak demikian, berarti

1

v dan vp keduanya hanya berdekatan dengan verteks verteks pada lintasan. Dalam

hal demikian, akan ditunjukkan bahwa ada suatu rangkaian yang hanya mengandung

verteks verteks v1,v2,...,vp. Jika v1 berdekatan dengan vp, maka sirkuit

(v1,v2,...,vp,v1) sudah mencukupi.

Lalu misalkan v1 hanya berdekatan dengan

k

i i

i v v

v , ,...,

2

1 , dengan

1

2≤ijp− . Jika vp berdekatan dengan salah satu dari vi1−1,vi2−1,vik−1,katakanlah

dengan vj−1 maka sebagaimana ditunjukkan dalam gambar, sirkuit

(v1,v2,v3,...,vj1,vp,vp1,...,vj,v1) mengandung tepat verteks verteks v1,v2,...,vp. Jika p

v tidak berdekatan dengan salah satu dari 1, 1, 1,

2

1− iik

i v v

v maka vp berdekatan

dengan tidak lebih dari pk−1 buah verteks.Akibatnya, jumlah derajat v1 dan vp


(29)

27

v1 v2 v3 Vj-1 vj

vp

Gambar 2.11 Lintasan

Kemudian ambil sebuah verteks vx yang tidak berada dalam rangkaian ini.Karena

graf G terhubungkan , berarti ada verteks vk yang tidak berada pada rangkaian ini

dengan sebuah edge antara vx dan vk untuk suatu verteks tertentu di dalam

(v1,v2,...,vp), sebagaimana ditunjukkan dalam gambar. Sekarang telah diperoleh

lintasan (vx,vk,vk+1,...,vj1,vp,vp1,...,vj,v1,v2,...,vk1), yang mengandung p edge, sebagaimana ditunjukkan dalam gambar.

v1 v2

vx

Vk-1 vk Vj-1 vj vp

v1 v2

vx

Vk-1 vk Vj-1 vj vp


(30)

Langkah langkah pembuatan ini dapat diulangi sampai diperoleh sebuah lintasan dengan n-1 edge.

2.1.8 Matriks dan Graf

Untuk menyelesaikan suatu permasalahan model graf dengan bantuan komputer, maka graf tersebut disajikan dalam bentuk matriks. Jika A adalah matriks m x n, maka notasi matriksnya dapat ditulis sbb:

            = mn m m n n a a a a a a a a a A        2 1 2 22 21 1 12 11 Definisi 2.8

Suatu matriks A berorde n x n disebut simetris jika AT = A.

Berikut adalah contoh matriks simetris:

          3 5 4 5 1 3 4 3 2 ;           − − − 3 2 2 2 1 1 2 1 0 Definisi 2.9

Transpos dari suatu matriks A berorde m x n adalah matriks B berorde m x n yang didefinisikan oleh:

ij

ji a

b =

Untuk j = 1,2, … ,n dan I = 1,2, …,m.Transpos dari suatu matriks A dinyatakan oleh

T A .


(31)

29

Contoh:

Jika

     = 6 5 4 3 2 1 A maka           = 6 3 5 2 4 1 T A

Matriks-matriks yang dapat menyajikan model graf tersebut antara lain :

• Matriks Sekawan (Incidence)

• Matriks Kedampingan (Adjacency)

Sebagai contoh, untuk graf seperti di bawah ini

Matriks Adjacency

Gambar 2.13.Graf V4

V5

V2 V3

V1 e6 e5 e4 e3 e2 e1 e8 e7

V1 V2 V3 V4 V5

V1 0 1 1 1 1

V2 1 0 1 0 0

V3 1 1 0 1 1


(32)

Matriks Incidence :

Teorema 2.4

Jika A adalah matriks kedampingan dari sebuah graf sederhana, entri ke-ij dari An

sama dengan banyaknya lintasan dengan panjang n untuk verteks j, n=1,2,…

Bukti

Dengan menggunakan induksi, pada kasus n=1,A1 adalah A. Entri ke-ij adalah 1 jika

terdapat sebuah edge dari I ke j, yang merupakan sebuah lintasan dengan panjang 1, dan 0 jika tidak terdapat edge. Sehingga teorema tersebut benar untuk kasus n =1.Langkah dasar telah terbukti.

Asumsikan bahwa teorema tersebut benar untuk n, maka

A A An+1 = n

Sehingga entri ke-I dalam An+1 diperoleh dengan saling mengalikan unsur unsur pada

baris ke-I dari An dengan unsur unsur pada kolom ke-k dari A dan menjumlahkannya.

e1 e2 e3 e4 e5 e6 e7 e8

V1 1 1 0 1 1 0 0 0

V2 1 0 1 0 0 0 0 0

V3 0 1 1 0 0 1 1 0

V4 0 0 0 1 0 1 0 1


(33)

31

Kolom ke-k dari A

Baris ke-i dari

                    m j m j n t t t t s s s s A   2 1 2

1, ,..., ,...,

(

=s1t1 +s2t2 +...+sjtj +...+smtm

=entri ke-ik dalam An+1

Menurut induksi, sj menyatakan banyaknya lintasan dengan panjang n dari I ke j

dalam graf G. Maka tjdapat 0 atau 1. Jika tj adalah 0, maka tidak terdapat edge dari j

ke k, sehingga terdapat sjtj =0 lintasan dengan panjang n+1 dari i ke k, dimana edge

terakhirnya adalah (j,k). Jika tj adalah 1, maka terdapat sebuah edge dari verteks j ke

verteks k (lihat gambar). Karena terdapat sj lintasan dengan panjang n dari verteks i

ke verteks j, maka terdapat sjtj =sj lintasan dengan panjang n+1 dari i ke k, yang edge terakhirnya adalah (j,k) (lihat gambar).

i j

k


(34)

Dengan menjumlahkan semua j, maka akan dihitung semua lintasan dengan panjang

n+1 dari I ke k.ehingga entri ke-i dalam An+1 menyatakan banyaknya lintasan dengan

panjang n+1 dari i ke k sehingga langkah induktif terbukti. Menurut Prinsip induksi matematika, teorema tersebut berlaku.

2.1.9 Graf Planar

Definisi 2.10

Sebuah Graf adalah planar jika graf tersebut dapat digambar dalam bidang datar dengan rusuk-rusuknya tidak bersilangan.

Jika sebuah graf planar tersambung digambar pada bidang datar, bidang

tersebut dibagi menjadi daerah-daerah berbatasan yang disebut muka (face) . Sebuah

muka ditandai dengan siklus yang membentuk batasnya.Sebagai contoh, dalam graf pada gambar, muka A dibatasi oleh siklus (5,2,3,4,5) dan muka C dibatasi oleh siklus (1,2,5,1).Muka luar D dianggap dibatasi oleh siklus (1,2,3,4,6,1).

6

1 2

3 4

5

A B

C D


(35)

33

Graf pada gambar mempunyai f = 4 muka, e = 8 rusuk, dan v = 6 verteks.Perhatikan bahwa f, e, dan v memenuhi persamaan

2

+ − =e v

f Persamaan 1

Pada tahun 1752, Euler telah membuktikan bahwa persamaan 1 berlaku untuk sembarang graf planar tersambung.

2.2 Program Dinamik

Program dinamik adalah salah satu metode yang digunakan untuk mengoptimalkan proses pengambilan keputusan secara bertahap ganda.Pendekatan program dinamik didasarkan pada prinsip optimisasi Richard Bellman yang dinyatakan sebagai berikut (Siagian, P.,1987):

“Suatu kebijakan optimal mempunyai sifat bahwa apapun keadaan dan keputusan awal, keputusan berikutnya harus membentuk suatu kebijakan optimal dengan memperhatikan keadaan dari hasil keputusan pertama”.

Hal ini berarti:

1) Pengambil keputusan diperkenankan untuk mengambil keputusan yang layak

bagi tahap persoalan yang tersisa, tanpa melihat kembali keputusan pada tahap-tahap terdahulu.


(36)

2) Dalam rangkaian keputusan yang telah diambil, hasil dari masing-masing tahap tergantung pada hasil keputusan pada tahap sebelumnya.

2.2.1 Karakteristik Program Dinamik

1) Permasalahannya dapat dibagi menjadi tahapan dengan keputusan

kebijakan pada tiap tahap

2) Tiap tahap mempunyai sejumlah kondisi terkait

3) Pengaruh keputusan kebijakan pada setiap tahapan adalah transformasi

kondisi saat ini kepada sebuah kondisi yang terkait dengan awal dari tahapan berikutnya

4) Prosedur penyelesaian dirancang untuk mendapatkan kebijakan optimum

untuk seluruh tahapan yaitu dengan membuat kebijakan optimum untuk setiap tahap pada setiap kemungkinan kondisi

5) Pada suatu kondisi, sebuah kebijakan optimum untuk tahapan selanjutnya

tidak terkait oleh kebijakan optimum dari tahapan sebelumnya.Jadi keputusan optimum yang diambil hanya tergantung pada kondisi sekarang bukan dari bagaimana kita sampai pada kondisi sekarang. Inilah yang dinamai prinsip optimum dari Program Dinamik.

6) Prosedur penyelesaian mulai dengan mendapatkan solusi optimum untuk

tahap terakhir.

7) Adanya hubungan rekursif yang mengidentifikasikan keputusan terbaik

untuk setiap status pada tahap k memberikan keputusan terbaik untuk

setiap status pada tahap k + 1.

2.2.2 Pendekatan Program Dinamik


(37)

35

1) Program dinamik maju (forward atau up down). Misalkan x1,x2,...,xn

menyatakan peubah (variable) keputusan yang harus dibuat masing masing untuk tahap 1,2,…,n. Program dinamis bergerak mulai dari tahap 1

terus maju ke tahap 2, 3, dan seterusnya sampai tahap n.Runtutan peubah

keputusan adalah x1,x2,...,xn.

) ,

( 1 1

1 s x

f f2(s2,x2) . . . fn(sn,xn)

Gambar 2.16 Program Dinamik Maju

2) Program dinamik mundur (backward atau bottom up).Proram dinamis ini

merupakan kebalikan dari program dinamis maju.Program dinamis ini bergerak mulai dari tahap n terus mundur ke tahap n-1, n-2, dan seterusnya sampai tahap 1.Runtutan peubah keputusan adalah xn,xn1,...,x1

fn(sn,xn) … f2(s2,x2) f1(s1,x1)

Gambar 2.17 Program Dinamik Mundur

Tahap n … Tahap2 Tahap1


(38)

2.2.3 Pernyataan Matematis Program Dinamik

Masalah pogram dinamik dapat dinyatakan dalam bentuk umum:

Opt :

= = n j

j j

n X r X

f 1 ) ( ) (

dengan batasan

= = n j j X X 1

dan Xj ≥0 (j =1,2,...,n)

dimana: ) (X

fn = jarak total dari seluruh kegiatan (tahap)

j

X = kota yang dialokasikan ke kegiatan ke-j

) ( j

j X

r = jarak dari kegiatan ke-j

X = kota yang tersedia.

Dalam masalah umum diatas, jarak optimum dari seluruh kegiatan ditentukan oleh

kota X yang tersedia dan jarak dari kegiatan – kegiatan individual rj(Xj). Oleh

sebab itu, jarak keseluruhan dari µ dari kegiatan dapat dinyatakan oleh suatu urutan,

fungsi–fungsi sebagai berikut :

n n

n X optF X X X X

f ( )= ( 1, 2,..., 1, )

Kota total yang tersedia X harus dialokasikan secara berurutan ke semua kegiatan-kegiatan pada tahap-tahap yang berbeda, untuk mencapai hasil yang maksimum. Bila

dialokasikan sejumlah Xn dari kota ke kegiatan ke n di mana 0≤ XnX,akan


(39)

37

((XXn)kota yang tersedia untuk (n-1) kegiatan. Bila jarak total dari (n-1) kegiatan ditunjukkan oleh :

− =

− − = ≥

1 1

1( ) ( ) 0

n j j j j n

n X X r X X

f

Jarak total dariµ kegiatan dapat dinyatakan sebagai

) (

) ( )

( n n n 1 n

n X r X f X X

f = +

Kuantitas kota optimal yang dialokasikan ke n kegiatan, Xn, menentukan nilai

)

(XXn , dan hal ini sebaliknya akan menentukan nilai maksimum persamaan jarak

total.Oleh sebab itu, masalah program dinamik dapat dinyatakan dalam bentuk fungsi umum sebagai ,... 3 , 2 )} ( ) ( { )

(X =opt r X + f 1 XX n=

fn n n n n

Persamaan ini disebut sebagai recursive equation atau recurrence relations

2.2.4 Formulasi Program Dinamik Untuk Persoalan TSP

Misalkan G = (V, E) adalah graf lengkap berarah dengan sisi-sisi yang diberi


(40)

dan n > 1. Setiap simpul diberi nomor 1, 2, …, n.Asumsikan perjalanan (tur) dimulai dan berakhir pada simpul 1. Setiap tur pasti terdiri dari sisi (1, k) untuk beberapa kV

– {1} dan sebuah lintasan dari simpul k ke simpul 1.

Lintasan dari simpul k ke simpul 1 tersebut melalui setiap simpul di dalam V

{1, k} tepat hanya sekali. Prinsip Optimalitas: jika tur tersebut optimal maka lintasan

dari simpul k ke simpul 1 juga menjadi lintasan k ke 1 terpendek yang melalui

simpul-simpul di dalam V – {1, k}. Misalkan f(i, S) adalah bobot lintasan terpendek yang

berawal pada simpul i, yang melalui semua simpul di dalam S dan berakhir pada

simpul 1. Nilai f(1, V – {1}) adalah bobot tur terpendek. Berdasarkan prinsip

optimalitas tersebut, diperoleh hubungan rekursif sebagai berikut:

(1 , {1}) min{1 ( , {1, })}

2 c f k V k

V

f k

n

k + −

= −

≤ (1)

Dengan merampatkan persamaan (1), diperoleh f(i,∅)=ci,1 , 2 ≤in (basis)

})} { , ( { min ) ,

(i S c f j S j

f ij

S

j + −

=

∈ (rekurens) (2)

Persamaan (1) dapat dipecahkan untuk memperoleh {1}) jika kita mengetahui f(k, V

{1, k}) untuk semua pilihan nilai k. Nilai f tersebut dapat diperoleh dengan


(41)

39

Kemudian gunakan persamaan (2) untuk memperoleh f(i, S) untuk S = 1,

kemudian dapat diperoleh f(i, S) untuk S= 2, dan seterusnya. Bila S= n – 1, nilai i

dan S ini diperlukan sedemikian sehingga i≠ 1, 1 ∉S dan iS.

Pada masalah TSP dengan menggunakan program dinamik perlu diperhatikan beberapa hal yaitu:

1.Tahap (stage) adalah jalur (jalan) yang harus dilalui dari satu kota agar sampai ke kota berikutnya.Dalam suatu tahap akan terdapat beberapa alternatif pilihan jalan yang dapat dilalui.

2.Status (state) adalah kota awal pada setiap tahap.

3.Variabel keputusan adalah jalur atau jalan yang harus diambil


(42)

3.1 Contoh Perjalanan Seorang Salesman

Seorang salesman akan melakukan perjalanan dari kota a yang harus melalui

seluruh kota dan kembali lagi ke kota a.Artinya setelah salesman tersebut melalui

seluruh kota ia harus kembali lagi ke kota awal keberangkatan yaitu kota a.Dimana

kota yang satu terhubung dengan kota yang lainnya.Adapun jarak kota-kota tersebut diberikan sbb (satuan dalam km) :

0 5 5 9 6 6 5 0 7 4 10 4 5 7 0 5 8 3 9 4 5 0 3 7 6 10 8 3 0 5 6 4 3 7 5 0 f e d c b a f e d c b a Kota a b c d e f 5 7 3 4 6 3 8 10 6 5 4 9 7 5 5


(43)

41

Carilah jalur terpendek yang harus ditempuh salesman tersebut dengan menggunakan metode program dinamik.

Penyelesaian:

Dari contoh soal dapat diketahui bahwa kota awal adalah kota a.Dari kota a, salesman tersebut akan mencoba mendatangi kota selanjutnya yang terhubung dengan kota a.Dengan begitu, inilah yang menjadi tahap pertama.Setelah dari kota a kemungkinan salesman tersebut sekarang berada di kota b, c , d , e , ataupun di kota f. Dari kota tersebut ia harus melanjutkan perjalanan kembali ke kota berikutnya dengan melewati jalur yang ada.Maka inilah yang akan menjadi tahap kedua.Dan begitu seterusnya hingga semua kota dilewati dan kembali ke kota a.

Tahap I :

1 , ) , (i a ci

f = , i= nama kota

Maka didapat:

f(b,a) = 5

f(c,a) = 7

f(d,a) = 3

f(e,a) = 4

f(f,a) = 6

Tahap pertama ada 5 alternatif jalan yang dapat dilalui, dengan kota a sebagai statusnya.


(44)

Tahap II :

})} { , ( { min ) ,

(i S c f j S j

f ij

S

j + −

=

∈ untuk S= 1

Maka diperoleh:

f(b,c) = minCbc+f(c,a) = 3+7 = 10

f(b,d) = minCbd +f(d,a) = 8+3 = 11

f(b,e) = minCbe+f(e,a) = 10+4 = 14

f(b,f) = minCbf +f(f,a) = 6+6 = 12

f(c,b) =minCcb+f(b,a) = 3+5 = 8

f(c,d) = minCcd+f(d,a) = 5+3 = 8

f(c,e) = minCce+f(e,a) = 4+4 = 8

f(c,f) = minCcf +f(f,a) = 9+6 = 15

f(d,b) = minCdb+f(b,a) = 8+5 = 13

f(d,c) = minCdc+f(c,a) = 5+7 =12

f(d,e) = minCde+f(e,a) = 7+4 =11

f(d,f) = minCdf+f(f,a) = 5+6 =11

f(e,b) = minCeb+ f(b,a) = 10+5 =15


(45)

43

f(e,d) = minCed+f(d,a) = 3+4 = 7

f(e,f) = minCef +f(f,a) = 5+6 = 11

f(f,b) = minCfb+f(b,a) = 6+5 = 11

f(f,c) = minCfc+f(c,a) = 9+7 = 16

f(f,d) = minCfd+f(d,a) = 5+3 =8 f(f,e) = minCfe+f(e,a) = 5+4 = 9

Tahap kedua ada 20 alternatif jalan yang dapat dilalui dengan kota (b,c,d,e,f) sebagai statusnya.

Tahap III :

})} { , ( { min ) ,

(i S c f j S j

f ij

S

j + −

=

untuk S= 2 dan i≠ a, a ∉S dan aS.

maka diperoleh:

f(b,{c,d}) = min[Cbc+f(c,d) ; Cbd +f(d,c)] = min [3+11 ; 8+12] = 14

f(b,{c,e}) = min[Cbc+f(c,e) ;Cbe+f(e,c)] = min [3+8 ; 10+11] = 11

f(b,{c,f}) = min [Cbc+f(c,f) ;Cbf +f(f,c)] = min [3+15 ; 6+16] = 18


(46)

= min [8+11 ; 10+7] = 17

f(b,{d,f}) = min [Cbd+f(d,f) ;Cbf+f(f,d)] = min [8+11 ; 6+8] = 14

f(b,{e,f}) = min[Cbe+f(e,f) ;Cbf +f(f,e)]

= min [10+11 ; 6+9] = 15

f(c,{b,d}) = min[Ccb+f(b,d) ;Ccd+f(d,b)] = min [3+11 ; 5+13] = 14

f(c,{b,e}) = min[Ccb+f(b,e) ;Cce+f(e,b)] = min [3+14 ; 4+15] = 17

f(c,{b,f}) = min[Ccb+f(b,f) ; Ccf+f(f,b)] = min[3+12 ; 9+11] s= 15

f(c,{d,e}) = min[Ccd+f(d,e) ; Cce+f(e,d)] = min[5+11 ; 4+7] = 11

f(c,{d,f}) = min[Ccd+f(d,f) ; Ccf+f(f,d)] = min[5+11 ; 9+8] = 16

f(c,{e,f}) = min[Cce+f(e,f) ; Ccf +f(f,e)]

= min[4+15 ; 9+9] = 18

f(d,{b,c}) = min[Cdb+f(b,c) ; Cdc+f(c,b)] = min[ 8+10 ; 5+8] = 13

f(d,{b,e}) = min[Cdb+f(b,e) ; Cde+f(e,b)] = min[8+14 ; 7+15] = 22


(47)

45

f(d,{b,f}) = min[Cdb+f(b,f) ; Cdf+f(f,b)]

= min[8+12 ; 5+11] = 16

f(d,{c,e}) = min[Cdc+f(c,e) ;Cde+f(e,c)] = min[5+8 ; 3+11] = 13

f(d,{c,f}) = min[Cdc+f(c,f) ;Cdf +f(f,c)] = min[5+15 ; 7+16] = 20

f(d,{e,f}) = min[Cde+f(e,f) ; Cdf+f(f,e)] = min[7+15 ; 5+9] = 14

f(e,{b,c}) = min[Ceb+f(b,c) ; Cec+f(c,b)] = min[ 10+10 ; 4+8] = 12

f(e,{b,d}) = min[Ceb+f(b,d) ; Ced+f(d,b)] = min[10+11 ; 7+13] = 20

f(e,{b,f}) = min[Ceb+f(b,f) ; Cef+f(f,b)] = min[10+12 ; 5+11] = 16

f(e,{c,d}) = min[Cec+f(c,d) ;Ced+f(d,c)] = min[4+11 ; 7+12] = 15

f(e,{c,f}) = min[Cec+f(c,f) ;Cef+f(f,c)] = min[4+15 ; 5+16] = 19

f(e,{d,f}) = min[Ced+f(d,f) ; Cef+f(f,d)] = min[7+11 ; 5+8] = 13


(48)

= min[ 6+10 ; 9+8] = 16

f(f,{b,d}) = min[Cfb+f(b,d) ; Cfd+f(d,b)] = min[6+11 ; 5+13] = 17

f(f,{b,e}) = min[Cfb+f(b,e) ; Cfe+f(e,b)]

= min[6+14 ; 5+15] = 20

f(f,{c,d}) = min[Cfc+f(c,d) ;Cfd+f(d,c)]

= min[9+11 ; 5+12] = 17

f(f,{c,e}) = min[Cfc+f(c,e) ;Cfe+f(e,c)

= min[9+8 ; 5+11] = 16

f(f,{d,e}) = min[Cfd+f(d,e) ; Cfe+f(e,d)] = min[5+11 ; 5+7] = 12

Tahap ketiga ada 30 alternatif jalan yang dapat dilalui dengan kota (b,c,d,e,f) sebagai statusnya.

Tahap IV

})} { , ( { min ) ,

(i S c f j S j

f ij

S

j + −

=

untuk S= 3 dan i≠ a, a ∉S dan aS.

maka diperoleh:

f(b,{c,d,e}) = min[Cbc+f(c,d,e) ; Cbd+f(d,c,e) ; Cbe+f(e,c,d)] = min[3+11 ; 8+13 ; 10+15] = 14


(49)

47

f(b,{c,d,f}) = min[Cbc+f(c,d,f) ; Cbd+f(d,c,f) ; Cbf +f(f,c,d)]

= min[3+16 ; 8+20 ; 6+17] = 19

f(b,{c,e,f}) = min[Cbc+f(c,e,f) ; Cbe+f(e,c,f) ; Cbf +f(f,c,e)] = min[3+18 ; 10+19 ; 6+16] = 21

f(b,{d,e,f}) = min[Cbd+f(d,e,f) ; Cbe+f(e,d,f) ; Cbf +f(f,d,e)]

= min[8+14 ; 10+13 ; 6+12] = 18

f(c,{b,d,e}) = min[Ccb+f(b,d,e) ; Ccd+f(d,b,e) ; Cce+f(e,b,d)] = min[3+17 ; 5+22 ; 4+20] = 20

f(c,{b,d,f}) = min[Ccb+f(b,d,f) ; Ccd+f(d,b,f) ; Ccf +f(f,b,d)] = min[3+14 ; 5+16 ; 9+17] = 17

f(c,{b,e,f}) = min[Ccb+f(b,e,f) ; Cce+f(e,b,f) ; Ccf+f(f,b,e)]

= min[3+15 ; 4+16 ; 9+20] = 18

f(c,{d,e,f}) = min[Ccd+f(d,e,f) ; Cce+f(e,d,f) ; Ccf+f(f,d,e)]

= min[5+14 ; 4+13 ; 9+12] = 17

f(d,{b,c,e}) = min[Cdb+f(b,c,e) ; Cdc+f(c,b,e) ; Cde+f(e,b,c)] = min[8+11 ; 5+17 ; 7+12] = 19

f(d,{b,c,f}) = min[Cdb+f(b,c,f) ; Cdc+f(c,b,f) ; Cdf+f(f,b,c)] = min[8+18 ; 5+15 ; 5+16] = 20

f(d,{b,e,f}) = min[Cdb+f(b,e,f) ; Cde+f(e,b,f) ; Cdf+f(f,b,e)] = min[8+15 ; 7+16 ; 5+20] = 23


(50)

= min[5+18 ; 7+19 ; 5+16] = 21

f(e,{b,c,d}) = min[Ceb+f(b,c,d) ; Cec+f(c,b,d) ; Ced+f(d,b,c)] = min[10+14 ; 4+14 ; 7+13] = 18

f(e,{b,c,f}) = min[Ceb+f(b,c,f) ; Cec+f(c,b,f) ; Cef+f(f,b,c)] = min[10+18 ; 4+15 ; 5+16] = 19

f(e,{b,d,f}) = min[Ceb+f(b,d,f) ; Cec+f(d,b,f) ; Cef+f(f,b,d)] = min[10+14 ; 4+16 ; 5+17] = 20

f(e,{c,d,f}) = min[Cec+f(c,d,f) ; Cec+f(d,c,f) ; Cef +f(f,c,d)] = min[4+16 ; 4+20 ; 5+17] = 20

f(f,{b,c,d}) = min[Cfb+f(b,c,d) ; Cfc+f(c,b,d) ; Cfd+f(d,b,c)] = min[6+14 ; 9+14 ; 5+13] = 18

f(f,{b,c,e}) = min[Cfb+f(b,c,e) ; Cfc+f(c,b,e) ; Cfe+f(e,b,c)]

= min[6+11 ; 9+17 ; 5+12] = 17

f(f,{b,d,e}) = min[Cfb+f(b,d,e) ; Cfd+f(d,b,e) ; Cfe+f(e,b,d)] = min[6+17 ; 5+22 ; 5+20] = 23

f(f,{c,d,e}) = min[Cfc+f(c,d,e) ; Cfd+f(d,c,e) ; Cfe+f(e,c,d)] = min[9+11 ; 5+13 ; 5+15] = 18

Tahap keempat ada 20 alternatif jalan yang dapat dilalui dengan kota (b,c,d,e,f) sebagai statusnya.


(51)

49

Tahap V

})} { , ( { min ) ,

(i S c f j S j

f ij

S

j + −

=

untuk S= 3 dan i≠ a, a ∉S dan aS. maka diperoleh:

f(b,{c,d,e,f}) = min[Cbc+f(c,d,e,f) ; Cbd+f(d,c,e,f) ; Cbe+f(e,c,d,f) ; Cbf+f(f,c,d,e)] = min[3+17 ; 8+20 ; 10+21 ; 6+18] = 20

f(c,{b,d,e,f}) = min[Ccb+f(b,d,e,f) ; Ccd+f(d,b,e,f) ; Cce+f(e,b,d,f) ; Ccf+f(f,b,d,e)]

= min[3+18 ; 5+23 ; 4+20 ; 9+23] = 21

f(d,{b,c,e,f}) = min[Cdb+f(b,c,e,f) ; Cdc+f(c,b,e,f) ; Cde+f(e,b,c,f) ; Cdf+f(f,b,c,e)]

= min[8+21 ; 5+18 ; 7+19 ; 5+17] = 22

f(e,{b,c,d,f}) = min[Ceb+f(b,c,d,f) ; Cec+f(c,b,d,f) ; Ced+f(d,b,c,f) ; Cef+f(f,b,c,d)] = min[10+19 ; 4+17 ; 7+20 ; 5+18] = 22

f(f,{b,c,d,e})= min[Cfb+f(b,c,d,e) ; Cfc+f(c,b,d,e) ; Cfd+f(d,b,c,e) ; Cfe+f(e,b,c,d)] = min[6+14 ; 6+19 ; 9+20 ; 5+18] = 20

Tahap kelima ada 5 alternatif jalan yang dapat dilaluinya dengan kota (b,c,d,e,f) sebagai statusnya.

Dengan menggunakan persamaan 1 diperoleh :

f(a,{b,c,d,e,f}) = min [Cab+f(b,c,d,e,f) ; Cac+f(b,c,d,e,f) ; Cad+f(d,b,c,d,e,f) ;

ae

C +f(e,b,c,d,f) ; Caf+f(f,b,c,d,e)] = min [5+20 ; 7+21 :3 +22 ; 4+22 ; 6+20] = 25


(52)

Jadi, bobot perjalanan yang berawal dari kota a dan berakhir di kota a adalah 25 km(ada 2 lintasan yang dapat dilalui).Lintasan yang dilalui di dalam tur tersebut dapat direkonstruksi jika ada disimpan pada setiap f(i, S) nilai j yang meminimumkan ruas

kanan persamaan (2). Misalkan J(i, S) adalah nilai yang dimaksudkan tersebut. Maka,

J(a, {b, c,d,e,f}) = b dan d. Jadi, tur mulai dari simpul a selanjutnya ke kota b atau d. jika pilihan perjalanan yang diinginkan kota b maka perjalanan akan diteruskan ke kota selanjutnya yang diperoleh dari f(b,{c,d,e,f}) yang mana J(b,{c,d,e,f}) = c.

Kota berikutnya diperoleh dari f(c,{d,e,f}) yang mana J(c,{d,e,f}) = e.Dari kota e akan diperoleh perjalanan berikutnya dari f(e,{d,f}), dimana J(e,{d,f}) = f.Dan kota terakhir yang dikunjungi akan diperoleh dari f(f,d), dimana J(f,d) =

d.Sehingga,perjalanan yang optimal adalah a→b→c→e→f→d→a dengan panjang

perjalanan 25 km.

Dengan cara yang sama lintasan kedua yang dapat dipilih dengan panjang

perjalanan sama seperti lintasan pertama adalah a→d→f→b→c→e→a.


(53)

BAB 4

KESIMPULAN DAN SARAN

4.1 Kesimpulan

Berdasarkan uraian pada bab sebelumnya dapat diambil beberapa kesimpulan sebagai berikut :

1.Pada program dinamik, bila nilai yang meminimumkan di dalam satu state pada suatu tahap adalah sama, maka harus dipilih nilai yang meminimumkan pada tahap sebelumnya.

2.Untuk kasus TSP, tahap dan keadaan pada program dinamik maju maupun pada program dinamik mundur adalah sama karena kota awal dan kota akhirnya adalah sama.

4.2 Saran

TSP dapat diselesaikan dengan metode program dinamik namun disarankan kepada pembaca agar tidak hanya terpaku pada metode penyelesaian ini saja karena masih banyak metode lain yang dapat digunakan.


(54)

Bellman, R.E dan Dreyfuss, S.E.1962.Applied Dynamic Programming.New Yersey

Johnsonbaugh Richard.1998.Matematika Diskrit.Jakarta:Prenhallindo

Leon, J Steven.2001.Aljabar Linear dan Aplikasinya.Jakarta:Erlangga.

Liu, C.L. 1995. Dasar-Dasar Matematika Diskret. Jakarta : PT. Gramedia

Marhaendi.2009.Jurnal Graf dan Analisis Algoritma.Universitas Guna

Darma.Tanggal Akses 10 Oktober 2009.

Munir Rinaldi.2004.Jurnal Program Dinamis.Institut Teknologi Bandung.Tanggal

akses 22 September 2009.

Nasution, Rosalina Paramitha.Jurnal Penerapan Algoritma Program Dinamis Untuk

Mencari Pohon Merentang Minimum.Tanggal akses 22 September 2009.

Siagian P.2006.Penelitian Operasional Teori dan Praktek.Jakarta : Universitas Indonesia

Siang, J.J. 2002. Matematika Diskrit Dan Aplikasinya Pada Ilmu Komputer. Yogyakarta : Andi Offset

Taha, Hamdy. 1996. Riset Operasi. Jakarta: Binarupa Aksara.


(1)

f(b,{c,d,f}) = min[Cbc+f(c,d,f) ; Cbd+f(d,c,f) ; Cbf +f(f,c,d)]

= min[3+16 ; 8+20 ; 6+17] = 19

f(b,{c,e,f}) = min[Cbc+f(c,e,f) ; Cbe+f(e,c,f) ; Cbf +f(f,c,e)] = min[3+18 ; 10+19 ; 6+16] = 21

f(b,{d,e,f}) = min[Cbd+f(d,e,f) ; Cbe+f(e,d,f) ; Cbf +f(f,d,e)]

= min[8+14 ; 10+13 ; 6+12] = 18

f(c,{b,d,e}) = min[Ccb+f(b,d,e) ; Ccd+f(d,b,e) ; Cce+f(e,b,d)]

= min[3+17 ; 5+22 ; 4+20] = 20

f(c,{b,d,f}) = min[Ccb+f(b,d,f) ; Ccd+f(d,b,f) ; Ccf +f(f,b,d)] = min[3+14 ; 5+16 ; 9+17] = 17

f(c,{b,e,f}) = min[Ccb+f(b,e,f) ; Cce+f(e,b,f) ; Ccf+f(f,b,e)]

= min[3+15 ; 4+16 ; 9+20] = 18

f(c,{d,e,f}) = min[Ccd+f(d,e,f) ; Cce+f(e,d,f) ; Ccf+f(f,d,e)]

= min[5+14 ; 4+13 ; 9+12] = 17

f(d,{b,c,e}) = min[Cdb+f(b,c,e) ; Cdc+f(c,b,e) ; Cde+f(e,b,c)]

= min[8+11 ; 5+17 ; 7+12] = 19

f(d,{b,c,f}) = min[Cdb+f(b,c,f) ; Cdc+f(c,b,f) ; Cdf+f(f,b,c)] = min[8+18 ; 5+15 ; 5+16] = 20


(2)

= min[5+18 ; 7+19 ; 5+16] = 21

f(e,{b,c,d}) = min[Ceb+f(b,c,d) ; Cec+f(c,b,d) ; Ced+f(d,b,c)]

= min[10+14 ; 4+14 ; 7+13] = 18

f(e,{b,c,f}) = min[Ceb+f(b,c,f) ; Cec+f(c,b,f) ; Cef+f(f,b,c)] = min[10+18 ; 4+15 ; 5+16] = 19

f(e,{b,d,f}) = min[Ceb+f(b,d,f) ; Cec+f(d,b,f) ; Cef+f(f,b,d)] = min[10+14 ; 4+16 ; 5+17] = 20

f(e,{c,d,f}) = min[Cec+f(c,d,f) ; Cec+f(d,c,f) ; Cef +f(f,c,d)] = min[4+16 ; 4+20 ; 5+17] = 20

f(f,{b,c,d}) = min[Cfb+f(b,c,d) ; Cfc+f(c,b,d) ; Cfd+f(d,b,c)] = min[6+14 ; 9+14 ; 5+13] = 18

f(f,{b,c,e}) = min[Cfb+f(b,c,e) ; Cfc+f(c,b,e) ; Cfe+f(e,b,c)]

= min[6+11 ; 9+17 ; 5+12] = 17

f(f,{b,d,e}) = min[Cfb+f(b,d,e) ; Cfd+f(d,b,e) ; Cfe+f(e,b,d)] = min[6+17 ; 5+22 ; 5+20] = 23

f(f,{c,d,e}) = min[Cfc+f(c,d,e) ; Cfd+f(d,c,e) ; Cfe+f(e,c,d)] = min[9+11 ; 5+13 ; 5+15] = 18

Tahap keempat ada 20 alternatif jalan yang dapat dilalui dengan kota (b,c,d,e,f) sebagai statusnya.


(3)

Tahap V })} { , ( { min ) ,

(i S c f j S j

f ij

S

j + −

=

untuk S= 3 dan i≠ a, a ∉S dan aS. maka diperoleh:

f(b,{c,d,e,f}) = min[Cbc+f(c,d,e,f) ; Cbd+f(d,c,e,f) ; Cbe+f(e,c,d,f) ; Cbf+f(f,c,d,e)] = min[3+17 ; 8+20 ; 10+21 ; 6+18] = 20

f(c,{b,d,e,f}) = min[Ccb+f(b,d,e,f) ; Ccd+f(d,b,e,f) ; Cce+f(e,b,d,f) ; Ccf+f(f,b,d,e)]

= min[3+18 ; 5+23 ; 4+20 ; 9+23] = 21

f(d,{b,c,e,f}) = min[Cdb+f(b,c,e,f) ; Cdc+f(c,b,e,f) ; Cde+f(e,b,c,f) ; Cdf+f(f,b,c,e)]

= min[8+21 ; 5+18 ; 7+19 ; 5+17] = 22

f(e,{b,c,d,f}) = min[Ceb+f(b,c,d,f) ; Cec+f(c,b,d,f) ; Ced+f(d,b,c,f) ; Cef+f(f,b,c,d)] = min[10+19 ; 4+17 ; 7+20 ; 5+18] = 22

f(f,{b,c,d,e})= min[Cfb+f(b,c,d,e) ; Cfc+f(c,b,d,e) ; Cfd+f(d,b,c,e) ; Cfe+f(e,b,c,d)] = min[6+14 ; 6+19 ; 9+20 ; 5+18] = 20

Tahap kelima ada 5 alternatif jalan yang dapat dilaluinya dengan kota (b,c,d,e,f) sebagai statusnya.

Dengan menggunakan persamaan 1 diperoleh :


(4)

Jadi, bobot perjalanan yang berawal dari kota a dan berakhir di kota a adalah 25 km(ada 2 lintasan yang dapat dilalui).Lintasan yang dilalui di dalam tur tersebut dapat direkonstruksi jika ada disimpan pada setiap f(i, S) nilai j yang meminimumkan ruas

kanan persamaan (2). Misalkan J(i, S) adalah nilai yang dimaksudkan tersebut. Maka,

J(a, {b, c,d,e,f}) = b dan d. Jadi, tur mulai dari simpul a selanjutnya ke kota b atau d. jika pilihan perjalanan yang diinginkan kota b maka perjalanan akan diteruskan ke kota selanjutnya yang diperoleh dari f(b,{c,d,e,f}) yang mana J(b,{c,d,e,f}) = c.

Kota berikutnya diperoleh dari f(c,{d,e,f}) yang mana J(c,{d,e,f}) = e.Dari kota e akan diperoleh perjalanan berikutnya dari f(e,{d,f}), dimana J(e,{d,f}) = f.Dan kota terakhir yang dikunjungi akan diperoleh dari f(f,d), dimana J(f,d) =

d.Sehingga,perjalanan yang optimal adalah a→b→c→e→f→d→a dengan panjang

perjalanan 25 km.

Dengan cara yang sama lintasan kedua yang dapat dipilih dengan panjang

perjalanan sama seperti lintasan pertama adalah a→d→f→b→c→e→a.


(5)

KESIMPULAN DAN SARAN

4.1 Kesimpulan

Berdasarkan uraian pada bab sebelumnya dapat diambil beberapa kesimpulan sebagai berikut :

1.Pada program dinamik, bila nilai yang meminimumkan di dalam satu state pada suatu tahap adalah sama, maka harus dipilih nilai yang meminimumkan pada tahap sebelumnya.

2.Untuk kasus TSP, tahap dan keadaan pada program dinamik maju maupun pada program dinamik mundur adalah sama karena kota awal dan kota akhirnya adalah sama.

4.2 Saran

TSP dapat diselesaikan dengan metode program dinamik namun disarankan kepada pembaca agar tidak hanya terpaku pada metode penyelesaian ini saja karena masih banyak metode lain yang dapat digunakan.


(6)

DAFTAR PUSTAKA

Bellman, R.E dan Dreyfuss, S.E.1962.Applied Dynamic Programming.New Yersey

Johnsonbaugh Richard.1998.Matematika Diskrit.Jakarta:Prenhallindo

Leon, J Steven.2001.Aljabar Linear dan Aplikasinya.Jakarta:Erlangga.

Liu, C.L. 1995. Dasar-Dasar Matematika Diskret. Jakarta : PT. Gramedia

Marhaendi.2009.Jurnal Graf dan Analisis Algoritma.Universitas Guna

Darma.Tanggal Akses 10 Oktober 2009.

Munir Rinaldi.2004.Jurnal Program Dinamis.Institut Teknologi Bandung.Tanggal

akses 22 September 2009.

Nasution, Rosalina Paramitha.Jurnal Penerapan Algoritma Program Dinamis Untuk

Mencari Pohon Merentang Minimum.Tanggal akses 22 September 2009.

Siagian P.2006.Penelitian Operasional Teori dan Praktek.Jakarta : Universitas Indonesia

Siang, J.J. 2002. Matematika Diskrit Dan Aplikasinya Pada Ilmu Komputer. Yogyakarta : Andi Offset

Taha, Hamdy. 1996. Riset Operasi. Jakarta: Binarupa Aksara.