196
Searching CS3243 Kecerdasan Mesin dan Artifisial Informatics Theory & Programming (ITP) Informatics Eng. Dept. – IT Telkom

Searching CS3243 Kecerdasan Mesin dan Artifisial

  • Upload
    mervyn

  • View
    212

  • Download
    15

Embed Size (px)

DESCRIPTION

Searching CS3243 Kecerdasan Mesin dan Artifisial. Informatics Theory & Programming (ITP) Informatics Eng. Dept. – IT Telkom. Outline. Representasi Ruang Keadaan Ruang Pencarian Un-informed Search Informed Search. Representasi Ruang Keadaan. - PowerPoint PPT Presentation

Citation preview

Evolutionary Computation Komputasi Berbasis Evolusi dan Genetika

SearchingCS3243 Kecerdasan Mesin dan Artifisial

Informatics Theory & Programming (ITP)Informatics Eng. Dept. IT TelkomOutlineRepresentasi Ruang KeadaanRuang PencarianUn-informed SearchInformed SearchRepresentasi Ruang KeadaanMengkonversi situasi yang diberikan ke dalam situasi lain menggunakan sekumpulan operasi tertentu.Searching merepresentasikan masalah ke dalam ruang keadaan.Untuk melakukan hal ini, diperlukan sedikit kemampuan rekayasa.Masalah Jurigen Air

Bagaimana mendapatkan tepat 2 galon air dalam jurigen tanpa skala ukuran?Ruang KeadaanKeadaan bisa berupa jumlah air yang berada dalam jurigen 4-galon dan jurigen 3-galon. Keadaan = (x, y); x = 0, 1, 2, 3, 4 dan y = 0, 1, 2, 3Keadaan Awal = (0, 0) Keadaan Tujuan = (n, 2) untuk setiap nilai n berupa bilangan bulat [0, 4].Himpunan OperatorOperator (aturan produksi) adalah langkah untuk mengubah suatu keadaan menjadi keadaan yang lain.Kelengkapan himpunan operator?Solusi mungkin tidak ditemukan jika himpunan operatornya tidak lengkap.1(x,y)If x < 4(4,y)Isi penuh jurigen 4 galon2(x,y)If y < 3(x,3)Isi penuh jurigen 3 galon3(x,y)If x > 0(x-d,y)Buang sebagian air dari jurigen 4 galon4(x,y)If y > 0(x,y-d)Buang sebagian air dari jurigen 3 galon5(x,y)If x > 0(0,y)Kosongkan jurigen 4 galon6(x,y)If y > 0(x,0)Kosongkan jurigen 3 galon7(x,y)If x+y 4 and y > 0(4,y-(4-x))Tuangkan air dari jurigen 3 galon ke jurigen 4 galon sampai jurigen 4 galon penuh8(x,y)If x+y 3 and x > 0(x-(3-y),3)Tuangkan air dari jurigen 4 galon ke jurigen 3 galon sampai jurigen 3 galon penuh9(x,y)If x+y 4 and y > 0(x+y,0)Tuangkan seluruh air dari jurigen 3 galon ke jurigen 4 galon10(x,y)If x+y 3 and x > 0(0,x+y)Tuangkan seluruh air dari jurigen 4 galon ke jurigen 3 galon11(0,2)(2,0)Tuangkan 2 galon air dari jurigen 3 galon ke jurigen 4 galon12(2,y)(0,y)Buang 2 galon air dalam jurigen 4 galon sampai habis. Solusi untuk Masalah Jurigen AirJumlah air Dalam jurigen 4 galonJumlah air dalam jurigen 3 galonAturan produksi yang diaplikasikan00-032309332427Solusi untuk Masalah Jurigen AirJumlah Airdalam jurigen 4-galonJumlah Air dalam jurigen 3-galonOperator yang diaplikasikan00-032309332427FWDC (Farmer Wolf Duck and Corn Problem)

FWDC (Farmer Wolf Duck and Corn Problem)Initial State (Keadaan Awal)

Goal State (Keadaan Tujuan)

Himpunan Operator FWDC

Apakah sudah lengkap?Masalah N-Puzzle

Himpunan Operator 8-Puzzle

Masalah Rubiks Cube

Himpunan Operator Rubiks Cube

N-Queen Problem

N-Queen ProblemMemiliki tingkat komputasi sangat tinggi. Untuk N = 8, terdapat = (6463...5857)/8! = 4.426.165.368 susunan yang mungkin. Tetapi, hanya terdapat 92 solusiOperator untuk N-Queen Letakkan Queen satu per satu ke papan catur.Letakkan sebuah Queen sedemikian hingga Queen tersebut tidak mengancam Queen-Queen lain yang sebelumnya telah diletakkan di atas papan catur.Masalah 4-Queen

NTotal SolusiJumlah Solusi Unik11120030042151026417406892129352461072492112.6803411214.2001.7871373.7129.23314365.59645.752152.279.184285.0532324.233.937.684.4403.029.242.658.210

Masalah Permainan Catur

Traveling Salesman ProblemPencarian urutan semua lokasi yang harus dikunjungiMulai dari suatu kota tertentu dan kembali ke kota tersebutMeminimalkan total biaya. Setiap kota harus dikunjungi satu kali.

Searching-based SystemsKonversi masalah ke ruang keadaanSistem Produksi:Sebuah himpunan aturanSatu atau lebih pengetahuan atau basis data yang berisi informasi apapun untuk tujuan tertentu.Strategi kontrol (searching)Menentukan urutan dimana aturan akan dibandingkan dengan basis data;S Menentukan cara pemecahan masalah jika beberapa aturan dapat dilakukan pada waktu yang sama.Masalah Jurigen AirJumlah Airdalam jurigen 4-galonJumlah Air dalam jurigen 3-galonOperator yang diaplikasikan00-032309332427Bagaimana menemukan urutan operator?Metode-metode pencarianBlind (un-informed)Tanpa informasiKompleksitas tinggiHeuristic (informed)Dengan informasiKompleksitas relatif rendahUkuran PerformansiCompletenessApakah metode tersebut menjamin penemuan solusi jika solusinya memang ada?Time complexityBerapa lama waktu yang diperlukan?Space complexityBerapa banyak memori yang diperlukan?OptimalityApakah metode tersebut menjamin menemukan solusi yang terbaik jika terdapat beberapa solusi berbeda?Blind (Un-informed) SearchBreadth-First Search (BFS)Depth-First Search (DFS)Depth-Limited Search (DLS)Uniform Cost Search (UCS)Iterative-Deepening Search (IDS)Bi-Directional Search (BDS)Ruang PencarianPenghitungan ruang pencarian:Faktor pencabangan atau branching factor (b)Kedalaman solusi atau depth (d)8-Puzzle b = 2,13Rubiks cube b = 13,34Permainan Catur rata-rata b = 35Breadth-First Search (BFS)

Performansi BFSComplete OptimalTime complexity = O(bd)Space complexity = O(bd)bdSimpulWaktuMemory1061061 detik100 MB108108100 detik10 GB10141014> 3 tahun 1000 TBKompleksitas BFSAsumsi: 1 simpul = 100 bytes dan kecepatan komputer = 106 simpul/detik.Depth-First Search (DFS)

Performansi DFSTidak Complete Tidak OptimalTime complexity = O(bm)Space complexity = O(bm)m : kedalaman maksimum pohon pencarian.Depth-Limited Search (DLS)

Performansi DLSComplete jika l dTidak OptimalTime complexity = O(bl)Space complexity = O(bl)l : batasan kedalaman.Uniform Cost Search (UCS)BFS menggunakan urutan level dari yang paling rendah sampai yang paling tinggi. UCS menggunakan urutan biaya dari yang terkecil sampai yang terbesar. UCS mencari solusi dengan total biaya terendah yang dihitung berdasarkan biaya dari simpul asal ke simpul tujuan. g(n) = biaya dari simpul asal ke simpul n.

Performansi UCSComplete OptimalTime complexity = O(bd)Space complexity = O(bd)Iterative-Deepening Search (IDS)BFS complete dan optimalDFS space complexity rendah

IDS = gabungan BFS dan DFSIDS complete, optimal, space complexity rendah. IDS Time complexity-nya menjadi sangat tinggi Mengapa?Karena proses pencarian dilakukan secara iteratif sehingga terjadi proses penelusuran menggunakan algoritma DFS yang berulang-ulang.

Performansi IDSComplete OptimalTime complexity = O(bd)Space complexity = O(bd)Bi-directional Search (BDS)Pencarian maju (dari start ke goal) dan pencarian mundur (dari goal ke start).Ketika dua arah pencarian telah membangkitkan simpul yang sama, maka solusi telah ditemukan.Gabungkan kedua jalur yang bertemu.

Masalah BDSPencarian mundur berarti membangkitkan predecessor (simpul induk/parent) dari suatu simpul. Pembangkitan predecessor berarti memerlukan pembalikan operator.Apakah semua operator dapat dibalik?Jika terdapat beberapa simpul tujuan yang berbeda?Harus selalu menguji apakah simpul baru yang dibangkitkan sudah pernah dibangkitkan oleh pencarian dari arah yang berlawanan.Bagaimana menentukan metode pencarian untuk kedua arah tersebut?(x,y)If x < 4(4,y)Isi penuh jurigen 4 galon(4,y)(x,y)x < 4Kurangi air dalam jurigen 4 galon sehingga menjadi x galonPembalikan Operatorx bisa bernilai 0, 1, 2, atau 3. Tanpa skala ukuran, kita tidak mungkin membuang sebagian air sehingga tersisa 1, 2, atau 3 galon. Satu-satunya cara adalah membuang semua air dari jurigen 4 galon sehingga nilai x yang mungkin adalah 0.Performansi BDSComplete OptimalTime complexity = O(bd/2)Space complexity = O(bd/2)Perbandingan metode pencarian [RUS95]KriteriaBFSUCSDFSDLSIDSBDSTimebdbdbmblbdbd/2Spacebdbdbmblbdbd/2Complete?YesYesNoYes, if l dYesYesOptimal?YesYesNoNoYesYesMetode2 Heuristic SearchIterative Deepening A* (IDA*)Simplified Memory-Bounded A* (SMA*)Bi-directional A* (BDA*)Modified Bi-directional A* (MBDA*)Dynamic Weighting A* (DWA*)Beam A* (BA*)

Heuristic (Informed) SearchHeuristic berasal dari bahasa Yunani, heuriskein, yang berarti mencari atau menemukan. Dalam dunia pemrograman, heuristik adalah lawan kata dari algoritmik.Heuristik fungsi yang memberikan suatu nilai berupa biaya perkiraan (estimasi) dari suatu solusi.Metode2 Heuristic SearchGenerate-and-TestHill ClimbingSimulated Annealing (SA)Best-First SearchGreedy Best-First SearchA*Generate-and-Test (GT)Metode paling sederhana dalam heuristic search. Ruang masalah luas waktu proses lama.GT menggunakan prosedur Depth First Search (DFS) karena suatu solusi harus dibangkitkan secara lengkap sebelum dilakukan Test. Algoritma ini bisa berbentuk sistematis, pencarian sederhana yang mendalam pada ruang permasalahan. GT juga dapat dilakukan dengan pembangkitan solusi secara acak, tetapi tidak ada jaminan solusinya akan ditemukan.Algoritma GT. Bangkitkan sebuah solusi yang mungkin. . Tes apakah solusi tersebut bisa diterima sesuai dengan kriteria yang diberikan.. Jika ya, keluar. Jika tidak, kembali ke langkah 1.Hill Climbing (HC)

Hill Climbing (HC)GT pengujian menghasilkan ya atau tidakHC pengujian menghasilkan biaya estimasi antara state sekarang dengan state tujuan.Simple HC

Algoritma Simple HC

Steepest-Ascent HC

Steepest-Ascent HC

Simulated Annealing (SA)Analogi cara pendinginan dan pembekuan metal dengan energi yang minimal. Dengan probaibiltas tertentu, SA mungkin bisa keluar dari jebakan local minimum. SA menggunakan sebuah rumus probabilitas yang memungkinkannya bisa keluar dari local minimum. Ketika new state tidak lebih baik dari current state, dia masih mungkin dipilih dengan probabilitas:

Simulated Annealing (SA)

Algoritma SALihat di file .docBest-First Search

Greedy Best-First SearchBest First Search yang paling sederhanaHanya memperhitungkan biaya perkiraan Biaya sebenarnya tidak diperhitungkanComplete, tapi Tidak Optimal

A*Gabungan Uniform Cost Search dan Greedy Best-First Search. Biaya yang diperhitungkan didapat dari biaya sebenarnya ditambah dengan biaya perkiraan. f(n) = g(n) + h(n)Complete dan Optimal

Algoritma A*Lihat di file .doc

Iterative Deepening A* (IDA*)A* yang iteratif dengan batasan berupa f-limitComplete dan optimalIteratif time complexity-nya tinggiKeuntungan: space complexity sangat rendahSesuai untuk mobile systems

Simplified Memory-Bounded A* (SMA*)IDA* yang hanya mengingat satu f-limitSMA* mengingat f-Cost dari setiap iterasi sampai sejumlah simpul yang ada di dalam memori. Jika memori komputer hanya mampu menyimpan 100 simpul, maka kita bisa membatasi proses pencarian sampai level 99.

SMA*Pada kasus ini, misalkan memori komputer hanya mampu menyimpan 6 simpul. Oleh karena itu, level maksimum yang dapat dijangkau oleh SMA* adalah level 5.

Bi-directional A* (BDA*)Algoritma A* dari dua arah: simpul asal dan tujuan.Pencarian dihentikan jika BestNode dari simpul asal telah berada di dalam CLOSED dari simpul tujuan. Cek apakah harus mengganti parent dari BestNode tersebut dari arah simpul tujuan. Atau sebaliknya, pencarian dihentikan jika BestNode dari simpul tujuan telah berada di dalam CLOSED dari simpul asal. Cek apakah harus mengganti parent dari BestNode tersebut dari arah simpul asal.

Area pencarian yang dilakukan oleh BDA* (b) lebih sempit dibandingkan dengan area pencarian A* (a).

Modified Bi-directional A* (MBDA*)Fungsi heuristik untuk simpul n pada pencarian maju (dari S ke G):

Fungsi heuristik untuk simpul n pada pencarian mundur (dari G ke S):

Modified Bi-directional A* (MBDA*)S: simpul asal atau initial stateG: simpul tujuan atau goal stateg(S,n): biaya sebenarnya dari S ke ng(G,n): biaya sebenarnya dari G ke nhs(n) : biaya perkiraan dari n ke Ghg(n) : biaya perkiraan dari n ke S

Dynamic Weighting A* (DWA*)Fungsi heuristik h diberi bobot dinamis. Pada awal iterasi, lebih baik pencarian dilakukan ke arah mana saja. Tetapi, ketika goal sudah dekat, barulah pencarian difokuskan ke arah goal. Fungsi heuristik yang digunakan

Beam A* (BA*)Membatasi jumlah simpul yang bisa disimpan di dalam OPEN. Ketika jumlah simpul di OPEN sudah melebihi batas tertentu, maka simpul dengan nilai f terbesar akan dihapus. Sedangkan jumlah simpul di dalam CLOSED tetap dibiarkan tanpa batasan karena simpul yang di dalam CLOSED memang tidak mungkin dihapus. Dengan membatasi jumlah simpul di OPEN, maka pencarian menjadi lebih terfokus seperti sinar (beam).

Beam A* (BA*)Pada kasus ini, misalkan jumlah simpul maksimum yang bisa disimpan di dalam OPEN adalah 4.Bagaimana BA* menemukan solusi?

Fungsi heuristikSuatu fungsi dapat diterima sebagai fungsi heuristik jika biaya perkiraan yang dihasilkan tidak melebihi dari biaya sebenarnya. Jika fungsi heuristik overestimate, maka proses pencarian bisa tersesat dan tidak optimal.Suatu fungsi heuristik dikatakan baik jika bisa memberikan biaya perkiraan yang mendekati biaya sebenarnya. Semakin mendekati biaya sebenarnya, fungsi heuristik tersebut semakin baik.

Fungsi heuristik h berupa jarak garis lurus:Masalah 8-puzzle

Fungsi heuristik = ?Fungsi heuristik 8-Puzzleh1 = jumlah kotak yang posisinya salah. Pada masalah di atas, angka 1, 2 , dan 3 sudah berada pada posisi yang benar. Sedangkan lima angka yang lain berada di posisi yang salah. Jadi h1 = 5.Fungsi heuristik 8-Puzzleh2 = jumlah langkah yang diperlukan masing-masing kotak menuju posisi yang benar di goal state. Biasanya disebut City Block distance atau Manhattan distance. Untuk masalah di atas, angka 1, 2 dan 3 membutuhkan 0 langkah. Angka 4, 5, 7, dan 8 membutuhkan 2 langkah. Sedangkan angka 6 membutuhkan 3 langkah. Sehingga h2 = 0 + 0 + 0 + 2 + 2 + 3 + 2 + 2 = 11.

Perbandingan IDS dengan A* yang menggunakan h1 dan h2. Data yang digunakan adalah rata-rata 100 kasus 8-puzzle dengan kedalaman solusi yang bervariasi [RUS95].Algoritma Genetika (AG)Salah satu teknik komputasi berbasis Evolusi dan GenetikaBerbasis populasi (sekumpulan calon solusi)Pencarian dilakukan secara paralel yang dimulai dari sekumpulan individu (calon solusi)AG bisa digunakan untuk searching, optimization, dan learning.Teori EvolusiIlmuwan Berbeda pendapat Pro: Alam tercipta secara acak Kontra: Alam diciptakan oleh intelligent designer Spesies ber-evolusi menjadi spesies lain yang lebih baik

Ngengat cerah gelap? IlusiRef: [ADN07] Rusa ber-evolusi menjadi ...?

Ref: [ADN07]

Monyet Manusia?Banyak ditemukan fosil palsuJika benar, mengapa monyet masih ada hingga hari ini?Mutasi: menjadi lebih baik?

Ref: [ADN07] Struktur DNA amat sangat rumit. Perubahan acak (mutasi) selalu burukEvolusi & GenetikaDua teori lemah EC yang powerful?Dunia komputer berbeda dengan dunia nyata.Banyak simplifikasi

Ref: [EIB03]Mari ke dunia komputer

Apa itu EC?Evolutionary Computation is an abstraction from the theory of biological evolution that is used to create optimization procedures or methodologies, usually implemented on computers, that are used to solve problems [JUL07].Apa itu EAs?Evolutionary Algorithms are generic, population-based meta-heuristic optimization algorithms that use biology-inspired mechanisms like mutation, crossover, natural selection and survival of the ttest.

EAs = algoritma2 yang mengimplementasikan abstraksi ECSkema umum EAs

Beberapa algoritma EAsGenetic Algorithms (GA): binary stringsEvolution Strategies (ES): real-valued vectors Evolutionary Programming (EP): finite state machinesGenetic Programming (GP): LISP trees Differential Evolution (DE) ESGrammatical Evolution (GE) GPTerminologi

Representasi individu (biner)

Representasi individu (integer)

Representasi individu (real)

Representasi permutasi

Nilai FitnessMaksimasi

Minimasi

Seleksi Orangtua

Metode: roulette wheelRekombinasi 1 titik

Rekombinasi banyak titik

Rekombinasi - uniform

Mutasi

Maksimasi h dimana x1 & x2: integer [0,15]Seleksi Survivor: generational

Seleksi Survivor: Steady State

Studi kasus: Minimasi

Nilai minimum h = ?Individu

Fitness

Jika nilai minimum = 0, nilai maks f = ?

Generasi 1

Generasi 1Generasi 10

Generasi 10

Generasi 100

ES: Self Adaptation

EAs sesuai untuk masalah:Sangat kompleks dan Sulit dipahamiTidak bisa menggunakan metode konvensionalReal time systemSolusi tidak harus paling optimalTidak ada pengetahuanTidak tersedia analisa matematika yang memadaiKonvergensi Prematur

Island model EAs

Graph bisection

Graph dua sub graph sama besar? Minimasi busur terpotongGraph bisection

Tentukan operator evolusiSeleksi orangtua: roulette wheelRekombinasi: order crossoverMutasi: swaping mutationSeleksi survivor: generational

Fungsi fitnessB = Jumlah busur yang terpotonga = bilangan kecil untuk menghindari pembagian dengan nol

Pemotongan bahan15 cm11 cmAwas !Kertas ini mahalNo.Ukuran (cm2)Jml15 x 5324 x 6232 x 63Order potonganPola potongan yang meminimasi sisa bahan?Pola pemotongan 1

Pola pemotongan 2

Fungsi fitness

S = sisa bahana = bilangan kecil untuk menghindari pembagian dengan nolTentukan operator evolusiSeleksi orangtuaRekombinasi MutasiSeleksi survivor

Keempat operator bisa sama untuk beragam masalah.Memilih metode pencarian?Seberapa besar ruang masalahnya?Berapakah faktor percabangan (b) dan kedalaman solusinya (d)?Berapa kecepatan prosesor dan memori yang tersedia?Apakah solusinya harus optimal?Bisakah ditemukan fungsi heuristiknya?Terdapat satu goal atau lebih?KesimpulanMetode-metode yang termasuk dalam blind search membutuhkan memori yang sangat besar untuk menyelesaikan masalah yang sederhana. Dengan kecepatan dan memori komputer yang terbatas, saat ini blind search belum memungkinkan untuk diimplementasikan ke dalam dunia nyata. Satu-satunya metode yang mungkin bisa digunakan adalah Iterative Deepening Sarch (IDS) karena membutuhkan memori yang sangat sedikit meskipun waktu prosesnya sangat lama.KesimpulanDiantara metode-metode pencarian yang termasuk dalam heuristic search, A* adalah pilihan yang terbaik ketika kita dapat menemukan sebuah fungsi heuristik untuk masalah yang akan diselesaikan. Kita dapat memilih variasi A* yang paling sesuai dengan masalah yang akan diselesaikan dan sumber daya (waktu dan memori) yang kita miliki.Ketika ditemukan lebih dari satu jenis fungsi heuristik, pilihlah yang paling mendekati biaya sebenarnya.KesimpulanKetika memori yang tersedia sangat terbatas, misalkan pada PDA (Personal Digital Assistant), maka variasi-variasi A*, seperti IDA* dan SMA*, dapat digunakan sebagai alternatif lain yang sangat menjanjikan. Tetapi, perlu diperhitungkan jumlah memori dan kecepatan prosesor yang ada.KesimpulanUntuk masalah yang memiliki satu jenis goal, maka bi-directional search bisa dianggap sebagai alternatif terbaik ketika ruang masalahnya sangat besar. Modified Bi-directional A* (MBDA*) memberikan performansi sangat baik untuk ruang masalah yang sangat besar. Modified Bi-directional ini juga bisa menggunakan variasi A* yang lain, misalnya Beam A* maupun Weighting A* sehingga kita bisa menyebutnya sebagai Modified Bi-directional Beam A* atau Modified Bi-directional Weighting A*.KesimpulanSimulated Annealing (SA) merupakan algoritma yang selalu maju (pada setiap iterasi selalu menghasilkan simpul di level yang lebih dalam). SA bekerja dengan hanya memperhitungkan sibling (simpul yang memiliki parent yang sama) sehingga tidak pernah mundur untuk mencari jalur yang lebih baik. Ketika memori dan kecepatan prosesor sangat terbatas dan solusi yang diharapkan tidak harus optimal, maka Simulated Annealing (SA) adalah pilihan yang paling tepat di antara semua algoritma heuristic search.KesimpulanEC sangat poweful, tetapi hal ini bukanlah bukti untuk membenarkan Evolusi & GenetikaBegitu berhasil membangun kromosom dan fitness, kita bisa menyelesaikan suatu masalah tanpa harus memikirkan analisa matematis dan algoritmanya.Daftar Pustaka[SUY07] Suyanto. 2007. Artificial Intelligence: Searching, Reasoning, Planning and Learning. Informatika, Bandung Indonesia. ISBN: 979-1153-05-1.[RUS95] Russel, Stuart and Norvig, Peter. 1995. Artificial Intelligence: A Modern Approach. Prentice Hall International, Inc.[SUY08] Suyanto, 2008, Evolutionary Computation: Komputasi Berbasis Evolusi dan Genetika, Penerbit Informatika Bandung.[ADN07] Adnan Oktar, 2007, "Mekanisme Khayalan Teori Evolusi", www.evolutiondeceit.com/indonesian/keruntuhan3.php [EIB03] Eiben, A.E. and Smith, J.E., 2003, Introduction to Evolutionary Computing, Springer-Verlag Berlin Heidelberg.[JUL07] Julie Leung, Keith Kern, Jeremy Dawson, 2007, Genetic Algorithms and Evolution Strategies, presentation slides.Farmer Wolf Duck Corn

Sungai

Farmer Wolf Duck Corn

Sungai

1. Move Farmer down2. Move Farmer up3. Move Farmer with Wolf down4. Move Farmer with Wolf up5. Move Farmer with Duck down6. Move Farmer with Duck up7. Move Farmer with Corn down8. Move Farmer with Corn up

1. Move 1 left2. Move 1 right3. Move 1 up4. Move 1 down5. Move 2 left6. Move 2 right7. Move 2 up8. Move 2 down 32. Move 8 down

1. Move Blank up2. Move Blank down3. Move Blank left4. Move Blank right

1. Spin Row 1 to the first side 2. Spin Row 1 to the second side3. Spin Row 1 to the third side4. Spin Row 2 to the first side 5. Spin Row 2 to the second side6. Spin Row 2 to the third side7. Spin Row 3 to the first side 8. Spin Row 3 to the second side9. Spin Row 3 to the third side10. Spin Column 1 to the first side18. Spin Column 3 to the third side

x

y

Solusi 1

Solusi 2

1

30

18

19

20

21

22

23

24

25

26

27

28

29

6

7

8

9

10

11

12

13

14

15

16

17

2

3

4

5

x1=1

x1=2

x1=3

x1=4

x2=2

x2=3

x2=4

x2=1

x2=4

x2=3

x2=1

x2=2

x2=4

x2=1

x2=2

x2=3

x3=2

x3=4

x3=2

x3=3

x3=1

x3=3

x3=2

x3=4

x3=2

x3=3

x3=1

x3=3

x4=3

B

B

B

B

B

B

B

B

B

B

B

B

B

B

B

(2, 4, 1, 3)

31

x4=2

(3, 1, 4, 2)

Solusi unik 1

Solusi unik 2

Solusi unik 3

Solusi unik 4

Solusi unik 5

Solusi unik 6

Solusi unik 7

Solusi unik 8

Solusi unik 9

Solusi unik 10

Solusi unik 11

Solusi unik 12

1

2

3

1

3

2

4

5

6

7

8

9

10

11

12

13

14

15

16

4

17

23

5

9

7

7

x1=2

x1=3

x1=4

x2=3

x2=4

x2=2

x2=4

x2=2

x3=4

x3=3

x3=4

x3=2

x3=3

x3=2

(1,2,3,4,1)

(1,2,4,3,1)

x2=3

(1,3,2,4,1)

(1,3,4,2,1)

(1,4,2,3,1)

(1,4,3,2,1)

(0,0)(0,0)(4,0)(0,3)(4,3)(0,0)(4,0)(4,3)(0,3)(0,0)(1,3)(0,0)(3,0)Langkah 1Langkah 2Langkah 3(0,0)

(4,0)

(4,3)

(0,3)

(0,0)

(1,3)

(0,0)

(4,0)

(0,0)

(0,0)

(0,3)

(4,0)

(4,3)

(0,3)

(0,0)

(1,3)

(0,3)

(4,0)

Langkah 1

Langkah 2

Langkah 3

Langkah 4

(0,0)

(4,0)

(0,3)

S

S

A

B

C

DLS dengan batasan kedalaman = 1

DLS dengan batasan kedalaman = 2

DLS dengan batasan kedalaman = 0

S

G

SABCf = 20f = 23f = 7Gsolusi di level 6Gf = 0f = 17solusi optimum di level 2f = 0Gsolusi di level 4f = 0SABCf = 17f = 20f = 7f = 0Gsolusi optimum di level 2Gf = 23solusi di level 4f = 0solusi di level 6Gf = 0SABCf = 23f = 20f = 17f = 7Gsolusi optimum di level 2f = 0solusi di level 6Gf = 0Gsolusi di level 4f = 0SBFDJGEHKMAL3010103525252015105254050408030409052C40nSh(n)80A80B60C70D85E74F70G0H40J100K30L20M70SBDE10103525AC30f = 80f = 60f = 74f = 70f = 85Langkah 1SBFDEK101035f = 80550AC30f = 30f = 7025f = 70f = 85f = 74Langkah 2SBFDGEK101035f = 053025AC30f = 80f = 70f = 70f = 85f = 7450Langkah 3SBFDJGEHKMAL3010103525252015105254050408030409052C40nSh(n)80A80B60C70D85E74F70G0H40J100K30L20M70SDBE10103525AC30f = g(S) + g(S ke A) + h(A) = 0 + 10 + 80 = 90f = 85f = 100f = 120f = 84Langkah 1SBDJE1010252015f = 90AC30f = 85f = 100f = 110f = 130Langkah 2SBDJE1010252015AC30Langkah 3f = 100f = 110f = 1305FKf = 90f = 100f = 10550SBDJE10102015AC30f = 100f = 110f = 1305F50Kf = 100f = 95f = 10090G10Langkah 4SBDJE10102015AC30f = 100f = 110f = 1305FKf = 100f = 9590G1040Langkah 5SBDJE10102015AC30f = 100f = 110f = 1305FKf = 9590G104030Langkah 6SBFDJGEHKMAL3010103525252015105254050408030409052C40nSh(n)80A80B60C70D85E74F70G0H40J100K30L20M70SDE10103525AC30null, next-f = MIN(85,120) = 85null, next-f = MIN(90,85) = 85Bnull, next-f = MIN(infinity,90) = 90null, next-f = MIN(85,100) = 85null, next-f = MIN(85,84) = 84Langkah 1:

inputs:- node = S- f-limit = 80

returns:- null- next-f = 84SDE10103525AC30Bnull, next-f = MIN(infinity,90) = 90null, next-f = MIN(90,85) = 85null, next-f = MIN(85,100) = 85null, next-f = MIN(85,120) = 85null, next-f = MIN(85,110) = 85D15J20null, next-f = MIN(85,130) = 85Langkah 2:

inputs:- node = S- f-limit = 84

returns:- null- next-f = 85SDE10103525AC30Bnull, next-f = MIN(infinity,90) = 90null, next-f = MIN(90,115) = 90null, next-f = MIN(90,100) = 90null, next-f = MIN(90,120) = 90null, next-f = MIN(90,110) = 90D15J20null, next-f = MIN(90,130) = 9010550AFKnull, next-f = MIN(90,105) = 90null, next-f = MIN(90,100) = 90Langkah 3:

inputs:- node = S- f-limit = 85

returns:- null- next-f = 90SDE10103525AC30Bnull, next-f = MIN(infinity,100) = 100null, next-f = MIN(95,115) = 95null, next-f = MIN(95,100) = 95null, next-f = MIN(95,120) = 95null, next-f = MIN(95,110) = 95D15J20null, next-f = MIN(95,130) = 9510550AFKnull, next-f = MIN(95,105) = 95null, next-f = MIN(95,100) = 959010BG550FKnull, next-f = MIN(95,100) = 95null, next-f = MIN(100,95) = 95Langkah 4:

inputs:- node = S- f-limit = 90

returns:- null- next-f = 95S1030GAnull, next-f = MIN(infinity,100) = 1009010GB540FKLangkah 5:

inputs:- node = S- f-limit = 95

returns:- solusi: S-A-B-F-K-G- next-f = 9510A80+12=12101010101688CD520+5=2520+0=2021EF30+0=3030+1=31G8+5=13HI16+2=1824+0=24JK21+2=2324+0=24B10+5=15A12A12B15A13B15G13I24A15(15)G24A15B15G24A13(15)HG1318A20(24)DB20208()8()CA15(24)B15258()8()345678SBFDJGEHKMAL3010103525252015105254050408030409052C40nSh(n)80A80B60C70D85E74F70G0H40J100K30L20M70S80Langkah 1SDE10103525AC30Bf(A) = MAX(f(S),g(A)+h(A)) = MAX(80,90) = 90f(B) = 85f(C) = 100f(D) = 120f(E) = 848084Langkah 2DE10103525AC30Bf(A) = MAX(f(S),g(A)+h(A)) = MAX(80,90) = 90f(B) = 85f(C) = 100f(D) = 120848485 (100,120) SDJ1520f(D) = MAX(f(E),g(D)+h(D)) = MAX(84,110) = 110f(J) = MAX(f(E),g(J)+h(J)) = MAX(84,130) = 130110Langkah 3100E10101025A550Bf(A) = MAX(f(S),g(A)+h(A)) = MAX(80,90) = 9085AF848590 (100,110,120) SDJ1520f(D) =110f(J) = 130Kf(A) = MAX(f(B),g(A)+h(A)) = MAX(85,115) = 115f(F) = MAX(f(B),g(F)+h(F)) = MAX(85,100) = 100f(K) = MAX(f(B),g(K)+h(K)) = MAX(85,105) = 105110 (130)Langkah 4f(G) = MAX(f(A),g(G)+h(G)) = MAX(90,100) = 100901025ABG908590 (100,110,120) SB10f(B) = MAX(f(A),g(B)+h(B)) = MAX(90,80) = 90100 (105,115)10550AFKf(A) = 115f(F) = 100f(K) = 105Langkah 51025A9095 (100,110,120) SB100 (105,115)95 (100)G90B10f(G) = 10090F5K5F50f(F) = MAX(f(B),g(F)+h(F)) = MAX(90,95) = 95f(F) = 100f(K) = MAX(f(B),g(K)+h(K)) = MAX(90,100) = 10095Langkah 61025A95 (100,110,120) SB100 (105,115)95 (100)f(K) = MAX(f(F),g(K)+h(K)) = MAX(95,95) = 95B1095FK55095f(K) = 100K40Langkah 710A95 (100,110,120) S95 (100)B1095FK550f(K) = 10095K40f(G) = MAX(f(K),g(G)+h(G)) = MAX(95,95) = 9595G30Langkah 8SBFDJGEHKML101035252520151052540504080309052AC304040nhs(n)S80A80B60C70D85J100K30L20M70E74F70G0H40nhg(n)S0A10B15C25D30J25K50L70M60E5F20G90H45Langkah 1SDE10103525AC30BPencarian Maju (dari S ke G)f = g(S) + g(S ke A) + h(A) = 0 + 10 + 80 = 90f = 85f = 100f = 120f = 84Pencarian Mundur (dari G ke S)GM908030AL40Kf = g(G) + g(G ke A) + h(A) = 0 + 90 + 10 = 100f = 80f = 110f = 140SBDJE1010252015AC30f = 90f = 85f = 100f = 110f = 130GM908030AL40Kf = 100f = 95f = 110f = 1404050FBf = 85Langkah 2SBDJE1010252015AC30f = 100f = 110f = 1305F50Kf = 90f = 100f = 105GM908030AL40Kf = 100f = 90f = 110f = 14040FB5Langkah 3SBDJE1010252015AC30f = 100f = 110f = 1305F50Kf = 90f = 100f = 105GM908030AL40Kf = 100f = 90f = 110f = 14040FB5Langkah 4SBFDJGEHKML101035252520151052540504080309052AC304040nhs(n)S80A80B60C70D85J100K30L20M70E74F70G0H40nhg(n)S0A10B15C25D30J25K50L70M60E5F20G90H45Langkah 1SDE10103525AC30BPencarian Maju (dari S ke G)fs(A) = g(S,S) + g(S,A) + [hs(A)-hg(A)] = 0 + 10 + (80-10) = 45fs(B) = 25 + (60-15) = 47,5fs(C) = 30 + (70-25) = 52,5fs(D) = 62,5fs(E) = 44,5Pencarian Mundur (dari G ke S)GM908030AL40Kfg(K) = 30 + (50-30) = 40fg(A) = g(G,G) + g(G,A) + [hg(A)-hs(A)] = 0 + 90 + (10-80) = 55fg(M) = 75fg(L) = 65SBDJE1010252015AC30fs(A) = 45fs(C) = 52,5fs(J) = 67,5fs(D) = 52,5fg(A) = 55Langkah 2fs(A) = 47,5GM908030AL40Kfg(A) = 45fg(A) = 57,5fg(L) = 65fg(M) = 754050FBSBDJE1010102015AC3090G5fs(G) = 55fs(A) = 42,5fs(D) = 52,5fs(J) = 67,5fs(C) = 52,5GM908030AL40K40FBfg(A) = 55fg(A) = 45fg(B) = 52,5fg(L) = 65fg(M) = 75Langkah 3SBDJE1010102015AC30fs(D) = 52,5fs(J) = 67,5fs(C) = 52,590G40GM908030Afs(G) = 55L40K40FBfg(A) = 55fg(A) = 45Langkah 4fg(B) = 52,5fg(L) = 65fg(M) = 755FF50fs(F) = 50fs(K) = 60SBFDJGEHKMAL3010103525252015105254050408030409052C40nSh(n)80A80B60C70D85E74F70G0H40J100K30L20M70Langkah 1SDE10103525AC30Bf = g(S) + g(S ke A) + w(A) * h(A) = 0 + 10 + 1.2 * 80 = 106f = 97f = 114f = 137f = 98.8SDE10103525AC30Bf = 1075Langkah 2f = 107f = 128,5f = 91.4F50Kf = 0 + 10 + 1.1 * 80 = 98f = 108SDE101025AC30Bf = 107f = 118,5f = 1405F50Kf = 0 + 10 + 1.1 * 80 = 98f = 107f = 1081520JLangkah 3SDE1010AC30Bf = 107f = 118,5f = 1405FKf = 102f = 981520J1040G90Langkah 5f = 100SDE1010GAC30Bf = 107f = 118,5f = 1405F50K10f = 102f = 1031520J90Langkah 4f = 100SDE1010AC30Bf = 107f = 118,5f = 1405FKf = 102f = 981520J1040G90Langkah 5f = 100SDE1010AC30Bf = 100f = 110f = 1305FK1520J104030Gf = 95Langkah 690SBFDJGEHKMAL3010103525252015105254050408030409052C40nSh(n)80A80B60C70D85E74F70G0H40J100K30L20M70Langkah 1SDE10103525AC30Bf = g(S) + g(S ke A) + h(A) = 0 + 10 + 80 = 90f = 85f = 100f = 120f = 84SBDJE1010252015AC30Langkah 2f = 90f = 85f = 100f = 110f = 130SBDE10102515AC30Langkah 3f = 100f = 1105F50Kf = 90f = 100f = 105SBE1010AC30f = 1005F50Kf = 100f = 95f = 10090G10Langkah 4SBE1010AC30f = 1005FKf = 100f = 9590G1040Langkah 5SBE1010AC30f = 1005FKf = 9590G104030Langkah 6AC16100BD(65,10)(20,10)(35,10)(55,10)10Sheet1dJumlah node yang dibangkitkanFaktor percabanganIDSA* (h1)A* (h2)IDSA* (h1)A* (h2)210662.451.791.79411213122.871.481.45668020182.731.341.386,38439252.81.331.241047,12793392.791.381.2212364,404227732.781.421.24143,473,9415391132.831.441.2316-1,301211-1.451.2518-3,056363-1.461.2620-7,276676-1.471.2722-18,0941,219-1.481.2824-39,1351,641-1.481.26

Sheet2

Sheet3

PopulasiOrangtuaAnakInisialisasiTerminasiSeleksi orangtuaSeleksi survivorRekombinasiMutasi