Mengapa mobil bisa bermain tidak manusiawi dengan baik di Mario, tetapi tidak di Pokemon?

Untuk mengantisipasi turnamen kami pada gim video game sekolah lama , kami memutuskan untuk membicarakan bot dalam gim komputer.

Anda mungkin pernah mendengar bahwa kemampuan bot modern untuk permainan komputer melebihi kemampuan manusia. Bot seperti itu bisa berupa kode-keras, selalu bereaksi sama terhadap set input data yang sama. Pendekatan lain untuk pengembangan mereka adalah bahwa mereka diizinkan untuk belajar dan berkembang . Mereka berperilaku berbeda dalam situasi yang sama dalam mencoba menemukan solusi optimal untuk masalah yang mereka hadapi.



Berikut adalah beberapa contoh bot yang terkenal:

  • AlphaZero adalah bot catur yang, setelah 24 jam pelatihan, telah menjadi pemain terhebat di Bumi.
  • AlphaGo adalah program yang mengalahkan Lee Sedola dan Ke Jie in Go.
  • MarI / O adalah bot untuk Super Mario yang belajar sendiri, berusaha menyelesaikan level game secepat mungkin.

Chess, go, Super Mario - game yang sulit, bot adalah kombinasi algoritma yang dipilih, dibutuhkan banyak waktu untuk melatihnya.

Materi ini dikhususkan untuk analisis bot MarI / O dan kisah mengapa pendekatan yang digunakan untuk membuat bot ini tidak akan membantu menulis program yang dapat memainkan Pokemon dengan baik.

Apa perbedaan antara Mario dan Pokemon?


Ada tiga perbedaan utama antara game Mario dan Pokemon yang menentukan potensi keberhasilan bot:

  1. Jumlah gol.
  2. Koefisien percabangan.
  3. Kontradiksi antara optimasi global dan lokal

Bandingkan game dengan faktor-faktor ini dalam pikiran.

Jumlah gol


Mesin belajar dengan mengoptimalkan fungsi tujuan tertentu. Ini bisa berupa pemaksimalan fungsi hadiah atau fungsi kebugaran (saat belajar dengan penguatan dan saat menggunakan algoritma genetika ), bisa meminimalkan fungsi kehilangan (saat belajar dengan guru ). Bagaimanapun, jika kita berbicara tentang aplikasi ke permainan, kita berbicara tentang set jumlah poin maksimum yang dimungkinkan.

Mario memiliki satu tujuan: untuk mencapai akhir level. Sederhananya, semakin Anda maju dalam permainan, semakin baik. Indikator ini mengekspresikan fungsi objektif tunggal, dan kemampuan model dapat diperkirakan, secara sederhana dan jelas, dengan satu indikator.

Gol dari game Mario

Pokemon memiliki banyak tujuan. Mari kita coba mencari tahu. Mungkin tujuan permainan ini adalah mengalahkan elite empat? Mungkin ini adalah tangkapan semua Pokemon? Atau mungkin Anda perlu melatih tim terkuat? Ada kemungkinan bahwa tujuan permainan adalah kombinasi dari semua tujuan sebelumnya atau bahkan sesuatu yang sama sekali berbeda. Sangat mungkin bahwa pada kenyataannya, jika Anda bertanya kepada pemain tertentu tentang ini, tujuannya akan disajikan dalam bentuk kombinasi kompleks dari banyak pencapaian yang tersedia dalam permainan.


Tujuan Game Pokemon

Saat menganalisis permainan, perlu tidak hanya untuk menentukan tujuan akhir, tetapi juga untuk memutuskan bagaimana permainan berkembang, bagaimana tindakan tertentu mempengaruhi fungsi tujuan, memperburuknya atau meningkatkan tergantung pada berbagai macam pilihan yang tersedia untuk pemain pada titik waktu tertentu.

Faktanya, pilihan varian aksi dalam situasi tertentu membawa kita ke indikator kedua perbandingan game.

Rasio percabangan


Koefisien percabangan adalah, secara sederhana, indikator yang menunjukkan jumlah opsi tindakan yang tersedia di setiap langkah proses permainan. Dalam catur, koefisien percabangan rata-rata adalah 35. Dalam go - 250. Jika bot mencoba untuk "melihat ke masa depan", setelah menghitung semua gerakan yang bisa dibuat sekarang, dan kemudian semua gerakan yang bisa dilakukan setelah menyelesaikan langkah saat ini , dan seterusnya, maka setiap level tersebut berarti peningkatan serius dalam kompleksitas tugas. Yaitu, jumlah opsi dengan pendekatan ini tumbuh secara eksponensial, dinyatakan sebagai rumus bentuk (koefisien percabangan) ^ (jumlah level).

Dalam Mario, karakter dapat bergerak ke kiri atau ke kanan, bisa melompat dan tidak bisa melakukan apa-apa. Jumlah opsi yang perlu dievaluasi bot tidak banyak. Semakin rendah koefisien percabangan, semakin jauh bot dapat melihat ke masa depan, menghabiskan sumber daya komputasi yang dapat diterima untuk hal ini.

Opsi Mario

Pokemon memiliki dunia game terbuka. Ini berarti bahwa pada setiap titik waktu tertentu pemain memiliki banyak opsi untuk bertindak. Selain itu, penghitungan sederhana dari arah pergerakan karakter yang mungkin dalam kasus ini tidak cocok untuk menghitung koefisien percabangan. Sebaliknya, peran dimainkan oleh tindakan tertentu yang masuk akal di dunia game. Akankah aksi selanjutnya adalah pertarungan, percakapan dengan karakter game, transisi ke area lain dari peta? Selain itu, jumlah pilihan, saat Anda maju melalui permainan, semakin bertambah.


Presentasi tindakan karakter yang disederhanakan di Pokemon

Untuk membuat bot yang bisa menentukan urutan keputusan apa yang harus dibuat dalam situasi seperti itu, bot ini perlu memperhitungkan tujuan jangka pendek dan jangka panjangnya, yang membawa kita ke dimensi selanjutnya membandingkan game Mario dan Pokemon.

Kontradiksi antara optimasi global dan lokal


Optimalisasi lokal dan global dapat dipertimbangkan secara spasial dan temporal. Tujuan jangka pendek dan area kecil di sekitar karakter permainan terkait dengan pengoptimalan lokal. Tujuan jangka panjang dan fragmen ruang game yang relatif besar (sesuatu seperti "kota" atau seluruh dunia game) terkait dengan optimisasi global.

Jika, di Pokemon, Anda memecah setiap gerakan menjadi bagian-bagian penyusunnya - ini akan membantu menghadirkan masalah yang harus dipecahkan oleh bot, yang terdiri dari fragmen yang sangat kecil. Optimalisasi lokal, memungkinkan, katakanlah, untuk berpindah dari titik A ke titik B, tidak akan menyebabkan kesulitan. Masalah yang jauh lebih rumit adalah pilihan titik B, arah gerakan. Algoritma serakah tidak akan membantu kita di sini, karena solusi optimal secara lokal tidak selalu mengarah pada hasil optimal secara global.


Masalah memilih langkah selanjutnya

Peta di Mario kecil dan linear. Peta di Pokemon besar, kompleks, dan non-linear. Sebelum pemain, saat Anda maju melalui permainan dan saat ia mengejar tujuan yang semakin penting, tugas baru terus muncul. Dan tugas mengatur koneksi optimalisasi lokal dengan tujuan global tidaklah mudah. Setidaknya model yang ada belum siap untuk menyelesaikannya.

Ringkasan


Dari sudut pandang bot, Pokemon bukanlah satu permainan. Bot terkenal karena spesialisasi mereka yang sempit, dan bot yang membantu pemain bergerak di sekitar peta tidak akan berguna jika pemain menemukan karakter permainan yang akan bergabung dengan pertempuran. Dari sudut pandang bot, bergerak di sekitar peta dan pertempuran adalah tugas yang sama sekali berbeda.


Bot adalah sistem yang sangat terspesialisasi

Selama pertempuran di setiap langkah, Anda harus memilih dari puluhan opsi. Anda harus memutuskan tindakan apa yang harus diambil, Pokemon mana yang akan diambil, Anda perlu memahami kapan harus menggunakan berbagai item. Semua ini, dengan sendirinya, menghadirkan tantangan pengoptimalan yang kompleks. Inilah materi yang mengeksplorasi tantangan mengembangkan simulator pertempuran di Pokemon. Artikel ini dikembangkan dengan baik, agak rumit, tetapi bahkan di sana masalah objek, faktor terpenting yang mempengaruhi hasil pertempuran, tidak dipertimbangkan.

Pada akhirnya, kita dapat mengatakan bahwa kita harus bersukacita pada kenyataan bahwa kita dapat membuat bot yang memainkan permainan kita lebih baik daripada kita. Permainan ini kompleks dari sudut pandang matematika, tetapi tujuan mereka mudah ditentukan. Dengan perkembangan teknologi kecerdasan buatan, umat manusia akan dapat menciptakan mesin yang dapat memecahkan masalah yang semakin penting di dunia nyata. Mereka akan melakukan ini dengan mempelajari masalah-masalah ini, yang merupakan tugas optimasi yang kompleks. Tapi untuk saat ini, saya dapat meyakinkan Anda, ada tugas yang kami selesaikan lebih baik dari mesin, termasuk permainan yang banyak dari kita bermain di masa kecil. Setidaknya inilah masalahnya sekarang.

Pembaca yang budiman! Kami mengundang Anda untuk mengambil bagian dalam turnamen Rusia pertama di video game sekolah lama Game Overnight . Turnamen ini memiliki bagian kualifikasi dan pertempuran nyata dari yang terbaik dari yang terbaik, yang akan diadakan pada 30 November di Museum mesin slot Soviet. Kami menunggu turnamen dari 20 hingga 3 jam, minuman busa Smart Admin, Dj Ogurets (Sergey Mezentsev), dan admin RUVDS DJ Unpushible akan membantunya, dan kami juga akan mencoba burger salju Sub Zero baru dari admin kami. Jadi, seperti kata mereka, selamat datang!

Source: https://habr.com/ru/post/id429834/


All Articles