Genel oyun oynama - General game playing

Genel oyun oynama (GGP) tasarımıdır yapay zeka birden fazla oyunu başarıyla oynayabilmek için programlar.[1][2][3] Satranç gibi birçok oyun için bilgisayarlar, başka bir bağlama aktarılamayan özel olarak tasarlanmış bir algoritma kullanılarak bu oyunları oynamaya programlanmıştır. Örneğin, bir satranç Oynayan bilgisayar programı oynatılamıyor dama. Genel oyun oynama yolda gerekli bir kilometre taşı olarak kabul edilir. Yapay Genel Zeka.[4]

Genel video oyunu oynama (GVGP) oyun amacına göre ayarlanmış GGP kavramıdır video oyunları. Video oyunları için oyun kurallarından biri olmalıdır öğrendi yapay oyuncular tarafından yapılan birden fazla yineleme TD-Gammon,[5] veya manuel olarak önceden tanımlanmıştır. alana özgü dil ve önceden yapay oyunculara gönderilir[6][7] geleneksel GGP'deki gibi. 2013 yılından başlayarak, derin pekiştirmeli öğrenme oynamayı öğrenebilen programların geliştirilmesi de dahil olmak üzere yaklaşım Atari 2600 oyunlar[8][5][9][10][11] oynamayı öğrenebilen bir programın yanı sıra Nintendo Eğlence Sistemi oyunlar.[12][13][14]

Genel oyun oynama teknolojisinin ilk ticari kullanımı, Milyonlarca Oyun 1998 yılında. Genel oyun oynama da önerildi. ticaret acenteleri içinde Tedarik zinciri yönetimi bu nedenle fiyat pazarlığı çevrimiçi müzayedeler 2003'ten itibaren.[15][16][17][18]

Tarih

1992'de Barney Pell Meta-Oyun Oynama kavramını tanımladı ve "MetaGame" sistemini geliştirdi. Bu, satranç benzeri oyunların oyun kurallarını otomatik olarak oluşturan ilk programdı ve otomatik oyun oluşturmayı kullanan en eski programlardan biriydi. Pell daha sonra sistemi geliştirdi Metagamer.[19] Bu sistem, oyun kuralları tanımı verilen Oyun Tanım Dili adı verilen özel bir dilde verilen, oyunlar oluşturulduktan sonra herhangi bir insan etkileşimi olmaksızın bir dizi satranç benzeri oyunu oynayabiliyordu.[20]

1998 yılında ticari sistem Milyonlarca Oyun Jeff Mallett ve Mark Lefler tarafından geliştirilmiştir. Sistem, oyun kurallarını tanımlamak için LISP benzeri bir dil kullandı. Milyonlarca Oyun, değerlendirme işlevi taş hareketliliği, tahta yapısı ve oyun hedeflerine göre oyun kurallarından otomatik olarak. Ayrıca, içinde bulunan olağan algoritmaları da kullandı. bilgisayar satrancı sistemler: alfa-beta budama hareket sıralaması ile, transpozisyon tabloları, vb.[21] Paket, eksiksiz bir Forth tabanlı programlama dili içeren alternatif bir meta oyun motoru olan Axiom eklentisinin eklenmesiyle 2007 yılında genişletildi.

1998 yılında z-Tree, Urs Fischbacher.[22] z-Ağacı, ilk ve en çok alıntı yapılan deneysel ekonomi için yazılım aracı. z-Tree, oyun kurallarının z-Tree dilinde tanımlanmasına izin verir. insan deneklerle oyun teorik deneyleri. Ayrıca insan deneklerle bir oyuna katılan bilgisayar oyuncularının tanımlanmasına da izin verir.[23]

2005 yılında Stanford Projesi Genel Oyun Oynama kurulmuş.[3]

2012 yılında PyVGDL'nin geliştirilmesine başlandı.[24]

GGP Uygulamaları

Stanford projesi

Genel Oyun Oynama Stanford Logic Group'un bir projesidir. Stanford Üniversitesi, California, genel oyun oynama için bir platform oluşturmayı hedefliyor. GGP AI'yı standartlaştırmada en bilinen çabadır ve genellikle GGP sistemleri için standart olarak görülür. Oyunlar, içinde temsil edilen kurallar dizisi ile tanımlanır. Oyun Açıklama Dili. Oyunları oynamak için oyuncular bir oyun barındırma sunucusuyla etkileşime girer.[25][26] hareketleri yasallık açısından izleyen ve oyuncuları durum değişiklikleri hakkında bilgilendiren.

2005'ten beri, her yıl Genel Oyun Oynama yarışmaları düzenlenmektedir. AAAI Konferans. Yarışma, rakip yapay zekanın çeşitli farklı oyunları oynama yeteneklerini, her bir oyundaki performanslarını kaydederek değerlendirir. Yarışmanın ilk aşamasında, yarışmacılar yasal hamleler yapma, üstünlük kazanma ve oyunları daha hızlı tamamlama yeteneklerine göre değerlendirilir. Sonraki turda, AI'lar giderek karmaşıklaşan oyunlarda birbirleriyle karşı karşıya geliyor. Bu aşamada en çok oyunu kazanan AI, yarışmayı kazanır ve 2013 yılına kadar yaratıcısı 10.000 $ 'lık bir ödül kazanırdı.[19] Şimdiye kadar aşağıdaki programlar galip geldi:[27]

Diğer yaklaşımlar

Oyun kurallarını tanımlamak için kendi dillerini kullanan başka genel oyun oynama sistemleri de vardır. Diğer genel oyun oynama yazılımları şunları içerir:

  • Stephen Tavener tarafından AiAi adlı bir sistem (önceki Zillions geliştiricisi)[31] 2015'e geri dönüyor ve 2017'nin sonlarından itibaren aktif olarak geliştiriliyor.[32][33]
  • David M.Bennett tarafından PolyGamo Player adlı bir sistem Eylül 2017'de piyasaya sürüldü. Unity oyun motoru.[34]

GVGP Uygulamaları

Takviye öğrenme

GVGP potansiyel olarak gerçek video oyunu AI otomatik olarak ve "prosedürel içerik oluşturma kullanılarak otomatik olarak oluşturulanlar da dahil olmak üzere oyun ortamlarını test etmek ve oyunda bir insan oyuncunun yararlanabileceği olası boşlukları bulmak".[7] GVGP ayrıca oyun kuralları oluşturmak ve bir oyunun iyi yapay zeka ile kötü yapay zeka arasında izin verdiği beceri farklılaşmasını karşılaştıran Göreli Algoritma Performans Profillerine (RAPP) dayalı bir oyunun kalitesini tahmin etmek için de kullanılmıştır.[35]

Video Oyunu Tanımlama Dili

Genel Video Oyunu AI Yarışması (GVGAI. Araştırmacılara ve uygulayıcılara en iyi genel video oyunu oynama algoritmalarını test etmeleri ve karşılaştırmaları için bir yol sundu. Yarışma, içinde yazılmış çok sayıda oyunu içeren ilişkili bir yazılım çerçevesine sahiptir. Video Oyunu Tanımlama Dili (VGDL)ile karıştırılmaması gereken GDL ve kolayca ayrıştırılabilen basit anlamlar ve komutlar kullanan bir kodlama dilidir. VGDL için bir örnek, 2013'te geliştirilen PyVGDL'dir.[6][24] GVGP'de kullanılan oyunlar şimdilik genellikle 2 boyutlu atari oyunlarıdır, çünkü bunlar en basit ve ölçülmesi en kolay olanlardır.[36] Video oyunlarını yorumlayabilen bir AI oluşturma sürecini basitleştirmek için, bu amaç için oyunlar VGDL'de manuel olarak yazılır. VGDL, Cevap Kümesi Programlama (ASP) ve bir Evrimsel Algoritma (EA) kullanarak, özellikle yordamsal düzeylerin oluşturulması için bir oyunu tanımlamak için kullanılabilir. GVGP daha sonra prosedür düzeylerinin geçerliliğinin yanı sıra bir ajanın nasıl performans gösterdiğine bağlı olarak düzeylerin zorluğunu veya kalitesini test etmek için kullanılabilir.[37]

Algoritmalar

GGP AI birden fazla oyun oynayacak şekilde tasarlanması gerektiğinden, tasarımı belirli oyunlar için özel olarak oluşturulmuş algoritmalara dayanamaz. Bunun yerine, AI, yöntemleri çok çeşitli oyunlara uygulanabilen algoritmalar kullanılarak tasarlanmalıdır. AI ayrıca, önceki durumların çıktılarından ziyade mevcut durumuna adapte olabilen devam eden bir süreç olmalıdır. Bu yüzden, açık döngü teknikler genellikle en etkilidir.[38]

GGP AI geliştirmenin popüler bir yöntemi, Monte Carlo ağaç araması (MCTS) algoritması.[39] Genellikle UCT yöntemiyle birlikte kullanılır (Ağaçlara Üst Güven Bağlantısı uygulandı), belirli oyunları daha iyi oynamanın yanı sıra video oyunu oynama ile uyumlu hale getirmek için MCTS varyasyonları önerilmiştir.[40][41][42] Kullanılan ağaç arama algoritmalarının bir başka çeşidi de Yönlendirilmiş Kapsamlı İlk Arama (BFS), mevcut duruma yönelik bir alt düğümün mevcut her eylem için yaratıldığı ve oyun bitene veya süresi dolana kadar en yüksek ortalama ödüle göre sıralanmış her çocuğu ziyaret eder.[43] Her ağaç arama yönteminde, AI potansiyel eylemleri simüle eder ve her birini kazanılan puanlar açısından her yolun ortalama en yüksek ödülüne göre sıralar.[39][43]

Varsayımlar

Oyunlarla etkileşimde bulunmak için, algoritmalar, oyunların hepsinin ortak özellikleri paylaştığı varsayımı altında işlemelidir. Kitapta Yarı Gerçek: Gerçek Dünyalar ve Kurgusal Dünyalar Arasında Video Oyunları, Jesper Juul oyunların şu tanımını verir: Oyunlar kurallara dayanır, değişken sonuçları vardır, farklı sonuçlar farklı değerler verir, oyuncu çabası sonuçları etkiler, oyuncu sonuçlara bağlıdır ve oyunun tartışılabilir sonuçları vardır.[44] Bu varsayımları kullanarak, oyun oynama yapay zekası, oyuncu girdisini, oyun sonuçlarını ve çeşitli kuralların nasıl uygulandığını ölçerek ve en uygun yolu hesaplamak için algoritmalar kullanılarak oluşturulabilir.[36]

Ayrıca bakınız

Referanslar

  1. ^ Pell, Barney (1992). H. van den Herik; L. Allis (editörler). "Metagame: oyunlar ve öğrenim için yeni bir meydan okuma" [Yapay zeka 3'te sezgisel programlama - üçüncü bilgisayarolimpiyatı] (PDF). Ellis-Horwood. Alıntı dergisi gerektirir | günlük = (Yardım)
  2. ^ Pell, Barney (1996). "Genel Satranç Benzeri Oyunlar için Stratejik Bir Metagame Oyuncusu". Sayısal zeka. 12 (1): 177–198. doi:10.1111 / j.1467-8640.1996.tb00258.x. ISSN  1467-8640.
  3. ^ a b Genesereth, Michael; Sevgiler, Nathaniel; Pell, Barney (15 Haziran 2005). "Genel Oyun Oynama: AAAI Yarışmasına Genel Bakış". AI Dergisi. 26 (2): 62. doi:10.1609 / aimag.v26i2.1813. ISSN  2371-9621.
  4. ^ Canaan, Rodrigo; Salge, Christoph; Togelius, Julian; Nealen Andy (2019). Oyun alanını dengelemek [14. Uluslararası Oyun Alanını Seviyelendirme Konferansı Bildirileri: Yapay Zekada adalet ve insan oyun kıyaslamaları]. dl.acm.org. s. 1–8. doi:10.1145/3337722. ISBN  9781450372176.
  5. ^ a b Mnih, Volodymyr; Kavukçuoğlu, Koray; Gümüş, David; Graves, Alex; Antonoglou, Ioannis; Wierstra, Daan; Riedmiller Martin (2013). "Derin Pekiştirmeli Öğrenme ile Atari Çalma" (PDF). Sinirsel Bilgi İşleme Sistemleri Çalıştay 2013. Alındı 25 Nisan 2015.
  6. ^ a b Schaul, Tom (Ağustos 2013). "Model tabanlı veya etkileşimli öğrenme için bir video oyunu açıklama dili". 2013 IEEE Oyunlarda Hesaplamalı Zeka Konferansı (CIG): 1–8. CiteSeerX  10.1.1.360.2263. doi:10.1109 / CIG.2013.6633610. ISBN  978-1-4673-5311-3.
  7. ^ a b Levine, John; Congdon, Clare Bates; Ebner, Marc; Kendall, Graham; Lucas, Simon M .; Miikkulainen, Risto; Schaul, Tom; Thompson, Tommy (2013). "Genel Video Oyun Oynama". Oyunlarda Yapay ve Hesaplamalı Zeka. Schloss Dagstuhl – Leibniz-Zentrum fuer Informatik. 6: 77–83. Alındı 25 Nisan 2015.
  8. ^ Bowling, M .; Veness, J .; Naddaf, Y .; Bellemare, M.G. (2013-06-14). "Arcade Öğrenme Ortamı: Genel Temsilciler için Bir Değerlendirme Platformu". Yapay Zeka Araştırmaları Dergisi. 47: 253–279. arXiv:1207.4708. doi:10.1613 / jair.3912. ISSN  1076-9757.
  9. ^ Mnih, Volodymyr; Kavukçuoğlu, Koray; Gümüş, David; Rusu, Andrei A .; Veness, Joel; Hassabis, Demis; Bellemare, Marc G .; Graves, Alex; Riedmiller, Martin; Fidjeland, Andreas K .; Stig Petersen, Georg Ostrovski; Beattie, Charles; Sadık, Amir; Antonoglou, Ioannis; Kral, Helen; Kumaran, Dharshan; Wierstra, Daan; Legg, Shane (26 Şubat 2015). "Derin pekiştirmeli öğrenme yoluyla insan seviyesinde kontrol". Doğa. 518 (7540): 529–533. Bibcode:2015Natur.518..529M. doi:10.1038 / nature14236. PMID  25719670.
  10. ^ Korjus, Kristjan; Kuzovkin, Ilya; Tampuu, Ardi; Pungas, Taivo (2014). "Kağıdın Kopyalanması" Derin Pekiştirmeli Öğrenme ile Atari Çalma"" (PDF). Tartu Üniversitesi. Alındı 25 Nisan 2015.
  11. ^ Guo, Xiaoxiao; Singh, Satinder; Lee, Honglak; Lewis, Richard L .; Wang, Xiaoshi (2014). "Çevrimdışı Monte-Carlo Ağaç Arama Planlaması Kullanarak Gerçek Zamanlı Atari Oyun Oynama için Derin Öğrenme" (PDF). NIPS Bildirileriβ. Sinirsel Bilgi İşleme Sistemleri Konferansı. Alındı 25 Nisan 2015.
  12. ^ Murphy, Tom (2013). "Süper Mario Kardeşlerin İlk Seviyesi, Sözlük Düzenlemeleri ve Zaman Yolculuğu ile Kolay ... ondan sonra biraz zorlaşıyor." (PDF). SIGBOVIK. Alındı 25 Nisan 2015.
  13. ^ Murphy, Tom. "Learnfun & playfun: NES oyunlarını otomatikleştirmek için genel bir teknik". Alındı 25 Nisan 2015.
  14. ^ Teller, Swizec (28 Ekim 2013). "2. Hafta: Super Mario Bros.'un 1. Seviyesi, sözlüksel sıralamalarla kolaydır ve". Şapkalı bir inek. Alındı 25 Nisan 2015.
  15. ^ McMillen, Colin (2003). "2003 Ticaret Acentesi Yarışması Tedarik Zinciri Yönetimi Oyunu için Akıllı Bir Temsilcinin Geliştirilmesine Doğru" [2003 Ticaret Temsilcisi Yarışması]. Yüksek Lisans Tezi. Minneapolis, MN: Minnesota Üniversitesi. S2CID  167336006. Alıntı dergisi gerektirir | günlük = (Yardım)
  16. ^ Zhang Dongmo (2009). Genel oyun açıklamalarından genel ticaret acenteleri için bir pazar spesifikasyon diline [Temsilci aracılı elektronik ticaret. Elektronik piyasalar için ticaret stratejileri ve mekanizmaları tasarlamak.]. Berlin, Heidelberg: Springer. s. 259–274. Bibcode:2010aecd.book..259T. CiteSeerX  10.1.1.467.4629.
  17. ^ "AGAPE - Genel Açık Artırma Oyuncuları için Açık Artırma Dili". AGAPE (Fransızcada). Alındı 5 Mart 2020.
  18. ^ Michael, Friedrich; Ignatov, Dmitry (2019). "B'den B'ye Genel Oyun Oynama Fiyat Müzakereleri" (PDF). CEUR Çalıştayı Bildirileri. Cilt 2479: 89–99. Alındı 5 Mart 2020.
  19. ^ a b Barney Pell'in bilgisayar oyunu oynama araştırması Arşivlendi 2007-08-12 Wayback Makinesi.
  20. ^ "Metagame ve Genel Oyun Oynama". Metagame ve Genel Oyun Oynama. Alındı 27 Mart 2016.
  21. ^ Mevcut: Universal Game Engine comp.ai.games'e e-posta, yazan Jeff Mallett, 10-Aralık-1998.
  22. ^ "UZH - z-Tree - Hazır Ekonomik Deneyler için Zürih Araç Kutusu". www.ztree.uzh.ch. Alındı 17 Şubat 2020.
  23. ^ Beckenkamp, ​​Martin; Hennig-Schmidt, Heike; Maier-Rigaud, Frank P. (1 Mart 2007). "Simetrik ve Asimetrik Mahkumların İkilem Oyunlarında İşbirliği". Sosyal Bilimler Araştırma Ağı. SSRN  968942. Alıntı dergisi gerektirir | günlük = (Yardım)
  24. ^ a b Schaul, Tom (7 Şubat 2020). "schaul / py-vgdl".
  25. ^ GGP Sunucusu, genel oyun oynama sistemlerinin rekabet platformu.
  26. ^ Dresden GGP Sunucusu, maçların otomatik programlanmasına sahip genel oyun oynama sistemlerinin rekabet platformu.
  27. ^ "Genel Oyun Oynama". www.general-game-playing.de.
  28. ^ Fluxplayer hakkında bilgiler 2. Uluslararası Genel Oyun Oynama yarışmasının birincisi.
  29. ^ CADIAPlayer hakkında bilgi 3., 4. ve 8. Uluslararası Genel Oyun Oynama yarışmalarının galibi hakkında daha fazla bilgi.
  30. ^ Sancho, 2014 GGP Şampiyonu!, 2014 Uluslararası Genel Oyun Oynama yarışmasının birincisi.
  31. ^ "Milyonlarca Oyun - Biz Kimiz?". www.zillions-of-games.com. Alındı 2017-11-16.
  32. ^ "AiAi Ana Sayfası - Stephen Tavener". mrraow.com. Alındı 2017-11-16.
  33. ^ "Ai Ai duyuru dizisi". BoardGameGeek. Alındı 2017-11-16.
  34. ^ "PolyGamo Oyuncu Projesi | Soyut Oyunlar ve Bulmacalar için Programlama Dilleri ve Genel Oyuncular". www.polyomino.com. Alındı 2017-11-16.
  35. ^ Nielsen, Thorbjørn S .; Barros, Gabriella A. B .; Togelius, Julian; Nelson, Mark J. "VGDL ile arcade oyun kuralları oluşturmaya doğru" (PDF).
  36. ^ a b Levine, John; Congdon, Clare Bates; Ebner, Marc; Kendall, Graham; Lucas, Simon M .; Miikkulainen Risto, Schaul; Tom, Thompson; Tommy. "Genel Video Oyun Oynama" (PDF).
  37. ^ Neufeld, Xenija; Mostaghim, Sanaz; Diego, Perez-Liebana. "Genel Video Oyun Oynama için Cevap Seti Programlama ile Prosedürel Seviye Oluşturma" (PDF).
  38. ^ "Genel Oyun Oynamada Son Gelişmeler". Bilimsel Dünya Dergisi. Hindawi Yayıncılık Şirketi. 2015. doi:10.1155/2015/986262.
  39. ^ a b "Monte-Carlo Genel Oyun Oynama Ağacı Arayışı". Araştırma kapısı. Alındı 2016-04-01.
  40. ^ Finnsson, Hilmar (2012). "Genel Oyun Oynama için Genelleştirilmiş Monte-Carlo Ağaç Arama Uzantıları". Yirmi Altıncı AAAI Yapay Zeka Konferansı Bildirileri.
  41. ^ Frydenberg, Frederik; Anderson, Kasper R .; Risi, Sebastian; Togelius, Julian. "Genel Video Oyun Oynamada MCTS Değişikliklerinin Araştırılması" (PDF).
  42. ^ M. Swiechowski; J. Mandziuk; Y. S. Ong, "UCT Tabanlı Genel Oyun Oynama Programının Tek Oyunculu Oyunlara Yönelik Uzmanlığı", Oyunlarda Hesaplamalı Zeka ve Yapay Zeka Üzerine IEEE İşlemleri, cilt PP, no. 99, sayfa 1-1 doi:10.1109 / TCIAIG.2015.2391232
  43. ^ a b Perez, Diego; Dieskau, Jens; Hünermund, Martin. "Genel Video Oyun Oynamak için Açık Döngü Arama" (PDF).
  44. ^ Jesper Juul. Yarı Gerçek: Gerçek Kurallar ve Kurgusal Dünyalar Arasında Video Oyunları. MIT Press, 2005.

Dış bağlantılar

Ayrıca bkz. CS227B - Genel Oyun Oynama kurs sayfası, GGP.org, GGP.org GitHub sayfası, ve games.stanford.edu.

Video