FSM (Finite State Machine)
Finite State Machine juga termasuk dalam teori bahasa automata yang dapat menerima inputan seperti
FA, akan tetapi di dalam finite state machine ini juga dapat menerima
inputan dan juga dapat mengeluarkan output sehingga dalam finite state
machine terdapat dua type finite state machine yakni :
a. Finite State Machine
With Output / Tranducer
1) Meanly
machine : Diantara state terdapat fungsi transisi
2) Moore
machine : Output yang ditentukan oleh state
b. Finite State Machine
With No output
1) Finite
State Automata
2) Sering digunakan
untuk pengenalan bahasa
Tugas
Penjelasan :
Contoh implementasi FSM di game
yaitu di game Pacman, yaitu pada karakter musuhnya (ghost). 4 hantu yang
dikenal dengan nama Pinky, Clyde, Blinky, dan Inky.
Di mana ada 5 state: Run From
Player, Rise, Die, Chase Player, dan Move Randomly. Dan Antar state terdapat
aturan transisi agar dapat melakukan perubahan state, misal ketika karakter
utama memakan 'pellet' maka si musuh ini akan berubah state dari state
'mengejar' ke state 'menjauh' dari karakter utama, dan seterusnya.
Contoh lain misalnya di game
sepakbola: ada state shoot, tackle, heading, dll. Di game jenis FPS: tembak,
cover, reload, get health, dll. Dan masih banyak lagi contoh implementasi FSM
di berbagai macam genre game.
Finite State Machine di dunia AI
Game Programming, merupakan salah satu teknik yang paling sering digunakan.
Alasannya yaitu:
1. Implementasinya mudah dan
cepat
2. Memudahkan proses debugging.
Karena telah dipecah menjadi kepingan yang lebih kecil, proses debugging kalau
terjadi behavoiur yang tidak semestinya, menjadi lebih mudah
3. Proses komputasi yg minimal,
karena sejatinya FSM hanyalah conditional statement yang dikemas dalam bentuk
yang lebih elegan.
Kekurangannya:
1. Behaviour dari agen mudah
diprediksi, karena tidak ada searching dan atau learning di dalam agen tersebut
2. Karena mudah diimplementasi,
kadang programmer langsung tembak di eksekusi tanpa melakukan desain FSM
terlebih dahulu. Biasanya akan terjadi FSM yang terfragmentasi
3. Timbul apa yang dinamakan dengan
State Oscillation yaitu ketika batasan antara dua buah state terlalu tipis:
Tugas
Pseudocode :
module Aksi
def do_next
@sekarang = @selanjutnya
case @sekarang
when :invite
choose_round_partner
@selanjutnya = :Acc
when :Acc
choose_round_partner
@selanjutnya = :Tunggu
when :Decline
choose_round_partner
@selanjutnya = :Tunggu
when :Input
@selanjutnya = :Dengarkan
when :Dengarkan
@selanjutnya = :respond
when :respond
evaluate_invites
@selanjutnya = :update_in
when :Tunggu
@selanjutnya = :update_out
when :update_in, :update_out
update_edges
clear_invites
@selanjutnya = :exchange
when :exchange
update_colors
clear_invites
@selanjutnya = :pilih
when :pilih
reset_variables
choose_role
when :done
@selanjutnya = :done
end
end
end
FSM :Penjelasan :
Pseudocode dan FSM disatas menjabarkan mengenai perilaku komputasi tunggal dari proses invite caracter yang dapat di lakukan dengan pemilihan antara input nama dengan invite langsung ketika bertemu untuk pemilihan sendiri.. pemilihan secara input nama akan membutuhkan waktu yaitu menunggu caracter lain mendengarkan request kemudian di response baru data akan di update sementara untuk invite secara langsung akan terdapat 2 state antara di terima dan di tolak kemudian menuju update, ketika semua kriteria terpenuhi maka proses selesai dan jika tidak maka akan kembali ke proses start.


Komentar
Posting Komentar