Jumat, 22 Juni 2018

BAB 6 Pengambilan Keputusan pada Board Game

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

BAB 5 AI Dalam Taktikal dan Strategi

Tugas

Apa itu Waypoint?

         Waypoint dalam bahasa Indonesia berarti titik jalan. Jadi, waypoint dapat dijelaskan sebagai titik acuan atau koordinat yang digunakan untuk keperluan navigasi di dalam peta pada sebuah game. Koordinat-koordinat itu biasanya menyertakan longitude(garis bujur), latitude(garis lintang) dan kadang altitude(ketinggian) untuk keperluan navigasi udara di dalam game. Waypoint berfungsi sebagai titik tujuan didalam peta pada sebuah game. Waypoint di dalam game seringkali tidak disertai tanda yang dapat dilihat oleh pemain, baik ketika pemain melihat peta, Waypoint tidak akan ditampakkan guna untuk menambah tingkat kesulitan didalam sebuah game.

          Tidak dipungkiri lagi, waypoint sudah pasti diterapkan untuk karakter-karakter ai yang terdapat didalam game agar game dapat terlihat lebih hidup seperti keadaan di dunia nyata, walaupun kadang pemain juga harus dipaksa untuk mengikuti waypoint yang ditentukan oleh developer. waypoint yang diterapkan pada karakter ai dalam game bergenre aksi dan petualangan, biasanya untuk keperluan patroli, keperluan mengejar, keperluan melarikan diri dan keperluan menghindar.

Apa itu Taktik?

           Menurut penulis, taktik adalah susunan cara yang akan dilakukan untuk menyelesaikan sebuah masalah yang dihadapi. Taktik digunakan untuk terselesaikannya masalah dengan sempurna tanpa adanya kegagalan. Terkadang, taktik juga digunakan untuk mendapatkan keuntungan dari masalah yang dihadapi. Didalam game bergenre aksi dan petualangan, pemain sangat dipaksa untuk memiliki taktik agar masalah-masalah yan terdapat didalam game dapat terselesaikan secara sempurna, Karena kebanyakan didalam juga menuntut pemainnya untuk selalu menang, sehingga taktik sangat diperlukan untuk pemain.

Apa itu Pathfinding?

        Pathfinding atau dapat diartikan "pencarian jalur" dalam bahasa Indonesia. Pathfinding menurut penulis merupakan terusan dari waypoint, dimana ketika sebuah titik koordinat sudah di tentukan, karakter ai selanjutnya mencari jalur tercepat untuk sampai pada titik koordinat tersebut.

Penulisan

Strategi Real-time

        Strategi real-time "(RTS) menunjukkan bahwa tindakan dalam permainan kontinu, dan pemain akan harus membuat keputusan dan tindakan mereka dalam latar belakang negara permainan yang terus berubah, dan komputer real-time strategy gameplay ditandai dengan memperoleh sumber daya, membangun pangkalan, meneliti teknologi dan memproduksi unit.

contoh game yang menggunakan Strategi real-time

menurut penulis, game yang menggunakan strategi real-time adalah game yang sedang booming sekarang, yaitu P*BG. yang biasa disebut Pabji.

Referensi :

file:///E:/Pengantar%20Game%20(Soft%20Skill)/Tugas%204/M11,%20M12%20-%20AI%20dalam%20Tactical%20dan%20Strategi.pdf

file:///E:/Pengantar%20Game%20(Soft%20Skill)/Tugas%204/M11%20dan%20M12%20-%20Pengantar%20Teori%20Game%20Tactical%20Strategy%20Way%20Point.pdf