PENERAPAN ALGORITMA A* (STAR) UNTUK MENCARI RUTE TERCEPAT DENGAN HAMBATAN

6

Click here to load reader

Transcript of PENERAPAN ALGORITMA A* (STAR) UNTUK MENCARI RUTE TERCEPAT DENGAN HAMBATAN

Page 1: PENERAPAN ALGORITMA A* (STAR) UNTUK MENCARI RUTE TERCEPAT DENGAN HAMBATAN

Seminar Nasional Telekomunikasi dan Informatika (SELISIK 2016) Bandung, 28 Mei 2016

219

ISSN : 2503-2844

Yenie Syukriyah, Falahah, Hermi Solihin

Seminar Nasional Telekomunikasi dan Informatika 2016

PENERAPAN ALGORITMA A* (STAR)

UNTUK MENCARI RUTE TERCEPAT DENGAN HAMBATAN

Yenie Syukriyah1) Falahah2) Hermi Solihin 3)

1,2,3) Teknik Informatika Universitas Widyatama

Jl. Cikutra no. 204 A Bandung

[email protected]), [email protected]), [email protected])

Abstrak

Algoritma A* (Astar) merupakan salah satu

algoritma yang termasuk dalam kategori metode

pencarian yang memiliki informasi (informed search

method). Algortima ini sangat baik sebagai solusi

proses pathfinding (pencari jalan). Algoritma ini

mencari jarak rute tercepat yang akan ditempuh suatu

point awal (starting point) sampai ke objek tujuan.

Teknik pencarian yang digunakan dalam simulasi ini

adalah menggunakan Algoritma A* dengan fungsi

heuristic manhattan distance. Simulasi dilakukan

dengan bahasa pemrograman Java. Tujuan utama

penelitian ini mempelajari cara kerja algoritma A*

dalam mencari jarak tercepat, yang disimulasikan

seperti kondisi ketika seorang mencari rute dalam

keadaan jalanan macet. Simulasi ini memberikan

gambaran yang lebih realistis terhadap perilaku

algoritma A dalam pencarian jarak tercepat, dan

untuk itu, akan dibangun sebuah aplikasi sebagai

pendukung proses simulasi tersebut.

Kata kunci :

Algoritma, A-star, simulasi, rute, kemacetan

Abstract

Algorithm A* (Astar) is one of the algorithms

included in the category of search methods that has

an information (informed search method). This

algorithm is very good as a pathfinding process

(search path). These algorithms look for the fastest

route distance to be taken an initial point (starting

point) to object to the destination by comparing the

values in this algorithm. The calculation of the

heuristic function in these simulations using

Manhattan distance heuristic function. To explore the

behavior of A* algorithm, we build a simulation

using Java programming language. The aim of this

research is to establish a simulation application of

A* Algorithm for finding the fastest route, and we try

to implement it into the case of barriers traffic jam.

The result shows that the calculation can prove that

the route found in this simulation is the route with the

best solution which have the smallest value.

Keywords :

Algorithm, A-star, simulation, route, traffic jam.

I. PENDAHULUAN

Algoritma pencarian jarak tercepat ataupun

jarak terpendek tetap merupakan bidang penelitian

algoritma yang menarik. Terdapat beberapa algoritma

pencarian untuk menemukan solusi pencarian jarak

tercepat, diantaranya adalah algoritma breadth first

search, depth first search, best first search , A* , dan

lain lain. Algoritma A* (Astar) adalah merupakan

salah satu algoritma yang termasuk dalam kategori

metode pencarian yang memiliki informasi (informed

search method). Algoritma ini sangat baik sebagai

solusi proses pathfinding (pencari jalan), mencari

jarak rute tercepat yang akan ditempuh suatu poin

awal (starting point) sampai ke objek tujuan sehingga

cukup popular dikalangan pemrogram

Algoritma A* menggunakan estimasi jarak

terdekat untuk mencapai tujuan (goal) dan memiliki

nilai heuristik yang digunakan sebagai dasar

pertimbangan.

Penelitian ini bertujuan untuk mempelajari cara

kerja algoritma A* dalam mencari jarak tercepat,

yang disimulasikan dengan kondisi seorang mencari

rute dalam keadaan jalanan macet. Simulasi ini

memberikan gambaran yang lebih realistis terhadap

perilaku algoritma A dalam pencarian jarak tercepat,

Page 2: PENERAPAN ALGORITMA A* (STAR) UNTUK MENCARI RUTE TERCEPAT DENGAN HAMBATAN

Seminar Nasional Telekomunikasi dan Informatika (SELISIK 2016) Bandung, 28 Mei 2016

220

ISSN : 2503-2844

Yenie Syukriyah, Falahah, Hermi Solihin

Seminar Nasional Telekomunikasi dan Informatika 2016

dan untuk itu, akan dibangun sebuah aplikasi sebagai

pendukung proses simulasi tersebut.

Penelitian ini diselesaikan dengan memperhatikan

batasan-batasan sebagai berikut :

1. Teknik pencarian yang digunakan dalam

simulasi ini adalah dengan menggunakan

Algoritma A* dengan menggunakan fungsi

heuristic manhattan distance

2. Rute jalan disimulasikan dengan bentuk mapgrid

3. Jarak tempuh jalan akan diasumsikan dalam

bentuk banyaknya grid yang dilalui jalur

4. Hambatan kemacetan dalam simulasi ini

diasumsikan dengan memberikan nilai beban di

titik yang dijadikan hambatan kemacetan.

Tampilan simulasi hanya berupa grid kotak-

kotak dengan ukuran 20x20.

II. TINJAUAN PUSTAKA

Algoritma A* (A star) dikenal sebagai salah

satu algoritma yang paling sering digunakan untuk

pencarian jalur (path finding) dan penerusan grafis

(graph traversal), yaitu proses plotting jalur yang

paling efisien antar titik, yang disebut dengan nodes.

Metode A* adalah metode yang merupakan

hasil pengembangan dari metode dasar Best First

Search . Metode ini mengevaluasi setiap titik dengan

mengkombinasikan dengan g(n), nilai untuk

mencapai titik n dari titik awal, dan h(n), nilai

perkiraan untuk mencapai tujuan dari titik n tersebut.

Algoritma ini menggunakan fungsi distance –

plus – cost (biasanya di notasikan dengan f(x))

untuk menentukan urutan kunjungan pencarian node

di dalam tree. Gabungan jarak – plus – biaya

merupakan penjumlahan dari dua fungsi, yaitu fungsi

path – cost (selalu dinotasikan dengan g(x),

dimungkinkan bernilai heuristik ataupun tidak), dan

sebuah kemungkinan penerimaan atas “perkiraan

heuristik” jarak ke titik tujuan (dinotasikan dengan

h(x)). Fungsi path- cost g(x) adalah jumlah biaya

yang harus dikeluarkan dari node awal menuju node

tujuan.

Dengan terlebih dahulu mencari rute yang

tampaknya mempunyai kemungkinan besar untuk

menuju ke arah tujuan, algoritma ini mengambil jarak

perjalanan ke arah tujuan (dimana g(x) bagian dari

heuristik adalah biaya dari awal). Beberapa

terminologi dasar yang terdapat pada algoritma ini

adalah starting point, simpul (nodes), A, open list,

closed list , harga (cost), halangan (unwalkable).

Prinsip algoritma ini adalah mencari jalur

terpendek dari sebuah simpul awal (starting point)

menuju simpul tujuan dengan memperhatikan harga

(F) terkecil. Diawali dengan menempatkan A pada

starting point, memasukkan seluruh simpul yang

bertetangga dan tidak memiliki atribut rintangan

dengan A ke dalam open list, mencari nilai H terkecil

dari simpul-simpul dalam open list tersebut,

memindahkan A ke simpul yang memiliki nilai H

terkecil. Simpul sebelum A disimpan sebagai parent

dari A dan dimasukkan ke dalam closed list. Jika

terdapat simpul lain yang bertetangga dengan A

(yang sudah berpindah) namun belum termasuk

kedalam anggota open list, maka masukkan simpul-

simpul tersebut ke dalam open list. Setelah itu,

bandingkan nilai G yang ada dengan nilai G

sebelumnya. Jika nilai G sebelumnya lebih kecil

maka A kembali ke posisi awal. Simpul yang pernah

dicoba dimasukkan ke dalam closed list. Hal tersebut

dilakukan berulang-ulang hingga terdapat solusi atau

tidak ada lagi simpul lain yang berada pada open list.

Gambar 1 menggambarkan cara kerja algoritma

A* secara konseptual.

Gambar 1. Algoritma A*

III. METODE PENELITIAN

3.1. Prinsip Kerja

Simulasi ini akan digunakan untuk menentukan

pencarian rute (path finding) yang dibentuk dengan

Page 3: PENERAPAN ALGORITMA A* (STAR) UNTUK MENCARI RUTE TERCEPAT DENGAN HAMBATAN

Seminar Nasional Telekomunikasi dan Informatika (SELISIK 2016) Bandung, 28 Mei 2016

221

ISSN : 2503-2844

Yenie Syukriyah, Falahah, Hermi Solihin

Seminar Nasional Telekomunikasi dan Informatika 2016

model mapgrid yang diasumsikan grid tersebut

sebagai sebuah jalan, dengan asumsi tersebut dapat

dilihat apakah dengan melewati kemacetan ataupun

menghindari kemacetan dengan mencari rute terbaru

merupakan hal yang tepat untuk menghemat waktu

perjalanan. Sistem Algoritma A* akan mencari solusi

yang terbaik.

Sistem simulasi yang akan dibangun berupa

sebuah tampilan mapgrid yang berbentuk maze . Di

dalamnya akan ditentukan titik awal (start point)

perjalanan, titik akhir/tujuan perjalanan setelah itu

pencarian dengan algoritma A* diproses untuk

menemukan rute. Setelah rute ditemukan akan dicoba

untuk melakukan pencarian lagi tetapi dengan

memberikan beban atau penghalang disalah satu grid

yang tadi rutenya sudah ditemukan untuk melihat

pencarian baru. Penghalang ini merupakan asumsi

dari kemacetan yang terjadi di jalan. Setelah

dilakukan pencarian maka rute terbaik akan

ditemukan.

3.2. Data-data yang dibutuhkan

Dalam pembuatan simulasi ini digunakan

algoritma A* dengan fungsi heuristik, oleh karena itu

ada beberapa data-data yang diperlukan :

1. Titik awal, ditentukan oleh pengguna dengan

memilih titik koordinat yang akan dijadikan titik

awal. Titik awal ini akan diberikan tanda berupa

warna hijau (green).

2. Grid adalah petak-petak kecil yang di representasi

dari area path finding yang berupa persegi

panjang. Grid yang ada disimulasi ini 20x20 =

400 grid.

3. Titik akhir, ditentukan oleh pengguna dengan

memilih titik koordinat yang akan dijadikan titik

akhir. Titik akhir ini akan diberikan tanda berupa

warna biru (blue).

4. Harga F, nilai yang diperoleh dari penjumlahan

nilai G (movement cost) dan nilai h (heuristic).

Dikarenakan simulasi ini berbentuk gridcell maka

nilai jarak tempuh per grid (per koordinat )

memiliki nilai 1.

5. Nilai hambatan kemacetan (penghalang),

diberikan dengan memilih titik koordinat yang

akan dijadikan titik kemacetan. Ada 2 jenis titik

hambatan kemacetan yang pertama adalah macet

parah dan yang kedua adalah sedikit macet. Untuk

macet parah diberikan tambahan nilai jarak

tempuh sebesar 10 poin dan untuk sedikit macet

dengan 5 poin. Untuk macet parah koordinat yang

sudah dipilih akan diberikan tanda berupa warna

merah (red) dan untuk sedikit macet akan

diberikan tanda berupa warna abu-abu (grey).

6. Pembatas jalan, merupakan batas jalan kiri dan

kanan yang tidak dapat dilalui. Batas jalan ini

diberi sebuah tanda berupa warna hitam (black).

3.3 Prinsip Algoritma A* Prinsip algoritma ini adalah mencari jalur

terpendek dari sebuah titik awal menuju titik akhir

dengan memperhatikan harga F terkecil. Algoritma

ini memperhitungkan nilai dari current state ke

tujuan dengan fungsi heuristik, dan juga

mempertimbangkan nilai yang telah ditempuh selama

ini dari initial state ke current state. Jadi jika ada

jalan yang telah ditempuh sudah terlalu panjang dan

ada jalan lain yang nilainya lebih kecil tetapi

memberikan posisi yang sama dilihat dari goal, jalan

yang lebih pendek yang akan dipilih.

Rumus pencarian F (n) = h(n) + g (n) dimana : g (n)

adalah movecost , dikarenakan simulasi berbentuk

grid persegi , tiap koordinat antara titik koordinat

berikutnya sama bernilai satu. Lalu h(n) dapat dicari

dengan rumus sebagai berikut :

function heuristic(node) =

dx = abs(node.x - goal.x)

dy = abs(node.y - goal.y)

return D * (dx + dy)

Rumus ini digunakan dikarenakan pengembangan

aplikasi simulasi ini menggunakan fungsi heuristic

manhattan distance.

Algoritma A* secara garis besar dapat

dijelaskan seperti berikut:

1. Masukkan node awal ke openlist

2. Loop langkah-langkah dibawah ini:

a. Cari node (n) dengan nilai f(n) yang paling

kecil dalam open list, dan node ini sekarang

menjadi current node.

b. Keluarkan current node dari openlist dan

masukkan ke open list

c. Untuk setiap tetangga dari current node

lakukan berikut

1. Jika tidak dapat dilalui atau sudah ada

dalam close list , abaikan

2. Jika belum ada di open list buat current

node parent dari node tetangga ini, simpan

nilai f,g, dan h dari node ini.

3. Jika sudah ada di openlist cek apabila node

tetangga ini lebih baik menggunakan nilai g

sebagai ukuran. Jika lebih baik ganti parent

dari node ini di opentlist menjadi current

Page 4: PENERAPAN ALGORITMA A* (STAR) UNTUK MENCARI RUTE TERCEPAT DENGAN HAMBATAN

Seminar Nasional Telekomunikasi dan Informatika (SELISIK 2016) Bandung, 28 Mei 2016

222

ISSN : 2503-2844

Yenie Syukriyah, Falahah, Hermi Solihin

Seminar Nasional Telekomunikasi dan Informatika 2016

node, lalu kalkulasikan ulang nilai g dan f

dari node ini.

d. Hentikan looping jika:

1. Node tujuan telah ditambah ke openlist

yang berarti rute ditemukan

2. Belum menemukan node akhir (tujuan)

sementara openlist kosong atau berarti tidak

ada rute.

Simpan rute, lalu secara backward urut mulai

dari node akhir (tujuan) sampai ke titik awal sambil

menyimpan node ke dalam array.

IV. IMPLEMENTASI

Pada simulasi ini, algoritma A*

diimplementasikan pada saat pengguna melakukan

pencarian rute path. Deskripsi di bawah ini

menjelaskan implementasi algoritma A* yang

diterapkan pada simulasi ini.

. Proses Algoritma A* {Start point dan finish point sudah dalam keadaan di set} Input: Set start , Set Finish Output: Path Found or No Found

Algoritma : Function heuristic (awal, akhir , D)= dx = abs (nilai x awal – nilai x akhir) dy = abs (nilai y awal - niai y akhir ) return nilai D * (dx + dy ) EndFunction Function FindPath For i to total x grid For j to total y grid minCost = Math.min (nilai gridcell [j][i], minCost) increment j increment i end for end for EndFunction Function Langkah For i temp Set now gridcell temp elementAt (i) If now sudah terisi score = ambil nilai now dari start score = score + Function heuristic (posisi sekarang (), posisi akhir , minCost) If score kurang dari min Min = score Best = now Endif Endif Increment i Endfor Now = best Edge.removeElement(now) Done.AddElement(now) Set Gridcell next [] = map.getAdjacent(now) For i to 4 If next [i] != null If next [i] == finish Ditemukan

Endif If next [i] totalblock Add next[i] to path from start If!edge.contains (next[i]) && !done.contains(next[i]) Add element next[i] ;grownt =true; Endif Endif Endif If ditemukan Call ditemukan (PATH FOUND) Endif Endif Urutkan secara backward dari finish (tujuan) ke titik semula (start) lalu beri tanda berupa warna If edgesize bernilai 0 Call tidak ditemukan (No_Found) EndFunction

Gambar 2 memperlihatkan tampilan aplikasi

simulasi pencarian rute tanpa penghalang (2a) dan

jika ada penghalang (2b)

(a) Tanpa penghalang kemacetan

(b) Dengan hambatan kemacetan parah

Gambar 2. Tampilan Pencarian Rute

V. PENGUJIAN FUNGSI PENCARIAN RUTE 5.1 Pengujian

Dalam pengujian ini akan dilakukan pegujian

fungsi pencarian dengan pembuktian dari hasil

pencarian rute. Dalam pembuktian ini dibuat sebuah

jalur lalu lintas yang berbentuk grid yang akan

dijalankan pada simulasi. Pertama kali dilakukan

adalah mengambil (load) mapgrid yang sudah di

design sebelumnya. Setelah MapGrid ditampilkan

Page 5: PENERAPAN ALGORITMA A* (STAR) UNTUK MENCARI RUTE TERCEPAT DENGAN HAMBATAN

Seminar Nasional Telekomunikasi dan Informatika (SELISIK 2016) Bandung, 28 Mei 2016

223

ISSN : 2503-2844

Yenie Syukriyah, Falahah, Hermi Solihin

Seminar Nasional Telekomunikasi dan Informatika 2016

kemudian dilakukan pengaturan titik awal (Set Start)

yang dalam pengujian ini posisi titik awal (start)

berada di point (x=1,y=9). Setelah itu tentukan titik

akhir (Set Finish) yang dalam pengujian ini posisi

titik akhir berada pada point (x=19,y=19).Kemudian

dilakukan pencarian. Setelah ditemukan pencarian

berikutnya dalam jalur pencarian tersebut diberi

hambatan kemacetan parah di titik (x=17,y=9) .

(a) Mapgrid awal pengujian

(b) Pencarian Rute tanpa hambatan kemacetan

(c) Pencarian Rute dengan Hambatan Kemacetan

Gambar 3. Mekanisme Pencarian Rute

Pada gambar 3 dapat dilihat hasil dari pencarian

rute dengan menggunakan Algoritma A*. Berikut

adalah keterangan gambar :

1. Titik berwarna Green : Titik Awal (x=1, y =9)

2. Titik berwarna Blue: Titik Akhir (x=19, y=19)

3. Titik berwarna Red: Titik Penghalang Macet Parah

(x=17, y= 9)

4. Urutan berwarna Yellow adalah urutan rute yang

ditemukan

5.2 Pembuktian

Berikutnya dilakukan pembuktian perhitungan

dari hasil yang didapat. Rute yang akan dibuktikan

adalah hasil pencarian rute dengan adanya hambatan

kemacetan yang terlihat pada Gambar 3.

Pembuktian hasil pencarian rute akan dilakukan

dengan perhitungan yang dilakukan secara manual.

Pembuktian jalur hasil pencarian rute tanpa hambatan

kemacetan (berdasarkan gambar 3.b).

Gambar 4 Kemungkinan Jalur

Pembuktian ini akan dilakukan pencarian nilai

secara manual dari setiap jalur kemungkinan. Nilai-

nilai tersebut kemudian dihitung secara manual

seperti contoh pada Tabel 1 dan Tabel 2. Hal yang

sama juga dilakukan untuk Jalur tiga.

Tabel 1. Contoh Perhitungan Pembuktian Nilai

Jalur Satu

No X1 Y1 g(n) h(n)= abs(x1-x2)

+abs(y1-y2)

Score

F(n)

1 2 9 1 27 28

2 3 9 2 26 28

3 4 9 3 25 28

…. …. …. …. …. ….

27 18 19 27 1 28

28 19 19 28 0 28

Dari tabel hasil perhitungan manual didapat

bahwa nilai f(n) terbaik terdapat pada setiap cell yang

dilalui oleh jalur 1 (yellow) yaitu bernilai 28

sedangkan jalur 2 bernilai 42 dan jalur 3 bernilai 34.

Dengan demikian jalur terbaik terdapat pada jalur 1,

karena memiliki nilai f(n) yang kecil daripada jalur-

jalur lainnya.

Masih dengan jalur yang sama (Gambar 3.b) dan

kemungkinan jalur yang sama (Gambar 3.c). Akan

dilakukan pembuktian secara manual untuk melihat

nilai dari setiap jalur, tetapi kali ini jalur yang terbaik

yang sudah dibuktikan sebelumnya diberi beban

Page 6: PENERAPAN ALGORITMA A* (STAR) UNTUK MENCARI RUTE TERCEPAT DENGAN HAMBATAN

Seminar Nasional Telekomunikasi dan Informatika (SELISIK 2016) Bandung, 28 Mei 2016

224

ISSN : 2503-2844

Yenie Syukriyah, Falahah, Hermi Solihin

Seminar Nasional Telekomunikasi dan Informatika 2016

(penghalang kemacetan) dengan level macet parah

yang dalam simulasi ini diberi nilai beban 10.

Tabel 2. Contoh Perhitungan Pembuktian Nilai

Jalur Dua

No X1 Y1 g(n) h(n)= abs(x1-x2)

+abs(y1-y2)

Score

F(n)

1 2 9 1 27 28

2 3 9 2 26 28

3 3 8 3 27 30

…. …. …. …. …. ….

40 18 18 40 2 42

41 18 19 41 1 42

42 19 19 42 0 42

Dikarenakan pembuktian ini menggunakan jalur

yang sama dengan sebelumnya, untuk pembuktian

jalur 2 dan 3 dapat di lihat di tabel 1 dan 2. Untuk

pembuktian jalur 1 akan ditampilkan di tabel 3.

Dari tabel pembuktian diatas dapat dilihat nilai

f(n) bertambah menjadi 38. Dengan demikian jalur

terbaik menjadi jalur 3 yang bernilai 34.

Tabel 3. Contoh Perhitungan Pembuktian

Nilai Jalur Satu dengan Hambatan Kemacetan

No X1 Y

1

g(n) h(n)= abs(x1-x2)

+abs(y1-y2)

Score F(n)

1 2 9 1 27 28

2 3 9 2 26 28

3 4 9 3 25 28

4 5 9 4 24 28

5 6 9 5 23 28

…. …. … …. …. ….

14 15 9 14 14 28

15 16 9 15 13 28

16 17 9 16 12 28 + 10 = 38

17 18 9 17 11 28 + 10 = 38

18 18 10 18 10 28 + 10 = 38

19 18 11 19 9 28 + 10 = 38

…. …. … …. …. ….

27 18 19 27 1 28 + 10 = 38

28 19 19 28 0 28 + 10 = 38

Dari pembuktian dan pengujian yang dilakukan

diatas dapat dilihat bahwa simulasi dapat menentukan

jalur terbaik yang akan dilalui . Dengan ini simulasi

yang menerapkan Algoritma A* dengan fungsi

heuristic manhattan distance dapat menentukan rute

(jalur) terbaik dengan membandingkan nilai f(n)

terkecil.

Apabila simulasi ini diterapkan dikeadaan nyata

lalu lintas maka bisa diasumsikan jalur – jalur

tersebut merupakan jalan yang akan kita lalui untuk

mencapai suatu tujuan.

VI. KESIMPULAN

Berdasarkan hasil simulasi algoritma A* pada

penelitian ini dapat disimpulkan hal-hal berikut :

1. Algoritma A* dapat diterapkan sebagai

algoritma untuk menentukan rute (jalur) terbaik

yang akan dilalui.

2. Simulasi ini dapat menentukan rute (jalur)

terbaik dari titik awal (start) menuju titik akhir

(finish) dengan hambatan-hambatan yang

diberikan disetiap rute. Dari hasil pengujian ,

rute yang ditemukan merupakan rute yang

terbaik dengan nilai f(n) terkecil dibandingkan

dengan rute-rute (jalur-jalur) lainnya.

3. Untuk pengembangan lebih lanjut disarankan

menggunakan algoritma lain selain algoritma

A* untuk menentukan jalur (rute) yang terbaik.

Dan juga dapat membandingkan algoritma lain

tersebut apakah lebih baik dalam penentuan

jalur tercepat

REFERENSI Brourg, David. Seeman,Glenn. (2004). AI For Game

Developers.O’Reilly Inc : United States of America.

Madhav, Sanjay. Game Programming Algorithms and

Techniques.Addison Wesley : United State.

Netbeans (2013). Documentation,Training,& Support .

<Netbeans.org>

“A* search algorithm”. Wikipedia . Web . 22 May 2014.

http://en.wikipedia.org/wiki/A*_search_algorithm

“Amit’s Thoughts on Pathfinding. Web . 31 May 2014.

http://theory.stanford.edu/~amitp/Game

Programming/AStarComparison

Eranki,Ranjiv. Pathfinding using A* (A-Star) . 2002 . Web.

31 May 2014. http://web.mit.edu/eranki/www/

tutorials/search

“Simulation”. Wikipedia . Web . 24 April 2014.

http://en.wikipedia.org/wiki/Simulation

Norvig,Peter. Russell,Stuart. Artificial Intelligence A

Modern Approach Second Edition. Prentice Hall :

United State