بازیها هوشمندتر میشوند
در بسیاری از بازیهای رایانه ای، نزدیك تر بودن به واقعیت هم برای سازندگان و هم برای دوستداران بازی جایگاه ویژهای دارد.

مسائل زیادی در بازیها وجود دارد كه مربوط به شخصیتها یا عواملی از بازی هستند كه به وسیله رایانه هدایت میشوند؛ مانند رقیبها در یك مسابقه اتومبیلرانی.
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( logh(n) است كه ( h(nپیچیدگی تابع هیورستیك A* است. موضوع پیدا كردن راه بین 2 نقطه A و B در بیشتر بازیهای رایانهای، غیر از بازیهای ورزشی و تعداد انگشتشماری از بازیها، مشكلی كلیدی محسوب میشود. این الگوریتم امروزه بهطور چشمگیری پیشرفت كرده است، به طوری كه در بازیهای رایانهای كنونی، الگوریتم A* جایگاه ویژهای دارد.
یك الگوریتم جستجـــــوی اول عـــــــمق Depth first search است كه هیورستیك آن را كنترل میكند و میتواند مناسبترین شاخه بعدی گراف را حدس بزند و در هر عمق، تنها شاخهای كه ارزش هیورستیك بهتری دارد، گسترش مییابد.
تنها مشكل این الگوریتم كامل نبودن به علت نفوذ به عمق بینهایت و بهینه نبودن آن است كه در الگوریتم Depth limited search این مشكل با معرفی یك حد نهایی برای بازی و تركیب با الگوریتم جستجوی اول سطح و ایجاد الگوریتم Iterative Deeping search حل میشود.

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