هایپرکلابز : حتما در دوران کودکی بازی O - X را انجام دادید . به طور مثال شما با حرف O و دوستتون با حرف X خونه های یه جدول 9 خونه ای را پر میکردید. و هرکس که میتونست با حرف مربوط به خودش سه خونه پشت هم رو پر کنه برنده میشد!
حالات ممكن صفحه را در حين اجراي بازي در نظر بگيريد. . اين حالات محدود و قابل پيشبيني هستند و تعداد آنها 19683 حالت است (براي محاسبه، براي هر يك از 9 تا خانه جدول ميتوان سه حالت خالي، X و O را در نظر گرفت پس تعداد كل حالات 9^3 خواهد بود).
میشه برنامهاي نوشت كه تمام اين حالات را در نظر ميگيرد و در ازاي هر حالت خاص، رفتاري هوشمندانه را انجام ميدهد. شايد عدد 9 ^3 به نظرتون بزرگ بيابيد. اما حقيقت اين است كه با در نظر گرفتن قوانين بازي ميتوان اين حالات را خلاصهتر كرد. نكتهي مهم در اين برنامه، محدود بودن حالات ممكن است. ببرای همین میشه برنامه ی اين بازي را به گونهاي نوشت كه هيچگاه بازنده نباشد.
(در نظر بگيريد كه نوشتن چنين برنامهاي براي بازي شطرنج تقريباً غيرممكن است(
درست است كه اين الگوريتم در بازي در برابر حريف شكست نميخورد و همواره هوشمندانهترين رفتار را از خود نشان ميدهد اما اين هوشمندي برنامهنويس است كه در قالب دستورات الگوريتميك به كامپيوتر القا شده است و برنامه به خودي خود هيچگونه خلاقيت و هوشمندي در اجراي بازي نداشته و فقط از يك مجموعه بايد و نبايد و دستور كه برنامهنويس به آن داده، تبعيت كرده است.
پس ما از يك برنامهي هوشمند و يا بهعبارت ديگر هوش مصنوعي، قابليتهاي مختلفی مثل استنتاج، حدس، خلاقيت و يادگيري را انتظار داريم. اما آيا بواقعا میشه چنين انتظارهايي را از برنامههاي كامپيوتري داشت؟
عدهاي از رياضيدانان و دانشمندان علوم كامپيوتر معتقد بودند چنين كاري غيرممكن است به اين علت كه كامپيوتر صرفاً ميتواند دستورهاي برنامهنويس را - كه در قالب يك الگوريتم به آن داده ميشود -انجام دهد. پس نميتوانيم از يك برنامه، انتظار انجام كاري را داشته باشيم كه در قالب الگوريتم به او دستور داده نشده است. در حقيقت برنامههاي كامپيوتري نميتوانند كارهايي غيرقابل پيشبيني انجام دهند، پس نميتوانند خلاقيت داشته باشند.
پاسخ اين ادعاي درست، ادعاي درست ديگري است كه تمام فعاليتهاي انجام شده در زمينهي هوش مصنوعي را توجيه ميكند. اگر بتوانيم استنتاج، خلاقيت و يادگيري را در قالب الگوريتم و دستورها به كامپيوتر بدهيم و انتظار داشته باشيم تا با تبعيت از اين دستورها، رفتاري هوشمندانه داشته باشد، چيزي خلاف گفتهي بالا انجام نگرفته است.
در حقيقت دستورهايي كه كامپيوتر در قالب الگوريتمهاي هوش انجام ميدهد، چنين معنايي خواهند داشت:
- هوشمندانه رفتار كن.
- استنتاج كن.
- ياد بگير.
- خلاقيت داشته باش.
- يك اشتباه را دوبار تكرار نكن.
- از تجربههايت درس بگير.
پس بهطور كلي، روند كار، همانندسازي برنامه با مغز انسان است؛ هر چند اين كار بهطور كامل ممكن نيست. اما نتايج خوبي مثل شبكههاي عصبي از محصولات همين فعاليتهاي نه چندان كامل و دقيق است.
مهمترين نكته در علم هوش مصنوعي اين است كه بتوانيم تعريف دقيقي از آنچه دقيقاً در مغز انسان طي يك فعاليت هوشمندانه رخ ميدهد ارائه كنيم. به عنوان مثال سعي كنيد دقيقاً بيان كنيد كه در حين اثبات يك قضيهي رياضي چه اتفاقي در مغزتان ميافتد. كار خیلی سختی به نظر میاد، اما جنبههايي از هوش هستند كه سادهتر قابل بيانند.
بازي با هوش - بررسي هوشمصنوعي در بازيهاي كامپيوتري
اشاره :
در دنياي امروز يكي از مهمترين قسمتهاي علم پزشكي، طراحي و بازسازي اجزاي مختلف بدن است. حال اين سؤال مطرح است كه در دنيايي كه ديگر، مواردي مانند نقص عضو و از بين رفتن حالت هدايتي- الكتريكي قلب، فشار بالاي جمجمه و حتي انواع مختلف فلجهاي دست و پا، براي بيمار، كمتر محدودكننده است و تا حدودي ديگر يك نقيصه محسوب نميشود، بازسازيِ احساسات، عواطف و تفكرات چه جايي دارد؟ بشر تا چه ميزان توانسته است مسائل روحي خود را در نمونهاي آزمايشگاهي توليدكند؟ آيا ميتوان اميدوار بود كه در آينده گوشهاي از عواطف آدمي در يك ماشين، جمعآوري شود؟
شايد جواب اين سؤالات با پيشرفتهايي كه در بازسازيِ هوش در كامپيوتر شدهاست، در آينده تا حدودي دور از دسترس نباشد. هوشمصنوعي، بهويژه آنچه كه در بازيهاي كامپيوتري شاهد آن هستيم، روز به روز در حال نزديك شدن به مدل واقعي خود است. يك بازي كامپيوتري خوب، بازياي است كه هر نكتهاي را در اين دنياي مجازي بهتر و واقعيتر به دنياي حقيقي ربط دهد. به همين منظور داشتن حريفي قدرتمند و انساننما لازمه بازسازي هوش و تفكرات انساني است.
اين سؤال كه <حريف كامپيوتري شما چه قدر ميفهمد؟> امروزه قبل از انجام هر بازي به فكر بازيكنندهها ميآيد؛ زيرا قرار است قسمتي از وقت و زندگي او معطوف اين بازي شود و اگر حريفش قدرتمند نباشد، عملاً اين وقت هدر رفته است. درست مانند اين است كه يك قهرمان شطرنج با كسي كه اولين بار است اين بازي را انجام ميدهد روبهرو شود. پس در كنار داشتن گرافيك، صدا و محيط بازي خوب، داشتن هوشمصنوعي مناسب نيز براي يك بازي كامپيوتري از محاسن آن بازي بهحساب ميآيد.
در اين پست سعي شده است مفاهيم و كاربردهاي ابتدايي هوشمصنوعي در بازيهاي كامپيوتري شرح داده شود. گفتني است براي تهيه اين پست از مطالب سايتهاي codeproject و gameai نيز استفادهشده است.
عناصر هوشمصنوعي به كاررفته در بازيهاي كامپيوتري براي رسيدن به جايگاهي كه در حال حاضر در آن قرار دارند، راه زيادي را طي كردهاند. در ابتدا، سيستمهاي پيشرفته برپايه مجموعهاي از قوانين عمل ميكردند كه مستقيماً در كدهاي بازي نوشتهشده بودند يا به صورت متنهايي رفتاري كه توسط كدهايي خاص ترجمه ميشدند. تمام اين اعمال بهصورت مشترك برمبناي انتخاب متناسبي از فاكتورهاي تصادفي، صورت ميگرفت. اين زمان درست همزمان با تولد بازيهايي بهيادماندني و بينظير مانند River Raid ،Donkey Kong ،Boulder-Dash و بسياري از بازيهاي جذاب براي كاربران ماشينهاي هشتبيتي در دهه 1970 بود.
قدم ديگر در پروسه توسعه هوشمصنوعي، معرفي روشهاي ساده علوم كامپيوتري بود كه از ميان اين روشها ميتوان به روش Finite State Machine اشاره كرد كه هنوز محبوب است و به صورت محدود كماكان مورد استفاده قرار ميگيرد. اساس اين روش، برپايه توصيفِ رفتاريِ دشمناني بود كه در بازيها توسط كامپيوتر و عليه بازيكننده كنترل ميشدند. با توجه به نياز روزافزون بازيكنندهها، روند رشد بازيها نيز پيچيدهتر ميشد، و اين به لطف استفاده بيشتر از الگوريتمهاي پيشرفته كامپيوتري است. ظهور قلمرو بازيهاي RTS (استراتژيهاي بيدرنگ) موجب استفاده گسترده از الگوريتمهايي شد كه بهترين مسير را بين دو نقطه از نقشه اين نوع بازيها تعيين ميكردند.
از سوي ديگر، پيشرفتهاي فني سريع و افزايش استفاده از پردازشگرهاي قويتر در كامپيوترهاي خانگي نيز امكان استفاده گستردهتر از نرمافزارها براي استفاده از هوشمصنوعي در بازيها را فراهم ميكرد.
اولين مجموعه بازيهاي كامپيوتري و هوشمصنوعي به كاررفته در آنها بايد طوري طراحي ميشدند كه روي ماشينهاي ساده آن زمان قابل اجرا باشند: ماشينهايي كه اكثراً فركانسِ پردازشگرهايشان بيشتر از دومگاهرتز نبود. با آمدن كامپيوترهاي شخصي اوليه امكان استفاده از برنامهها و امكانات بهتر، ميسر شد.
بعد از اينكه پيسيهاي مجهز به پردازشگرهاي 386 و 486 به عنوان كامپيوترهاي استاندارد خانگي مورد استفاده قرار گرفتند، براي نويسندگان برنامهها هم امكانات گستردهتري فراهم شد و اين آغاز مسابقهاي بود براي سازندگان بازيهاي كامپيوتري. براي مدتي طولاني بهترين مقياس براي خوب بودن كيفيت يك بازيِ كامپيوتري، خوب بودن كيفيت گرافيكيِ آن بازي محسوب ميشد؛ گرچه بعدها اين مقياس تغيير كرد و تنها خوب بودن گرافيك، طراحي انيميشني كاراكترها و صداي بازي، نمايانگر بالابودن كيفيت بازي نبود. امروزه يكي از مهمترين عناصر بازيهاي كامپيوتري، بدون ترديد، <هوشمصنوعي> آن بازي شناخته ميشود.
جريان و پروسه ساخت يك بازي كامپيوتري نيز در طول اين سالها دستخوش تغييرات فراواني شده است. بهطور مثال، در گذشته طراحي هوشمصنوعي يك بازي تقريباً يك امر بياهميت انگاشته ميشد و طراحان بازيها ترجيح ميدادند مرحله وارد كردن هوشمصنوعيِ ناقص بازي را در مراحل پاياني تهيه بازي انجام دهند، ولي امروزه طراحي مدلهاي هوشمصنوعي و ارتباطي كه اين قسمت با ديگر اجزاي بازي خواهد داشت، يكي از مهمترين مراحل طراحي بازي به شمار ميرود. به طوري كه از ابتداي توليد بازي به آن فكر ميشود.
در واقع اهميت اين قسمت به قدري زياد است كه حداقل يكي از اعضاي برنامهنويسي از ابتداي توليد يك بازي به صورت تمام وقت استخدام ميشود تا بر مراحل توسعه و ساخت هوشمصنوعي بازي و ارتباط آن با ديگر قسمتها نظارت كامل داشته باشد.
در حال حاضر، با توجه به اينكه در هر خانهاي ميتوان يك كامپيوتر پنتيوم چهار با پردازشگري حدود سه تا چهارگيگاهرتز پيدا كرد، انتظار ميرود بازيهاي كامپيوتري از پيشرفتهترين و عظيمترين سيستمهاي هوشمصنوعي بهره بگيرند. سيستمهايي مانند شبكههاي عصبي، الگوريتمهاي ژنتيك و منطق فازي.
در عصرِ بازيهاي اينترنتي و شبكهاي، هوشمصنوعي در بازيهاي كامپيوتري هم وظايف جديد پيدا كرده است. يكي از اين وظايف اين است كه يك حريف كامپيوتري، با سبك و استراتژيِ بازي منحصر به خود، بايد از يك بازيكننده انساني كه در آن سوي ارتباط اينترنتي در حال بازي كردن است، قابل تمايز نباشد.
بازيهاي تأثيرگذار در هوشمصنوعي
هنگامي كه در مورد انقلاب هوشمصنوعي صحبت ميشود، بايد به بازيهاي مهمي كه در تاريخچه اين انقلاب سهم بسزايي داشتهاند نيز اشاره شود.
يكي از مهمترين اين بازيها كه هوشمصنوعي را در دهه 1990 ميلادي دگرگون ساخت، بيشك سري بازيهايWarCraft بود كه توسط شركت Blizzard ساخته شد. اين بازي اولين بازياي بود كه الگوريتمهاي مسيريابي را در هوشمصنوعي به كار ميبرد. يكي از اين الگوها مقياسهاي عالياي بود كه براي صدها واحد مشغول در صحنههاي عظيم جنگي اين بازي طراحي شدهبود. بازيِ SimCity كه توسط Maxis ساخته شد، اولين بازياي بود كه ثابت كرد كه ميشود در يك بازيِ كامپيوتري از فناوريهاي حيات مصنوعي استفاده كرد
يكي ديگر از پيشرفتهاي هوشمصنوعي در بازيهاي كامپيوتري با بازي Black and White به وجود آمد كه توسطLionhead Studios در سال 2001 ساخته شد و در آن براي اولين بار، فناوريِ يادگيريِ شخصيتهاي هدايت شونده توسط كامپيوتر مورد استفاده قرار ميگرفت.