Fungsi Heuristik MATLAB Matrix Laboratory Analisis Algoritma A

Dengan fungsi heuristik Algoritma ini membangkitkan verteks yang paling mendekati solusi. Verteks ini kemudian disimpan suksesornya ke dalam list sesuai dengan urutan yang paling mendekati solusi terbaik. Kemudian, verteks pertama pada list diambil, dibangkitkan suksesornya dan kemudian suksesor ini disimpan ke dalam list sesuai dengan urutan yang terbaik untuk solusi. List verteks ini disebut dengan verteks terbuka open node. Verteks pada list bisa berasal dari kedalaman berapapun dari graf. Algoritma ini akan mengunjungi secara mendalam mirip Depth First Search DFS selama verteks tersebut merupakan verteks yang terbaik. Jika verteks yang sedang dikunjungi ternyata tidak mengarah kepada solusi yang diinginkan, maka akan melakukan runut balik ke arah verteks awal untuk mencari verteks lainnya yang lebih menjanjikan dari pada verteks yang terakhir dikunjungi. Bila tidak ditemuka n juga, maka akan terus mengulang mencari ke arah verteks awal sampai ditemukan verteks yang lebih baik untuk dibangkitkan suksesornya. Strategi ini berkebalikan dengan algoritma DFS yang mencari sampai kedalaman yang terdalam sampai tidak ada lagi suksesor yang bisa dibangkitkan sebelum melakukan runut balik, dan BFS yang tidak akan melakukan pencarian secara mendalam sebelum pencarian secara melebar selesai. A baru berhenti ketika mendapatkan solusi yang dianggap solusi terbaik.

2.4 Fungsi Heuristik

Dalam metode pencarian heuristik, digunakan suatu fungsi heuristik yang digunakan untuk mengevaluasi keadaan-keadaan masalah individual dan menentukan seberapa jauh hal tersebut dapat digunakan untuk mendapatkan solusi yang diinginkan. Suatu fungsi dapat diterima sebagai fungsi heuristik jika biaya perkiraan yang dihasilkan tidak melebihi dari biaya sebenarnya. Suatu fungsi heuristik dapat dikatakan sebagai fungsi heuristik yang baik, apabila dapat memberikan biaya perkiraan yang mendekati biaya sebenarnya. Semakin mendekati biaya sebenarnya, fungsi heuristik tersebut semakin baik. Dalam masalah pencarian rute terpendek dengan graf planar, fungsi heuristik yang dapat digunakan adalah Jarak Euclidian. Fungsi heuristik ini akan menghitung Universitas Sumatera Utara jarak berdasarkan panjang garis yang dapat ditarik dari dua buah titik, yang bisa dihitung menggunakan rumus : Rumus diatas adalah rumus untuk mencari garis lurus antara dua verteks, yaitu verteks a dan verteks b.

2.5 MATLAB Matrix Laboratory

MATLAB merupakan sebuah bahasa pemrograman tingkat tinggi yang ditujukan untuk komputasi teknis. MATLAB mengintegrasikan kemampuan komputasi, visualisasi dan pemrograman dalam sebuah lingkungan yang tunggal dan mudah digunakan. Matlab membertikan sistem interaktif yang menggunakan konsep arraymatrik sebagai standar variabel elemennya tanpa membutuhkan pendeklarasian array seperti pada bahasa lainnya. Dengan MATLAB kita dapat menemukan solusi dari berbagai masalah numerik secara cepat, misalnya sistem 2 persamaan dengan 2 variabel : 2x-3y=24 x+5y=15 Hingga perhitungan yang kompleks , seperti mencari akar-akar polinomial. Interpolasi dari sejumlah data, perhitungan dengan matriks, pengolahan sinyal, dan metoda numerik. Universitas Sumatera Utara Gambar 2.20 Tampilan awal Matlab Gambar 2.21 Tampilan GUI Matlab Universitas Sumatera Utara BAB 3 ANALISIS ALGORITMA

3.1 Analisis Algoritma A

Algoritma A digunakan dalam menemukan lintasan terpendek pada suatu graf dan merupakan pengembangan dari algoritma best first search. Sama seperti BFS, algoritma A juga menggunakan fungsi heuristik. Biaya yang diperhitungkan didapat dari biaya sebenarnya ditambah dengan biaya perkiraan. Dalam notasi matematika dituliskan sebagai berikut : fn = gn + hn Keterangan : • gn adalah total jarak yang didapat dari verteks awal ke verteks sekaranghalangan • hn adalah perkiraan jarak dari verteks sekarang yang sedang dikunjungi ke verteks tujuan. Sebuah fungsi heuristik digunakan untuk membuat perkiraan seberapa jauh lintasan yang akan diambil ke verteks tujuan. • fn adalah jumlah dari gn dan hn. ini adalah perkiraan jalur terpendek sementara. fn adalah jalur terpendek yang sebenarnya yang tidak ditelusuri sampai Algoritma A diselesaikan. Untuk memperjelas pemahaman fungsi diatas, dapa kita lihat pada contoh berikut : Sebuah keluarga akan bergi berlibur suatu tempat liburan, setelah 100 km berkendara, mereka berhenti di suatu restaurant, dan seseorang bertanya kepada pengemudi berapa jauh lagi jarak ke tempat liburan tersebut, dan pengemudi menjawab “kira-kira 130 km lagi”. Universitas Sumatera Utara Dari ilustrasi diatas, jarak 100 km yang telah ditempuh oleh keluarga tersebut direpresentasikan dengan gn, Perkiraan pengemudi, yaitu 130 km adalah hn Jadi fn pasti 100 + 130 = 230 km. Dengan perhitungan biaya seperti ini, algoritma A adalah complete dan optimal Suyanto:2007. Hal ini berbeda dengan Greedy best-first search yang hanya memperhitungkan biaya perkiraan saja, yaitu fn = hn, biaya sebenarnya actual cost tidah diperhitungkan. Dengan hanya menggunakan biaya perkiraan yang belum tentu kebenaranya, maka algoritma ini tidak optimal. Sama halnya seperti algoritma best first search, algoritma A juga menggunakan dua antrian, yaitu OPEN dan CLOSED. Terdapat tiga kondisi bagi setiap suksesor yang dibangkitkan, yaitu : sudah berada di OPEN, sudah berada di CLOSED, dan tidak berada di OPEN maupun CLOSED. Pada ketiga kondisi tersebut diberikan penanganan yang berbeda-beda. Verteks yang berada di OPEN merupakan verteks yang pernah dibangkitkan, dan nilai heuristiknya telah dihitung, tapi belum terpilih sebagai verteks terbaik bestnode. Verteks yang berada di open memiliki peluang untuk terpilih sebagai verteks terbaik peluang masih terbuka. Sebuah verteks akan disimpan di CLOSED jika verteks tersebut pernah terpilih sebagai bestnode. Dengan kata lain CLOSED berisi verteks yang tidak mungkin terpilih sebagai simpul terbaik peluang untuk terpilih sudah tertutup. Jika suksesor sudah pernah berada di OPEN, maka dilakukan pengecekan apakah perlu pengubahan parent atau tidak tergantung pada nilai g-nya melalui parent lama atau parent baru. Jika melalui parent baru memberikan nilai g yang lebih kecil, maka dilakukan pengubahan parent. Jika pengubahan parent dilakukan, maka dilakukan pula perbaruan update nilai g dan f pada suksesor tersebut. Dengan pembaruan ini, suksesor tersebut memiliki kesempatan yang lebih besar untuk terpilih sebagai verteks terbaik bestnode. Universitas Sumatera Utara Jika suksesor sudah pernah berada di CLOSED, maka dilakukan pengecekan apakah perlu pengubahan parent atau tidak. Jika ya, maka pebaruan nilai g dan f pada suksesor tersebut serta pada semua “anak cucunya” yang sudah pernah berada di OPEN. Dengan perbaruan ini, maka semua anak cucunya tersebut memiliki kesempatan lebih besar untuk terpilih sebagai verteks terbaik bestnode. Jika suksesor tidak berada di OPEN maupun CLOSED, maka suksesor tersebut dimasukkan ke dalam OPEN. Tambahkan suksesor tersebut sebagai suksesornya bestnode. Hitung biaya suksesor tersebut dengan rumus fn=gn+hn. Untuk memperjelas pemahaman tentang algoritma A , maka akan diberikan contoh masalah pada gambar dibawah ini. Gambar 3.1 Graf 1 Masalah pencarian rute dalam suatu daerah yang direpresentasikan dalam suatu graf dua arah. Setiap verteks menyatakan suatu kota. Busur menyatakan jarak sebenarnya antara satu kota dengan kota lainnya dan hn menyatakan biaya perkiraan jarak garis lurus Euclidian distance dari verteks n menuju verteks G. maka akan dicari rute terpendek dari S menuju ke G. Universitas Sumatera Utara Dengan menggunakan fungsi heuristik jarak Euclidian jarak garis lurus dari verteks n menuju verteks G, maka didapat hn masing-m asing verteks sebagai berikut : Tabel 3.1 Jarak Euclidian masing-masing verteks pada Graf 1 S A B C D E F G H I J K L M 120 100 95 100 100 110 87 0 50 50 80 30 30 45 Berikut adalah langkah-langkah unutk menyelesaikan permasalan lintasan terpendek dari verteks S ke verteks G dengan menggunakan Algoritma A: Gambar 3.2 Graf 1 Fungsi evaluasi: fA = gS + gS ke A + hA = 0 + 22 + 105 = 127 fB = gS + gS ke B + hB = 0 + 38 + 95 = 133 fC = gS + gS ke C + hC = 0 + 35 + 100 = 135 fD = gS + gS ke D + hD = 0 + 40 + 100 =140 fE = gS + gS ke E + hE = 0 + 15 + 110 = 125 Pertama, karena di OPEN hanya terdapat satu verteks, yaitu S. Maka S terpilih sebagai bestnode dan dipindahkan ke CLOSED. Kemudian dibangkitkan semua suksesor S, yaitu : A, B, C, D dan E. Karena kelima suksesor tidak ada di OPEN maupun CLOSED, maka kelimanya dimasukkan ke OPEN. Langkah pertama ini menghasilkan OPEN=[A,B,C,D,E] dan CLOSED=[S]. Universitas Sumatera Utara Gambar 3.3 Graf 1 Fungsi evaluasi fA = 127 fB = 133 fC = 135 fD = gE + gE ke D + hD = 15 + 15 + 100 =130 fE = gE + gE ke J + hJ = 15 + 40 + 80 = 135 Selanjutnya, E dengan biaya terkeci, yaitu 125, terpilih sebagai bestnode dan dipindahkan ke CLOSED. Lalu , semua suksesor E dibangkitkan, yaitu: D dan J. karena belum pernah ada di OPEN maupun CLOSED, maka J dimasukkan ke OPEN. Sedangkan verteks D sudah ada di OPEN, maka harus di cek apakah parent dari D perlu diganti atau tidak. Ternyata, biaya dari S ke D melalui E yaitu 15+15=30 lebih kecil daripada biaya dari S ke D, yaitu 40. Oleh karena itu, parent dari D harus di ubah, yang semula S menjadi E. Dengan perubahan parent ini, maka nilai g dan f pada D juga harus diperbarui nilai g yang semula 40 menjadi 30, dan nilai f dari 140 menjadi 135. Langkah ke dua ini menghasilkan OPEN=[A,B,C,D,J] dan CLOSED=[S,E]. Universitas Sumatera Utara Gambar 3.4 Graf 1 Fungsi evaluasi fG = gA + gA ke G + hG = 22 + 130 + 0 = 152 fB = gA + gA ke B + hB = 22 + 10 + 95 = 127 fC = 135 fD = 130 fE = 125 Lalu, A dengan biaya terkecil, yaitu 127, terpilih sebagai bestnode dan dipindahkan ke CLOSED. Selanjutnya, semua suksesor A dibangkitkan, yaitu : B dan G. Karena belum pernah ada di OPEN maupun di CLOSED, maka G dimasukkan ke OPEN. Sedangkan verteks B sudah ada di CLOSED, maka harus di cek apakah parent dari B perlu diganti atau tidak. Ternyata biaya dari S ke B yang melalui A, yaitu 22+10=32, lebih kecil daripada biaya dari S ke B langsung, yaitu 35. Oleh karena itu, parent dari B harus diubah, agar didapat biaya terendah, yang semula S menjadi A. Nilai g dan f pada B juga harus diperbarui, nilai g yang semula 35 menjadi 32, nilai f dari 133 menjadi 137. Akhir dari langkah ini menghasikan OPEN=[B,C,D,J,G] dan CLOSED=[S,E,A]. Universitas Sumatera Utara Gambar 3.5 Graf 1 Fungsi Evaluasi : fG = 152 fF = gB + gB ke F + hF = 32 + 10 + 87 = 129 fK = gB + gB ke K + hK = 32 + 80 + 30 = 142 fC = 135 fD = 130 fE = 135 Karena fB memiliki biaya terkecil, yaitu 127, maka B terpilih sebagai bestnode, dan dipindahkan ke CLOSED. Lalu semua suksesor B dibangkitkan, yaitu F dan K. Karena F dan K belum pernah berada di OPEN maupun di CLOSED, maka F dan K dimasukkan ke OPEN. Akhir dari langkah ini menghasilkan OPEN=[C,D,F,J,G,K] dan CLOSED=[S,E,A,B]. Gambar 3.6 Graf 1 Universitas Sumatera Utara Fungsi Evaluasi : fG = 152 fK = gF + gF ke K + hK = 42 + 60 + 30 = 122 fC = 135 fD = 130 fE = 135 Langkah selanjutnya, F dengan biaya terkecil, yaitu 129, terpilih sebagai bestnode dan dipindahkan ke CLOSED. Selanjutnya, semua suksesor F dibangkitkan, yaitu K. karena K sudah ada di OPEN, maka harus di cek apakah parent dari K perlu diganti atau tidak. Biaya dari S ke K melalui F ternyata lebih kecil daripada biaya dari S ke K dengan B sebagai parent-nya. Oleh karena itu, parent dari k harus diubah, yang semula B menjadi F. selanjutnya nilai gK yang semula 92 berubah menjadi 65, dan nilai fK yang semula 142 berubah menjadi 122. Akhirnya OPEN=[C,D, J,G,K] dan CLOSED=[S,E,A,B, F]. Berikutnya, K dengan biaya terkecil, yaitu 122 terpilih sebagai bestnode dan dipindahkan ke CLOSED. Selanjutnya, semua suksesor K dibangkitkan, yaitu verteks G. karena G sebelumnya telah berada di OPEN, maka terlebih dahulu harus diperiksa apakah parent dari G harus diganti atau tidak. Biaya dari S ke G melalui K ternyata lebih kecil daripadda biaya dari S ke G melalui parent lama A. oleh karena itu, parent dari G harus diubah yang semula A menjadi K. lalu nilai gG yang semula 152 diubah menjadi 122, dan nilai fG yang semula 152 menjadi 122. Dari langkah diatas didapat OPEN=[C,D,G,J] dan CLOSED=[S,E,B,A,F,K]. Gambar 3.7 Graf 1 Universitas Sumatera Utara Fungsi Evaluasi : fG = gK + gK ke G + hG = 102 + 30 + 0 = 122 fC = 135 fD = 130 fE = 135 G dengan biaya terkecil, yaitu 122 terpilih sebagai bestnode. Karena bestnode- nya sama dengan goal, berarti solusi telah ditemukan. Rute dan total biaya bias ditelusuri balik dari G menuju S, karena setiap verteks hanya memiliki satu parent dan setiap verteks memiliki informasi biaya yang sebenarnya g. Penelusuran balik menghasilkan rute S-A-B-F-K-G dengan total jarak sama dengan 122, dan rute ini merupakan rute terpendek dari verteks S ke verteks G. Pada kasus diatas A membangkitkan dan menyimpan 10 sepuluh verteks dari 14 empat belas verteks yang ada pada graf.

3.2 Flowchart