BAB 2 TINJAUAN PUSTAKA
2.3 Metode Heuristik
Metode Heuristik adalah teknik yang dirancang untuk memecahkan masalah yang mengabaikan apakah solusi dapat dibuktikan benar, tapi yang biasanya menghasilkan solusi yang baik atau memecahkan masalah yang lebih sederhana yang mengandung atau memotong dengan pemecahan masalah yang lebih kompleks. Metode Heuristik ini bertujuan untuk mendapatkan performa komputasi atau penyederhanaan konseptual, berpotensi pada biaya keakuratan atau presisi. Metode heuristik ada dua jenis yakni metode heuristik sederhana dan metaheuristik.
Metaheuristik pada sebenarnya adalah metode pendekatan yang didasarkan pada metode heuristik. Sehingga tidak heran bahwa metode heuristik sering kali diintegrasikan di dalam metode metaheuristik.
Perbedaan utama dari metode heuristik dan metaheuristik adalah : metode heuristik bersifat problem dependent sedangkan metode metaheuristik bersifat problem independent.
Problem dependent artinya bergantung pada permasalahan, jadi metode heuristik itu hanya bisa dipakai untuk jenis permasalahan terntentu. Misalnya, metode nearest neighborhood (NN) termasuk metode heuristik. Metode hanya bisa dipakai pada permasalahan yang mengenal konsep neighborhood (tetangga), misalnya pada pewarnaan graf, Traveling Salesman Problem maupaun Vehicle Routing Problems. Sedangkan problem independent berarti tidak bergantung pada jenis permasalahan. Jadi penerapan metode metaheuristik tidak bergantung pada jenis permasalahan, alias bisa dipakai untuk berbagai jenis permasalahan. Contoh dari metode metaheuristik adalah algoritma genetik (GA), particle swam optimization (PSO), Ant Colony Optimization (ACO).
2.3.1. Tabu Search
Tabu search berasal dari Tongan, suatu bahasa Polinesia yang digunakan oleh suku Aborigin pulau Tonga untuk mengindikasikan suatu hal yang tidak boleh "disentuh" karena sakralnya. Menurut kasus Webster, tabu berarti larangan yang
dipaksakan oleh kebudayaan social sebagai suatu tindakan pencegahan atau sesuatu yang dilarang karena berbahaya. Bahaya yang harus dihindari dalam tabu search adalah penjadwalan yang tidak layak, dan terjebak tanpa ada jalan keluar. Dalam konteks lebih luas, larangan perlindungan dapat diganti jika terjadi tuntutan yang mendadak(Glover, 1995).
Tabu search adalah sebuah metode optimasi yang berbasis pada local search. Proses pencarian bergerak dari satu solusi ke solusi berikutnya, dengan cara memilih solusi terbaik neighbourhood sekarang (current) yang tidak tergolong solusi terlarang (tabu). Ide dasar dari algoritma tabu search adalah mencegah proses pencarian dari local search agar tidak melakukan pencarian ulang pada ruang solusi yang sudah pernah ditelusuri, dengan memanfaatkan suatu struktur memori yang mencatat sebagian jejak proses pencarian yang telah dilakukan.
Struktur memori fundamental dalam tabu search dinamakan tabu list. Tabu list menyimpan atribut dari sebagian move (transisi solusi) yang telah diterapkan pada iterasi-iterasi sebelumnya. Tabu search menggunakan tabu list
untuk menolak solusi-solusi yang memenuhi atribut tertentu guna mencegah proses pencarian mengalami cycling pada daerah solusi yang sama, dan menuntun proses pencarian menelusuri daerah solusi yang belum dikunjungi. Tanpa mengunakan strategi ini, local search yang sudah menemukan solusi optimum lokal dapat terjebak pada daerah solusi optimum local tersebut pada iterasi-iterasi berikutnya. List ini mengikuti aturan LIFO dan biasanya sangat pendek (panjangnya biasanya sebesar O( N ), dimana N adalah jumlah total dari operasi). Setiap saat ada langkah itu akan ditempatkan dalam tabu list.
Perekaman solusi secara lengkap dalam sebuah forbidden list dan pengecekan apakah sebuah kandidat solusi tercatat dalam list tersebut merupakan cara yang mahal, baik dari sisi kebutuhan memori maupun kebutuhan waktu komputasi. Jadi, tabu list hanya menyimpan langkah transisi (move) yang merupakan lawan satu kebalikan dari langkah yang telah digunakan dalam iterasi sebelumnya untuk bergerak dari satu solusi ke solusi berikutnya. Dengan kata lain
yang lama.
Pada tiap iterasi, dipilih solusi baru yang merupakan solusi terbaik dalam
neighbourhood dan tidak tergolong sebagai tabu. Kualitas solusi baru ini tidak harus lebih baik dari kualitas solusi sekarang. Apabila solusi baru ini memiliki nilai fungsi objektif lebih baik dibandingkan solusi terbaik yang telah dicapai sebelumnya, maka solusi baru ini dicatat sebagai solusi terbaik yang baru.
Sebagai tambahan dari tabu list, dikenal adanya kriteria aspirasi, yaitu suatu Penanganan khusus terhadap move yang dinilai dapat menghasilkan solusi yang dinilai dapat menghasilkan solusi yang baik namun move tersebut berstatus tabu. Dalam hal ini, jika move tersebut memenuhi criteria aspirasi yang telah ditetapkan sebelumnya, maka move tersebut dapat digunakan utnuk membentuk solusi berikutnya (status tabunya dibatalkan).
2.3.2. Algoritma Dsatur (Derajat Warna Heuristik)
Menurut Brelaz ( 1979) bahwa derajat warna suatu verteks v pada graf G, dinotasikan dengan coldegG(v), yaitu banyaknya verteks-verteks yang berbeda warna yang bersisian, tanpa memperhatikan sudah berapa banyak suatu verteks yang bersisian identik dengan verteks-verteks yang diwarnai. Algoritma derajat warna heuristik, merupakan algoritma greedy, karena hanya jumlah warna yang berbeda pada Neighbourhood N(v) dari verteks v tertentu yang dijelajah, sedangkan masing-masing kelas warna diinduksi derajat dari verteks-verteks yang diwarnai pada N(v) tidak dianggap. Selanjutnya, pada setiap iterasi verteks selanjutnya yang akan diwarnai, dipilih dan diwarnai sesuai yang tampak sebagai verteks yang terbaik dipilih dan diwarnai dengan warna terbaik titik eksekusi algoritma tanpa melihat ke depan untuk memperhatikan apakah bisa atau tidak menjadi pilihan yang baik lebih lanjut pada saat implementasi. Berikut pseudo-code algoritma derajat warna heuristik, kita sebut sebagai algoritma 1.
Algoritma 1 dsatur (Derajat warna heuristik)
input : Suatu graf G dengan order dan suatu nilai d yang mana bilangan kromatik harus ditentukan.
output : batas atas x pada ∆ ,� -coloring G
1: L ← � � � =∆(�)
2: Pilih v ϵ L dan misalkan � ← �1 ∪ �
3: � ←1
4: untuk semua i= 2,..., n do
5: Tentukan � � ∀ = 1,…, ,� � , = 1,…,�
6 � ← � � � , = 1,…,� dan � � � � ∀� � , = 1,…,�
7: if � > 1 then
8: Tentukan G' sedmikian sehingga � �′ =� � �1∪ �2∪ … ∪ ��
9: v ← suatu verteks di T sehingga �′ � �′ � ∀� ϵ T
10: else � = 1
11: v ← hanya verteks di T
12: end if
13: � ← � ∪ � dimana jumlah warna terkecil sehingga ∆ � ∪ �
14: if j > x maka
15: x = j
16: end if 17: end for
18: return x, = �1,…,��
Algoritma 1 dimulai dari langkah 1, dengan mendaftarkan semua vaerteks-verteks dengan derajat maksimum pada suatu list L, diikuti langkah 2 dengan mewarnai salah satu verteks di L menggunakan warna 1. Parameter x (pada langkah 13 dan 15) terus melacak jumlah warna yang akan digunakan. Pada saat
loop spanning langkah 4 hingga 17, setiap n-1 verteks lainnya, akan diwarnai pada gilirannya. Hal ini dapat dicapai dengan terlebih dahulu menentukan derajat warna pada semua verteks-verteks yang belum diwarnai pada langkah 5. Semua verteks-verteks yang belum diwarnai dengan derajat warna maksimum didaftarkan di list T, pada langkah 6. Jika list T memuat hanya satu verteks (langkah 10 dan 11), verteks ini akan diwarnai berikutnya, jika verteks dari T
dipilih, menurut pada langkah 7 - 9 algoritma. Pilih suatu verteks dari T, subgraf
semua verteks-verteks di T, kemudian dipilih diberikann warna selanjutnya, menurut langkah 9. Jika mengikat masih terjadi, setiap verteks dapat dipilih. Akhirnya, pilihlah verteks v yang diperoleh dengan kemungkinan jumlah warna terkecil, yang dialokasikan pada langkah 13, dan parameter x, diperbaharui pada langkah 15 jika perlu.
2.3.3. Algoritma Pewarnaan Heuristik Tabu Search
Hertz dan De Werra (1987) mengimplementasikan teknik tabu search untuk mendapatkan pewarnaan yang tepat pada suatu graf. Ide mereka akan diadaptasi dan di implementasikan pada konteks pewarnaan dalam algoritma pewarnaan heuristik tabu search (Nieuwoudt, 2007). Algoritma pewarnaan heuristik tabu search diberikan dalam pseudo-code berikut, yang kita sebut sebagai algoritma 2, yaitu :
Algoritma 2 Pewarnaan heuristik tabu search
input : Suatu graf G dengan order n dan suatu nilai d yang mana untuk
menentukanΔ( )-chromatic number, tabu tenure, t, size dari
candidate list, ℓ, dan jumlah maksimum dari iterasi, maxit.
output : Batas atas � Δ pada � Δ(�) sama artinya Δ ,� Δ-coloringG.
1: x ←(Δ � + 1)/( + 1)
2: � Δ ← -1
3: STOP ← false
4: while not STOP do
5: itcounter ← 0; EMPTY ← false
6: Generate random initial coloring = �1,…,��
7: ← ��1 �∆ �
8: �(0)←0
9: � � ← � −1 ∀�= 1,…,∆(�)
10: while( > and itcounter < �� and not EMPTY) do
11: count ← 1; NOMORE ← false
12: while count <ℓ+ 1 � � not NOMORE do
13: Pilih suatu verteks � � dengan � � = ∆ � untuk sebarang i
dengan kelas warna terbesar di induksi derajat maksimum
14: pilih suatu warna ≠ untuk sebarang jdengan kelas warna terbesar
15: �′← � � ,�′← � ∪ � ,�′← � ∀ = 1,…,�, ≠ , 16: = �1′,…,��′ 17: if �, � � �� �, � then 18: ← ∪ 19: count←count + 1 20: end if
21: if jika semua kemungkinan pada langkah 13 dan 14 telah
dipertimbangkan then 22: NOMORE ← true 23: end if 24: end while 25: if =∅then 26: EMPTY ← true 27: else
28: ′ ← suatu kandidat di L sedemikan sehingga ′ ∀
29: if ′ � then
30: � ← ′ −1
31: end if
32: � ← � ∪ �, , where � � di s dan � �′ di ′
33: if � > then
34: Hapus entri terlama di T
35: end if 36: ← ′ ; ← ′ 37: itcount ← itcount + 1 38: end if 39: end while 40: if then 41: � Δ ← � 42: ← 43: x ← x - 1 44: else 45: STOP ←true 46: end if 47: end while 48: return � Δ, = �1,…,�� Δ
Gagasan utama dari algoritma diatas adalah upaya untuk menentukan suatu Δ ,� −coloring dari suatu graf G dengan menggunakan bilangan tetap x
sebagai warna-warna. Dimulai dari suatu initial random x-coloring G yang paling mungkin, dari suatuΔ ,� −coloring yang invalid. Strategi ini kemudian berulang menurunkan x dan mencoba mencari Δ ,� -coloring yang valid pada suatu graf G menggunakan bilangan terkecil sebagai warna, sehingga diperoleh. Dengan demikian batas atas x pada Δ −chromatic number direduksi sampai algoritma menemukan Δ ,� -coloring tidak valid untuk batas atas terkecil.
Jika himpunan verteks dipartisi menjadi suatu bilangan tetap c dari himpunan bagian (kelas warna), menghasilkan suatu pewarnaan dengan kelas warna = (�1,…,��), tujuannya adalah untuk meminimalkan kelas warna terbesar yang diinduksi derajat maksimum, yaitu untuk minimize = max1 �Δ � . Jelas, bahwa , untuk nilai d yang telah ditentukan, dimana Δ −chromatic number dari graf G, harus ditentukan, Δ ,� -coloring
yang valid telah diperoleh. Oleh karena itu, ini adalah yang pertama dari tiga
stopping kriteria yang diterapkan pada algoritma. Stopping kriteria kedua adalah ketika algoritma melakukan sebelum ditentukan jumlah maksimum dari iterasi,
maxit, dimana tidak ada solusi (coloring), s, dimana diperoleh, sehinggaΔ ,� −coloring G tidak valid diperoleh. Stopping kriteria yang terakhir adalah ketika tidak ada candidate solution yang dibangkitkan (generated).
Pada penerapan tabu search , oleh Hertz dan De Werra (1987) untuk pewarnaan graf yang tepat, setiap candidate solution dibangkitkan dengan cara memilih current solution, s, sebarang verteks v, dengan derajat tak nol dalam hal ini kelas warna khusus diinduksi subgraf, dan kemudian recoloring v dengan warna yang berbeda, dipilih secara acak dari warna - warna lain yang digunakan di s. Agar menjadi benar, sifat deterministik asli dari teknik tabu seach. Setiap
candidate solution, s*, pada algoritma 2 di bangkitkan dengan memilih dari
current solution, s, suatu kelas warna i, dimana kelas warna diinduksi derajat maksimum untuk s. Verteks v kemudian diwarnakan kemudian diwarnakan dengan warna yang berbeda, j, dari warna - warna lain yang digunakan di s,
dimana j adalah warna dengan kelas warna terkecil di induksi derajat maksimum untuk s. Candidate solution dibangkitkan dengan langkah berurutan melalui
untuk s, semua verteks - verteks v dalam kelas warna dengan kelas warna diinduksi derajat sama dengan kelas warna terbesar diinduksi derajat maksimum dan semua kelas warna dengan kelas warna terkecil diinduksi derajat maksimum digunakan sebagai warna baru untuk v, sampai total dari candidate solutionℓ dibangkitkan dan disimpan di candidate list. Jika semua kemungkinan candidate solution dapat dibangkitkan, seperti dijelaskan diatas, dan jumlah candidate solution adalah lebih kecil dari pada ℓ, maka proses pembangkitan candidate solution diatas diulang untuk suatu verteks u dengan kelas warna diinduksi derajat sama dengan kelas warna terbesar kedua diinduksi derajat maksimum, dimana u
juga dalam kelas warna dengan kelas warna diinduksi derajat maksimum sama dengan kelas warna terbesar diinduksi derajat maksimum untuk s. Akhirnya, jika diinginkan, prosedur diatas dapat diulang sekali lagi dimana warna j dengan memilih verteks v yang akan diwarnai, jika sekarang suatu warna dengan kelas warna terkecil kedua diinduksi derajat maksimum untuk s. Jika kekardinalan dari
candidate list, adalah masih terkecil daripada ℓ, maka pembangkit dari candidate solution berakhir. Dari candidate list (jika ini tidak kosong), candidate solution,
′, dengan nilai fungsi objektif terkecil yang dipilih, yang dapat atau tidak dapat
sesuai untuk nilai fungsi objektif terkecil, maka didapat current solution s,
sebagai solusi selanjutnya untuk bergerak (move). Ini sangat kontras dengan tabu search proper coloring algorithm oleh Hertz dan De Werra (1987) dimana,
candidate solution, ′,dipilih secara acak diantara candidate solution dengan nilai
maksimum untuk ( ′), jika suatu hubungan terjadi selama eksekusi pada
Δ ,� −coloring heuristic, satu dengan jumlah terkecil dari kelas warna dengan suatu kelas warna diinduksi derajat maksimum lebih besar dari d maka dipilih.
Bilamana suatu verteks v di kelas warna � pada current solution, s,
bergerak ke kelas warna � pada solusi selanjutnya, ′,diantara (v,i) menjadi tabu
dan dimasukkan ke dalam tabu list, T. Kemudian, verteks v tidak dapat dikembalikan ke kelas warna � untuk menentukan jumlah iterasi dari algoritma diatas. Jika size dari tabu list T sesudah disisipkan diantara (v,i) kedalam T,
adalah lebih besar dari pada tabu tenure, t, entri yang terlama di T dihilangkan. Suatu kriteria aspirasi dari suatu tabu bertransisi sebagai fungsi �(�) yang
didefinisikan sebagai berikut : Jika suatu tabu diantara (v,i) dimasukkan kedalam solusi yang berdekatan, , current solution, s, dan nilai fungsi objektif, ( ), solusi yang berdekatan lebih besar atau sama dengan nilai fungsi aspirasi,
� , nilai fungsi objektif dari current solution, s, maka status tabu dari (v,i)
ditolak, dan solusi yang berdekatan dimasukkan ke kandidat list. Pada awalnya kriteria aspirasi, �(�), untuk setiap nilai z, ditetapkan sebagai � −1.Kemudian, jika suatu solusi ′memenuhi ( ′) � yang dipilih dari candidate list,� ditetapkan sebagai ′ -1
Berikut rincian bagaimana aspek diatas diimplementasikan pada algoritma, Langkah 1 algoritma, suatu batas atas x pada �Δ � graf G, diberikan sebagai derajat d. Jika Δ ,� −coloring G layak untuk batas atas ini maka tercapai, sehingga Δ ,� −coloring layak disimpan ( langkah 41 dan 42 pada algoritma) dan batas atas x pada �Δ � dikurangi dengan 1, pada langkah 43. Iterasi langkah 4-47, dieksekusi menggunakan nilai terbaru dari x. Iterasi ini berlanjut sampai
Δ ,� −coloring tidak layak, diperoleh, dimana kasus variabel boolean STOP pada langkah 45, maka ditetapkan benar. Pada point ini ditetapkan batas atas χΔ (langkah 41) pada �Δ � didapat dari algoritma diatas yaitu �+ 1, dimana x
adalah batas atas pertama yang mana Δ ,� −coloring yang valid, diperoleh. Kemungkinan algoritma diatas tidak menghasilkan suatu
Δ ,� −coloring G yang layak, untuk batas atas pertama pada �Δ �
menggunakan x = (Δ � + 1)/( + 1) warna. Batas atas χΔ pada �Δ �
ditetapkan tak layak dengan nilai−1 pada langkah 2. Jika pada akhir eksekusi algoritma, nilai χΔ diberikan −1 , ini jelas bahwa algoritma tidak dapat menetukan solusi yang layak untuk masalah Δ ,� −coloring.
Untuk suatu nilai x dengan batas atas di χΔ, pewarnaan awal pada verteks - verteks didapat pada langkah 6 algoritma, dimana nilai fungsi objectif untuk pewarnaan ditentukan pada langkah 7. Pencarian untuk suatu Δ ,� −coloring
yang layak di G di jalankan pada langkah 10 - 39. Suatu candidate list dari sizeℓ dibangkitkan pada langkah (12 - 24). Pada langkah 28, solusi selanjutnya dipilih
dari candidate list asal saja bahwa candidate list tidak kosong (langkah 27), dan kriteria aspirasi di perbaharui pada langkah 30, jika perlu. Akhirnya, tabu list di perbaharui pada langkah (32 - 35). Jika candidate list kosong (langkah 25) maka variabel boolean EMPTY pada langkah 26 ditetapkan benar dan pencarian untuk suatu Δ ,� −coloring G yang layak, berakhir.