Bagaimana cara membuat AI yang masuk akal?


11

Saya membuat game logika berdasarkan game Fox and Hounds. Pemain memainkan rubah dan AI memainkan anjing. (Sejauh yang saya bisa lihat) saya berhasil membuat AI sempurna, sehingga tidak pernah hilang. Membiarkannya seperti itu tidak akan menyenangkan bagi para pemain manusia.

Sekarang, saya harus membodohi AI agar manusia bisa menang, tapi saya tidak yakin bagaimana caranya. Logika AI saat ini didasarkan pada pencocokan pola - jika saya memperkenalkan gerakan acak yang membuat papan keluar dari ruang pola AI kemungkinan besar akan bermain bodoh sampai akhir pertandingan.

Adakah ide bagaimana membodohi AI sedemikian rupa sehingga tidak berubah dari "genius" menjadi "benar-benar bodoh" dalam satu gerakan?


Jadi, Anda menemukan dan menerapkan strategi yang optimal dan selalu menang. Mengapa tidak pindah ke game yang sedikit lebih rumit sekarang? Atau, bagaimana dengan tantangan: Terapkan strategi yang selalu kalah , tidak peduli apa pun yang dilakukan pemain lain. Lihat juga: Losing Chess / Antichess
Martin Sojka

Mungkin Anda ingin melihat jawaban saya pada pertanyaan lain ini: gamedev.stackexchange.com/questions/12858/…
Tyn

Rubah dan anjing tidak serumit catur. Satu langkah salah dan AI pasti kalah. Sangat mudah untuk membuat AI terlihat bodoh. Fakta bahwa saya menyelesaikannya menggunakan pena dan kertas dan jam pemikiran strategis, tidak berarti bahwa pemain saya akan melakukan hal yang sama.
Milan Babuškov

Jawaban:


7

Banyak implementasi dapat mengarah pada peluang tertimbang acak untuk bergerak - katakanlah, kesempatan untuk membuat langkah yang optimal dan kesempatan untuk membuat langkah yang kurang optimal. Menentukan seberapa suboptimal suatu gerakan bisa menjadi masalah yang sangat rumit, tetapi juga akan mengarahkan AI Anda untuk membuat keputusan yang jauh lebih cerdas.

Catatan penting: Apa pun kesulitannya, mungkin merupakan ide yang buruk jika AI melewatkan kesempatan untuk segera memenangkan permainan. Jika ada kemungkinan untuk membuat langkah yang akan menyelesaikan permainan yang berubah, itu harus selalu diambil. Jika tidak, itu benar-benar akan menghancurkan kesan pemain tentang bagaimana AI bertindak.


Terima kasih. Saya memutuskan untuk membiarkannya bermain cerdas untuk semua pola sederhana. Ada dua pola kompleks di mana jalur pemain menuju kebebasan tidak mudah terlihat, jadi saya membuat pola tambahan yang membuat AI kalah dengan memainkan gerakan yang akan menyerupai pemain manusia pemula di posisi seperti itu. Di awal permainan, saya secara acak mengganti pola kemenangan dengan kehilangan satu untuk posisi seperti itu.
Milan Babuškov

10

Karena ini tampaknya merupakan permainan yang 'dipecahkan', satu-satunya jawaban adalah bahwa komputer harus membuat gerakan yang sengaja buruk.

Solusi cepat mungkin dengan menghitung langkah terbaik, lalu juga menghitung langkah hukum lain yang mungkin tidak begitu baik. Tingkat kesulitan AI akan diukur dalam persen kesempatan yang diambil langkah yang tidak begitu baik, di atas langkah yang sempurna.

  • Sulit - 90% gerakan yang baik
  • Sulit - 70% gerakan bagus
  • Normal - 50% gerakan bagus
  • Sederhana - 20% gerakan yang baik
  • Dijatuhkan Sebagai Seorang Anak - <5% gerakan yang baik
  • Hotdog - Semua Acak

10
Ini mungkin ide yang bagus, tetapi Anda akan berakhir dengan AI terbelakang jika sengaja mengambil langkah yang salah. Dari atas kepala saya, pertama-tama saya akan melakukan oper untuk gerakan "legal", kemudian menerapkan bobot untuk setiap gerakan dan memesannya berdasarkan berat, bobot tertinggi adalah gerakan terbaik. Anda kemudian dapat membuat RNG menyatu ke arah gerakan yang lebih baik tergantung pada kesulitan.
Jonathan Connell

4
Saya setuju dengan @Jonathan Connell. Pertimbangkan: bersembunyi di balik peti vs bersembunyi di balik barel peledak vs bersembunyi di antara peti dan granat aktif. AI harus mengevaluasi seberapa buruk langkahnya, dengan AI yang lebih baik membuat gerakan yang lebih baik lebih sering. AI tidak akan menjadi besar atau sulit jika 70% dari waktu menembak Anda dan 30% dari waktu itu meledak sendiri. Itu hanya akan lucu.
doppelgreener

2
@Adrian Seeley Komentar terakhir Anda benar-benar menyentuh masalah terbesar; bagi saya, permainan manusia melawan AI akan selalu secara naluriah menemukan alasan di balik pilihan-pilihan itu meskipun secara teori mereka sepenuhnya acak. Dalam permainan papan misalnya ini dapat diatasi dengan membatasi jumlah iterasi dalam memprediksi gerakan, jadi mungkin ini bisa menjadi solusi yang baik dalam permainan yang bisa dipecahkan?
Jonathan Connell

2
Saya setuju dengan kedua Jonathans, tapi saya memberikan jawaban ini +1 untuk 'Was Dropped a a Child' dan 'Hotdog'
thedaian

2
@ Jonathan Connell: Anda harus memposting proposisi / solusi Anda sebagai jawaban. Itu akan pantas mendapatkan beberapa upvotes.
bummzack
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.