Heuristic Search in Game Puzzle

7
HEURISTIC SEARCH IN GAME GAME PUZZLE KELOMPOK 2: Kelas : AI-2 10112634 Mukti Mochammad Ramdhan 10112637 Iqbal Bahari 10112668 Idwar Halid FAKULTAS TEKNIK DAN ILMU KOMPUTER UNIVERSITAS KOMPUTER INDONESIA

description

ai

Transcript of Heuristic Search in Game Puzzle

Page 1: Heuristic Search in Game Puzzle

HEURISTIC SEARCH IN GAME

GAME PUZZLE

KELOMPOK 2:

Kelas : AI-2

10112634 Mukti Mochammad Ramdhan

10112637 Iqbal Bahari

10112668 Idwar Halid

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

BANDUNG

2015

Page 2: Heuristic Search in Game Puzzle

Heuristic Search

Teknik pencarian Heuristik (Heuristic Searching) adalah suatu strategi untuk melakukan proses pencarian ruang keadaan (state space) suatu problema secara selektif, yang memandu proses pencarian yang kita lakukan di sepanjang jalur yang memiliki kemungkian sukses paling besar, dan mengesampingkan usaha yang percuma atau tak ada guna dan tiada memiliki waktu yang efisien yaitu terlalu membuang banyak waktu. Metode yang paling sering digunakan dan memberikan hasil paling optimal adalah Best First Search.

Pembahasan Masalah

Aplikasi yang akan kami bangun adalah aplikasi game puzzle, berupa penyusunan potongan-potongan puzzle yang harus disusun sesuai dengan tujuan. Puzzle adalah game dimana terdapat sembilan kotak angka. Banyak metode yang dapat digunakan untuk menyelesaikan puzzle, salah satunya menggunakan metode A*. Tujuan dari pembuatan game puzzle ini adalah untuk mengimplementasikan algoritma A*.

Batasan masalah:

1. Potongan-potongan puzzle berupa angka.2. Terdapat papan tempat potongan puzzle berupa matriks.3. Potongan puzzle dimulai dengan angka-angka yang tersusun acak.4. Tujuan dari game adalah menyusun potongan puzzle yang berupa angka secara berurutan.5. Min satu (-1) adalah tanda tempat kosong yang tidak terdapat potongan puzzle.

Contoh:Terdapat puzzle yang tersusun secara acak

2 1 5-1 8 76 3 4

AI akan menyusun susunan puzzle berupa angka secara berurutan, simpan angka -1 pada kotak paling akhir.

Awal

2 1 5-1 8 76 3 4

Akhir(Tujuan)

Page 3: Heuristic Search in Game Puzzle

1 2 34 5 67 8 -1

Puzzle hanya dapat digerakkan ke kiri, ke atas atau ke bawah.

Page 4: Heuristic Search in Game Puzzle

Pencaraian dengan metode Heuristic A*

Algoritma ini merupakan algoritma Best First Search yang menggabungkan Uniform Cost Search dan Greddy Best First Search. A* memperhitungkan gabungan dua biaya, biaya sebenarnya dan biaya perkiraan. Dengan perhitungan biaya seperti ini, algoritma A* adalah algortima complete dan optimal. Pencaraian dengan metode A* dapat dilakukan dengan memindahkan kotak yang salah ke tempat semestinya. pada contoh kasus dapat dilihat kemungkinan untuk memindahkan ruang kosong adalah ke kiri, atas, dan bawah. Pseudo code:

int “heuristic result” = 0;int “index” = -1;

for(int sy = 0; sy < “vertical dimension of puzzle”; sy++){ for(int sx = 0; sx < “horizontal dimension of puzzle”; sx++) { “increment index by 1”;

int “tile value” = “sequence to check”[“index”];if (“tile value” == “blank location in puzzle”)

{ // don’t include in heuristic result

continue; }

int “horizontal spaces offby” = “tile value” % “horizontal dimension of puzzle”;

int “vertical spaces offby” = “tile value” / “horizontal dimension of puzzle”;

“heuristic result” += Math.abs(“vertical spaces offby” - sy) + Math.abs(“horizontal spaces offby” - sx);

}}return “heuristic result”;

Proses pencarian mengguanakan Heuristic A* merupakan metode paling baik digunakan karena membutuhkan waktu yang relatif lebih sedikit dibandingkan dengan metode lainnya. Hal itu dikarenakan pada metode Heuristic A* tidak menggenerate semua simpul tetapi hanya menggenerate simpul dengan jarak kotak yang salah paling sedikit sehingga solusi akan semakin cepat ditemukan dan memori yang dibutuhkan pun relatif lebih sedikit.

Flowchart dari program dapat dilihat pada gambar berikut ini:

Page 5: Heuristic Search in Game Puzzle

Gambar 1.0 Flowchart pseudo code algoritma A*