3
BAB 2
LANDASAN TEORI
2.1.Konsep Dasar Graf
Definisi 2.1.1 Graf G didefinisikan sebagai pasangan himpunan (V, E), yang dalam hal ini:
V = himpunan tidak kosong dari simpul-simpul (vertices atau node) ={v1, v2, …, vn
E= himpunan sisi (edges atau arcs) yang menghubungkan sepasang simpul } dan
={e1, e2, … ,en
Atau dapat ditulis singkat notasi G = (V, E). }
Definisi 2.1.1 menyatakan bahwa V tidak boleh kosong, sedangkan E boleh kosong. Jadi sebuah graf dimungkinkan tidak mempunyai jalur satu buah pun, tetapi simpulnya hanya ada minimal satu. Graf yang hanya mempunyai satu buah simpul tanpa sebuah jalur dinamakan graf trivial. (Munir, 2003)
Contoh dari graf G
1
4
Gambar 2.1. Graf G
Gambar 2.1. memperlihatkan graf dengan himpunan simpul V dan himpunan jalur E
dimana: V = {1, 2, 3, 4 }
E = {(1, 2), (1, 3), (2, 3), (2, 4), (3, 4)}
2.2. Jenis-jenis Graf
Graf dapat dikelompokkan menjadi beberapa kategori (jenis) bergantung pada sudut pandang pengelompokkanya.
Berdasarkan ada tidaknya gelang atau sisi ganda pada suatu graf, maka secara umum graf dapat digolongkan menjadi dua jenis:
1. Graf sederhana (Simple Graf)
Graf yang tidak mengandung gelang maupun sisi ganda dinamakan graf sederhana.
2. Graf tak-sederhana (Unsimple-Graf)
Graf yang mengandung sisi ganda atau gelang dinamakan graf tak-sederhana. Berdasarkan jumlah simpul pada suatu graf, maka secara umum graf dapat digolongkan menjadi dua jenis :
1. Graf berhingga
Graf berhingga adalah graf yang jumlah simpulnya, n, berhingga. 2. Graf tak-berhingga
Graf yang jumlah simpulnya, n, tidak berhingga banyaknya disebut graf tak berhingga.
Berdasarkan orientasi arah pada sisi maka secara umum graf dibedakan atas dua jenis :
1. Graf tak berarah
Graf yang sisinya tidak mempunyai orientasi arah disebut graf tak-berarah. Pada graf tak-berarah, urutan pasangan simpul yang dihubungkan oleh sisi tidak diperhatikan. Jadi , (vj , vk) = (vk , vj) adalah sisi yang sama.
2. Graf berarah
Graf yang setiap sisinya diberikan orientasi arah disebut sebagai graf berarah. Pada graf berarah, (vj , vk) (vk , vj). untuk busur (vj , vk), simpul vj dinamakan
simpul asal (initial vertex) dan simpul vk dinamakan simpul terminal (terminal vertex).
2.3. Terminologi Dasar
Definisi 2.3.1Walk
Walk dengan panjang n dari v ke w adalah barisan v0, e1, v1, e2, v2, …, vn-1, en, vn dengan v0 = v ; vn = w ; vi-1 ; dan vi adalah simpul-simpul ujung jalur ei. (Siang, 2006)
Definisi 2.3.2 Path
Path dengan panjang n dari v ke w adalah walk dari v ke w yang semua jalurnya berbeda. Path dari v ke w dituliskan sebagai (v = v0, e1, v1, e2, v2, …, vn-1, en, vn = w) dengan ei ≠ ejuntuk i ≠ j. (Siang, 2006)
Path dengan panjang n dari v ke w adalah path dari v ke w yang semua simpulnya berbeda. Path dari v ke w berbentuk (v = v0, e1, v1, e2, v2, …, vn-1, en, vn = w) dengan ei≠ ej untuk i ≠ j dan vk≠ vm untuk k ≠ m.
Definisi 2.3.3 Sirkuit (Cycle)
Sirkuit dengan panjang n adalah path yang dimulai dan diakhiri pada simpul yang sama. Sirkuit adalah path yang berbentuk (v0, e1, v1, e2, v2, …, vn-1, en, vn) dengan v0 = vn. (Siang, 2006)
Sirkuit (sikel) dengan panjang n adalah path yang dimulai dan diakhiri pada simpul yang sama. Sirkuit adalah path yang berbentuk (v0, e1, v1, e2, v2, …, vn-1, en, vn) dengan v0 = vn.
10 B C D A 12 8 14 15 9 10 B C D A 12 8 14 15 9
Definisi 2.3.4 Connected Graf dan Disconnected Graf
Suatu graf G dikatakan connected graf jika untuk setiap pasangan vertex di dalam G terdapat paling sedikit satu path. Sebaliknya jika dalam suatu graf G ada pasangan vertex yang tidak mempunyai path penghubung maka graf yang demikian dinamakan disconnected graf.
Definisi 2.3.5 Graf Berbobot dan Graf Berlabel
Graf berbobot adalah graf yang setiap sisinya diberi sebuah bobot sedangkan graf berlabel adalah graf yang tidak memiliki bobot.
Contoh dari graf berbobot:
Gambar 2.2 Graf berbobot pada Graf tak berarah
Gambar 2.3 Graf berbobot pada graf berarah
2.4. Optimasi
2.4.1. Pengertian Optimasi
Optimasi ialah suatu proses untuk mencapai hasil yang ideal atau optimal (nilai efektif yang dapat dicapai). Dalam disiplin matematika optimasi merujuk pada studi permasalahan yang mencoba mencari solusi optimal, yaitu penyelesaian yang
tidak melanggar batasan-batasan yang ada yang paling mempunyai nilai tujuan terbesar atau terkecil, tergantung dari fungsi tujuannya yaitu maksimal atau minimal. (Hillier and Lieberman, 2005 :35).
Solusi Optimal adalah solusi fisibel yang memberikan nilai “terbaik” bagi fungsi tujuannya. “Terbaik” di sini berarti nilai terbesar atau terkecil, bergantung pada apakah tujuanya maksimasi atau minimasi. (Dimyati, 1987: 28).
2.4.2. Nilai Optimal
Nilai optimal adalah nilai yang paling menguntungkan, terbaik & tertinggi. (Departemen Pendidikan dan Kebudayaan. 1995: 705).
Sebuah sumber dan tujuan diwakili dengan sebuah simpul. Busur yang menghubungkan sebuah sumber dan sebuah tujuan mewakili rute pengiriman barang tersebut. Jumlah penawaran di sumber i adalah ai dan permintaan di tujuan j adalah bj
. Biaya unit transportasi antara sumber i dan j adalah cij. Anggap xij
Minimumkan : z = ∑𝑚𝑚𝑖𝑖=1∑𝑛𝑛𝑖𝑖=1𝑐𝑐𝑖𝑖𝑖𝑖𝑥𝑥𝑖𝑖𝑖𝑖
mewakili jumlah barang yang dikirimkan dari sumber i ke tujuan j, maka model program linier yang mewakili masalah transportasi ini diketahui secara umum sebagai berikut :
Dengan batasan : ∑𝑛𝑛𝑖𝑖=1𝑥𝑥𝑖𝑖𝑖𝑖 ≤ aij; 𝑖𝑖= 1,2, … ,𝑚𝑚 ∑𝑚𝑚𝑖𝑖=1𝑥𝑥𝑖𝑖𝑖𝑖 ≥ bj; j = 1,2, … , n
Kelompok batasan pertama menetapkan bahwa jumlah pengiriman dari sebuah sumber tidak dapat melebihi penawarannya. Demikian pula kelompok batasan kedua mengharuskan bahwa jumlah pengiriman ke sebuah tujuan harus memenuhi permintaanya. Model yang baru digambarkan diatas menyiratkan bahwa penawaran total ∑𝑚𝑚𝑖𝑖=1𝑎𝑎𝑖𝑖 harus setidaknya sama dengan permintaan total ∑𝑛𝑛𝑖𝑖=1𝑏𝑏𝑖𝑖. Ketika penawaran total sama dengan permintaan total ∑𝑚𝑚𝑖𝑖=1𝑎𝑎𝑖𝑖 = ∑𝑛𝑛𝑖𝑖=1𝑏𝑏𝑖𝑖, formulasi yang dihasilkan disebut Model Transportasi Berimbang (balanced transportation model). Model ini berbeda dengan model di atas hanya dalam fakta bahwa semua batasan adalah persamaan yaitu:
� 𝑥𝑥𝑖𝑖𝑖𝑖 𝑛𝑛 𝑖𝑖=1 = 𝑎𝑎𝑖𝑖; 𝑖𝑖 = 1,2, … ,𝑚𝑚 � 𝑥𝑥𝑖𝑖𝑖𝑖 𝑚𝑚 𝑖𝑖=1 = 𝑏𝑏𝑖𝑖; 𝑖𝑖 = 1,2, … ,𝑛𝑛
2.5.Travelling Salesman Problem (TSP)
2.5.1. Sejarah Permasalahan Travelling Salesman Problem (TSP)
Permasalahan matematika tentang Travelling Salesman Problem
dikemukakan pada tahun 1800 oleh matematikawan Irlandia William Rowan Hamilton dan matematikawan Inggris Thomas Penyngton. Bentuk umum dari persoalan TSP pertama kali dipelajari oleh para matematikawan mulai tahun1930 –an oleh Karl Menger di Vienna dan Harvard. Persoalan tersebut kemudian dikembangkan oleh Hassler Whitney dan Merril Flood di Princeton. (Filman Ferdinan. 2006).
Dekripsi persoalannya adalah sebagai berikut: diberikan sejumlah kota dan jarak antar kota, tentukan sirkuit terpendek yang harus dilalui oleh seorang pedagang bila pedagang itu berangkat dari sebuah kota asal dan menyinggahi setiap kota tepat satu kali dan kembali lagi ke kota asal keberangkatan. Kota dapat dinyatakan sebagai sebuah simpul graf, sedangkan sisi menyatakan jalan yang menghubungkan antara dua kota. Bobot pada sisi menyatakan jumlah antara dua buah kota. Persoalan ini adalah persoalan yang menentukan sirkuit Hamilton dengan sisi memiliki bobot minimum pada suatu graf terhubung. (Rinaldi Munir. 2003: 355).
2.5.2. Pengertian Travelling Salesman Problem
Travelling Salesman Problem adalah permasalahan dimana seorang salesman harus mengunjungi semua kota dimana tiap kota hanya dikunjungi sekali dan dia harus mulai dari dan kembali ke kota asal. Tujuannya adalah menentukan rute dengan jarak total atau biaya yang paling minimum. (Aulia Rahma Amin. 2006).
Travelling Salesman Problem berhubungan dengan pencarian rute terpendek atau rute terdekat pada n-kota, dimana setiap kota hanya dikunjungi sekali. Beberapa metode yang digunakan dalam menyelesaikan masalah Travelling Salesman Problem
yaitu algoritma Branch and Bound dan algoritma Nearest Neighbor . (Hamdy A. Taha. 2007: 381). Secara khusus didefinisikan :
𝑥𝑥𝑖𝑖𝑖𝑖 = �
1; 𝑖𝑖𝑖𝑖𝑗𝑗𝑎𝑎𝑖𝑖≠ j 0; 𝑖𝑖𝑖𝑖𝑗𝑗𝑎𝑎i= j
Diberikan bahwa dij adalah jarak dari kota i ke kota j , model TSP diberikan sbb:
𝑀𝑀𝑖𝑖𝑛𝑛𝑧𝑧=� � 𝑑𝑑𝑖𝑖𝑖𝑖 𝑛𝑛 𝑖𝑖=1 𝑛𝑛 𝑖𝑖=1 𝑥𝑥𝑖𝑖𝑖𝑖 ;𝑑𝑑𝑖𝑖𝑖𝑖 = ∞𝑢𝑢𝑛𝑛𝑢𝑢𝑢𝑢𝑗𝑗𝑠𝑠𝑠𝑠𝑚𝑚𝑢𝑢𝑎𝑎𝑖𝑖 =𝑖𝑖 dengan batasan : � 𝑥𝑥𝑖𝑖𝑖𝑖 𝑛𝑛 𝑖𝑖=1 = 1; 𝑖𝑖= 1,2, … ,𝑛𝑛 � 𝑥𝑥𝑖𝑖𝑖𝑖 𝑛𝑛 𝑖𝑖=1 = 1; 𝑖𝑖= 1,2, … ,𝑛𝑛 𝑥𝑥𝑖𝑖𝑖𝑖 = (0,1)
2.6. Algoritma dalam Travelling Salesman Problem
2.6.1. Kompleksitas Algoritma
Algoritma adalah urutan langkah-langkah penyelesaian masalah secara sistematis. Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Kemangkusan algoritma diukur dari berapa jumlah waktu dan ruang memori yang dibutuhkan untuk menjalankan. Algoritma yang mangkus adalah algoritma yang meminimumkan kebutuhan waktu dan ruang. Ada dua macam kompleksitas algoritma, yaitu kompleksitas waktu dan kompleksitas ruang. Kompleksitas waktu diukur dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan n.
Untuk membuktikan kompleksitas kedua algoritma di atas maka kita harus mengetahui teori yang mendukung yaitu:
Definisi 2.6.1. T(n) = O (f(n)) yang artinya T (n) berorde paling besar f(n). bila terdapat tetapan c dan n0 sedemikian sehingga T(n) ≤ c (f(n)) untuk n ≥ n0.
Arti dari definisi di atas adalah jika sebuah algoritma mempunyai waktu asimptotik O(f(n)), maka jika n dibuat semakin besar waktu yang dibutuhkannya tidak akan melebihi suatu tetapan c dikali f(n).
2.6.2. Algoritma Branch and Bound
Algoritma Branch and Bound diusulkan pertama kali oleh A. Land dan G. Doig pada tahun 1960. Sebenarnya metode ini dibuat untuk pemograman linier (linier programming). Namun kenyataanya metode ini mampu menyelesaikan permasalahan seperti Travelling Salesman Problem (TSP) dan beberapa masalah lain. Metode ini menggunakan pohon pencarian (search tree), setiap simpul di pohon merupakan representasi dari sejumlah kemungkinan solusi dari Travelling Salesman Problem
(TSP). Metode ini hanya dapat digunakan untuk masalah optimasi saja (optimazion problem). Algoritma ini memiliki kompleksitas algoritma (n-1)!, dimana n adalah jumlah kota. Berikut ini merupakan langkah-langkah penyelesaian dengan Branch and Bound :
1. Gambarkan problem dengan diagraph G = (V,E). 2. Cij
dimana C
= nilai (cost) pada edge (i,j) ij
3. Dengan definisi nilai (cost) di atas, bangun Cost Matrix dari TSP.
= ∞, jika tidak ada edge antara i dan j.
4. Lakukan reduksi terhadap Cost Matrix , di dapat Reduced Cost Matrix.
5.Gunakan fungsi pembatas (bound) untuk membangun Search Tree dari Reduced Cost Matrix.
6. Dan seterusnya hingga didapat solusi yang diinginkan.
Pada n > 10, Algoritma di atas tidak dapat dikerjakan secara manual sehingga pengerjaanya dilakukan dengan bantuan software Quantitative System (QS).
2.6.3 Algoritma Nearest Neighbor
Pada algoritma Nearest Neighbor, solusi dari masalah Travelling Salesman Problem dapat dimulai dengan mencari node-node dan kemudian menghubungkannya
dengan yang terdekat. Node hanya ditambahkan kemudian dikaitkan dengan node terdekat dan proses berlanjut sampai tur terbentuk. Komplksitas algoritma ini memang sangat mengangumkan yaitu O(n), tetapi hasil yang didapat bisa sangat jauh dari hasil yang optimal. Berikut ini merupakan langkah-langkah penyelesaian Nearest Neighbor
:
a. Buat peta aliran yang menggambarkan letak-letak outlet penjualan beserta jarak antar oulet.
b. Proses pengerjaan dengan melihat outlet dengan jarak terpendek. Setiap mencapai satu outlet, algoritma ini akan memilih outlet selanjutnya yang belum dikunjungi dan memiliki jarak yang paling minimum.
c. Perhitungan nilai optimal dengan menjumlah jarak dari awal sampai akhir perjalanan.
Algoritma Nearest Neighbor dikerjakan dengan menggunakan Microsoft Excel dengan mencari function MIN.
2.7. Contoh :
Diberikan graf berbobot G = (V, E) dan sebuah simpul awal A. Misalkan simpul pada graf dapat merupakan kota, sedangkan sisi menyatakan jalan yang menghubungkan dua buah kota. Bobot sisi graf dapat menyatakan jarak antara dua buah kota. Tentukan rute optimal dari simpul A ke simpul D pada graf berbobot di bawah ini.
15 15 14 11 10 11 8 16 8 17 9 12
Gambar 2.4 Contoh Soal Masalah TSP
a. Penyelesaian dengan Algoritma Branch and Bound:
Bentuk Matriks: � ∞ 12 11 16 15 ∞ 15 10 8 14 ∞ 18 9 11 17 ∞ �
1. Reduced Cost Matrix (RCM)
a. Untuk setiap baris, cari nilai terkecil, nyatakan dengan c(i). Kurangi semua nilai di baris itu dengan c(i).
b. Untuk setiap kolom, cari nilai terkecil, nyatakan dengan c(j). Kurangi semua nilai di kolom itu dengan c(j).
c. Jumlahkan total semua nilai c(i) dan c(j) menjadi nilai R (total reduction). Nilai ini adalah total nilai yang berhasil direduksi/dikurangi
2. Perhitungan RCM
A B
3. Langkah Membangun Search Tree
a.Pada saat Space Tree dimulai, nilai b untuk root node adalah nilai R untuk
RCMroot node. Nilai u adalah ∞.
b.Setiap kali E-node yang baru dibuka, akan dihitung RCM untuk node tersebut. c. Cara membuat RCM baru untuk node (i,j):
• RCM baru dibuat berdasarkan RCM dari parent node • Beri warna merah pada elemen di posisi (i,j)
• Ubah seluruh nilai di baris i menjadi ∞, beri warna biru • Ubah seluruh nilai di kolom j menjadi ∞, beri warna biru • Ubah elemen di posisi (j,1) menjadi ∞, beri warna ungu
• Lakukan reduksi matriks, jumlahkan seluruh nilai yang berhasil direduksi menjadi nilai R
d.Dengan dihitungnya RCM, maka bisa dihitung nilai b untuk root tersebut dengan rumus :
• b(i,j) = b(parent) + c(i,j) of parent RCM + R (newRCM)
• c(i,j) adalah nilai elemen (i,j) dari parent RCM (lokasinya ditandai dengan warna hijau di newRCM)
e.Dari semua E-node yang telah dihitung RCM-nya, dipilih yang memiliki cost b
paling kecil (Least Cost B&B). Node yang dipilih akan dibuka dan menghasilkan E-node baru. Proses ini merupakan proses Branch.
f. Ketika E-node terbawah dibuka (diitemukan kandidat solusi), maka nilai u diset menjadi nilai b dari node terbawah. Kemudian diperiksa apakah nilai b
terkecil berikutnya dari seluruh tree ada yang bernilai lebih kecil dari u. Semua
E-node yang memiliki nilai b > u dinyatakan sebagai D-node. Proses pembuatan Space Tree dilanjutkan dari E-node yang tersisa. Inilah yang dinamakan proses Bound.
g.Jika tidak ada, maka jalur dari root menuju E-node terakhir merupakan solusi yang dicari. Cost b node terbawah adalah panjang lintasan TSP yang dicari.
Gambar 2.5 Proses Branch and Bound
Gambar 2.6 Proses Branch and Bound
15
11
8 11
Gambar 2.8 Solusi dengan Branch and Bound
Dari hasil di atas dapat dilihat bahwa sirkuit yang dipilih adalah : A-C-B-D-A Dengan total jarak tempuh adalah 11+14+10+9 = 44
b. Penyelesaian dengan Nearest Neighbor
Gambar 2.9 Solusi dengan Nearest Neighbor
Dari hasil di atas dapat dilihat bahwa rute yang dipilih adalah : A-C-D-B-A Dengan total jarak tempuh adalah 11+8+11+15 = 45
A B
C D