Você está na página 1de 17

c  




  ? ? 
 ? ? ? ? ? ? ?
Ir. Bambang Siswoyo

c  3 ?  
???
 ¦ 

? 
? 
 
¦ 
  
 
   
 ? ? ?
¦        
? V?? 
 
¦        
?

3 3 3
 


a    
Algoritma Generate & Test termodifikasi untuk pencarian semua rute yang mungkin.
Pada prinsipnya algoritma ini merupakan penggabungan antara Depth First Search dengan
pelacakan mundur (Backtracking), yaitu bergerak ke belakang menuju pada suatu keadaan
tertentu. Nilai pengujian berupa jawaban ͚ya͛ atau ͚tidak͛.

Algoritmanya adalah sebagai berikut :

Misalkan awal adalah ͞Start͟ dan akhir adalah ͞Finish͟, maka :

1.? Pada langkah pertama adalah masukan node yang dijadikan sebagai ͞Start͟(node awal),
pada suatu tampungan data berupa Stack atau tumpukan, selanjutnya diberi nama
Stack1.
2.? Kemudian pada langkah kedua ambil node dari Stack1, kemudian dijadikan sebagai
Node Awal.
a.? Jika tidak ada node yang dapat dijadikan sebagai Node Awal, maka berhenti dari
pencarian, karena Stack1 kosong.
b.? Jika ada, lanjut ke langkah tiga.
3.? Kemudian pada langkah ini adalah melakukan pengecekan dari setiap node yang
merupakan kemungkinan solusi selanjutnya.
a.? Jika didapatkan node yang merupakan solusi selanjutnya, simpan node tersebut
di dalam Stack1. Jika tidak, lakukan backtracking sampai pada node pada Stack2.
Jika Stack2 kosong, maka lakukan langkah pertama. Jika tidak, lanjut ke langkah
empat.
b.? Jika jumlah node yang ditemukan lebih dari 1, simpan Node Awal pada tempat
tampungan data berupa tumpukan, selanjutnya diberi nama Stack2. Jika tidak
lanjut ke langkah empat.
Ñ.? Pada langkah keempat dilakukan pengujian untuk melihat apakah node tersebut benar-
benar merupakan solusinya dengan cara membandingkan node tersebut atau node
akhir dari suatu lintasan yang dipilih dengan kumpulan tujuan yang diharapkan.
a.? Jika solusi ditemukan, (sama dengan node ͞Finish͟), simpan hasil di tabel
tampung, kemudian lakukan backtracking sampai pada node yang ada pada
Stack2. Ulangi langkah kedua
b.? Jika tidak, lakukan langkah 2.

Contoh Kasus:

Misalkan ada segmen jalan berarah (directed) yang terlihat pada Gambar 1, jika A
terpilih sebagai ͞Start͟ dan J sebagai ͞Finish͟. Pertanyaannya rute mana saja yang mungkin
dilalui dari A untuk menuju J, dengan kondisi jalan tersebut?

1 C
A 2
G
J
Ñ 8

B
I
F

3 D 5
7
E
H

u c   
 


Penyelesaiaan dari contoh kasus 1 adalah sebagai berikut :


1.? Pertama-tama semua node dalam kondisi ͞False(F)͟, kemudian pada jalan A, dipilih
node 1 sebagai kondisi awal (Start), dan pada jalan J dipilih node 8 sebagai kondisi akhir
(Finish). Kemudian menyimpan node yang terpilih sebagai Start (node 1) ke dalam
tumpukan (diberi nama Stack1) dan siapkan tumpukan satu lagi, kemudian disebut
Stack2.
2.? Ambil node dari Stack 1, kemudian node tersebut dijadikan sebagai Node Awal. Berilah
status ͞True(T)͟ pada node ini, untuk menandakan bahwa node ini telah dilalui.
3.? Cari semua node yang bersambungan langsung dengan node 1 dan didapat node 2 dan
node 3. Simpan node 2 dan node 3 ke dalam Stack1. Karena node 1 mempunyai
sambungan lebih dari 1, maka simpan node 1 ke Stack2.
Ñ.? Pilih node baru yang akan dijadikan sebagai Node Awal dari Stack1. Node yang terpilih
berdasarkan sifat tumpukannya, yakni last in first out (LIFO). Misalkan yang terpilih
adalah node 3, maka yang tersambung dengan node ini adalah node 5 dari semua node
yang ada.
5.? Kemudian simpan node 5 ke dalam Stack1, selanjutnya pilih node baru lagi yang
dijadikan sebagai Node Awal, dan seterusnya sampai Node Awal merupakan node yang
dijadikan Finish (node 8).
6.? Jika Node Awal merupakan Finish, simpan hasil rute pada tabel penampungan,
kemudian lakukan backtracking dari node 8 sampai node yang ada pada Stack2 (node 1),
selanjutnya ambil node baru dari Stack1 (node 2) untuk dijadikan sebagai Node
Awalnya, dan seterusnya. backtracking dilakukan dengan cara merubah status node dari
T menjadi F sampai node tertentu. Tujuannya agar node tersebut dapat digunakan
kembali oleh rute yang lain.
7.? Jika Node Awal sudah tidak ada node yang dapat dihubungkan lagi, maka lakukan
backtracking dari node tersebut sampai node dari Stack2, kemudian ambil node dari
Stack1 untuk dijadikan Node Awal lagi, dan seterusnya dilakukan berulang-ulang sampai
Node Awal kosong.
8.? Jika Stack2 kosong, maka lakukan pengambilan node baru pada Stack1 tanpa melakukan
backtracking, dan seterusnya. Jika Node Awal tidak dapat mengambil node dari Stack1,
maka berhenti dari pencarian rute.

Berikut hasil rute yang terpilih dari setiap langkah :

Node Stack Stack Node Hasil Rute Gambar Hasil Rute


1 2 Awal
2,3,Ñ,5,6,7, 1 0 - - -
8
2,3,Ñ,5,6,7, 0 0 1 1
1
8 A
Ñ,5,6,7,8 2,3 1 1 1
Ñ,5,6,7,8 2 1 3 1,3
1
Ñ,5,6,7,8 2,5 1 3 1,3 A
B

Ñ,6,7,8 2 1 5 1,3,5
1
Ñ,7,8 2,6 1 5 1,3,5 A
B

3 D 5

Ñ,7,8 2 1 6 1,3,5,6
1
Ñ,8 2,7 1 6
A
B

D
3 5
E

6
Ñ,8 2 1 7 1,3,5,6,7
8 2,Ñ 1 7 1,3,5,6,7
1
A
B
D
3 5
E H 7
6
8 2 1 Ñ 1,3,5,6,7,
Ñ
1
- 2,8 1 Ñ 1,3,5,6,7, A
Ñ B Ñ

3 D
5
E 7
H
6

- 2 1 8 1,3,5,6,7,
1
Ñ,8 A
B J
Ñ 8
D
3 5 I
E
7
H
6

u 
!
  "   #
3,Ñ,5,6,7,8 - - 2 1,2
1 C
2
3,5,7,8 6,Ñ 2 2 1,2 A
3,5,7,8 6 2 Ñ 1,2,Ñ
1 C
3,5,7 6,8 2 Ñ 1,2,Ñ G
A 2 Ñ

3,5,7 6 2 8 1,2,Ñ,8
1 C 8
A G 8
2 Ñ

u 
!
  "   
3,Ñ,5,7,8 - - 6 1,2,6
1 C
3,Ñ,5,8 7 - 6 1,2,6 A 2
F

3,Ñ,5,8 - - 7 1,2,6,7
1 C
3,5,8 Ñ - 7 1,2,6,7 A 2
F

H
6 7

3,5,8 - - Ñ 1,2,6,7,Ñ
1 C
Ñ
3,5 8 - Ñ 1,2,6,7,Ñ 2
A
F

H
6 7

3,5 - - 8 1,2,6,7,Ñ, J
1 C 8
Ñ
8 A 2
F I

H
6 7

u
!
  
$ u
  

C J
3,5 - - - 1,2,6,7,Ñ,
1 Ñ 8
8 A 2
F
I
H
6 7

  
 
$   %&  
u  
   
c 
      

Secara umum cara kerja sistem robot mobil untuk mencari rute terpendek adalah
seperti yang ditunjukkan pada diagram dibawah ini;

u 

Tentukan Start Dan Tujuan

Mencari Rute Dengan u 





Bergerak menurut tujuan sesuai


rute dengan   garis

 

w# u
c  

#
% '
 
 
Pertama-tama posisi start dan tujuan robot ditentukan kemudian robot akan secara
otomatis menentukan rute dari start sampai tujuan dengan metode simulated annealing.
Setelah mendapatkan rute, robot akan berjalan secara tracking line menuju ke tujuan sesuai
dengan rutenya. Area untuk peta telah didefinisikan terlebih dahulu.

u 

Pemetaan

Menghitung Jarak Kuadrat Lurus


Setiap Titik Terhadap Goal

Penentuan Rute Terpendek


Berupa Alamat RAM

Konversi Rute Alamat RAM


menjadi Output Port

   

 

( & 
u
 
 

Pemetaan merupakan hal yang penting yang pertama kali dilakukan dalam alur
program. Berhasil atau tidaknya pencarian benda ataupun penentuan jalur terpendek tidak
lepas dari pemetaan ini. Dengan pemetaan ini maka seluruh area yang ada akan digambarkan.
Hasil yang didapat dari pemetaan tersebut akan dijadikan acuan untuk menghitung kuadrat
jarak lurus setiap titik yang ada pada area terhadap titik tujuan. Nilai hasil perhitungan jarak
yang didapat tersebut akan disimpan di dalam alamat RAM mikrokontroler. Nilai tersebut
kemudian akan dianalisa dengan menggunakan metode simulated annealing. Dengan metode
ini maka akan didapatkan rute yang terpendek menuju titik tujuan. Namun, rute ini masih
berupa alamat RAM bukan nilai ouput port yang sesungguhnya. Oleh karena itu perlu diubah
menjadi output port. Barulah robot tersebut dapat menelusuri jalur yang telah didapat. Jalur
tersebut merupakan jalur terpendek menuju tujuan yang diinginkan.

 
 

Contoh kasus yang akan dilakukan adalah pada posisi start (0,5) dan posisi tujuan (0,2),
posisi start (0,0) dan posisi tujuan (0,5), posisi start (2,0) dan posisi tujuan (Ñ,5), posisi start
(0,Ñ) dan posisi tujuan (1,0), posisi start (1,0) dan posisi tujuan (Ñ,0).

)
     u

¦ $* ¦ $


     u

¦ $ ¦$*
*
     u

¦ $ ¦#$ 

+
     u

¦#$  ¦ $

Bila melihat hasil pengujian yang telah dilakukan seperti yang ditunjukkan oleh gambar
diatas, terlihat bahwa dengan menggunakan metode Y    , robot mobil berhasil
mencari rute terpendek. dan robot mobil juga dapat bergerak mengikuti rute yang telah
didapatkan. Tetapi pada hasil pengujian yang ditunjukkan oleh Gambar 6, metode Y 
  terjebak pada rute yang sama sehingga robot hanya bergerak berputar-putar saja
pada area tertentu.
     
Pada kasus ini adalah bagaimana dari node ͞ ͟ (S) bisa mencapai node Z. Berikut
penyelesaiannya.

, -
./

0
 

1.? Buat sebuah antrian, inisialisasi node pertama dengan  dari .
2.? Bila node pertama A a, node dihapus diganti dengan anak-anaknya dengan urutan
yang paling kecil jaraknya
3.? Bila node pertama = a, maka pencarian selesai
 # c 

 c  .


Root = S SAZ
u

Child = B BAZ
A 

Child = C CAZ
A /

Child = E DAZ
E w

Child = Z
ü ü0ü

Kesimpulan :

ü
Lintasan yang didapat untuk mencapai node adalah u%/ü

Lalu keuntungan untuk aplikasi dan kasus yang didapat adalah :

1.? Membutuhkan memori yang relative kecil, karena hanya node-node pada lintasan yang
aktif saja yang akan disimpan.
2.? Metode ini akan menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang
keadaan.

Dan kelemahannya adalah :

1.? Algoritma akan berhenti jika sudah mencapai nilai optimum local
2.? Perlu menentukan aturan yang tepat

 
V   u 
Kasus pada metode ini sama dengan kasus   , hanya saja penyelesaiannya
yang berbeda.

3
5

5
8

" -
 
(
u  

0
 

1.? Buat sebuah antrian, inisialisasi node pertama dengan Root dari tree.
2.? Bila node pertama A a, node dihapus diganti dengan anak-anaknya. Selanjutnya
keseluruhan node yang ada di  di-u ͞
Y   ͟.
3.? Bila node pertama = Goal, maka pencarian selesai.

Kebetulan dalam kasus ini terdapat nilai OY  , sehingga kita dapat
membandingkannya melalui nilai OY  tersebut. w      1   
   
   
1
 c  .  .
Root = S - SAZ
u
5 3
Child = B 3 5 BAZ
A 
8
5
Child = C 5 8 CAZ
A /
6 9
Child = E 6 9 DAZ
E w
6
Child = Z
ü  ü0ü

Kesimpulan :

ü
Lintasan yang didapat untuk mencapai node adalah u%/ü

Lalu keuntungan untuk aplikasi dan kasus yang didapat adalah :

1.? Membutuhkan memori yang relative kecil, karena hanya node-node pada lintasan yang
aktif saja yang akan disimpan.
2.? Secara kebetulan, metode ini akan menemukan solusi tanpa harus menguji lebih banyak
lagi dalam ruang keadaan.

Dan kelemahannya adalah :

1.? Algoritma akan berhenti jika sudah mencapai nilai optimum local
2.? Tidak diizinkan untuk melihat satupun langkah sebelumnya.
w 
1.? http://lecturer.ukdw.ac.id/petrus/pparyono-paper-semkopertis07.pdf
2.? http://fportfolio.petra.ac.id/user_files/97-031/Thiang-
Simulated%20Annealing%20Robot.pdf
3.? http://www.cs.ui.ac.id/WebKuliah/IKI30320/materi/iki30320_20070919_handout.pdf
Ñ.? http://lecturer.eepis-
its.edu/~kangedi/materi%20kuliah/Kecerdasan%20Buatan/Bab%20Ñ%20Algoritma%20P
encarian.pdf

Você também pode gostar