بازی سازی عمومی
بازی عمومی ( GGP ) طراحی برنامه های هوش مصنوعی است تا بتوان بیش از یک بازی را با موفقیت انجام داد. [۱] [۲] [۳] برای بسیاری از بازی ها مانند شطرنج ، کامپیوترها برنامه ریزی شده اند تا این بازی ها را با استفاده از یک الگوریتم طراحی شده خاص انجام دهند ، که نمی تواند به بازی های دیگر این برنامه تعمیم پیدا کند. به عنوان مثال ، یک برنامه رایانه ای که شطرنج بازی می کند نمی تواند بازی چکرز را انجام دهد . بازی عمومی به عنوان یک نقطه عطف ضروری در مسیر Artificial General Intelligence محسوب می شود .
بازی عمومی ویدیوی ( GVGP ) یکی دیگر از کاربردهای GGP است که با توجه به هدف بازی های ویدیویی تنظیم می شود. در بازی سازی عمومی قوانین بازی باید توسط چند بازیکن تکرار شود مانند TD-Gammon ، [۴] یا به صورت دستی این قوانین در یک زبان خاص و از پیش تعریف شده برای بازیکنان ارسال شود [۵] [۶]
درواقع GGP از سال ۲۰۱۳ به دنبال رویکرد یادگیری تقویت عمیق هست مانند توسعه برنامه ای که بر اساس یادگیری عمیق بتواند بازی آتاری 2600 را یاد بگیرد[۷] [۸] [۹] [۱۰] و توسط این یادگیری بتواند بازی های سیستم سرگرمی Nintendo که در نسل های بعد ارایه می شود را انجام دهد [۱۱] [۱۲] [۱۳]
اولین کاربرد تجاری فناوری بازی عمومی ، Zillions of Games در سال 1998 بود. بازی عمومی نیز برای نمایندگان تجارت در مدیریت زنجیره تامین و پس از آن در مذاکره ها قیمت در حراج های آنلاین از سال 2003 به بعد پیشنهاد شد. [۱۴] [۱۵] [۱۶]
تاریخ[ویرایش]
در سال 1992 ، بارنی پل مفهوم Meta-Game Playing را تعریف کرد و سیستم "MetaGame" را توسعه داد. این اولین برنامه ای بود که به طور خودکار قوانین بازی های شطرنج مانند را تولید می کند و یکی از اولین برنامه هایی است که از تولید بازی های خودکار استفاده می کند. سپس بارنی پل سیستم Metagamer را توسعه داد. [۱۷] این سیستم با توجه به تعریف قوانین بازی به زبانی خاص به نام Game Description Language ، بدون هیچ گونه تعامل انسانی پس از تولید بازی ها ، توانست تعدادی از بازی های شطرنج مانند را انجام دهد. [۱۸]
در سال 1998 ، سیستم تجاری Zillions of Games توسط جف مالت و مارک لفلر ساخته شد. این سیستم برای تعریف قوانین بازی از زبانی مانند LISP استفاده می کرد. Zillions of Games عملکرد ارزیابی را به طور خودکار از قوانین بازی بر اساس تحرک ، ساختار صفحه و اهداف بازی به دست می آورد. همچنین الگوریتم ها را در سیستم های شطرنج رایانه ای به کار می برد: هرس آلفا بتا با ترتیب حرکت ، جداول جابجایی و غیره. [۱۹] این بسته در سال 2007 با افزودن پلاگین Axiom ، یک موتور متا بازی جایگزین که یک زبان برنامه نویسی کاملاً مبتنی بر Forth را در خود دارد ، تمدید شد.
در سال 1998 ، z-Tree توسط Urs Fischbacher ساخته شد . [۲۰] z-Tree اولین و پر استنادترین ابزار نرم افزاری برای اقتصاد تجربی است . z-Tree امکان تعریف قوانین بازی در زبان z-Tree را برای آزمایش ها تئوری بازی با افراد انسانی فراهم می کند . همچنین امکان تعریف بازیکنان رایانه ای را نیز فراهم می کند ، که در یک بازی با موضوع های انسانی شرکت می کنند. [۲۱]
در سال 2005 ، بازی عمومی پروژه استنفورد تاسیس شد. [۳]
در سال 2012 ، توسعه PyVGDL آغاز شد. [۲۲]
پیاده سازی های GGP[ویرایش]
پروژه استنفورد[ویرایش]
General Game Playing پروژه ای از گروه منطق استنفورد دانشگاه استنفورد ، کالیفرنیا است که هدف آن ایجاد بستری برای بازی عمومی است. این شناخته شده ترین تلاش برای استاندارد سازی GGP AI است و به طور کلی به عنوان استاندارد سیستم های GGP دیده می شود. این بازی ها با مجموعه قوانینی که در زبان توضیح بازی ارائه می شوند ، تعریف می شوند. برای انجام بازی ها ، بازیکنان با یک سرور میزبان بازی ارتباط برقرار می کنند [۲۳] [۲۴] که از نظر قانونی بودن حرکت را کنترل می کند و بازیکنان را از تغییرهای وضعیت مطلع می کند.
از سال 2005 ، سالانه مسابقه های بازی عمومی در کنفرانس AAAI برگزار می شود. این مسابقه با ضبط عملکرد آنها در هر بازی ، توانایی های AI رقیب را برای انجام انواع بازی های مختلف قضاوت می کند. در مرحله اول مسابقه ، داوطلبان با توجه به توانایی انجام حرکت های قانونی ، دستیابی به برتری و بازی های سریعتر قضاوت می شوند. در مرحله بعدی ، هوش مصنوعی در بازی های پیچیده ای که به طور فزاینده ای پیچیده اند در برابر یکدیگر قرار می گیرند. هوش مصنوعی که در این مرحله بیشترین موفقیت را به دست می آورد در این مسابقه برنده می شود و تا سال 2013 سازنده آن یک جایزه 10 هزار دلاری می گرفت. [۱۷] تاکنون ، برنامه های زیر پیروز بودند: [۲۵]
- 2005: Cluneplayer ، نوشته جیم کلون ( UCLA )
- 2006: Fluxplayer ، [۲۶] توسط استفان شیفل و مایکل تیلشر ( دانشگاه صنعتی درسدن )
- 2007: Cadiaplayer ، [۲۷] توسط Yngvi Björnsson و Hilmar Finnsson ( دانشگاه ریکیاویک )
- 2008: Cadiaplayer ، توسط Yngvi Björnsson ، Hilmar Finnsson و Gylfi Þór Guðmundsson ( دانشگاه ریکیاویک )
- 2009: آری ، توسط Jean Méhat ( دانشگاه 8 پاریس )
- 2010: آری ، توسط Jean Méhat ( دانشگاه 8 پاریس )
- 2011: TurboTurtle ، ساخته سام شریبر
- 2012: Cadiaplayer ، توسط Hilmar Finnsson و Yngvi Björnsson ( دانشگاه ریکیاویک )
- 2013: TurboTurtle ، ساخته سام شريبر
- 2014: سانچو ، [۲۸] توسط استیو دراپر و اندرو رز
- 2015: گالوانیزه ، توسط ریچارد امسلی
- 2016: WoodStock ، توسط Eric Piette ( دانشگاه Artois )
رویکردهای دیگر[ویرایش]
سیستم های بازی عمومی دیگری نیز وجود دارند که از زبانهای خاص خود برای تعریف قوانین بازی استفاده می کنند. سایر نرم افزارهای عمومی بازی شامل:
- سیستمی به نام AiAi توسط Stephen Tavener (توسعه دهنده قبلی Zillions) [۲۹] که به سال 2015 برمی گردد و از اواخر سال 2017 فعالانه توسعه می یابد. [۳۰] [۳۱]
- سیستمی به نام PolyGamo Player توسط David M. Bennett در سپتامبر 2017 بر اساس موتور بازی Unity منتشر شد. [۳۲]
پیاده سازی های GVGP[ویرایش]
به طور بالقوه می توان از GVGP برای ایجاد هوش مصنوعی بازی های ویدیویی و همچنین "آزمایش محیط های بازی ، از جمله مواردی که به طور خودکار با استفاده از تولید محتوای مرحله ای ایجاد می شوند و یافتن نقاط ضعف احتمالی در بازی که یک بازیکن انسانی می تواند سواستفاده کند ،" استفاده کرد. [۶] از GVGP همچنین برای تولید قوانین بازی و تخمین کیفیت بازی بر اساس پروفایل های عملکرد الگوریتم نسبی (RAPP) استفاده شده است که تفاوت مهارت را که یک هوش مصنوعی خوب و هوش مصنوعی انجام می دهد مقایسه می کند. [۳۳]
مسابقه هوش مصنوعی General Video Game ( GVGAI ) از سال 2014 برگزار می شود. در این مسابقه ، به جای بازی های رومیزی که در مسابقه GGP استفاده می شود ، از بازی های ویدئویی دو بعدی مشابه (و بعضاً مبتنی بر) دوره های بازی و کنسول مربوط به دوران دهه 80 استفاده می شود. این یک روش برای محققان و شرکت کنندگان ارائه داده است تا بهترین الگوریتم های بازی عمومی ویدیویی خود را آزمایش و مقایسه کنند. این مسابقه دارای یک چارچوب نرم افزاری مرتبط با تعداد زیادی بازی است که به زبان توضیح های بازی ویدیویی (VGDL) نوشته شده است ، که نباید با GDL اشتباه گرفته شود و یک زبان برنامه نویسی با استفاده از معانی و دستور های ساده است که به راحتی تجزیه می شود. یک مثال برای VGDL PyVGDL است که در سال 2013 ساخته شده است. [۵] [۲۲] بازی های مورد استفاده در GVGP ، در حال حاضر ، غالباً بازی های دو بعدی هستند ، زیرا ساده ترین آنها برای تعیین کمیت است. [۳۴] برای ساده سازی فرآیند هوش مصنوعی که می تواند بازی های ویدیویی را تفسیر کند ، بازی ها بصورت دستی در VGDL نوشته می شوند. VGDL می تواند برای توصیف یک بازی و تولید رویه سطوح ، با استفاده از Answer Set Programming (ASP) و یک الگوریتم تکاملی (EA) استفاده شود. سپس می توان از GVGP برای بررسی اعتبار سطوح رویه ای و همچنین دشواری یا کیفیت سطوح بر اساس عملکرد یک عامل استفاده کرد. [۳۵]
الگوریتم ها[ویرایش]
از آنجا که GGP AI باید برای انجام چندین بازی طراحی شده باشد ، طراحی آن نمی تواند به الگوریتم های ایجاد شده برای یک بازی خاص تکیه کند. در عوض ، هوش مصنوعی باید با استفاده از الگوریتم هایی طراحی شود که روش های آنها را می توان در طیف گسترده ای از بازی ها به کار برد. هوش مصنوعی همچنین باید یک روند مداوم باشد ، که بتواند به جای خروجی حالت های قبلی ، با وضعیت فعلی خود سازگار شود. به همین دلیل ، تکنیک های حلقه باز اغلب بیشترین تأثیر را دارند. [۳۶]
یک روش محبوب برای توسعه GGP AI الگوریتم جستجوی درخت مونت کارلو (MCTS) است. [۳۷] برای استفاده بهتر از بازی های خاص و همچنین سازگاری آن با بازی های ویدئویی ، تغییرهای MCTS که اغلب همراه با روش UCT استفاده می شود (بهینه سازی که برای درختان اعمال می شود ) ارائه شده است. [۳۸] [۳۹] [۴۰] یکی دیگر از تغییرهای الگوریتم های جستجوی درخت استفاده شده ، جستجوی مستقیم پهنای مستقیم (BFS) است که در آن یک گره فرزند به حالت فعلی برای هر اقدام موجود ایجاد می شود و از هر فرزند که طبق بالاترین پاداش متوسط بازدید می شود حرکت می کند ، تا زمانی که بازی تمام شود یا اجرا شود خارج از زمان [۴۱] در هر روش جستجوی درخت ، هوش مصنوعی اقدام های بالقوه را شبیه سازی می کند و هر کدام را براساس میانگین بالاترین پاداش هر مسیر ، از نظر امتیازهای کسب شده ، رتبه بندی می کند.
فرضیه ها[ویرایش]
به منظور تعامل با بازی های مختلف ، الگوریتم ها باید با این فرض که همه ویژگی های مشترک بازی ها دارند عمل کنند. در کتاب نیمه واقعی: بازی های ویدئویی بین دنیای واقعی و دنیای خیالی ، Jesper Juul تعریف زیر را از بازی ها ارائه می دهد: بازی ها براساس قوانین تعریف می شوند ، دارای نتایج متغیر هستند و سپس نتایج مختلف ارزش های مختلف ایجاد می کنند و تلاش بازیکن بر نتایج تأثیر می گذارد. بازیکن و نتیجه بازی به هم وابسته هستند و نتیجه بازی قابل بحث هست. [۴۲] با استفاده از این فرضیه ها ، می توان هوش مصنوعی بازی را با کمی سازی ورودی بازیکن ، نتایج بازی و نحوه اعمال قوانین مختلف و استفاده از الگوریتم ها برای محاسبه مطلوب ترین مسیر ایجاد کرد. [۳۴]
This article "بازی سازی عمومی" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:بازی سازی عمومی. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.
- ↑ Pell, Barney (1992). L. Allis, ed. "Metagame: a new challenge for games and learning" [Heuristic programming in artificial intelligence 3–the third computerolympiad] (PDF). Ellis-Horwood. Missing
|last1=
in Editors list (help)صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد. - ↑ خطای لوآ در پودمان:Citation/CS1/en/Identifiers در خط 47: attempt to index field 'wikibase' (a nil value).
- ↑ ۳٫۰ ۳٫۱ خطای لوآ در پودمان:Citation/CS1/en/Identifiers در خط 47: attempt to index field 'wikibase' (a nil value).
- ↑ Mnih, Volodymyr; Kavukcuoglu, Koray; Silver, David; Graves, Alex; Antonoglou, Ioannis; Wierstra, Daan; Riedmiller, Martin (2013). "Playing Atari with Deep Reinforcement Learning" (PDF). Neural Information Processing Systems Workshop 2013. Retrieved 25 April 2015.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ ۵٫۰ ۵٫۱ خطای لوآ در پودمان:Citation/CS1/en/Identifiers در خط 47: attempt to index field 'wikibase' (a nil value).
- ↑ ۶٫۰ ۶٫۱ Levine, John; Congdon, Clare Bates; Ebner, Marc; Kendall, Graham; Lucas, Simon M.; Miikkulainen, Risto; Schaul, Tom; Thompson, Tommy (2013). "General Video Game Playing". Artificial and Computational Intelligence in Games. Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik. 6: 77–83. Retrieved 25 April 2015.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ خطای لوآ در پودمان:Citation/CS1/en/Identifiers در خط 47: attempt to index field 'wikibase' (a nil value).
- ↑ خطای لوآ در پودمان:Citation/CS1/en/Identifiers در خط 47: attempt to index field 'wikibase' (a nil value).
- ↑ Korjus, Kristjan; Kuzovkin, Ilya; Tampuu, Ardi; Pungas, Taivo (2014). "Replicating the Paper "Playing Atari with Deep Reinforcement Learning"" (PDF). University of Tartu. Retrieved 25 April 2015.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ Guo, Xiaoxiao; Singh, Satinder; Lee, Honglak; Lewis, Richard L.; Wang, Xiaoshi (2014). "Deep Learning for Real-Time Atari Game Play Using Offline Monte-Carlo Tree Search Planning" (PDF). NIPS Proceedingsβ. Conference on Neural Information Processing Systems. Retrieved 25 April 2015.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ Murphy, Tom (2013). "The First Level of Super Mario Bros. is Easy with Lexicographic Orderings and Time Travel ... after that it gets a little tricky." (PDF). SIGBOVIK. Retrieved 25 April 2015.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ Murphy, Tom. "learnfun & playfun: A general technique for automating NES games". Retrieved 25 April 2015.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ Teller, Swizec (October 28, 2013). "Week 2: Level 1 of Super Mario Bros. is easy with lexicographic orderings and". A geek with a hat. Retrieved 25 April 2015.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ McMillen, Colin (2003). "Toward the Development of an Intelligent Agent for the Supply Chain Management Game of the 2003 Trading Agent Competition" [2003 Trading Agent Competition]. Master's Thesis. Minneapolis, MN: University of Minnesota.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ "AGAPE - An Auction LanGuage for GenerAl Auction PlayErs". AGAPE (به français). Retrieved 5 March 2020.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ Michael, Friedrich; Ignatov, Dmitry (2019). "General Game Playing B-to-B Price Negotiations" (PDF). CEUR Workshop Proceedings. Vol-2479: 89–99. Retrieved 5 March 2020.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ ۱۷٫۰ ۱۷٫۱ Barney Pell's research on computer game playing بایگانیشده در ۲۰۰۷-۰۸-۱۲ توسط Wayback Machine.
- ↑ "Metagame and General Game Playing". Metagame and General Game Playing. Retrieved 27 March 2016.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ Available: Universal Game Engine email to comp.ai.games by Jeff Mallett, 10-Dec-1998.
- ↑ "UZH - z-Tree - Zurich Toolbox for Readymade Economic Experiments". www.ztree.uzh.ch (به English). Retrieved 17 February 2020.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ خطای لوآ در پودمان:Citation/CS1/en/Identifiers در خط 47: attempt to index field 'wikibase' (a nil value).
- ↑ ۲۲٫۰ ۲۲٫۱ Schaul, Tom (7 February 2020). "schaul/py-vgdl".صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ GGP Server, platform for competition of general game playing systems.
- ↑ Dresden GGP Server, platform for competition of general game playing systems with automatic scheduling of matches.
- ↑ "General Game Playing". www.general-game-playing.de.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ Information about Fluxplayer, the winner of the 2nd International General Game Playing competition.
- ↑ Information about CADIAPlayer, more information about the winner of the 3rd, 4th, and 8th International General Game Playing competitions.
- ↑ Sancho is GGP Champion 2014!, winner of the 2014 International General Game Playing competition.
- ↑ "Zillions of Games - Who Are We?". www.zillions-of-games.com. Retrieved 2017-11-16.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ "AiAi Home Page – Stephen Tavener". mrraow.com (به English). Retrieved 2017-11-16.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ "Ai Ai announcement thread". BoardGameGeek. Retrieved 2017-11-16.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ "The PolyGamo Player Project | Programming Languages and General Players for Abstract Games and Puzzles". www.polyomino.com (به English). Retrieved 2017-11-16.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ Nielsen, Thorbjørn S.; Barros, Gabriella A. B.; Togelius, Julian; Nelson, Mark J. "Towards generating arcade game rules with VGDL" (PDF).صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ ۳۴٫۰ ۳۴٫۱ Levine, John; Congdon, Clare Bates; Ebner, Marc; Kendall, Graham; Lucas, Simon M.; Miikkulainen Risto, Schaul; Tom, Thompson; Tommy. "General Video Game Playing" (PDF).صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ Neufeld, Xenija; Mostaghim, Sanaz; Perez-Liebana, Diego. "Procedural Level Generation with Answer Set Programming for General Video Game Playing" (PDF).صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ خطای لوآ در پودمان:Citation/CS1/en/Identifiers در خط 47: attempt to index field 'wikibase' (a nil value).
- ↑ "Monte-Carlo Tree Search for General Game Playing". ResearchGate. Retrieved 2016-04-01.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ Finnsson, Hilmar (2012). "Generalized Monte-Carlo Tree Search Extensions for General Game Playing". Proceedings of the Twenty-Sixth AAAI Conference on Artificial Intelligence.صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ Frydenberg, Frederik; Anderson, Kasper R.; Risi, Sebastian; Togelius, Julian. "Investigating MCTS Modifications in General Video Game Playing" (PDF).صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ M. Swiechowski; J. Mandziuk; Y. S. Ong, "Specialization of a UCT-based General Game Playing Program to Single-Player Games," in IEEE Transactions on Computational Intelligence and AI in Games, vol.PP, no.99, pp.1-1 doi:10.1109/TCIAIG.2015.2391232
- ↑ Perez, Diego; Dieskau, Jens; Hünermund, Martin. "Open Loop Search for General Video Game Playing" (PDF).صفحه پودمان:Citation/CS1/en/styles.css محتوایی ندارد.
- ↑ Jesper Juul. Half-Real: Video Games Between Real Rules and Fictional Worlds. MIT Press, 2005.