Tugas
Konsep Board Game
Board
game atau permainan papan, secara arti juga sudah dengan mudah untuk
dimengerti, yaitu permainan yang dimainkan diatas papan atau diatas alas
tertentu yang sudah dirancang sedemikian rupa sesuai dengan aturan permainannya.
Board game biasanya ditujukan untuk permainan bersama keluarga dengan peraturan
yang mudah sehingga mendapatkan kesan seru yang semakin mempererat tali
kekeluargaan. Namun ada beberapa game yang membutuhkan keseriusan pada
rancangan board game, seperti catur dan othello.
Algoritma Min Max
Algoritma minmax
atau minimax adalah sebuah algoritma yang digunakan pada permainan dengan dua
pemain dengan cara memprediksi keadaan masa depan, dan kemudian mengambil
langkah yang memaksimalkan peluang kemenangan. Teori di balik minimax adalah
bahwa algoritma lawan akan mencoba untuk meminimalkan nilai apapun yang
algoritma pemain berusaha maksimalkan. Dengan konsep seperti itu, maka
algoritma ini akan melakukan gerakan yang membuat lawannya memiliki peluang
lebih kecil untuk menang.
Algoritma AlphaBetaWithMemory
Sebagai
catatan, MTD(f) memanggil fungsi Alpha-Beta yang menyimpan nilai
simpul-simpulnya dalam memori, dan mengembalikan nilainya untuk pencarian
kembali. Untuk membuat MTD(f) sangkil, maka fungsi Alpha-beta harus menyimpan
nilai simpul yang telah dicari. Berikut ini adalah kode dari
AlphaBetaWithMemory:
function AlphaBetaWithMemory(n :
node_type; alpha , beta , d : integer) : integer;
if retrieve(n) == OK then /* Melihat tabel transposisi */
if n.lowerbound >= beta then return
n.lowerbound;
if n.upperbound <= alpha then return
n.upperbound;
alpha := max(alpha, n.lowerbound);
beta := min(beta, n.upperbound);
if d == 0 then g := evaluate(n); /* simpul daun */
else if n == MAXNODE then g := -INFINITY;
a := alpha; /* menimpan nilai alpha yang
sebenarnya */
c := firstchild(n);
while (g < beta) and (c != NOCHILD) do g := max(g, AlphaBetaWithMemory (c,
a, beta, d - 1))
a := max(a, g);
c := nextbrother(c);
else /* n adalah sebuah MINNODE */
g := +INFINITY;
b := beta; /* save original beta value */
c := firstchild(n);
while (g > alpha) and (c != NOCHILD) do g := min(g,
AlphaBetaWithMemory (c, alpha, b, d - 1));
b := min(b, g);
c := nextbrother(c); /* Tabel transposisi
menyimpan nilai simpul */
if g <= alpha then n.upperbound := g;
store n.upperbound;
if g > alpha and g < beta then n.lowerbound := g;
n.upperbound := g;
store n.lowerbound, n.upperbound;
if g >= beta then n.lowerbound := g;
store n.lowerbound;
return g;
Tabel transposisi yang digunakan
berguna untuk menyimpan dan mengambil panggilan. Retrieve berfungsi untuk
memastikan jika sebuah nilai terdapat MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN
2008 dalam tabel, maka nilai itu akan langsung digunakan, bukan dilanjutkan
dengan mencarinya. Store berfungsi untuk menyimpan nilai yang ada. Dalam
algoritma ini, kita juga akan menyimpan nilai langkah terbaik kedalam tabel
transposisi.
Hashing
Hashing adalah transformasi aritmatik
sebuah string dari karakter menjadi nilai yang merepresentasikan string
aslinya. Menurut bahasanya, hashberarti memenggal dan kemudian
menggabungkan. Hashing digunakan sebagai metode untuk
menyimpan data dalam sebuah array agar penyimpanan data, pencarian data,
penambahan data, dan penghapusan data dapat dilakukan dengan cepat. Ide
dasarnya adalah menghitung posisi recordyang dicari dalam array,
bukan membandingkan record dengan isi pada array. Fungsi yang
mengembalikan nilai atau kunci disebut fungsi hash (hashfunction)
dan array yang digunakan disebut tabel hash (hash table). Hash
tablemenggunakan struktur data array asosiatif yang
mengasosiasikan recorddengan sebuah field kunci
unik berupa bilangan (hash) yang merupakan representasi dari record tersebut.
Zobrist Hashing
Zobrist
hashing (juga disebut sebagai kunci Zobrist atau tanda tangan Zobrist [1])
adalah konstruksi fungsi hash yang digunakan dalam program komputer yang
memainkan permainan papan abstrak, seperti catur dan Go, untuk menerapkan tabel
transposisi, jenis khusus dari tabel hash yang diindeks oleh posisi papan dan
digunakan untuk menghindari menganalisis posisi yang sama lebih dari satu kali.
Strategi
Replacement
Metode replacement digunakan untuk
menghapus data yang ada pada cache yang penuh, untuk digantikan dengan data
baru. Banyak metode replacement yang diteliti sebelumnya. Faktor yg biasa
diperhitungkan untuk proses replacement pada cache:
- recency: waktu terakhir referensi
ke objek
- frekuensi: jumlah request ke
sebuah objek
- size: ukuran dari objek dalam
cache
- cost of fetching the object:
perhitungan pengambilan objek langsung dari server asli (seperti jarak dalam
jumlah hop)
- modification time: waktu
dimodifikasi terakhir sebuah objek
- expiration time: waktu dimana
objek sudah kadaluarsa dan bisa diganti langsung
Sumber
:
http://repository.unpas.ac.id/15941/2/bab%202.pdf
http://informatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2016-2017/Makalah2017/Makalah-IF2211-2017-043.pdf
http://informatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2007-2008/Makalah2008/MakalahIF2251-2008-094.pdf
http://syazdiayhodian.blogspot.com/2011/06/hashing.html
https://en.wikipedia.org/wiki/Zobrist_hashing
file:///E:/Pengantar%20Game%20(Soft%20Skill)/Tugas%204/565-770-1-PB.pdf