Anda di halaman 1dari 17

3.

Advanced Search
3.1 Best-First Search
3.1.1 Greedy Search: minimize estimated cost to reach goal
Hanya menggunakan estimated cost, harga sesungguhnya tidak digunakan. h(n) = harga perkiraan dari node n ke Goal. Goal: h(n) = 0.

Perhatikan contoh kasus di bawah ini.

85 75 I 140 C 120 E 180 A

300 160 D 200 250 F G

h(n) = jarak garis lurus ke G


I 400 A 360 B 280 C 300 D 180 E 400 F 200

Pada kasus di atas, jalur yang terpilih: I - C - D - G = 140 + 160 + 200 = 500 Padahal jalur terbaik adalah: I - A - B - G = 75 + 85 + 300 = 460 Kesimpulan: Greedy Search tidak Optimal.

Special Interest Group: Computer Science

AI Advanced Search 1 of 17

3.1.2

A Star (A*): minimize the total path cost

Merupakan gabungan dari Uniform Cost Search dan Greedy Search. h(n) = harga perkiraan dari node n ke Goal. g(n) = harga sesungguhya dari node n ke Initial. f(n) = g(n) + h(n)

1. OPEN = node asal CLOSE array kosong g=0 f = h 2. Ulangi sampai node tujuan ditemukan If OPEN kosong then Gagal Else BestNode = node yang ada di OPEN dengan f minimal Pindahkan node terbaik tersebut dari OPEN ke CLOSE If BestNode = goal then Sukses Else Bangkitkan semua suksesor BestNode tapi jangan buat pointer Untuk setiap suksesor kerjakan : Hitung g(suksesor) = g(BestNode) + actual cost(dari BestNode ke suksesor) {periksa suksesor} If suksesor ada di OPEN then {sudah pernah digenerate tapi belum diproses} OLD = isi OPEN tersebut Tambahkan OLD sebagai suksesor BestNode Buat pointer dari OLD ke BestNode Bandingkan nilai g(OLD) dengan g(isi OPEN) If g(OLD) lebih baik then Ubah parent isi OPEN ke BestNode Ubah nilai g dan f pada isi OPEN End Else If suksesor ada di CLOSE then {sudah pernah digenerate dan sudah diproses} OLD = isi CLOSE Tambahkan OLD sebagai suksesor BestNode Bandingkan nilai g(OLD) dengan g(isi OPEN) If g(OLD) lebih baik then Ubah parent isi OPEN ke BestNode Ubah nilai g dan f pada isi OPEN Propagasi untuk semua suksesor OLD dengan penelusuran DFS dengan aturan: Ulangi sampai node suksesor tidak ada di OPEN atau node tidak punya suksesor If suksesor ada di OPEN then Propagasi diteruskan Else If nilai g via suksesor lebih baik then Propagasi diteruskan Else Propagasi dihentikan End End End Else {suksesor tidak ada di OPEN maupun CLOSE} Masukkan suksesor ke OPEN Tambahkan suksesor tersebut sebagai suksesor BestNode Hitung f = g(suksesor) + h(suksesor) End End End End

Special Interest Group: Computer Science

AI Advanced Search 2 of 17

Soal Latihan
Lakukan tracing menggunakan algoritma A* untuk graph di bawah ini, dimana Initial Node adalah I dan Goal Node adalah G.

70 A 100 20 I 140 C 150 160 E

350

D 200 G

380

h(n) = jarak garis lurus ke G I 400 A 350 B C 310 D 180 E 320

280

Pada contoh soal di atas, terdapat kasus-kasus dimana suksesor ada di OPEN, CLOSE, dan tidak ada di OPEN maupun CLOSE. Jalur OPTIMUM yang dihasilkan adalah I - A G = 450.

Special Interest Group: Computer Science

AI Advanced Search 3 of 17

3.2 Heuristic Functions


Dari kata Yunani heuriskein berarti mencari atau menemukan. Oxford dictionary: Adjective (formal)(of a method of teaching) that helps or allows learners (LEARN) to discover and learn things themselves. Noun [U] (formal) a method of solving problems by learning from past experience and investigating practical ways of finding a solution.

Untuk masalah 8-puzzle di bawah ini, bagaimana fungsi heuristic-nya?

1 8 6

2 7

3 4 5

1 4 7

2 5 8
Goal State

3 6

Initial State

Ada dua fungsi heuristic yang dapat digunakan, yaitu: h1 = jumlah kotak yang posisinya salah. Untuk masalah di atas, h1 = 5. h2 = jumlah langkah yang diperlukan masing-masing kotak menuju goal state. Biasanya disebut city block distance atau Manhattan distance. Untuk masalah di atas, h2 = 0 + 0 + 0 + 2 + 2 + 3 + 2 + 2 = 11.

Untuk semua kemungkinan state, h2 >= h1. Apakah h2 lebih baik daripada h1? Ataukah sebaliknya? Ukuran yang dapat digunakan adalah jumlah state yang harus dibangkitkan sampai menemukan solusi.

Special Interest Group: Computer Science

AI Advanced Search 4 of 17

Perbandingan Iterative-Deepening-Search dengan A* menggunakan h1 dan h2. Data adalah rata-rata 100 kasus 8-puzzle untuk panjang solusi yang bervariasi [Stuart Russel & Peter Norvig, 1995]
Search Cost Depth 2 4 6 8 10 12 14 16 18 20 22 24 IDS 10 112 680 6,384 47,127 364,404 3,473,941 A* (h1) 6 13 20 39 93 227 539 1,301 3,056 7,276 18,094 39,135 A* (h2) 6 12 18 25 39 73 113 211 363 676 1,219 1,641 Effective Branching Factor IDS 2.45 2.87 2.73 2.80 2.79 2.78 2.83 A* (h1) 1.79 1.48 1.34 1.33 1.38 1.42 1.44 1.45 1.46 1.47 1.48 1.48 A* (h2) 1.79 1.45 1.30 1.24 1.22 1.24 1.23 1.25 1.26 1.27 1.28 1.26

Hasil percobaan untuk kasus di atas, ternyata h2 lebih baik dibanding h1. Hal ini disebabkan h2 lebih mendekati harga sesungguhnya. Pada kasus di atas, solusi didapat pada langkah ke-11. Fungsi h1 = 5, sedangkan h2 = 11 (kebetulan sama dengan harga sesungguhnya). Dengan kata lain, h2 lebih optimis dibanding h1.

Fungsi heuristic tidak boleh melebihi harga sesungguhnya. Jika ditemukan banyak fungsi heuristic dalam suatu masalah, maka gunakan fungsi heuristic yang paling mendekati harga sesungguhnya.

h(n) = max(h1(n), h2(n), , hm(n))

Kesimpulan: Heuristic terbaik adalah yang paling mendekati harga sesungguhnya, tetapi tidak melebihi harga sesungguhnya.

Special Interest Group: Computer Science

AI Advanced Search 5 of 17

3.3 Memory Bounded Search


Untuk masalah tertentu, dimana memory komputer (RAM) terbatas, algoritma A* tidak mampu menyelesaikannya. Terdapat dua algoritma modifikasi A*, untuk mengatasi masalah memory, yaitu:

3.3.1 Iterative Deepening A* (IDA*)


Iterative Deepening is used in Depth-First Search to limit storage requirements. Here the idea is applied to the A* algorithm (from Russell-Norvig):

Algoritma IDA*
function IDA*(problem) returns a solution sequence inputs: problem, a problem local variables: f-limit, the current f-Cost limit root, a node root MAKE-NODE(INITIAL-STATE[problem]) f-limit f-Cost(root) loop do solution,f-limit DFS-CONTOUR(root,f-limit) if solution is non-null then return solution if f-limit is INFINITE then return failure end
function DFS-CONTOUR(node,f-limit) returns a solution sequence and a new f-Cost limit

inputs: node, a node f-limit, the current f-Cost limit local variables: next-f, the f-Cost limit for the next contour, initially INFINITE if f-Cost[node] > f-limit then return null, f-Cost[node] if GOAL-TEST[problem](STATE[node]) then return node,f-limit for each node s in SUCCESSOR(node) do solution,new-f DFS-CONTOUR(s,f-limit) if solution is non-null then return solution,f-limit next-f MIN(next-f,new-f) end return null, next-f

IDA* is, in the same sense as A*, complete and optimal.

Special Interest Group: Computer Science

AI Advanced Search 6 of 17

3.3.2 SMA*: Simplified Memory Bounded A*


Contrary to IDA*, SMA* remembers after each iteration, not just the f-cost limit, but as many nodes as the available memory affords. We restrict the search to consider only the nodes that can be reached from the root along a path whose nodes fit in memory. And it returns the best path among those that are restricted to these nodes. Again from Russell-Norvig we have:

A 0+12=12 10 B 10+5=15 8 G 8+5=13

10 C 20+5=25

10 D 20+0=20 16+2=18 H

16 I 24+0=24

10 E 30+5=35

10 F 30+0=30 19+0=19 J

8 K 24+5=29

1
12

2
12 12 B 15 15

A A

3
13 B 15

A 12 G 13

A 1 3 (1 5 ) 1 2 G 13 H 18 ( ) 8

5 A
12 1 5 (1 5 ) G 24 ( ) I 24

A 1 5 1122 B G 24

7
1 5 (2 4 ) B 15 C 25 ( )

A 12

8
2 0 (2 4 ) B 20 ( ) 8

15

Special Interest Group: Computer Science

D 20

AI Advanced Search 7 of 17

Algoritma SMA*
function SMA*(problem) returns a solution sequence inputs: problem, a problem local variables: Queue, a queue of nodes ordered by f-cost Queue MAKE-QUEUE({MAKE-NODE(INITIAL-STATE[problem])}) loop do if Queue is empty then return failure n deepest least f-cost node in Queue if GOAL-TEST(n) then return success s NEXT-SUCCESSOR(n) insert s in Queue if s is not a goal and is at maximum depth then f(s) INFINITE else f(s) MAX(f(n),g(s)+h(s)) if all of n's successors have been generated then update n's f-cost and those of its ancestors if necessary remove n from Queue if memory is full then delete shallowest, highest f-cost node in Queue remove it from its parent's successor list insert its parent on Queue if necessary end

Special Interest Group: Computer Science

AI Advanced Search 8 of 17

3.4 Bi-directional Algorithms


3.4.1 Bi-directional A*

Graph berarah dilambangkan G = (V,E) V E : himpunan node-node dalam graph (Vertex). : himpunan sisi-sisi yang menghubungkan node-node dalam V.

e(u,v) : sisi-sisi dalam graph E l(u,v) : panjang e(u,v) dalam E. ps(u) : jarak antara node s dengan node u (nilai potensial node u terhadap node s). r(s,d) : rute dari s (source) ke d (destination).

Fungsi heuristic pada A* dapat dituliskan dalam bentuk lain:

f = l(s,u) + l(u,v) + hs(v)

dimana: g = l(s,u) + l(u,v)

h = hs(v) Dengan hs(v) adalah estimasi jarak dari node v ke node d.

Special Interest Group: Computer Science

AI Advanced Search 9 of 17

1. 2. 3.

Himpunan S , T ; nilai s dan d tidak boleh 0.

+ ; tentukan ps(s) = 0 dan pd(d) =

Cari node us yang memiliki nilai ps(vs) + hs(vs) terkecil di S dan tambahkan us ke S. Jika us di D, lakukan langkah 7. Untuk semua node vs dimana sisi (us,vs) di dalam E, jika ps(us) + l(us,vs) lebih kecil dari ps(vs): ganti rute (s,vs) dengan rute (s,us) + sisi (us,vs) dan ganti nilai ps(vs) = ps(us) + l(us,vs) dan hapus vs dari S jika vs di dalam S.

4. 5.

Cari node ud yang memiliki nilai pd(vd) + hd(vd) terkecil di D dan tambahkan ud ke D. Jika ud di S, lakukan langkah 7. Untuk semua node vd dimana sisi (vd,ud) di dalam E, jika l(vd,ud) + pd(ud) lebih kecil dari pd(vd): ganti rute (vd,d) dengan sisi (vd,ud) + rute (ud,d) dan ganti nilai pd(vd) = l(vd,ud) + pd(ud) dan hapus vd dari D jika vd di dalam D.

6. 7.

Kembali ke langkah 2. Cari sisi (u,v) dengan meminimalisasi ps(u) + l(u,v) + pd(v) dimana u di dalam S dan v di dalam D. Jika ps(u) + l(u,v) + pd(v) < ps(us) + pd(ud) maka rute terpendek (s,d) = rute(s,u) + sisi(u,v) + rute(v,d) jika tidak, maka rute terpendek (s,d) = rute(s,us) + rute(ud,d).

3.4.2 Algoritma Modified Bi-directional A*


F = l ( s, u ) + l (u , v ) + 1 [ hs (v) hs (u )] + 1 [ ht (u ) ht (v)] 2 2

Secara detail, algoritmanya sama dengan algoritma bi-directional A* dengan perubahan pada langkah (2) dan (4): (2) Cari node us yang memiliki nilai ps(vs) terkecil di S dan tambahkan us ke S. Jika us di D, lakukan langkah 7. (4) Cari node ud yang memiliki nilai pd(vd) terkecil di D dan tambahkan ud ke D. Jika ud di S, lakukan langkah 7. Dan langkah (3) dan (5): (3) Untuk semua node vs dimana sisi (us,vs) di dalam E, jika ps(us) + l(us,vs) lebih kecil dari ps(vs): ganti rute (s,vs) dengan rute (s,us) + sisi (us,vs) dan ganti nilai ps(vs) = ps(us) + l(us,vs) dan hapus vs dari S jika vs di dalam S. (4) Untuk semua node vd dimana sisi (vd,ud) di dalam E, jika l(vd,ud) + pd(ud) lebih kecil dari pd(vd): ganti rute (vd,d) dengan sisi (vd,ud) + rute (ud,d) dan ganti nilai pd(vd) = l(vd,ud) + pd(ud) dan hapus vd dari D jika vd di dalam D.

Special Interest Group: Computer Science

AI Advanced Search 10 of 17

3.5 Iterative Improvement Algorithm


3.5.1 Hill Climbing
f = estimated cost to Goal.

f = 20

D f = 12

E f = 15

f=7

function HILL-CLIMBING returns a solution state inputs: problem, a problem local variables: current, a node next: a node current MAKE-NODE(INITIAL-STATE[problem]) loop do next a highest-valued successor of current if VALUE[next] < VALUE[current] then return current current next end

Jika terdapat lebih dari satu best successor, maka algoritma akan memilih next state secara random. Hal ini akan memberikan tiga kekurangan, yaitu: Local Minima, Plateaux, dan Ridges.

f = 20

D f = 12

f=7

f=7

solusi optimal di level 2

G G solusi di level 8

Special Interest Group: Computer Science

AI Advanced Search 11 of 17

3.5.2 Simulated Annealing

Random search based on:

1. 2. 3. 4.

Evaluate the initial state. If it is also a goal state, then return it and quit. Otherwise, continue with the initial state as the current state. Initialize BEST-SO-FAR to the current state. Initialize T according to the annealing schedule. Loop until a solution is found or until there are no operators left to be applied in the current state. (a) (b) Select an operator that has not yet been applied to the current state and apply it to produce a new state. Evaluate the new state. Compute: E = abs(value of current value of new state) If the new state is a goal state, then return it and quit. If it is not a goal state but is better than the current state, then make it the current state. Also set BEST-SO-FAR to this new state. If it is not better than the current state, then make it the current state with probability p as defined above. This step is usually implemented by invoking a random number generator to produce a number in the range [0,1]. If that number is less than p, then the move is accepted. Otherwise, do nothing. Revise T as necessary according to the annealing schedule.

(c) 5.

Return BEST-SO-FAR as the answer.

Special Interest Group: Computer Science

AI Advanced Search 12 of 17

3.6 Genetic Algorithm


GA pertama kali diperkenalkan oleh John Holland dari Universitas Michigan pada dekade 70-an. Dalam bukunya Adaptation in Natural and Artificial yang diterbitkan pada tahun 1975, John Holland menyebutkan bahwa GA mampu melakukan optimasi parameter dengan lebih efisien dibandingkan dengan teknik pencarian lainnya terutama dalam ruang pencarian yang kompleks.

3.6.1 Representasi Kromosom


Teknik untuk merepresentasikan solusi berbeda-beda untuk setiap persoalan dan jenis GA yang digunakan. Dalam GA yang digunakan oleh John Holland, representasi genetik yang digunakan yaitu sederetan bit ( bit strings). Kebanyakan GA menggunakan representasi ini tetapi banyak peneliti lain yang menggunakan jenis pengkodean lain seperti representasi bilangan nyata, matriks, struktur pohon, struktur list berkait, dan lain-lain. Beberapa penulis literatur menggunakan istilah Traditional/Classical GA untuk menyatakan GA yang menggunakan representasi bit strings dan Evolutionary Programming untuk GA yang menggunakan representasi yang lebih rumit[RUS95].

3.6.2 Fungsi evaluasi


Fungsi evaluasi atau juga disebut fungsi obyektif merupakan penghubung antara GA dan permasalahan yang akan diselesaikan. Suatu fungsi evaluasi menerima masukan kromosom dan mengembalikan nilai yang merupakan ukuran performansi kromosom pada persoalan yang diselesaikan. Fungsi evaluasi dalam GA memainkan peran yang sama dengan peran lingkungan dalam evolusi alamiah. Interaksi antara individu dengan lingkungannya memberikan suatu ukuran kesesuaian ( fitness) individu tersebut, hal yang sama juga berlaku pada GA di mana interaksi dari kromosom dengan fungsi evaluasi memberikan ukuran kesesuaiannya pada konteks permasalahan yang diselesaikan.

3.6.3 Pembentukan Keturunan Baru


Keturunan baru dihasilkan dari proses reproduksi antar individu anggota populasi berjalan saat ini. Keturunan baru ini diharapkan dapat lebih baik daripada indukinduknya sehingga solusi yang didapatkan akan lebih baik lagi.

Special Interest Group: Computer Science

AI Advanced Search 13 of 17

3.6.4 Pemilihan Induk


Pemilihan induk merupakan proses yang penting untuk menentukan individu-individu mana yang akan bertahan dan memperoleh kesempatan untuk menurunkan keturunannya. Di alam proses ini dikenal sebagai seleksi alamiah di mana hanya individu yang paling sesuai dengan lingkungannya saja yang akan bertahan hidup dan individu yang tidak sesuai dengan lingkungannya akan punah.

3.6.5 Fungsi Kesesuaian (Fitness Function)


Biasanya ukuran kesesuaian (fitness) tidak dihasilkan langsung oleh fungsi evaluasi tetapi ditransformasikan dulu oleh suatu fungsi kesesuaian (fitness function). Fungsi kesesuaian diperlukan untuk membantu GA mempertahankan perbedaan antar individu dalam populasi. Terdapat beberapa fungsi kesesuaian yang sering dipakai yaitu: Linier Normalization [DAV91]. Dalam metoda ini nilai fitness yang diberikan merupakan peringkat individu tersebut dalam populasi setelah anggota populasi diurutkan berdasarkan nilai obyektifnya yaitu terurut naik ( ascending order) untuk maksimasi atau terurut turun (descending order) untuk minimasi. Ukuran kesesuaian ini kemudian dipergunakan oleh metoda seleksi untuk menyeleksi individu dalam populasi. Metoda seleksi yang sering digunakan adalah Roulette wheel. Teknik roulette wheel menggunakan sebuah bidang lingkaran yang dibagi menjadi beberapa slot seperti bidang permainan roulette sebanyak jumlah individu yang ada dalam populasi dengan lebar slot sesuai dengan ukuran fitnessnya. Individu yang terpilih adalah individu yang menempati slot yang dipilih oleh jarum penunjuk roulette [GOL89]. Jadi individu yang memiliki nilai fitness dua kali lebih besar akan memiliki kemungkinan terpilih juga dua kali lebih besar. Sehingga teknik ini juga disebut fitness-proportionate selection karena probabilitas terpilihnya suatu individu sesuai dengan nilai fitnessnya.

3.6.6 Operator Genetik


Setelah diperoleh individu induk maka diperlukan mekanisme atau operator genetik untuk memperoleh individu baru yang akan mewarisi sifat-sifat induknya. Operator genetik yang sering digunakan adalah kawin silang (crossover) dan mutasi (mutation). Operator genetik ini digunakan sesuai dengan tingkat probabilitas yang diberikan. Misalkan probabilitas kawin silang pc = 0,6 berarti diharapkan terjadi 6 kali kawin silang dari 10 pasangan individu. Operator mutasi dikenakan pada individu baru hasil kawin silang sesuai dengan tingkat probabilitas mutasi yang diberikan.

Special Interest Group: Computer Science

AI Advanced Search 14 of 17

3.6.6.1 Kawin Silang

Satu Titik (One-Point Crossover)


Pada metoda kawin silang satu titik ini kedua induk akan membagi kromosom yang dimilikinya menjadi dua bagian, kemudian saling mempertukarkan kedua bagian ini sehingga membentuk dua individu keturunan baru. Titik potong yang membagi kromosom induk dipilih secara acak.

Kawin Silang Dua Titik (Two-Point Crossover)


Pada metoda ini induk akan membagi kromosom yang dimilikinya menjadi tiga bagian dipisahkan oleh dua titik potong yang dipilih secara acak.

Kawin silang Pola Seragam (Uniform Crossover)


Pada metoda ini titik potong yang diambil banyak dan diperoleh secara acak. Pola titik potong ini disimpan dalam suatu untaian pola (pattern strings). Dan keturunan baru dapat diperoleh dengan aturan: jika bit untaian pola 1, anak I memperoleh kromosom ibu sedangkan anak II memperoleh kromosom ayah. jika bit untaian pola 0, anak I memperoleh kromosom ayah dan anak II memperoleh kromosom ibu.

3.6.6.2 Mutasi (Mutation)


Berdasarkan bagian yang termutasi, proses mutasi dapat dibedakan atas tiga bagian: Tingkat kromosom, Tingkat gen, dan Tingkat bit.

3.6.6.3 Penggantian Populasi


Setelah diperoleh keturunan baru hasil reproduksi, kemudian diperlukan skema penggantian populasi induk dengan keturunan barunya ini. Terdapat dua skema penggantian populasi ini yaitu generational dan steady-state.

Special Interest Group: Computer Science

AI Advanced Search 15 of 17

Generational GA
Pada skema penggantian populasi generational, dua individu keturunan baru hasil reproduksi akan menggantikan kedua induknya dalam populasi sehingga akan diperoleh keseluruhan populasi yang baru. Setiap satu iterasi GA akan membentuk satu generasi keturunan baru hasil reproduksi. Karena seluruh anggota populasi baru dapat sama sekali berbeda dari populasi lama maka dapat terjadi individu terbaik pada populasi lama tidak muncul pada populasi baru. Hal ini merupakan suatu kerugian karena solusi terbaik yang pernah ditemukan akan menjadi hilang. Untuk itu biasanya digunakan model elitis di mana individu terbaik pada generasi induk akan dimasukkan pada generasi keturunan baru.

Steady-State GA
Pada skema penggantian populasi model steady-state, n individu keturunan baru hasil reproduksi akan menggantikan n individu terjelek pada populasi induk. Metoda ini pertama kali digunakan oleh Whitley (1988) sebagai bagian dari GA yang dikembangkannya yaitu GENITOR[WHI89]. Whitley menyebutnya dengan overlapping population karena pada metoda ini perbedaan antar generasi tidak diketahui secara jelas. Selain itu Syswerda (1989) juga menggunakan metoda ini dan menyebutnya sebagai steady-state. Biasanya nilai n yang digunakan adalah n = 2, sehingga pada tiap iterasi hanya dua induk yang mengalami reproduksi dan dua keturunan baru yang dihasilkan akan menggantikan dua individu terjelek pada populasi. Metoda generational merupakan kasus khusus dari metoda steady-state di mana n = jumlah populasi yang ada. Beberapa peneliti GA menyatakan bahwa steady-state GA lebih inferior daripada generational GA [DAV91]. Tetapi metoda ini dapat diperbaiki sehingga dapat menghasilkan performansi yang lebih baik. Metoda perbaikan ini dinamakan steadystate tanpa duplikasi. Pada steady-state tanpa duplikasi, keturunan baru yang akan dimasukkan ke populasi merupakan individu yang sama sekali berbeda dengan individu anggota populasi yang telah ada. Jadi setiap anggota populasi yang ada selalu berbeda komposisi genetika yang dikandung dalam kromosomnya.

3.6.6.4 Kondisi Berhenti


Kondisi berhenti yang paling sering digunakan pada GA adalah jumlah maksimum iterasi atau generasi. Jika iterasi yang terjadi terlalu sedikit mungkin GA tidak punya cukup waktu untuk konvergen pada solusi optimal, tetapi jika iterasi terlalu besar

Special Interest Group: Computer Science

AI Advanced Search 16 of 17

maka waktu yang diperlukan GA juga menjadi terlalu lama dan tidak efisien. Untuk itu perlu dicari jumlah iterasi yang bagus melalui percobaan-percobaan. Kondisi berhenti GA lainnya yang dapat digunakan yaitu berdasarkan batas nilai obyektif yang diberikan user. Iterasi GA akan berhenti jika individu terbaik telah mencapai nilai obyektif ini. Setelah iterasi GA cukup lama terjadi mungkin akan terjadi kondisi di mana GA akan berkonvergen pada satu individu. Pada kondisi yang seperti itu mungkin seluruh anggota populasi merupakan duplikasi dari satu individu sehingga keaneka-ragaman komposisi genetika yang ada menjadi sangat kecil. Jika kondisi tersebut benar-benar terjadi maka iterasi GA sebaiknya dihentikan karena iterasiiterasi berikutnya tidak akan mampu menghasilkan solusi yang lebih baik lagi.

Special Interest Group: Computer Science

AI Advanced Search 17 of 17

Anda mungkin juga menyukai