بازی‌ها هوشمندتر می‌شوند

در بسیاری از بازی‌های رایانه ای، نزدیک‌تر بودن به واقعیت هم برای سازندگان و هم برای دوستداران بازی جایگاه ویژه‌ای دارد.
کد خبر: ۴۱۸۱۴۰

مسائل زیادی در بازی‌ها وجود دارد که مربوط به شخصیت‌ها یا عواملی از بازی هستند که به وسیله رایانه هدایت می‌شوند؛ مانند رقیب‌ها در یک مسابقه اتومبیلرانی. 3 مسأله اصلی وجود دارد که بیشتر بازی‌ها با آن مواجه هستند و عبارتند از: حرکات، تصمیم‌گیری و یادگیری این عامل‌ها. این سه اصل قابل توجه، وظایفی را موجب می‌شود که انجام آنها به عهده هوش مصنوعی است. هدف هوش مصنوعی نزدیک کردن رفتار و پاسخ یک سیستم رایانه‌ای به الگوهایی است که انسان براساس آنها رفتار می‌کند و پاسخ می‌دهد.

گاه سیستم‌هایی طراحی می‌شوند که قدرت تجزیه و تحلیل‌شان از انسان بیشتر است، ولی باز از الگوهای ما استفاده می‌کنند. هوش مصنوعی با سیستم فازی یا سیستمی که انسان برطبق آن تصمیم می‌گیرد، رابطه تنگاتنگی دارد. در این سیستم برخلا‌ف سیستم صفر و یک دیجیتال، می‌توان به یک متغیر مقداری کمتر از یک و بیشتر از صفر نیز داد. اگر رایانه‌ها فازی‌تر تحلیل کنند، هوشمندتر می‌شوند، ولی پاسخ آنها باید براساس همین صفر و یک باشد؛ چرا که هیچ کس نمی‌خواهد یک پاسخ غیرقطعی از رایانه دریافت کند. هر چه رفتار شخصیت‌های بازی بیشتر براساس سیستم فازی باشد، پیش‌بینی‌ناپذیرتر و هوشمندانه‌تر خواهد بود. یعنی می‌توانند در مقابل رفتارهای مختلف شما و موقعیت محیط، رفتارهایی متفاوت نشان دهند.

در بازی‌های رایانه‌ای دو نوع هوش بیشتر از همه استفاده می‌شوند که به صورت خلا‌صه عبارتند از:

‌‌هوش مصنوعی رویدادگرا: این هوش معمول‌ترین نوع هوش مصنوعی است. رویداد می‌تواند شامل هر چیزی اعم از اتفاقات بازی تا دستورهایی باشد که کاربر به شخصیت مجازی خود می‌دهد. براساس هر رویدادی که در بازی انجام می‌شود، یک واکنش هوشمندانه نیز روی می‌دهد.

هوش مصنوعی هدف‌گرا: این نوع هوش مصنوعی از هوش مصنوعی رویدادگرا مستقل است. ولی هوش مصنوعی رویدادگرا می‌تواند در طراحی یک بازی، هدف‌های موتور هوش مصنوعی هدف‌گرا را تامین کند. این نوع هوش مصنوعی، هدف با ارزش بیشتر را برمی‌گزیند و آن را با تقسیم به زیرهدف‌های کوچک‌تر، پردازش می‌کند.

به عنوان مثال بازی Tic- Toc-Toe) X-O) را در نظر بگیرید. حالات ممکن صفحه در حین اجرای بازی محدود و قابل پیش‌بینی هستند و تعداد آنها برای محاسبه 19683 حالت است، برای هر یک از 9 خانه جدول می‌توان سه حالت خالی، X و O را در نظر گرفت، پس تعداد کل حالات39 خواهد بود. تعداد حالاتی که X یا O می‌توانند در یکی از خانه‌های گراف در هر مرحله بنشینند، در عمق نهایی گراف بازی برابر با 9! است. می‌توان برنامه‌ای نوشت که تمام این حالات را در نظر می‌گیرد و در ازای هر حالت خاص، رفتاری هوشمندانه را انجام می‌دهد.

شاید عدد 39به نظر بزرگ بیاید. اما حقیقت این است که با در نظر گرفتن قوانین بازی و هرس شاخه‌های غیر ضروری (Alpha Beta pruning) می‌توان این حالات را خلاصه‌تر کرد.نکته مهم در این برنامه، محدود بودن حالات ممکن است. برای همین می‌توان برنامه‌ این بازی را به گونه‌ای نوشت که هیچ‌گاه بازنده نباشد.

یکی از روش‌هایی که هوش مصنوعی برای پیاده‌سازی تصمیم گیری استفاده می‌کند، شبکه‌های باور هستند. شبکه‌های باور به عامل این امکان را می‌دهند تا مانند انسان از استدلال‌های پیچیده بهره گیرد که مبنای این روش احتمالات است.

این روش در مقابل عمل‌های یکسان عکس‌العمل‌های یکسان نشان خواهد داد ؛ ولی وقتی قابلیت یادگیری به عامل اضافه شود، نتیجه اعمال قبلی خود را به خاطر می‌سپارد و اگر عمل قبلی او بی‌نتیجه باشد، به دنبال راه‌حل دیگری می‌رود. در هوش مصنوعی این کار با الگوریتم ژنتیک انجام می‌شود.

از دیگر روش‌های آگاهانه برای پیدا کردن جواب و مسیر بهینه روش Minimax است. روش Minimax در مواقعی که یک تابع هیورستیک خوب (یک هیورستیک برخلا‌ف الگوریتم، ممکن است به یک پاسخ قطعی نرسد) در دست باشد، می‌تواند یک حرکت خوب را انجام دهد. از آنجا که minimax روش کندی است، می‌توان از Partial Minimax استفاده کرد که در الگوریتم‌های تصمیم‌گیری به کار می‌رود؛ هر چند این روش هنوز چندان پذیرفته نشده است.

تنها زمانی از Partial Minimax استفاده می‌کنیم که یک گزینه بدیهی در دست داشته باشیم. (زمانی که متغیر minimax با ارزش بیشتر کاملا‌ بهتر از متغیر دیگر باشد). حال آن‌که در یک بازی بلا‌درنگ برای یکbot معمولا‌ً گزینه بدیهی وجود ندارد تا آن را برگزینید. هر گزینه به یک استراتژی متفاوت وابسته است که bot می‌تواند آن را انتخاب کند.

برای دستیابی به بیشترین سرعت، بیشتر از الگوریتم *A استفاده می‌شود. این الگوریتم سرعت بالا‌یی دارد. پیچیدگی زمانی این الگوریتم (O(log h(n) است که (h(n پیچیدگی تابع هیورستیک *A است. موضوع پیداکردن راه بین 2 نقطه A و B در بیشتر بازی‌های رایانه‌ای، غیر از بازی‌های ورزشی و تعداد انگشت‌شماری از بازی‌ها، مشکلی کلیدی‌ محسوب می‌شود. این الگوریتم امروزه به‌طور چشمگیری پیشرفت کرده‌است، به طوری که در بازی‌های رایانه‌ای کنونی، الگوریتم *A جایگاه ویژه‌ای دارد.

یک الگوریتم جستجـــــوی اول عـــــــمق Depth first search است که هیورستیک آن را کنترل می‌کند و می‌تواند مناسب‌ترین شاخه بعدی گراف را حدس بزند و در هر عمق، تنها شاخه‌ای که ارزش هیورستیک بهتری دارد، گسترش می‌یابد.

تنها مشکل این الگوریتم کامل نبودن به علت نفوذ به عمق بی‌نهایت و بهینه نبودن آن است که در الگوریتم Depth limited search این مشکل با معرفی یک حد نهایی برای بازی و ترکیب با الگوریتم جستجوی اول سطح و ایجاد الگوریتم Iterative Deeping search حل می‌شود.

در حقیقت دستورهایی که رایانه در قالب الگوریتم‌های هوش انجام می‌دهد، چنین معنایی خواهند کرد:

ـ هوشمندانه رفتار کن

ـ استنتاج کن

ـ یاد بگیر

ـ خلاقیت داشته‌باش

ـ یک اشتباه را دوبار تکرار نکن

ـ از تجربه‌هایت درس بگیر

به‌طور کلی، روند کار، همانندسازی برنامه با مغز انسان است؛ هر چند این کار به‌ طور کامل ممکن نیست اما نتایج خوبی مثل شبکه‌های عصبی از محصولات همین فعالیت‌های نه چندان کامل و دقیق است.

محمدحسین اژدست

newsQrCode
ارسال نظرات در انتظار بررسی: ۰ انتشار یافته: ۰

نیازمندی ها