Genel oyun oynama

Vikipedi, özgür ansiklopedi

Genel oyun oynama (General game playing; GGP), birden fazla oyunu başarıyla oynayabilmek için yapay zeka programlarının yaptığı bir tasarımdır[1][2]. Satranç gibi birçok oyun için bilgisayarlar, başka bir bağlama aktarılamayan özel olarak tasarlanmış bir algoritma kullanarak bu oyunları oynayacak şekilde programlanmıştır. Örneğin, satranç oynayan bir bilgisayar programı dama oynayamaz. Genel oyun oynama, Yapay Genel Zeka yolunda gerekli bir kilometre taşı olarak kabul edilmektedir[3].

Genel video oyunu oynama (General video game playing; GVGP), video oyunları oynama amacına göre ayarlanmış GGP kavramıdır. Video oyunları için, oyun kurallarının ya TD-Gammon[4] gibi yapay oyuncular tarafından çoklu yinelemeler üzerinden öğrenilmesi ya da alana özgü bir dilde manuel olarak önceden tanımlanması gerekmektedir. Ayrıca geleneksel GGP'de olduğu gibi yapay oyunculara önceden gönderilmesi gerekmektedir[5][6]. 2013'ten başlayarak, Atari 2600[7][8][9] oyunlarını oynamayı öğrenebilen programların yanı sıra Nintendo Entertainment System oyunlarını oynamayı öğrenebilen bir program da dahil olmak üzere, derin pekiştirmeli öğrenme yaklaşımının ardından önemli ilerleme kaydedilmiştir[10][11].

Genel oyun oynama teknolojisinin ilk ticari kullanımı 1998 yılında Zillions of Games olmuştur. 2003'ten itibaren çevrimiçi müzayedelerde fiyat pazarlığı kapsamında tedarik zinciri yönetimindeki ticaret acenteleri için genel oyun oynama da önerilmiştir[12][13].

Tarihçe[değiştir | kaynağı değiştir]

1992'de Barney Pell Meta-Game Playing 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 ilk programlardan biriydi. Pell daha sonra Metagamer sistemini geliştirdi. Bu sisteme, Oyun Tanımlama Dili (Game Description Language; GDL) adı verilen özel bir dilde oyun kuralları tanımı verildi. Oyunlar oluşturulduktan sonra herhangi bir insan etkileşimi olmadan, satranç benzeri bir dizi oyunu oynayabildi[14].

1998'de ticari sistem Zillions of Games, Jeff Mallett ve Mark Lefler tarafından geliştirildi. Sistem, oyun kurallarını tanımlamak için LISP benzeri bir dil kullandı. Zillions of Games, değerlendirme işlevini, parça hareketliliği, tahta yapısı ve oyun hedeflerine dayalı oyun kurallarından otomatik olarak türetmiştir. Ayrıca bilgisayar satranç sistemlerinde bulunan olağan algoritmaları da kullandı: hareket sıralamalı alfa-beta budama, aktarma tabloları ve benzeri yöntemler. Paket, 2007 yılında eksiksiz bir Forth tabanlı programlama dili içeren alternatif bir metagame motoru olan Axiom eklentisinin eklenmesiyle genişletildi

1998 yılında, z-Tree, Urs Fischbacher tarafından geliştirildi[15]. z-Tree, deneysel ekonomi için ilk ve en çok atıfta bulunulan yazılım aracıdır. z-Tree, insan deneklerle yapılan oyun teorik deneyleri için oyun kurallarının z-Tree dilinde tanımlanmasına izin vermektedir. Aynı zamanda, insan deneklerle bir oyuna katılan bilgisayar oyuncularının tanımlanmasına da izin vermektedir.[16]

2005 yılında Stanford Projesi Genel Oyun Oynama kuruldu.[2]

2012 yılında PyVGDL'nin geliştirilmesi başladı.[17]

GGP uygulamaları[değiştir | kaynağı değiştir]

Stanford projesi[değiştir | kaynağı değiştir]

Genel Oyun Oynama, genel oyun oynama için bir platform oluşturmayı amaçlayan Stanford Üniversitesi, California'daki Stanford Mantık Grubunun bir projesidir. GGP yapay zekasını standartlaştırmada en iyi bilinen çabadır ve genellikle GGP sistemleri için standart olarak görülmektedir. Oyunlar, Oyun Tanımlama Dili'nde temsil edilen bir dizi kuralla tanımlanır. Oyuncular, oyunları oynamak için, hareketleri yasallık açısından izleyen ve oyuncuları durum değişikliklerinden haberdar eden bir oyun barındırma sunucusuyla[18][19] etkileşime girmektedir.

2005 yılından bu yana, AAAI Konferansı'nda (Yapay Zekayı Geliştirme Derneği) yıllık Genel Oyun Oynama yarışmaları düzenlenmektedir. Yarışma, her bir oyundaki performanslarını kaydederek, rakip yapay zekanın çeşitli farklı oyunlar oynama yeteneklerini değerlendirir. Yarışmanın ilk aşamasında, katılımcılar yasal hamleler yapma, üstünlük kazanma ve oyunları daha hızlı tamamlama yeteneklerine göre değerlendirilir. Sonraki ikinci turda, yapay zekalar giderek daha karmaşık oyunlarda birbirleriyle karşılaştırılırlar. Bu aşamada en çok oyunu kazanan yapay zeka yarışmayı kazanır. 2013 yılına kadar da yaratıcısı 10.000 dolarlık bir ödül kazanmaktaydı[20].

Yıl Ad Geliştirici Kurum
2005 Cluneplayer Jim Clune UCLA
2006 Fluxplayer Stephan Schiffel and Michael Thielscher Dresden University of Technology
2007 Cadiaplayer Yngvi Björnsson and Hilmar Finnsson Reykjavik University
2008 Cadiaplayer Yngvi Björnsson, Hilmar Finnsson and Gylfi Þór Guðmundsson Reykjavik University
2009 Ary Jean Méhat Paris 8 University
2010 Ary Jean Méhat Paris 8 University
2011 TurboTurtle Sam Schreiber
2012 Cadiaplayer Hilmar Finnsson and Yngvi Björnsson Reykjavik University
2013 TurboTurtle Sam Schreiber
2014 Sancho Steve Draper and Andrew Rose
2015 Galvanise Richard Emslie
2016 WoodStock Eric Piette Artois University

Diğer yaklaşımlar[değiştir | kaynağı değiştir]

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:

  • 2009'dan itibaren FRAMASI adlı bir sistem geliştirildi.[21][22]
  • Stephen Tavener (önceki Zillions geliştiricisi)[23] tarafından AiAi adlı bir sistem, 2015'ten ve 2017'nin sonlarına kadar aktif olarak geliştirildi.[24]
  • Unity oyun motoruna dayalı olarak Eylül 2017'de piyasaya sürülen David M. Bennett tarafından PolyGamo Player adlı bir sistem de vardır.[25]

GVGP uygulamaları[değiştir | kaynağı değiştir]

Pekiştirmeli öğrenme[değiştir | kaynağı değiştir]

GVGP, potansiyel olarak gerçek video oyunu AI'sını otomatik olarak oluşturmak için ve ayrıca "yöntemsel içerik oluşturma kullanılarak otomatik olarak oluşturulanlar dahil oyun ortamlarını test etmek ve bir insan oyuncunun yararlanabileceği oyundaki potansiyel boşlukları bulmak için" kullanılabilir[26]. GVGP ayrıca oyun kuralları oluşturmak ve bir oyunun iyi AI ile kötü AI arasında izin verdiği beceri farklılaşmasını karşılaştıran Göreceli Algoritma Performans Profillerine (Relative Algorithm Performance Profiles; RAPP) dayalı bir oyunun kalitesini tahmin etmek için kullanılmıştır[27].

Video Oyunu Açıklama Dili[değiştir | kaynağı değiştir]

Genel Video Oyunu AI Yarışması (General Video Game AI Competition; GVGAI), 2014'ten beri devam ediyor. Bu yarışmada GGP yarışmasında kullanılan masa oyunları yerine 1980'ler dönemi atari ve konsol oyunlarına benzeyen (bazen de baz alınan) iki boyutlu video oyunları kullanılmaktadır. 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, GDL ile karıştırılmaması gereken ve kolayca ayrıştırılabilen basit semantik ve komutlar kullanan bir kodlama dili olan Video Oyunu Açıklama Dili (Video Game Description Language; VGDL) ile yazılmış çok sayıda oyunu içeren ilişkili bir yazılım çerçevesine sahiptir. VGDL için bir örnek, 2013 yılında geliştirilen PyVGDL'dir[5]. GVGP'de kullanılan oyunlar, ölçmesi en basit ve en kolay olduklarından, şimdilik genellikle 2 boyutlu atari oyunlarıdır[28]. Video oyunlarını yorumlayabilen bir AI oluşturma sürecini basitleştirmek için, bu amaç için oyunlar manuel olarak VGDL'de yazılır. VGDL, Cevap Kümesi Programlama (Answer Set Programming; ASP) ve Evrimsel Algoritma (Evolutionary Algorithm; EA) kullanarak, özellikle prosedürel seviye üretimi için bir oyunu tanımlamak için kullanılabilir. GVGP daha sonra prosedürel seviyelerin geçerliliğini ve ayrıca bir aracının nasıl performans gösterdiğine bağlı olarak seviyelerin zorluk veya kalitesini test etmek için kullanılabilir[29].

Algoritmalar[değiştir | kaynağı değiştir]

GGP yapay zeka, birden fazla oyun oynamak için tasarlandığından, tasarımı, belirli oyunlar için özel olarak oluşturulmuş algoritmalara dayanamaz. Bunun yerine yapay zeka, yöntemleri çok çeşitli oyunlara uygulanabilen algoritmalar kullanılarak tasarlanmalıdır. Yapay zeka ayrıca, önceki durumların sonucundan ziyade mevcut durumuna uyum sağlayabilen devam eden bir süreç olmalıdır. Bu nedenle, açık döngü teknikleri genellikle en etkilidir[30].

GGP yapay zeka geliştirmek için popüler bir yöntem, Monte Carlo ağaç arama ( Monte Carlo tree search; MCTS) algoritmasıdır[31]. Genellikle UCT yöntemiyle (Ağaçlara Uygulanan Üst Güven Sınırı) birlikte kullanılan MCTS'nin varyasyonları, belirli oyunları daha iyi oynamak ve video oyunu oynamaya uyumlu hale getirmek için önerilmiştir[32]. Kullanılan ağaç arama algoritmalarının bir başka varyasyonu, mevcut her eylem için mevcut duruma bir alt düğümün oluşturulduğu ve oyun bitene veya süresi bitene kadar en yüksek ortalama ödüle göre sıralanan her çocuğu ziyaret ettiği Yönlendirilmiş Genişlik Öncelikli Arama (Directed Breadth-first Search; DBS)'dir[33]. Her ağaç arama yönteminde, yapay zeka potansiyel eylemleri simüle eder ve kazanılan puanlar açısından her yolun ortalama en yüksek ödülüne dayalı olarak her birini sıralar[34].

Varsayımlar[değiştir | kaynağı değiştir]

Oyunlarla etkileşime girebilmek için algoritmaların, oyunların hepsinin ortak özellikleri paylaştığı varsayımı altında çalışması gerekir. Yarı Gerçek: Gerçek Dünyalar ve Kurgusal Dünyalar Arasındaki Video Oyunları kitabında 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[35]. Bu varsayımları kullanarak, 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 kullanarak oyun oynama yapay zekası oluşturulabilir[36].

Ayrıca bakınız[değiştir | kaynağı değiştir]

Kaynakça[değiştir | kaynağı değiştir]

  1. ^ Pell, Barney. "A STRATEGIC METAGAME PLAYER FOR GENERAL CHESS-LIKE GAMES". Computational Intelligence (İngilizce). 12 (1): 177-198. doi:10.1111/j.1467-8640.1996.tb00258.x. ISSN 0824-7935. 
  2. ^ a b Hamilton, Carol (7 Ekim 2016). "AAAI News". AI Magazine. 37 (3): 123-127. doi:10.1609/aimag.v37i3.2697. ISSN 2371-9621. 
  3. ^ Deterding, Sebastian; Khosmood, Foaad; Pirker, Johanna; Apperley, Thomas (26 Ağustos 2019). "[No title found]". Proceedings of the 14th International Conference on the Foundations of Digital Games (İngilizce). San Luis Obispo California USA: ACM. doi:10.1145/3337722. ISBN 978-1-4503-7217-6. 
  4. ^ "Dış bağlantı" (PDF). 12 Eylül 2014 tarihinde kaynağından (PDF) arşivlendi. 
  5. ^ a b Schaul, Tom. "A video game description language for model-based or interactive learning". 2013 IEEE Conference on Computational Inteligence in Games (CIG). Niagara Falls, ON, Canada: IEEE: 1-8. doi:10.1109/CIG.2013.6633610. ISBN 978-1-4673-5311-3. 
  6. ^ "Oyunlarda Yapay ve Hesaplamalı Zeka. Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik. 6: 77-83". 9 Nisan 2016 tarihinde kaynağından arşivlendi. 
  7. ^ Bellemare, M. G.; Naddaf, Y.; Veness, J.; Bowling, M. (14 Haziran 2013). "The Arcade Learning Environment: An Evaluation Platform for General Agents". Journal of Artificial Intelligence Research. 47: 253-279. doi:10.1613/jair.3912. ISSN 1076-9757. 
  8. ^ Mnih, Volodymyr; Kavukcuoglu, Koray; Silver, David; Rusu, Andrei A.; Veness, Joel; Bellemare, Marc G.; Graves, Alex; Riedmiller, Martin; Fidjeland, Andreas K.; Ostrovski, Georg; Petersen, Stig (26 Şubat 2015). "Human-level control through deep reinforcement learning". Nature (İngilizce). 518 (7540): 529-533. doi:10.1038/nature14236. ISSN 0028-0836. 
  9. ^ "Korjus, Kristjan; Kuzovkin, İlya; Tampuu, Ardi; Pungas, Tayvo (2014)" (PDF). 18 Aralık 2014 tarihinde kaynağından (PDF) arşivlendi. 
  10. ^ "Murphy, Tom (2013)" (PDF). 26 Nisan 2013 tarihinde kaynağından (PDF) arşivlendi. 
  11. ^ "Murphy, Tom". 9 Mayıs 2013 tarihinde kaynağından arşivlendi. 
  12. ^ "AGAPE (in French)". 
  13. ^ "Michael, Friedrich; Ignatov, Dmitry (2019)" (PDF). 6 Aralık 2019 tarihinde kaynağından (PDF) arşivlendi. 
  14. ^ "Metagame and General Game Playing". 3 Mart 2001 tarihinde kaynağından arşivlendi. 
  15. ^ ""UZH - z-Tree - Zurich Toolbox for Readymade Economic Experiments"". 21 Şubat 2016 tarihinde kaynağından arşivlendi. 
  16. ^ Beckenkamp, Martin; Hennig-Schmidt, Heike; Maier-Rigaud, Frank P. (2007). "Cooperation in Symmetric and Asymmetric Prisoner's Dilemma Games". SSRN Electronic Journal. doi:10.2139/ssrn.968942. ISSN 1556-5068. 
  17. ^ "Schaul, Tom (7 February 2020)". 11 Haziran 2018 tarihinde kaynağından arşivlendi. 
  18. ^ "genel oyun oynama sistemlerinin rekabeti için platform". 28 Şubat 2014 tarihinde kaynağından arşivlendi. 
  19. ^ "maçların otomatik zamanlaması ile genel oyun oynama sistemlerinin rekabeti için platform". 7 Nisan 2013 tarihinde kaynağından arşivlendi. 
  20. ^ "Dış bağlantı". 26 Aralık 2008 tarihinde kaynağından arşivlendi. 
  21. ^ ICAART 2009 : proceedings of the International Conference on Agents and Artificial Intelligence. Joaquim Filipe, Ana Fred, Bernadette Sharp, Control and Communication Institute for Systems and Technologies of Information. Setúbal: INSTICC. 2009. ISBN 978-989-8111-66-1. OCLC 751850701. 
  22. ^ Tagiew, Rustam (2011). Strategische Interaktion realer Agenten Ganzheitliche Konzeptualisierung und Softwarekomponenten einer interdisziplinären Forschungsinfrastruktur. neue Ausg. Saarbrücken. ISBN 978-3-8381-2512-1. OCLC 863770019. 
  23. ^ "www.zillions-of-games.com". 2 Temmuz 1998 tarihinde kaynağından arşivlendi. 
  24. ^ "Dış bağlantı". 6 Eylül 2015 tarihinde kaynağından arşivlendi. 
  25. ^ "PolyGamo Oyuncu Projesi | Soyut Oyunlar ve Bulmacalar için Programlama Dilleri ve Genel Oyuncular". 23 Eylül 2002 tarihinde kaynağından arşivlendi. 
  26. ^ "Levine, John; Congdon, Clare Bates; Ebner, Marc; Kendall, Graham; Lucas, Simon M.; Miikkulainen, Risto; Schaul, Tom; Thompson, Tommy (2013)". 9 Nisan 2016 tarihinde kaynağından arşivlendi. 
  27. ^ "Nielsen, Thorbjørn S.; Barros, Gabriella A. B.; Togelius, Julian; Nelson, Mark J. "Towards generating arcade game rules with VGDL" (PDF)." (PDF). 12 Eylül 2015 tarihinde kaynağından (PDF) arşivlendi. 
  28. ^ "Levine, John; Congdon, Clare Bates; Ebner, Marc; Kendall, Graham; Lucas, Simon M.; Miikkulainen Risto, Schaul; Tom, Thompson; Tommy" (PDF). 28 Mart 2016 tarihinde kaynağından (PDF) arşivlendi. 
  29. ^ "Genel Video Oyunu Oynamak için Yanıt Seti Programlama ile Prosedürel Düzey Oluşturma" (PDF). Neufeld, Xenija; Mostaghim, Sanaz; Perez-Liebana, Diego. 28 Mart 2016 tarihinde kaynağından (PDF) arşivlendi. 
  30. ^ Świechowski, Maciej; Park, HyunSoo; Mańdziuk, Jacek; Kim, Kyung-Joong (2015). "Recent Advances in General Game Playing". The Scientific World Journal (İngilizce). 2015: 1-22. doi:10.1155/2015/986262. ISSN 2356-6140. 
  31. ^ "researchgate". 18 Nisan 2016 tarihinde kaynağından arşivlendi. 
  32. ^ Swiechowski, Maciej; Mandziuk, Jacek; Ong, Yew Soon. "Specialization of a UCT-Based General Game Playing Program to Single-Player Games". IEEE Transactions on Computational Intelligence and AI in Games. 8 (3): 218-228. doi:10.1109/TCIAIG.2015.2391232. ISSN 1943-068X. 
  33. ^ "researchgate". 17 Ocak 2021 tarihinde kaynağından arşivlendi. 
  34. ^ "Genel Video Oyunu Oynamak için Açık Döngü Araması" (PDF). Perez, Diego; Dieskau, Jens; Hünermund, Martin. 28 Mart 2016 tarihinde kaynağından (PDF) arşivlendi. 
  35. ^ Jesper Juul. Half-Real: Video Games Between Real Rules and Fictional Worlds. MIT Press, 2005.
  36. ^ "Genel Video Oyunu Oynama" (PDF). Levine, John; Congdon, Clare Bates; Ebner, Marc; Kendall, Graham; Lucas, Simon M.; Miikkulainen Risto, Schaul; Tom, Thompson; Tommy. 28 Mart 2016 tarihinde kaynağından (PDF) arşivlendi.