Your Times

Sabtu, 07 Juli 2012

Kecerdasan Buatan "AI" pada Game

Konteks

Jadi, apa AI sih? Apa tujuan dan kondisi yang membedakan sistem AI yang baik dari yang buruk? Pada dasarnya, desain buruk AI sering dimulai dengan menetapkan tujuan yang salah.
 Salah satu definisi AI mungkin seperti "AI adalah simulasi komputer dari perilaku cerdas." Ini akan berlaku kecuali kenyataan bahwa kita benar-benar tidak tahu pasti apa kecerdasan itu. Apakah "kecerdasan" berarti "perilaku yang menunjukkan kemampuan besar untuk beradaptasi dan memecahkan masalah kompleks," atau "perilaku yang sama dengan manusia menutupi manusia tersebut”? Sejarah lagi dan lagi bahwa menyatakan manusia tidak selalu cemerlang, namun ada adalah kualitas dengan perilaku mereka yang membuat mereka cerdas. Seperti yang akan Anda pelajari dalam bab ini, beberapa permainan membuat kesalahan dengan mencoba mengikuti definisi pertama, dan dengan demikian, menghasilkan hasil yang benar-benar realistis. Ambil contoh, salah satu masalah klasik AI-menemukan rute dari titik A ke titik B yang menghindari rintangan.
Banyak algoritma ada untuk memecahkan masalah ini dengan berbagai tingkat keberhasilan. Mereka menganalisis peta dan menelusuri jalan yang menghubungkan dua titik akhir dan menghindari rintangan. Beberapa dari mereka, bagaimanapun, pergi terlalu jauh, memastikan bahwa jalan antara A dan B adalah optimal-yaitu, jalur sesingkat mungkin. Ini adalah kasus dalam algoritma A * yang populer, yang akan kita bahas pada Bab 8, "Taktical AI." Menurut definisi pertama, * A jelas merupakan algoritma yang sangat cerdas. Bahkan, sangat cerdas bahwa itu secara algoritma dapat membangun jalur optimal antara dua point terakhir, bahkan jika kita harus menyeberang bermil-mil dan melalui hambatan dalam proses. Tapi itu benar-benar tidak realistis jika dibandingkan dengan perilaku manusia. Manusia tidak melacak jalur yang optimal, dan mereka sering melakukan kesalahan melintasi labirin yang sangat kompleks (lihat Gambar 6.1).
Gambar 6.1. Perbandingan antara A * dan pencari jalan manusia. Kiri: awal masalah. Tengah: manusia. Perhatikan bagaimana kita mencoba untuk mendekati target, dan jika tidak ada jalan yang tersedia, sering menyelamatkan. Kanan: * A tahu solusinya sebelumnya sehingga ini menelusuri jalan yang sangat realistis tetapi yang benar melalui daerah kanan atas.



Seorang manusia beralih dari A B untuk akan mengikuti lintasan padat (dengan asumsi dia tidak tahu jalan sebelumnya), dan A * akan menemukan solusi yang optimal, putus-putus. Jadi, permainan menggunakan metode ini mungkin cukup pintar, tapi tidak terlalu realistis. Dan ini adalah sangat penting karena berkonsentrasi pada memiliki "pintar" AI tetapi bukan "manusia" AI kadang-kadang dapat menghasilkan permainan yang buruk, dan itu modal buruk dalam pembangunan permainan AI. Dengan kata lain, kita akan dapat menciptakan AI yang sempurna yang akan membuat frustasi untuk pemain manusia. Jadi, kita perlu menjaga tingkat yang wajar ketidaksempurnaan dibangun ke dalam desain AI.
Di sisi lain, kita tidak ingin membuat AI bodoh hanya demi realisme. Permainan adalah tentang tantangan, dan ini memerlukan musuh cerdas sehingga sulit untuk mengalahkan. Contoh yang baik adalah strategi permainan real-time. Komputer menciptakan strategi untuk tentara CPU dikontrol dengan menggunakan berbagai teknik. Tapi tentara di sisi AI yang dikontrol sangat dangkal dalam hal spontanitas dan improvisasi nilai kinerja mereka. Mereka lebih seperti robot yang dirancang untuk melaksanakan rencana induk. Ini harus jadi atau permainan akan terlalu mudah dan menjadi membosankan.
Jadi jelas, permainan AI adalah keseimbangan antara perilaku menghasilkan yang baik sangat berkembang dan canggih, dan perilaku yang kurang lebih manusia (dalam arti tidak optimal dari kata tersebut). Beberapa teknik dapat digunakan untuk memastikan bahwa AI kita tidak hanya "robot pemecah masalah" tetapi juga harus ada entitas manusia yang menyediakan jumlah yang tepat hanya untuk kompleksitas sehingga akan menantang dan menarik, tetapi tidak lebih dari itu.

Struktur dari sebuah Sistem AI

Mari kita mulai perjalanan kita dengan mengambil mikroskop virtual dan mencari di dalam sebuah entitas AI tunggal. Ini bisa menjadi Quake musuh, sebuah tentara  Age of Empires, atau makhluk dari Black & White. Memahami utama blok bangunan nantinya akan membantu struktur dan kode sistem Anda secara efisien.
Pada dasarnya, sistem AI datang dalam dua rasa. Yang pertama dan paling umum adalah agen, yang merupakan virtual karakter dalam permainan dunia. Ini biasanya musuh, tetapi juga dapat karakter yang tidak bermain, sidekicks, atau bahkan seperti animasi sapi di lapangan. Untuk jenis entitas, struktur biologis harus diikuti, sehingga membuat suatu perilaku model dapat dilihat secara realistis. Dengan demikian, sistem AI yang terstruktur dengan cara yang sama untuk otak kita. Sangat mudah untuk mengidentifikasi empat elemen atau aturan, yaitu seperti dibawah ini:
-          Sebuah sensor atau input sistem
-          Sebuah memori kerja
-          Sebuah inti penalaran / analisis
-          Sebuah sistem tindakan / keluaran
Beberapa AI lebih sederhana dari itu dan mengganti dapat beberapa komponen. Tapi ini kerangka kerja global meliputi sebagian besar entitas yang ada. Dengan mengubah sifat setiap komponen, pendekatan yang berbeda dapat diimplementasikan.
Tipe kedua entitas AI adalah pengendali abstrak. Ambil game strategi, misalnya. Siapa yang menyediakan penalaran Tactical? Setiap unit mungkin sangat baik dimodelkan dengan menggunakan aturan sebelumnya, tapi yang jelas, strategi permainan membutuhkan entitas tambahan yang bertindak seperti controller master pertempuran dari sisi CPU. Hal ini tidak semua karakter diwujudkan tapi koleksi rutinitas yang memberikan dinamika kelompok diperlukan untuk keseluruhan sistem. Pengendali abstrak memiliki struktur sangat mirip dengan yang dijelaskan sebelumnya, tetapi masing-masing subsistem bekerja pada tingkat yang lebih tinggi daripada individu.
Mari kita membahas secara singkat setiap elemen struktur.

Penginderaan Dunia

Semua AI perlu menyadari keadaan di sekitar mereka sehingga mereka dapat menggunakan informasi tersebut dalam fase penalaran atau analisis. Apa yang dirasakan dan bagaimana sebagian besar bergantung pada jenis permainan yang Anda ciptakan. Untuk memahami hal ini, mari kita bandingkan AI tingkat individu untuk permainan seperti Quake ke controller abstrak dari Age of Empires.
Dalam Quake, musuh individu perlu tahu:
-          Dimana pemain dan di manakah dia mencari?
-          Apakah geometri terhadap lingkungan sekitarnya?
-          Kadang-kadang, yang senjata yang saya gunakan dan yang ia gunakan?
Jadi model dunia relatif mudah. Dalam permainan, sistem visual adalah penyederhanaan bentuk satu manusia. Kita mengasumsikan kita melihat pemain jika dia dalam jarak tertentu, dan kami menggunakan algoritma sederhana untuk menguji untuk tabrakan dengan dunia game. Tahap sensori sangat penting untuk mengumpulkan informasi yang akan mendorong semua analisis berikutnya.
Sekarang mari kita lihat data sensorik yang digunakan oleh controller master dalam strategi permainan, seperti Age of Empires:
-          Apakah keseimbangan kekuatan di setiap subarea dari peta?
-          Berapa banyak masing-masing jenis sumber daya yang saya miliki?
-          Apa rincian jenis unit: infanteri, kavaleri, dan sebagainya?
-          Apakah status saya dalam hal pohon teknologi?
-          Apakah geometri dari dunia permainan?
Perhatikan bahwa ini bukan tes sederhana. Sebagai contoh, kita perlu mengetahui geometri dari seluruh permainan dunia untuk memastikan bahwa temuan jalan bekerja seperti yang diharapkan untuk semua unit. Bahkan, sebagian besar dari AI sedemikian waktu permainan dihabiskan dalam menyelesaikan jalur-temuan perhitungan. Sisa dari pemeriksaan yang dilakukan sudah tidak lebih mudah. Menghitung keseimbangan kekuatan sehingga kita tahu mana musuh dan distribusi spasial nya adalah kompleks masalah. Hal ini begitu kompleks sehingga kita hanya akan recompute solusi setiap frame N sekali untuk mempertahankan kinerja yang layak.
Dalam banyak skenario, merasakan permainan dunia adalah bagian paling lambat dari AI. Menganalisis peta dan penggalian informasi yang berharga dari data mentah adalah proses memakan waktu.

Ingatan

Menyimpan data AI sering kompleks karena konsep yang disimpan tidak mudah. Dalam AI tingkat individu, ini akan menjadi kekurangan dari masalah. Kita dapat menyimpan poin dan orientasi dan menggunakan numerik nilai-nilai untuk menggambarkan "state AI adalah masuk Jika karakter berjalan, state sama dengan satu, jika dia berjalan, state sama dengan dua, dan sebagainya. Sekarang, bagaimana kita menyimpan informasi yang lebih abstrak, seperti keseimbangan daya dari pernyataan sebelumnya? Dan bagaimana menjalankannya? Bagaimana kita menyimpan jalan sehingga karakter memiliki peta mini dalam memori dan mengingat bagaimana untuk pergi dari A ke B? Beberapa struktur data adalah nontrivial, dan kita sering akan berakhir dengan kasus per kasus solusi, terutama ketika coding controller master.

Analisis / Penalaran Inti

Inti analisis / penalaran adalah apa yang orang sering berpikir tentang ketika mereka berbicara tentang AI. Ini adalah bagian yang benar-benar menggunakan data sensori dan memori untuk menganalisis konfigurasi dan membuat keputusan saat ini. Metode populer untuk tugas-tugas seperti adalah mesin negara yang terbatas dan sistem aturan, baik yang dibahas dalam bab ini. Membuat keputusan bisa lambat atau cepat tergantung pada sejumlah alternatif dan data indrawi untuk mengevaluasi. Bermain catur adalah proses yang lambat, sedangkan karakter bergerak dalam Quake benar-benar mudah. Jelas, tokoh dalam Quake memiliki berbagai pilihan terbatas (biasanya, bergerak di empat arah, melompat dan menembak), sedangkan 20 sampai 50 bergerak dapat dilakukan pada papan catur, diberikan awal konfigurasi.
Untungnya, banyak permainan sederhana hanya memerlukan pengambilan keputusan proses yang melibatkan beberapa pilihan, dan besar Hasil sering datang dengan harga yang relatif rendah. Ketika Anda akan segera melihat, banyak permainan dipuji karena mereka AI besar telah dibangun dengan algoritma yang relatif sederhana.

Action / Output System

Intelijen, tidak peduli seberapa canggih, harus menyerap tindakan dan tanggapan, sehingga kita menyadari ada sesuatu yang terjadi di dalam otak makhluk maya itu. Dengan demikian, adalah penting untuk pasangan kita rutinitas AI dengan tindakan pintar subrutin, sehingga kami mendapatkan perasaan kecerdasan nyata. Bahkan, banyak permainan membesar-besarkan sistem tindakan banyak seperti di sebuah drama teater, jadi niat karakter yang jelas dan kepribadian yang disampaikan. Dengan melakukan demikian, tingkat kecerdasan dirasakan oleh pemain bisa jauh lebih tinggi daripada kompleksitas sebenarnya dari inti AI rutinitas. Sebagai contoh, mengingat Super permainan Mario Bros. Semua jenis makhluk aneh memenuhi permainan tersebut, dari penyu untuk kadal dan makhluk lainnya. Jika Anda memisahkan logika dari tindakan-tindakan yang sebenarnya,
Anda akan menemukan bahwa AI ini semua sangat mirip. Mereka musuh AI yang mengejar kesederhanaan atau koreografer AI. Tapi dengan membuat "tanda" gerakan untuk masing-masing dari mereka, kepribadian dan intelijen perlu ditingkatkan.