Anda di halaman 1dari 17

PASCASARJANA UNDIKSHA-PRODI S2 ILMU KOMPUTER

Jalan Udayana Singaraja-Bali

PROBLEM SOLVING BY
SEARCHING
Artificial Intelegent

Made Agus Janardana


Kadek Oki Sanjaya
Kadek Wikan Paramasila
I Putu Suarma Adi Putra

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 AGENTS
Agen 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 Solusi
Suatu 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

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 enumerdiciptakan 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 SOLUTIONS
Setelah 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,

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 algorithms
algoritma 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,
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 biayayang 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.
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

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 Search
Pencarian 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 Search
Iterative 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 Search
Pencarian 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.

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

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 langkahlangkah 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.

II. Metode Blind


Sebuah 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 Heuristik
Metode pencarian heuristic merupakan teknik yang digunakan untuk meningkatkan efisiensi dari
proses pencarian. Dalam pencarian state space, heuristik adalah aturan untuk memilih cabangcabang 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.

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 15teki; 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.

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.

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.

(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

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 posjawab 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, 24-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 8puzzle 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

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.

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.

Anda mungkin juga menyukai