solving problems by searching

25
PROBLEM SOLVING BY SEARCHING Artificial Intelegent MAY 22, 2015 PASCASARJANA UNDIKSHA-PRODI S2 ILMU KOMPUTER Jalan Udayana Singaraja-Bali Made Agus Janardana Kadek Oki Sanjaya Kadek Wikan Paramasila I Putu Suarma Adi Putra

Upload: oky-sanjaya

Post on 15-Jan-2016

213 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Solving Problems by Searching

problem solving by searching

Artificial Intelegent

MAY 22, 2015

Made Agus JanardanaKadek Oki Sanjaya

Kadek Wikan ParamasilaI Putu Suarma Adi Putra

Page 2: Solving Problems by Searching

SOLVING PROBLEMS BY SEARCHING

Bab ini menjelaskan agen pemecahan masalah. Agen pemecahan masalah menggunakan representasi atom, kita mendiskusikan pemecahan masalah yg dimulai dengan mendefinisikan yang tepat dari masalah dan solusi mereka serta memberikan beberapa contoh untuk menggambarkan definisi ini. Kami kemudian menjelaskan beberapa algoritma pencarian tujuan umum yang dapat digunakan untuk memecahkan masalah ini. Meskipun beberapa dari algoritma ini dapat memecahkan masalah, tidak satupun dari mereka dapat melakukannya secara efisien. Algoritma pencarian informasi, di sisi lain, dapat melakukan cukup baik diberikan beberapa petunjuk di mana untuk mencari solusi. Dalam bab ini, kita membatasi diri dengan jenis yang paling sederhana dari lingkungan tugas.

3.1 PROBLEM-SOLVING AGENTSAgen cerdas seharusnya memaksimalkan ukuran kinerja mereka. Seperti yang telah

disebutkan dalam Bab 2, Proses mencari urutan tindakan yang mencapai tujuannya disebut pencarian. Sebuah

algoritma pencarian mengambil masalah sebagai masukan dan mengembalikan solusi dalam bentuk urutan tindakan. Setelah solusi ditemukan, tindakan itu menganjurkan dapat dilakukan. Ini disebut fase eksekusi. Dengan demikian, kita dapat katakana dengan jalan "merumuskan, pencarian, jalankan" desain untuk agen. Setelah merumuskan tujuan dan masalah untuk memecahkan, agen memanggil prosedur pencarian untuk menyelesaikannya. Ia kemudian menggunakan solusi untuk membimbing tindakannya, melakukan apa solusinya merekomendasikan sebagai hal berikutnya yang harus dilakukan-biasanya, tindakan pertama dari urutan-dan kemudian menghapus langkah dari urutan. Setelah solusi telah dieksekusi, agen akan merumuskan tujuan baru.

Goal formulation, Berdasarkan kondisi seperti ini dan agen mengukur kinerja , adalah langkah pertama dalam pemecahan masalah.

Problem formulation adalah proses untuk memutuskan tindakan dan keadaan apa yang harus dilakukan untuk mencapai suatu tujuan.

3.1.1 Mendefinisikan Masalah dan SolusiSuatu masalah dapat didefinisikan secara formal oleh lima komponen:

Keadaan awal bahwa agen dimulai. (Initial State) Penjelasan mengenai tindakan yang mungkin tersedia untuk agen (Actions) yang bersifat

applicable. Penjelasan tentang apa yang setiap tindakan lakukan; (Transision model). Bersama

dengan Initial State, Actions, dan Transition model secara tidak langsung mendefinisikan sebuah ruang keadaan suatu masalah. Dari semua himpunan yang telah ditetapkan dapat dicapai oleh setiap kondisi awal dari serangkaian tindakan . Keadaan ruang diarahkan membentuk sebuah jaringan atau grafik di mana node adalah serikat dan tindakan yang

Page 3: Solving Problems by Searching

menghubungkan antar node. Sebuah Path di ruang himpunan terhubung dengan serangkaian serangkaian tindakan..

Goal Test, yang menentukan apakah keadaan tertentu adalah negara gol. Kadang-kadang ada serangkaian eksplisit negara gol dan tes hanya memeriksa apakah negara yang diberikan adalah salah satu dari mereka. Kadang-kadang tujuan ditentukan oleh properti abstrak daripada set eksplisit enumer-diciptakan negara. Misalnya, dalam catur, tujuannya adalah untuk mencapai keadaan yang disebut "skak mat," di mana raja lawan diserang dan tidak dapat melarikan diri.

Sebuah Path Cost yang memberikan biaya numerik untuk setiap jalur. Agen pemecahan masalah memilih fungsi biaya yang mencerminkan ukuran kinerja sendiri.

Unsur-unsur sebelumnya mendefinisikan masalah dan dapat dikumpulkan ke dalam struktur data tunggal yang diberikan sebagai masukan untuk algoritma pemecahan masalah. Sebuah solusi untuk masalah adalah urutan tindakan yang mengarah dari keadaan awal ke keadaan gol. Kualitas solusi diukur dengan fungsi biaya jalan, dan solusi optimal memiliki biaya jalur terendah di antara semua solusi.3.1.2 Merumuskan Masalah

Pada bagian sebelumnya kita mengusulkan rumusan masalah mendapatkan ke Bucharest dalam hal keadaan awal, tindakan, Model transisi, tes gol, dan biaya jalan. Formulasi ini tampaknya masuk akal, tapi masih model matematika yang abstrak deskripsi-dan bukan hal yang nyata. Bandingkan deskripsi negara sederhana yang telah kami pilih, Di (Arad), untuk perjalanan lintas negara yang sebenarnya, di mana keadaan dunia termasuk begitu banyak hal: para sahabat bepergian, program radio saat ini, pemandangan dari jendela, kedekatan aparat penegak hukum, jarak ke perhentian berikutnya, kondisi jalan, cuaca, dan sebagainya. Semua pertimbangan ini yang tersisa dari deskripsi negara kita karena mereka tidak relevan dengan masalah menemukan rute ke Bucharest. Proses menghilangkan detil dari representasi disebut abstraksi.Contoh permasalah yang biasa dibahas dalam agen pencarian ini adalah Toy problems dan Real-world problems

3.3 SEARCHING FOR SOLUTIONSSetelah dirumuskan beberapa masalah, kita sekarang perlu untuk menyelesaikannya.

Solusi adalah urutan tindakan, sehingga algoritma pencarian bekerja dengan mempertimbangkan berbagai urutan tindakan yang mungkin dilakukan. Urutan tindakan yang mungkin dilakukan mulai pada keadaan awal dengan membentuk pohon pencarian dengan keadaan awal pada akar; cabang yang tindakan dan node sesuai dengan negara bagian di ruang keadaan dari masalah. Proses memperluas node di perbatasan terus sampai solusi terbaik ditemukan.

Jalur Loopy adalah kasus khusus dari konsep yang lebih umum dari jalur berlebihan, yang ada setiap kali ada lebih dari satu cara untuk mendapatkan dari satu negara ke yang lain. Dalam beberapa kasus, adalah mungkin untuk mendefinisikan masalah itu sendiri sehingga dapat menghilangkan jalur berlebihan. Algoritma baru, yang disebut GAMBAR-PENCARIAN,

Page 4: Solving Problems by Searching

Jelas, pohon pencarian dibangun oleh algoritma GAMBAR-PENCARIAN mengandung paling banyak satu salinan dari setiap negara, sehingga kita bisa menganggapnya sebagai tumbuh pohon langsung pada grafik negara-ruang.

3.3.1 Infrastructure for search algorithmsalgoritma pencarian memerlukan struktur data untuk melacak pohon pencarian yang sedang dibangun. Untuk setiap node 72 pohon, kami memiliki struktur yang berisi empat komponen:■ n. STATE: negara dalam ruang negara yang node sesuai;• n.PARENT: node dalam pohon pencarian yang dihasilkan node ini;• n.Action: tindakan yang diterapkan orang tua untuk menghasilkan node;• n.PATH-COST: biaya, tradisional dilambangkan dengan y (ti), dari jalan ficm keadaan awal ke node, seperti yang ditunjukkan oleh pointer tua.

Sekarang bahwa kita memiliki node, kita perlu tempat untuk menempatkan mereka. Perbatasan harus disimpan sedemikian rupa bahwa algoritma pencarian dapat dengan mudah memilih node berikutnya untuk memperluas sesuai dengan strategi yang disukai. Struktur data yang sesuai untuk ini adalah Queue. Operasi pada Queue adalah sebagai berikut:• Empty? (queue) mengembalikan true jika ada unsur tidak lebih dalam antrian.• Pop (queue) menghapus elemen pertama dari antrian dan mengembalikannya.• INSERT (elemen, queue) menyisipkan unsur dan mengembalikan antrian yang dihasilkan.

Queue yang ditandai dengan urutan di mana mereka menyimpan node dimasukkan. Tiga varian umum :

1. FIFO queue, yang muncul unsur tertua antrian; 2. LIFO queue (juga dikenal sebagai stack), yang muncul unsur terbaru dari antrian; dan 3. Priority Queue, yang muncul unsur antrian dengan prioritas tertinggi menurut beberapa

fungsi memesan.3.3.2 Mengukur kinerja pemecahan masalah

Sebelum kita masuk ke dalam desain algoritma pencarian tertentu, kita perlu mempertimbangkan kriteria yang dapat digunakan untuk memilih di antara mereka. Kita dapat mengevaluasi kinerja algoritma dalam empat cara:

Completeness/Kelengkapan: Apakah algoritma dijamin untuk menemukan solusi ketika ada satu?

Optimality/optimalitas: Apakah strategi menemukan solusi optimal, Time Complexity/Kompleksitas Waktu: Berapa lama waktu yang diperlukan untuk

mencari solusi? Space Complexity/kompleksitas ruang: Berapa banyak memori yang dibutuhkan untuk

melakukan pencarian?Waktu dan kompleksitas ruang selalu dianggap sehubungan dengan beberapa ukuran

kesulitan dalam permasalahan. a. faktor percabangan atau jumlah maksimum penerus dari simpul apapun; b. kedalaman node tujuan dangkal (yaitu, jumlah langkah sepanjang jalan dari akar); dan m,

Page 5: Solving Problems by Searching

c. panjang maksimum jalan apapun dalam ruang keadaan. Waktu sering diukur dalam hal jumlah node yang dihasilkan selama pencarian, dan ruang dalam hal jumlah maksimum node yang tersimpan dalam memori.

Untuk menilai efektivitas algoritma pencarian, kita bisa mempertimbangkan hanya biaya-yang biasanya pencarian tergantung pada kompleksitas waktu tetapi juga dapat mencakup istilah untuk penggunaan memori-atau kita dapat menggunakan biaya total, yang menggabungkan biaya pencarian dan jalan biaya solusi ditemukan. Untuk masalah menemukan rute dari Arad ke Bucharest, biaya pencarian adalah jumlah waktu yang dibutuhkan oleh pencari dan solusi biaya adalah total panjang jalan di kilometer. Dengan demikian, untuk menghitung total biaya, kita harus menambahkan milidetik dan kilometer.

3.4 Uninformed Search Strategies

Uninformed Search sering disebut juga dengan Blind Search. Istilah tersebut menggambarkan bahwa teknik pencarian ini tidak memiliki informasi tambahan mengenai kondisi diluar dari yang disediakan oleh definisi masalah. Yang dilakukan oleh algoritma ini adalah melakukan generate dari successor dan membedakan goal state dari non-goal state. Pencarian dilakukan berdasarkan pada urutan mana saja node yang hendak di-expand.

1. Breadth First Search (BFS)Pencarian dengan Breadth First Search menggunakan teknik dimana langkah pertamanya adalah root node diekspansi, setelah itu dilanjutkan semua successor dari root node juga di-expand. Hal ini terus dilakukan berulang-ulang hingga leaf (node pada level paling bawah yang sudah tidak mempunyai successor lagi).

Gambar 1 Penelusuran Ekspansi Node pada Breadth First Search

2. Uniform Cost Search (UCS)Pencarian dengan Breadth First Search akan menjadi optimal ketika nilai pada semua path adalah sama. Dengan sedikit perluasan, dapat ditemukan sebuah algoritma yang optimal dengan melihat kepada nilai tiap path di antara node-node yang ada.

Page 6: Solving Problems by Searching

Selain menjalankan fungsi algoritma BFS, Uniform Cost Search melakukan ekspansi node dengan nilai path yang paling kecil. Hal ini bisa dilakukan dengan membuat antrian pada successor yang ada berdasar kepada nilai path-nya (node disimpan dalam bentuk priority queue). Ilustrasi jalannya algoritma Uniform Cost Search dapat digambarkan sebagai berikut :

Seperti tampak pada gambar, initial state terletak pada node start, kemudian untuk mencapai node berikutnya, algoritma ini memilih jalur yang memilki harga terkecil diantara dua node di depannya. Begitu seterusnya, dilakukan pengecekan node yang memilki harga terkecil hingga sampai pada goal state. Contoh lebih detil tentang jalannya Algoritma Uniform Cost Search adalah sebagai berikut :

3. Depth First Search (DFS)Teknik pencarian dengan Depth First Search adalah dengan melakukan ekspansi menuju node yang paling dalam pada tree. Node paling dalam dicirikan dengan tidak adanya successor dari node itu. Setelah node itu selesai diekspansi, maka node tersebut akan

Page 7: Solving Problems by Searching

ditinggalkan, dan dilakukan ke node paling dalam lainnya yang masih memiliki successor

yang belum diekspansi.Gambar 2 Penelusuran Ekspansi Node pada Depth First Search

4. Depth Limited SearchPencarian menggunakan DFS akan berlanjut terus sampai kedalaman paling terakhir dari tree. Permasalahan yang muncul pada DFS adalah ketika proses pencarian tersebut menemui infinite state space. Hal ini bisa diatasi dengan menginisiasikan batas depth pada level tertentu semenjak awal pencarian. Sehingga node pada level depth tersebut akan diperlakukan seolah-olah mereka tidak memiliki successor.

5. Iterative Deepening Depth First SearchIterative deepening search merupakan sebuah strategi umum yang biasanya dikombinasikan dengan depth first tree search, yang akan menemukan berapa depth limit terbaik untuk digunakan. Hal ini dilakukan dengan secara menambah limit secara bertahap, mulai dari 0,1, 2, dan seterusnya sampai goal sudah ditemukan.

6. Bidirectional SearchPencarian dengan metode bidirectional search adalah dengan menjalankan dua pencarian secara simultan, yang satu dikerjakan secara forward dari initial state menuju ke goal, sedangkan yang satu lagi dikerjakan secara backward mulai dari goal ke initial state. Yang kemudian diharapkan bahwa kedua pencarian itu akan bertemu di tengah-tengah.

Page 8: Solving Problems by Searching

INFORMED (HEURISTIC) SEARCH STRATEGIES

Algoritma greedy

merupakan salah satu algoritma yang dapat menyelesaikan bermacam-macam permasalahan termasuk permasalahan mengoptimalkan (minimum atau maksimum) hasil yang didapat. Algoritma greedy menerapkan metode pencarian terkontrol dengan melakukan pilihan yang memberikan hasil optimal sementara. Dewasa ini, terdapat berbagai jenis algoritma yang telah diperkenalkan, seperti A bintang (A-star) atau algoritma genetik dimana inti dari semua algoritma ini adalah algoritma greedy. Memilih nilai optimal (maksimum atau minimum) dari sekumpulan pilihan merupakan konsep dasar dari algoritma greedy.

Optimasi Algoritma A*Algoritma ini merupakan algoritma Best First Search yang Menggabungkan Uniform Cost Search dan Greedy Best-First Search. Dimana Harga yang dipertimbangkan f(n) didapat dari harga sesungguhnya g(n) ditambah dengan harga perkiraan h(n). Dalam notasi matematika dituliskan: f(n) = g(n) + h(n). Masalah utama dalam membangun sistem berbasis AI adalah bagaimana mengkonversi situasi yang diberikan ke dalam situasi lain yang diinginkan menggunakan sekumpulan operasi tertentu Masalah water jug / wadah air adalah salah satu masalah yang membutuhkan konversi dari satu situasi menjadi situasi yang diinginkan dengan menggunakan sekumpulan operasi. Dari pendahuluan diatas maka masalah water jug ini dapat diselesaikan dengan algoritma penelusuran graf / node. Oleh karena itu untuk mencari solusi masalah ini dengan optimal dan komplit, penulis menerapkan algoritma A* (Star).

Sama dengan algortima dasar Best First Search, algoritma A* ini juga menggunakan dua senarai : 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

Page 9: Solving Problems by Searching

CLOSED. Pada ketiga kondisi tersebut diberikan penanganan yang berbeda-beda. 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 juga perbaruan (update) nilai g dan f pada suksesor tersebut. Untuk terpilih sebagai simpul terbaik (best node). Jika suksesor sudah pernah berada di CLOSED, maka dilakukan pengecekan apakah perlu pengubahan parent atau tidak. Jika ya, maka dilakukan perbaruan nilai g dan f pada suksesor tersebut serta semua “ anak cucunya” yang sudah pernah berda di OPEN.

Dengan perbaruan ini, maka semua anak cucunya tersebut memiliki kesempatan lebih besar untuk terpilih sebagai simpul terbaik (best node). Jika suksesor tidak berada di OPEN maupun di CLOSED, maka suksesor tersebut dimasukkan ke dalam OPEN. Tambahkan suksesor tersebut sebagai suksesornya best node. Hitung biaya suksesor tersebut dangan rumus f’ = g + h’Dengan penggunaan f(n), maka algoritma A* adalah Complete dan Optimal. Heuristik adalah nilai yang memberi harga pada tiap simpul yang memandu A* mendapatkan solusi yang diinginkan. Dengan heuristik, maka A*pasti akan mendapatkan solusi (jika memang ada solusinya). Dengan kata lain, heuristic masih merupakan estimasi / perkiraan biasa saja. Sama sekali tidak ada rumus khususnya. Artinya,setiap kasus memiliki fungsi heuristic yang berbeda-beda. Algoritma A* menyelesaikan masalah yang menggunakan graf untuk perluasan ruang statusnya. Dengan kata lain digunakan untuk menyelesaikan permasalahan yang bisa di representasikan dengan graf. Algoritma A* adalah sebuah algoritma yang telah diperkaya, dengan menerapkan suatu heuristik, algoritma ini membuang langkah-langkah yang tidak perlu dengan pertimbangan bahwa langkah-langkah yang dibuang sudah pasti merupakan langkah yang tidak akan mencapai solusi yang diinginkan. Algoritma A* membangkitkan simpul yang paling kecil. Simpul ini kemudian disimpan suksesornya ke dalam list sesuai dengan urutan yang paling mendekati solusi terbaik. Kemudian, simpul pertama pada list diambil, dibangkitkan suksesornya dan kemudian suksesor ini disimpan ke dalam list sesuai dengan urutan yang terbaik untuk solusi. List simpul ini disebut dengan simpul terbuka (open node). Dalam ilmu komputer, sebuah algoritma pencarian dijelaskan secara luas adalah sebuah algoritma yang menerima masukan berupa sebuah masalah dan menghasilkan sebuah solusi untuk masalah tersebut, yang biasanya didapat dari evaluasi beberapa kemungkinan solusi. Sebagian besar algoritma yang dipelajari oleh ilmuwan komputer adalah algoritma pencarian. Himpunan semua kemungkinan solusi dari sebuah masalah disebut ruang pencarian. Algortima pencarian brute-force atau pencarian naif/uninformed menggunakan metode yang sederhana dan sangat intuitif pada ruang pencarian (metode blind), sedangkan algoritma pencarian informed menggunakan heuristik untuk menerapkan pengetahuan tentang struktur dari ruang pencarian untuk berusaha mengurangi banyaknya waktu yang dipakai dalam pencarian.

Page 10: Solving Problems by Searching

II. Metode BlindSebuah algoritma pencarian uninformed adalah algoritma yang tidak mempertimbangkan sifat alami dari permasalahan. Oleh karena itu algoritma tersebut dapat diimplementasikan secara umum, sehingga dengan implementasi yang sama dapat digunakan pada lingkup permasalahan yang luas, hal ini berkat abstraksi. Kekurangannya adalah sebagian besar ruang pencarian adalah sangat besar, dan sebuah pencarian uninformed (khususnya untuk pohon) membutuhkan banyak waktu walaupun hanya untuk contoh yang kecil. Sehingga untuk mempercepat proses, kadang-kadang hanya pencarian informed yang dapat melakukannya.II. Metode HeuristikMetode pencarian heuristic merupakan teknik yang digunakan untuk meningkatkan efisiensi dari proses pencarian. Dalam pencarian state space, heuristik adalah aturan untuk memilih cabang-cabang yang paling mungkin menyebabkan penyelesaian permasalahan dapat diterima. Algoritma yang termasuk ke dalam metode ini diantaranya adalah algoritma Greedy-Best First Search dan algoritma A*Depth Limited Search Algoritma Depth Limited Search memberikan batas kedalaman pada algoritma Depth First Search (Russel & Norvig, 1995). Dengan algoritma Depth Limited Search, penelusuran Depth First Search data dibatasi sehingga tidak melakukan penelusuran terlalu dalam. Algoritma Depth Limited Search adalah sebagai berikut:

A. Tetapkan node awal dengan kedalaman = 0 dan tentukan batas kedalaman. B. Cek apakah node adalah node tujuan. Jika benar makaproses berhenti, jika tidak maka

lanjut ke langkah c. C. Cek apakah kedalaman node sama dengan batas kedalaman yang telah ditentukan. Jika

benar, maka lanjutkan proses dengan menelusur hanya node – node yang berada dalam batas kedalaman yang telah ditentukan dan belum dikunjungi dengan kembali kelangkah b. Jika tidak maka lanjutkan ke langkah d.

D. Perluas node dan kembali ke langkah b.Gambaran kerja algoritma Depth Limited Search dapat digambarkan dalam bentuk tree. Tree

merupakan sebuah graf tidak berarah dan merupakan jaringan bersambung yang tidak memiliki untai (loop) sehingga dengan demikian dapat disimpulkan bahwa sebuah tree dapat dibentuk dari graf sederhana karena graf sederhana tidak memiliki self loop ataupun edge parallel. Tree terdiri dari sekumpulan elemen. Elemen tree adalah akar atau root dan simpul. Derajat atau degree sebuah simpul menunjukkan jumlah anak pada simpul tersebut. Dan Pada dasarnya, algoritma DLS sama dengan algoritma DFS, hanya saja dalam permasalahan penelusuran graf, sebelumnya ditentukan terlebih dahulu batas maksimum level yang dikunjungi.

3.6 HEURISTIC FUNCTIONS

Pada bagian ini, kita melihat heuristik untuk 8-puzzle, untuk menjelaskan sifat heuristik pada umumnya.

Page 11: Solving Problems by Searching

  8-puzzle adalah salah satu masalah yang paling awal pencarian heuristik. Seperti disebutkan dalam Sec-tion 3.2, objek teka-teki adalah untuk geser ubin horizontal atau vertikal ke dalam ruang kosong sampai konfigurasi sesuai dengan konfigurasi tujuan (Gambar 3.28).

Biaya rata-rata untuk solusi secara acak 8-puzzle misalnya sekitar 22 langkah. Faktor bercabang sekitar 3. (Ketika ubin kosong di tengah, empat bergerak yang mungkin, ketika itu di sudut, dua,. Dan ketika itu adalah sepanjang tepi, tiga) Ini berarti bahwa pencarian pohon lengkap untuk kedalaman 22 akan melihat sekitar 322 3,1 x 1011) menyatakan. Sebuah pencarian graph akan memotong ini turun dengan faktor sekitar 170.000 karena hanya 'A / 2 = 181, 440 negara yang berbeda bisa dijangkau. (Lihat Latihan 3.4.).

Ini adalah angka dikelola, tetapi angka yang sesuai untuk 15-teki kira-kira 1n13, sehingga urutan berikutnya bisnis adalah untuk menemukan fungsi heuristik yang baik. Jika kita ingin mencari solusi terpendek dengan menggunakan A *, kita membutuhkan fungsi heuristik yang pernah overestimates sejumlah langkah untuk tujuan. Ada sejarah panjang heuristik tersebut untuk 15-teki; di sini adalah dua kandidat umumnya digunakan:

hi = jumlah ubin salah tempat. Untuk Gambar 3.28, semua delapan ubin dari posisi, sehingga negara awal akan hi = 8. hi adalah heuristik diterima karena jelas bahwa setiap genteng yang keluar dari tempat harus dipindahkan setidaknya sekali.

h2 = jumlah dari jarak ubin dari posisi tujuan mereka. Karena ubin tidak bisa bergerak sepanjang diagonal, jarak kami akan menghitung adalah jumlah dari distances_ horizontal dan vertikal ini kadang-kadang disebut kota blok jarak atau Manhattan jarak. h2 juga diterima karena semua langkah apapun dapat Anda lakukan adalah memindahkan satu ubin satu langkah lebih dekat ke tujuan. Ubin 1 sampai 8 di negara mulai memberikan jarak Manhattan

H2 = 3 + 1 + 2 + 2 + 2 + 3 + 3 + 2 = 18.

Seperti yang diharapkan, tak satu pun dari ini overestimates biaya solusi yang benar, yang 26.

Page 12: Solving Problems by Searching

3.6.1 The effect of heuristic accuracy on performance

Salah satu cara untuk mengkarakterisasi kualitas heuristik adalah efektif bercabang faktor b *. Jika jumlah node yang dihasilkan oleh A 'untuk masalah tertentu adalah N dan kedalaman solusi adalah d, maka b * adalah faktor percabangan bahwa pohon seragam mendalam d harus memiliki untuk mengandung N - 1 node. Dengan demikian,

N I 1= 1 6* I (V )2

Sebagai contoh, jika A * menemukan solusi pada kedalaman 5 menggunakan 52 node, maka faktor percabangan efektif 1.92. Faktor bercabang efektif dapat berbeda-beda di contoh masalah, tetapi biasanya cukup konstan untuk masalah yang cukup keras. (Adanya faktor percabangan yang efektif berikut dari hasil, disebutkan sebelumnya, bahwa jumlah node diperluas oleh A ' tumbuh secara eksponensial dengan solusi mendalam.) Oleh karena itu, pengukuran eksperimental i) * padaset kecil masalah dapat memberikan panduan yang baik untuk heuristik kegunaan keseluruhan. Sebuah baik- heuristik yang dirancang akan memiliki nilai 6 * dekat dengan 1, sehingga masalah yang cukup besar untuk dia dipecahkan dengan biaya komputasi yang wajar.

Untuk menguji fungsi heuristik hi dan h2, kami menghasilkan 1.200 masalah acak dengan panjang solusi 2-24 (100 untuk setiap genap) dan dipecahkan mereka dengan berulang pencarian memperdalam dan dengan A 'pohon pencarian menggunakan kedua hi dan h2. Gambar 3.29 memberikan rata-rata jumlah node yang dihasilkan oleh masing-masing strategi dan faktor percabangan efektif. Hasil penelitian menunjukkan bahwa h2 lebih baik dari hi, dan jauh lebih baik daripada menggunakan pencarian pendalaman berulang. Bahkan untuk masalah kecil dengan d = 12, A * dengan h2 adalah 50.000 kali lebih efisien daripada kurang informasi pencarian pendalaman berulang.

Page 13: Solving Problems by Searching

Orang mungkin bertanya apakah h2 selalu lebih baik daripada hi. Jawabannya adalah "Pada dasarnya, ya." 11 mudah untuk melihat dari definisi kedua heuristik bahwa, untuk setiap node n, h2 (n)> hi (n) Dengan demikian kita mengatakan h2 yang mendominasi hi. Dominasi diterjemahkan langsung ke efisiensi: A 'menggunakan h2 tidak akan memperluas lebih node dari A * menggunakan hi (kecuali mungkin untuk beberapa node dengan f (n) = C *). Argumen sederhana. Ingat pengamatan pada halaman 97 bahwa setiap simpul dengan f (n) <C. * pasti akan ia diperluas. Ini adalah sama dengan mengatakan bahwa setiap simpul dengan h (n) <C "-. G (n) pasti akan diperluas Tapi karena h2 setidaknya sebesar hi untuk semua node, setiap node yang pasti diperluas oleh A" pencarian dengan h2 akan juga pasti akan diperluas dengan hi, hi dan dapat menyebabkan node lain untuk diperluas juga. Oleh karena itu, umumnya lebih baik untuk menggunakan fungsi heuristik dengan nilai yang lebih tinggi, asalkan konsisten dan bahwa waktu komputasi untuk heuristik yang tidak terlalu lama.

3.6.2 Generating admissible heuristics from relaxed problems

Kita telah melihat bahwa kedua hi (ubin salah tempat) dan h2 (Manhattan jarak) adalah heuristik cukup baik untuk g-teki dan h2 yang lebih baik. Bagaimana mungkin satu telah datang dengan h2? Apakah mungkin untuk komputer untuk menciptakan heuristik seperti mekanis?

hi dan h2 merupakan perkiraan dari panjang jalan yang tersisa lemak 8-puzzle. tetapi mereka juga jalan sempurna akurat panjang untuk versi yang disederhanakan dari teka-teki. Jika aturan teka-teki yang berubah sehingga ubin bisa bergerak di mana saja, bukan hanya ke alun-alun kosong yang berdekatan, maka h1 akan memberikan jumlah yang tepat dari langkah-langkah dalam larutan terpendek Demikian pula, jika ubin bisa bergerak satu persegi ke segala arah, bahkan ke sebuah persegi yang diduduki, maka h2 akan memberikan jumlah yang tepat dari langkah-langkah dalam larutan terpendek. Masalah dengan sedikit pembatasan pada tindakan disebut masalah santai. Negara-ruang grafik masalah santai adalah supergraph dari ruang keadaan semula karena penghapusan pembatasan menciptakan menambahkan tepi dalam grafik.

Karena masalah santai menambahkan tepi ke ruang negara. solusi optimal dalam masalah asli, menurut definisi, juga solusi dalam masalah santai; tetapi masalah santai mungkin memiliki solusi yang lebih baik jika ujung-ujungnya menambah menyediakan jalan pintas.

Jika definisi masalah yang ditulis dalam bahasa formal, adalah mungkin untuk membangun masalah santai otomatis. L 1 Misalnya, jika tindakan 8-puzzle yang digambarkan sebagai

Ubin A dapat berpindah dari persegi A ke titik B jika

A adalah horisontal atau vertikal berdekatan dengan B dan B kosong,

kita bisa menghasilkan tiga masalah santai dengan menghapus satu atau kedua kondisi:

(a) genteng A dapat berpindah dari persegi A ke titik B jika A berdekatan dengan B.

Page 14: Solving Problems by Searching

(b) genteng A dapat berpindah dari persegi A persegi B jika B kosong.

(c) genteng A dapat berpindah dari persegi A untuk persegi B.

Dari (a), kita dapat memperoleh 712 (Manhattan jarak). Alasannya adalah bahwa h2 akan menjadi nilai yang tepat jika kami pindah masing-masing pada gilirannya ke tujuannya. The heuristik berasal dari (b) dibahas dalam Latihan 3.31. Dari (c), kita dapat memperoleh banyak (ubin salah tempat) karena akan menjadi nilai yang tepat jika ubin bisa bergerak ke tujuan mereka dimaksudkan dalam satu langkah. Perhatikan bahwa sangat penting bahwa masalah santai yang dihasilkan oleh teknik ini dapat diselesaikan pada dasarnya tanpa pencarian, karena aturan santai memungkinkan masalah yang akan didekomposisi menjadi delapan subproblems independen.

Sebuah program yang disebut ABSOLVER dapat menghasilkan heuristik secara otomatis dari definisi masalah, menggunakan "masalah santai." Metode dan berbagai teknik lainnya (Prieditis, 19931. ABSOLVER dihasilkan heuristik baru untuk 8-puzzle yang lebih baik daripada yang sudah ada sebelumnya heuristik dan menemukan heuristik pertama berguna untuk Cube teka-teki Rubik terkenal

Satu masalah dengan menghasilkan fungsi heuristik baru adalah bahwa orang sering gagal untuk mendapatkan satu "jelas terbaik" heuristik. Jika koleksi diterima heuristik h] ... hm yang tersedia untuk masalah dan tidak satupun dari mereka mendominasi apapun yang lain, yang harus kita pilih? Ternyata, kita tidak perlu membuat pilihan. Kita dapat memiliki yang terbaik dari semua dunia, dengan mendefinisikan

Heuristik komposit ini menggunakan fungsi mana yang paling akurat pada node yang bersangkutan. Karena heuristik komponen yang diterima, itu diterima; itu juga mudah di membuktikan bahwa itu konsisten. Selanjutnya. dia mendominasi semua heuristik komponennya.

3.6.3 Generating admissible heuristics frnm subproblems: Pattern databases

Heuristik diterima juga bisa berasal dari biaya solusi dari subproblem dari yang diberikan

Page 15: Solving Problems by Searching

masalah. Sebagai contoh, Gambar 3.30 menunjukkan subproblem dari contoh 8-puzzle pada Gambar-ure 3.28. Subproblem yang melibatkan mendapatkan ubin 1, 2, 3. 4 ke posisi yang benar. Jelas, biaya solusi optimal dari subproblem ini adalah batas bawah pada biaya masalah com-plete. Ternyata untuk menjadi lebih akurat daripada Manhattan jarak dalam beberapa kasus.

Ide di balik database pola adalah untuk menyimpan biaya ini solusi yang tepat untuk setiap pos-jawab contoh-in subproblem contoh kita, setiap kemungkinan konfigurasi empat ubin dan kosong. (The lokasi dari empat ubin lainnya adalah tidak relevan untuk tujuan SOLV-ing subproblem, tetapi bergerak dari mereka ubin yang dihitung terhadap biaya.) Kemudian kami menghitung sebuah heuristik HDB diterima untuk masing-masing negara lengkap ditemui selama pencarian hanya dengan melihat up konfigurasi subproblem yang sesuai dalam database. Database itu sendiri dibangun dengan mencari backt3 dari tujuan dan merekam biaya setiap pola baru en-dimentahkan; mengorbankan pencarian ini diamortisasi selama banyak contoh masalah berikutnya.

Pilihan 1-2-3-4 cukup sewenang-wenang; kami juga bisa membangun database untuk 5-6-7-8, 2-4-6-8 untuk, dan sebagainya. Setiap database menghasilkan sebuah heuristik diterima, dan heuristik ini dapat dikombinasikan, seperti yang dijelaskan sebelumnya, dengan mengambil nilai maksimum. Sebuah heuristik gabungan semacam ini jauh lebih akurat dari jarak Manhattan; jumlah node yang dihasilkan ketika memecahkan acak 15-teka-teki dapat dikurangi dengan faktor 1000.

Pola menguraikan database bekerja untuk teka-teki geser-genteng karena masalah dapat dibagi sedemikian rupa bahwa setiap langkah hanya mempengaruhi satu subproblem-karena hanya satu ubin

dipindahkan pada suatu waktu. Untuk masalah seperti Rubik Cube, jenis subdivisi sulit karena setiap langkah mempengaruhi 8 atau 9 dari 26 cubies. Cara yang lebih umum mendefinisikan aditif, heuristik diterima telah diusulkan yang berlaku untuk kubus Rubik (Yang et al., 2008), tetapi mereka belum menghasilkan heuristik yang lebih baik dari yang terbaik heuristik nonadditive untuk masalah.

3.6.4 Learning heuristics from experience

Sebuah fungsi h heuristik (n) seharusnya memperkirakan biaya solusi mulai dari negara di simpul n. Bagaimana bisa seorang agen membangun fungsi seperti? Salah satu solusi yang diberikan dalam bagian-yaitu sebelumnya, untuk merancang masalah santai yang solusi optimal dapat ditemukan dengan mudah. Solusi lain adalah untuk belajar dari pengalaman. "Pengalaman" di sini berarti memecahkan banyak teka-teki-8, misalnya. Setiap solusi optimal untuk masalah 8-puzzle memberikan contoh yang h (n) dapat dipelajari. Setiap contoh terdiri dari negara dari jalur solusi dan biaya yang sebenarnya dari solusi dari titik itu. Dari contoh-contoh ini, algoritma pembelajaran dapat digunakan untuk membangun fungsi h (n,) yang dapat (dengan keberuntungan) memprediksi biaya solusi bagi negara-negara lain yang muncul selama

Page 16: Solving Problems by Searching

pencarian. Teknik untuk melakukan hal ini dengan menggunakan jaring saraf, pohon de-cision, dan metode lain yang ditunjukkan dalam Bab 18. (The penguatan metode yang dijelaskan dalam Bab 21 belajar juga berlaku.)

Metode pembelajaran induktif bekerja dengan baik ketika disertakan dengan fitur negara yang relevan dengan memprediksi nilai negara, bukan hanya deskripsi keadaan mentah. Misalnya, fitur "jumlah ubin salah tempat" mungkin bisa membantu dalam memprediksi jarak yang sebenarnya dari negara dari gawang. Mari kita sebut fitur ini xi (n). Kita bisa mengambil 100 secara acak konfigurasi 8-puzzle dan mengumpulkan statistik pada biaya solusi yang sebenarnya mereka. Kita mungkin menemukan bahwa ketika xi (n) adalah 5, biaya solusi rata-rata sekitar 14, dan seterusnya. Mengingat data ini, nilai xi dapat digunakan untuk memprediksi h (n). Tentu saja, kita dapat menggunakan beberapa fitur. Sebuah x2 fitur kedua (n) mungkin "jumlah pasang ubin yang berdekatan yang tidak berdekatan di negara tujuan" Bagaimana seharusnya r1 (n) dan T2 (n) dikombinasikan untuk memprediksi h (n) 9 Pendekatan yang umum adalah untuk menggunakan kombinasi linear:

h (n) = eixi (n) + e2s2 (n) •

Konstanta dan e2 disesuaikan untuk memberikan yang terbaik sesuai dengan data yang sebenarnya biaya solusi.

Satu mengharapkan kedua c1 dan e2 menjadi positif karena ubin salah tempat dan pasangan yang berdekatan yang salah membuat masalah sulit untuk memecahkan. Perhatikan bahwa heuristik ini tidak memenuhi kondisi yang

h (n) = 0 untuk negara tujuan, tetapi belum tentu diterima atau konsisten.

3.7 SUMMARY

Bab ini telah memperkenalkan metode yang agen dapat digunakan untuk memilih tindakan di lingkungan yang deterministik, diamati, statis, dan benar-benar dikenal. Dalam kasus tersebut, agen dapat membuat urutan dari tindakan yang mencapai tujuannya; Proses ini disebut pencarian.

• Sebelum agen dapat mulai mencari solusi, tujuan harus diidentifikasi dan masalah yang terdefinisi dengan baik harus dirumuskan.

Page 17: Solving Problems by Searching

• masalah terdiri dari lima bagian: keadaan awal, serangkaian tindakan, model transisi yang menggambarkan hasil tindakan tersebut, fungsi tes tujuan, dan fungsi biaya jalan. Lingkungan dari masalah diwakili oleh negara ruang. Sebuah jalan melalui

ruang negara dari keadaan awal ke keadaan tujuannya adalah solusi.

• algoritma Cari mengobati negara dan tindakan sebagai atom: mereka tidak mempertimbangkan struktur internal mereka mungkin memiliki.

• Algoritma TREE-SEARCH umum menganggap semua jalur yang mungkin untuk menemukan solusi, sedangkan algoritma GAMBAR-PENCARIAN menghindari pertimbangan jalur berlebihan.

• Cari algoritma dinilai berdasarkan kelengkapan, optimalitas, waktu kompleks. ity, dan kompleksitas ruang. Kompleksitas tergantung pada h, faktor percabangan dalam ruang keadaan, dan d, kedalaman solusi dangkal.

• metode pencarian uninformed hanya memiliki akses ke definisi masalah. Algoritma dasar adalah sebagai berikut:

Pencarian -Breadth pertama memperluas node dangkal pertama; itu selesai, optimal untuk biaya satuan. tetapi memiliki kompleksitas ruang eksponensial.

Pencarian -Uniform.cost memperluas node dengan jalan cor termurah, g (n), dan optimal untuk biaya langkah umum.

Pencarian -depth pertama memperluas node tidak dikembangkan terdalam pertama. Hal ini tidak com-plete atau optimal, tetapi memiliki kompleksitas ruang linear. Kedalaman pencarian terbatas menambahkan kedalaman terikat.

-Iterative Pencarian memperdalam panggilan pencarian mendalam-pertama dengan meningkatkan batas kedalaman sampai tujuan ditemukan. Hal selesai, optimal untuk biaya langkah -unit, memiliki kompleksitas waktu sebanding dengan breadth-first pencarian, dan memiliki linear kompleksitas ruang.

Pencarian -Bidirectional sangat besar dapat mengurangi kompleksitas waktu, tetapi tidak selalu berlaku dan mungkin memerlukan terlalu banyak ruang.