کاربرد هوش مصنوعی در بازیهای کامپیوتری

yasin_d

عضو جدید
کاربر ممتاز
شايد جواب اين سؤالات با پيشرفت‌هايي كه در بازسازيِ هوش در كامپيوتر شده‌است، در آينده تا حدودي دور از دسترس نباشد. هوش‌مصنوعي، به‌ويژه آن‌چه كه در بازي‌هاي كامپيوتري شاهد آن هستيم، روز به روز در حال نزديك شدن به مدل واقعي خود است. يك بازي‌ كامپيوتري خوب، بازي‌اي ‌است كه هر نكته‌اي را در اين دنياي مجازي بهتر و واقعي‌تر به دنياي حقيقي ربط دهد. به همين منظور داشتن حريفي قدرتمند و انسان‌نما لازمه بازسازي هوش و تفكرات انساني است.

اين سؤال كه <حريف كامپيوتري شما چه قدر مي‌فهمد؟> امروزه قبل از انجام هر بازي به فكر بازي‌كننده‌ها ميآيد؛ زيرا قرار است قسمتي از وقت و زندگي او معطوف اين بازي شود و اگر حريفش قدرتمند نباشد، عملاً اين وقت هدر رفته ‌است. درست ‌مانند اين است كه يك قهرمان شطرنج با كسي كه اولين بار است اين بازي را انجام مي‌دهد روبه‌رو شود. پس در كنار داشتن گرافيك، صدا و محيط بازي خوب، داشتن هوش‌مصنوعي مناسب نيز براي يك بازي كامپيوتري از محاسن آن بازي به‌حساب مي‌آيد.

عناصر هوش‌مصنوعي به كاررفته در بازي‌هاي كامپيوتري براي رسيدن به جايگاهي كه در حال حاضر در آن قرار دارند، راه زيادي را طي كرده‌اند. در ابتدا، سيستم‌هاي پيشرفته برپايه مجموعه‌اي از قوانين عمل مي‌كردند كه مستقيماً در كدهاي بازي نوشته‌شده بودند يا به‌ صورت متن‌هايي رفتاري كه توسط كدهايي خاص ترجمه مي‌شدند. تمام اين اعمال به‌صورت مشترك برمبناي انتخاب متناسبي از فاكتور‌هاي تصادفي، صورت مي‌گرفت. اين زمان درست همزمان با تولد بازي‌هايي به‌يادماندني و بي‌نظير مانند River Raid ،Donkey Kong ،Boulder-Dash و بسياري از بازي‌هاي جذاب براي كاربران ماشين‌هاي هشت‌بيتي در دهه 1970 بود.

قدم ديگر در پروسه توسعه هوش‌مصنوعي، معرفي روش‌هاي ساده علوم كامپيوتري بود كه از ميان اين روش‌ها مي‌توان به روش Finite State Machine اشاره كرد كه هنوز محبوب است و به ‌صورت محدود كماكان مورد استفاده قرار مي‌گيرد. اساس اين روش، برپايه توصيفِ رفتاريِ دشمناني بود كه در بازي‌ها توسط كامپيوتر و عليه بازي‌كننده كنترل مي‌شدند. با توجه به نياز روزافزون بازي‌كننده‌ها، روند رشد بازي‌ها نيز پيچيده‌تر مي‌شد، و اين به لطف استفاده بيشتر از الگوريتم‌هاي پيشرفته كامپيوتري است. ظهور قلمرو بازي‌هاي ‌RTS (استراتژي‌هاي بي‌درنگ) موجب استفاده گسترده از الگوريتم‌هايي شد كه بهترين مسير را بين دو نقطه از نقشه اين نوع بازي‌ها تعيين مي‌كردند.

از سوي ديگر، پيشرفت‌هاي فني سريع و افزايش استفاده از پردازشگر‌هاي قوي‌تر در كامپيوتر‌هاي خانگي نيز امكان استفاده گسترده‌تر از نرم‌افزارها براي استفاده از هوش‌مصنوعي در بازي‌ها را فراهم مي‌كرد.

اولين مجموعه بازي‌هاي كامپيوتري و هوش‌مصنوعي به كاررفته در آن‌ها بايد طوري طراحي مي‌شدند كه روي ماشين‌هاي ساده آن زمان قابل اجرا باشند: ماشين‌هايي كه اكثراً فركانسِ پردازشگرهايشان بيشتر از دومگاهرتز نبود. با آمدن كامپيوتر‌هاي شخصي اوليه امكان استفاده از برنامه‌ها و امكانات بهتر، ميسر شد.

بعد از اين‌كه پي‌سي‌هاي مجهز به پردازشگر‌هاي 386 و 486 به عنوان كامپيوتر‌هاي استاندارد خانگي مورد استفاده قرار گرفتند، براي نويسندگان برنامه‌ها هم امكانات گسترده‌تري فراهم شد و اين آغاز مسابقه‌اي بود براي سازندگان بازي‌هاي كامپيوتري. براي مدتي طولاني بهترين مقياس براي خوب بودن كيفيت يك بازيِ كامپيوتري، خوب بودن كيفيت گرافيكيِ‌ آن بازي محسوب مي‌شد؛ گرچه بعد‌ها اين مقياس تغيير كرد و تنها خوب بودن گرافيك، طراحي انيميشني كاراكتر‌ها و صداي بازي، نمايانگر بالابودن‌ كيفيت بازي نبود. امروزه يكي از مهم‌ترين عناصر بازي‌هاي كامپيوتري، بدون ترديد، <هوش‌مصنوعي> آن بازي شناخته مي‌شود.

جريان و پروسه ساخت يك بازي‌ كامپيوتري نيز در طول اين سال‌ها دستخوش تغييرات فراواني شده ‌است. به‌طور مثال، در گذشته طراحي هوش‌مصنوعي يك بازي تقريباً يك امر بي‌اهميت انگاشته مي‌شد و طراحان بازي‌ها ترجيح مي‌دادند مرحله وارد كردن هوش‌مصنوعيِ ناقص بازي را در مراحل پاياني تهيه بازي انجام دهند، ولي امروزه طراحي مدل‌هاي هوش‌مصنوعي و ارتباطي كه اين قسمت با ديگر اجزاي بازي خواهد داشت، يكي از مهم‌ترين مراحل طراحي بازي به شمار مي‌رود. به طوري كه از ابتداي توليد بازي به آن فكر مي‌شود.

در واقع اهميت اين قسمت به قدري زياد است كه حداقل يكي از اعضاي برنامه‌نويسي از ابتداي توليد يك بازي به صورت تمام وقت استخدام مي‌شود تا بر مراحل توسعه و ساخت هوش‌مصنوعي بازي و ارتباط آن با ديگر قسمت‌ها نظارت كامل داشته باشد.

در حال حاضر، با توجه به اين‌كه در هر خانه‌اي مي‌توان يك كامپيوتر پنتيوم چهار با پردازشگري حدود سه تا چهارگيگاهرتز پيدا كرد، انتظار مي‌رود بازي‌هاي كامپيوتري از پيشرفته‌ترين و عظيم‌ترين سيستم‌هاي هوش‌مصنوعي بهره بگيرند. سيستم‌هايي مانند شبكه‌هاي عصبي، الگوريتم‌هاي ژنتيك‌ و منطق فازي.

در عصرِ بازي‌هاي اينترنتي و شبكه‌اي، هوش‌مصنوعي در بازي‌هاي كامپيوتري هم وظايف جديد پيدا كرده است. يكي از اين وظايف اين است كه يك حريف كامپيوتري،‌ با سبك و استراتژيِ بازي منحصر به خود، بايد از يك بازي‌كننده انساني كه در آن سوي ارتباط اينترنتي در حال بازي كردن است، قابل تمايز نباشد.



این هم فایل ارائه من می تونید دانلود کنید
 

پیوست ها

  • 1.zip
    1.2 مگایابت · بازدیدها: 0

yasin_d

عضو جدید
کاربر ممتاز
بازي‌هاي تأثيرگذار در هوش‌مصنوعي
هنگامي كه در مورد انقلاب هوش‌مصنوعي صحبت مي‌شود، بايد به بازي‌هاي مهمي كه در تاريخچه اين انقلاب سهم بسزايي داشته‌اند نيز اشاره شود.

يكي از مهم‌ترين اين بازي‌ها كه هوش‌مصنوعي را در دهه 1990 ميلادي دگرگون ساخت، بي‌شك سري بازي‌هايWarCraft بود كه توسط شركت Blizzard ساخته شد. اين بازي اولين بازي‌اي بود كه الگوريتم‌هاي مسيريابي ‌را در هوش‌مصنوعي به كار مي‌برد. يكي از اين الگوها مقياس‌هاي عالي‌اي بود كه براي صدها واحد مشغول در صحنه‌هاي عظيم جنگي اين بازي طراحي شده‌بود. بازيِ SimCity كه توسط Maxis ساخته شد، اولين بازي‌اي بود كه ثابت كرد كه مي‌شود در يك بازيِ كامپيوتري از فناوري‌هاي حيات مصنوعي استفاده كرد.

يكي ديگر از پيشرفت‌هاي هوش‌مصنوعي در بازي‌هاي كامپيوتري با بازي Black and White به وجود آمد كه توسطLionhead Studios در سال 2001 ساخته شد و در آن براي اولين بار، فناوريِ يادگيريِ شخصيت‌‌هاي هدايت شونده توسط كامپيوتر مورد استفاده قرار مي‌گرفت.

هوش‌مصنوعي در بازي‌هاي تيراندازيِ اول شخص
بازي‌هاي تيراندازيِ اول شخص يا First Person Shooters معمولاً از سيستم هوش‌مصنوعي با ساختار لايه‌لايه استفاده مي‌كنند. لايه‌هايي كه در قسمت زيرين قرار دارند، وظايف ابتدايي را به ‌عهده دارند.

از اين وظايف ابتدايي مي‌توان به تعيين بهترين مسير تا هدف (كه خود توسط لايه‌هاي بالايي‌تر تعيين مي‌شود) و اجراي متناسب سكانس‌هاي انيميشنِ كاراكتر، اشاره كرد.

لايه‌هاي بالايي‌تر مسئولِ اجرايِ برهان‌هاي تاكتيكي و انتخاب رفتاري است كه عنصر استفاده‌كننده از هوش‌مصنوعي (به طور مثال شخصيت‌هاي دشمن در بازي‌ها) برطبق اين تاكتيك و استراتژي عمل مي‌كند.

سيستم مسيريابي معمولاً برپايه نمايش‌هاي هندسي‌اي است كه دنياي بازي را شرح مي‌دهد. هر راس اين نمودار‌ها نمايانگر محلي منطقي از بازي (مانند اتاقي از يك ساختمان يا قطعه‌اي از ميدان جنگ) محسوب مي‌شود. وقتي به شخصيتي دستور داده مي‌شود كه به نقطه‌اي از نقشه بازي برود، عوامل هوش‌مصنوعي با استفاده از نمودار‌ها، نقاط ثانويه هدايتي ‌‌(Subsequent Navigation Points) را به‌ دست مي‌آورند و با هدايت پي‌درپي اين شخصيت به طرف اين نقاط، نهايتاً آن را به نقطه هدف مشخص مي‌رسانند. در حين عبور از اين نقاط هدايتي، هوش‌مصنوعي همچنان وظيفه دارد از مسير‌هاي منطقي براي رسيدن به نقطه بعدي استفاده كند و كاراكتر را از موانع متحرك يا ثابتي كه در مسير بين دو نقطه در سر راهش ظاهر مي شوند نيز عبور دهد. در شكل 1، نمايش مسيريابي را در بازي‌هاي RTS در تصويري ساده مي‌بينيد.

سپس سيستم گرافيكي وظيفه دارد اجراي مناسبي از سكانس‌هاي اجرا شده در سرعت معيني از انيميشن را با توجه به دستورات ارائه‌شده توسط هوش‌مصنوعي نمايش ‌دهد. اين سيستم همچنين بايد بتواند سكانس‌هاي متحركِ مختلفي را براي اجزاي مختلف بدن شخصيت‌ها اجرا كند. نمونه‌اي از اين سيستم را مي‌توانيد در صحنه‌اي از يك بازي جنگي فرض كنيد كه در آن سربازي همزمان مي‌دود و به طرف دشمن نشانه مي‌گيرد، تيراندازي مي‌كند و اسلحه خود را در حين دويدن پر مي‌كند.

بازي‌هايي از اين دست اغلب از سيستم كينماتيك معكوس ‌(Inverted Kinematics System) استفاده مي‌كنند. يك سيستم انيميشنيِ IK مي‌تواند به طور مناسب پارامتر‌هاي موقعيت‌يابي محوري يك انيميشن را محاسبه كند. درنتيجه با وجود اين سيستم، دست يك شخصيت مي‌تواند جسمي را كه در درون آن است نگه‌دارد يا ميز، قفسه، شيئي‌ را در بر مي‌گيرد كه روي آن‌ها قرار دارد. وظايف لايه‌هاي بالايي به كاررفته در هوش‌مصنوعي، استفاده مناسب از نوع رفتاري ا‌ست كه براي هر موقعيت توسط كامپيوتر استفاده مي‌شود. به‌طور مثال، در همان بازيِ جنگي اين لايه‌ها، انتخاب مي‌كنند كه سرباز‌ي از سرباز‌هاي دشمن در يك جا نگهباني كند، وارد نبرد شود، فرار كند يا به نقطه‌اي ديگر از نقشه برود تا دشمنش را پيدا كند.

هنگامي كه هوش‌مصنوعي تصميم گرفت كدام رفتار براي موقعيت ايجاد‌شده بهتر است، يك لايه‌ زيرين انتخاب مي‌شود كه بهترين تاكتيك را براي انجام اين تصميم انتخاب كند. به‌طور نمونه، در مثال قبلي اگر هوش‌مصنوعي تصميم بگيرد كه سرباز وارد نبرد شود، اين لايه زيرين بهترين شيوه مبارزه را براي او تعيين مي‌كند. مثلاً تصميم مي‌گيرد كه او آرام آرام به شخصيت بازي‌كننده نزديك شود و به او تيراندازي كند، يا در گوشه‌اي پنهان شود و منتظر شود كه شخصيت بازي‌كننده به حوزه ديدش برسد و سپس به‌طرفش تيراندازي كند يا اين‌كه به طرف او بدود و تيراندازي كند.

هوش‌مصنوعي در بازي‌هاي استراتژيِ بي‌درنگ
در بازي‌هاي استراتژيِ بي‌درنگ ‌(Real Time Strategy) امكان تشخيص مدل‌ها و لايه‌هاي متعددِ هوش‌مصنوعي وجود دارد. يكي از اساسي‌ترين اين مدل‌ها يك سيستم مؤثرِ راهيابي براي كاراكتر‌ است كه بعضي وقت‌ها، در كسري از زمان، اين سيستم ‌بايد جوابگوي مشكل حركت صدها كاراكتر روي نقشه اين‌گونه بازي‌ها باشد. بايد توجه داشت كه مسير‌يابي اين سيستم چيزي فراتر از مسيريابي ساده‌اي است كه تنها كاراكتري را از نقطه A به Bمي‌رساند؛ زيرا در ازدحامِ نقشه، مهم‌ترين نكته در حركت، تشخيص مواجهاتِ اين واحد‌هاي كوچك در حين عبور بين دو نقطه با هم و متعاقب آن اداره آن‌ها است به نحوي كه به هم برخورد نداشته باشند.

اين الگوريتم‌ها معمولاً بر پايه نقشه بازي استوار است كه اين مسئله خود توسط عناصري گرافيكيِ رشته‌مانند و چهارگوش معرفي مي‌شوند. اين رشته‌هاي مستطيل‌شكل توسط تور‌هايي شبكه‌اي، عوامل تصحيح شده از لحاظ اندازه را در محيط تعيين و معرفي مي‌كنند. در سطوح بالاتر سلسله ‌مراتب هوش‌مصنوعي اين بازي‌ها، ماژول‌هايي طراحي شده است كه وظيفه آن‌ها تعيين مسائل اقتصاديِ بازي، توسعه و از همه مهم‌تر، مدلي براي آناليز نقشه بازي، است. اين همان ماجولي است كه نوع زمين هر ناحيه از نقشه و عناصري كه روي آن ساخته مي‌شوند را آناليز مي‌كند. به‌طور مثال، در محلي از نقشه كه دريا قرار دارد، اين ماجول اجازه مي‌دهد ناوگان دريايي ساخته شود. اين ماجول زمان انجام ساختن يك شهر يا ديوار‌هاي حفاظتي و باروها را نيز تعيين مي‌كند.

هوش‌مصنوعي در بازي‌هاي ورزشي
اساساً، در اكثر بازي‌هاي ورزشي، ما با مقدار زيادي تقلب از جانب هوش‌مصنوعي روبه‌رو هستيم! به‌طور مثال بازي‌هاي ماشين‌سواري را در نظر بگيريد. هوش مصنوعي، از كل اشكال هندسي نقشه بازي، فقط چند‌ضلعي‌هايي را شناسايي مي‌كند كه متعلق به جاده‌اي است كه حريف كامپيوتري در آن مشغول راندن است، و كاري به ديگر جاهاي نقشه بازي (كه همان جاده ‌باشد) ندارد. در نظر بگيريد كه كامپيوتر توانايي انجام دو نوع رانندگي در پيچ‌هاي تعبيه شده در بازي را دارد: نوع اول كه در غياب حريف ديگر رخ مي‌دهد، نمايانگر بهترين رانندگي در اين پيچ‌ها است و نوع دوم زماني است كه او مي‌خواهد در اين پيچ، همزمان از حريفش سبقت بگيرد.

در اين مثال كل جاده به سكتور‌هاي متناسب كوچكي تقسيم‌بندي مي‌شود و پارامتر‌هاي سطح جاده به مقادير عدديِ قابل ترجمه تبديل مي‌شوند و مسير هر جزء كوچك جاده محاسبه مي‌شود. سپس با تركيب اين اجزاي، به‌صورت بصري، كل جاده بازسازي مي‌شود و مجاورت ماشين‌ها روي آن با هم نيز در اين تركيب نمايش‌داده مي‌شود.


محبوب‌ترين الگوريتم‌هاي هوش‌مصنوعي به كار رفته در بازي‌هاي كامپيوتري
در ادامه اين مقاله دو نمونه از محبوب‌ترين الگوريتم‌هاي هوش‌مصنوعي معرفي مي‌شود كه به وفور از آن‌ها در طراحي هوش‌مصنوعي بازي‌هاي كامپيوتري استفاده مي‌شود. با دانستن مطالبي در مورد اين الگوريتم‌ها، شايد شما هم ترغيب شويد با طراحي يكي از آن‌ها، يك بازيِ FPS و RTS ساده بسازيد. اولين الگوريتم‌ از اين دست،
*A نام دارد كه سلسله جست‌وجوهاي سريعي را براي پيدا كردن بهترين مسير بين دو نقطه انجام مي‌دهد. الگوي ديگر ماشين با حالات محدود ‌(Finite State Machine) نام دارد كه بسيار مورد استفاده قرار مي‌گيرد و وظيفه‌اش آماده‌كردن سناريو‌هاي رفتاري براي حريفاني‌ است كه توسط كامپيوتر در بازي كنترل مي‌شوند. در مرحله بعدي اين رفتارها توسط ماژول‌هاي سطوح پايين، مانند ماجول رهيابي، پردازش مي‌شوند.

الگوريتمِ*A
موضوع پيداكردن راه بين دو نقطه A و B در اكثر بازي‌هاي كامپيوتري، غير از بازي‌هاي ورزشي و تعداد انگشت‌شماري از بازي‌ها، مشكل كليدي‌اي محسوب مي‌شود. الگوريتم‌هاي اين گروه، در آن واحد جزئي از سطوح پايين‌تر هوش‌مصنوعي بازي هستند. همچنين به عنوان پايه‌اي براي ساختار رفتار‌هاي پيچيده‌تر و هوشمند‌تر، مانند تصميم‌هاي استراتژيك، حركت در آرايش‌هاي جنگي و گروهي و بسياري ديگر از رفتار‌هاي سطح بالاتر، مورد استفاده قرار مي‌گيرد. اين الگوريتم امروزه به طور چشمگيري پيشرفت كرده‌است. به طوري كه در بازي‌هاي كامپيوتري كنوني، الگوريتم*A جايگاه ويژه‌اي دارد.

اساس اين الگوريتم برپايه <جست‌وجوي گرافيكي بين‌گرهي> استوار است. اين سيستم از يك ارزيابي غيرمستدل(Heuristic Estimate) بهره گيري مي‌كند. اين الگوريتم اولين بار در سال 1968 همزمان توسط سه رياضيدان به نام‌هاي Peter Hart ،Nils Nilsson و Bertram Raphael شرح داده شد.

دنياي واقعي، تقريباً در تمامي بازي‌هاي كامپيوتري، بسته به نوع بازي، مي‌تواند با خطوطي گرافيكي بازسازي شود. در بازي‌هاي RTS، دنياي بازي معمولاً از آرايشي دو بعدي تشكيل شده‌است و نقشه بازي شامل مربع‌هاي فراواني مي‌شود كه هر يك از آن‌ها مطابق ‌است با نقشه چهارگوش بازي. هر عنصر اين سيستم (جز عناصر مرزي) هشت عنصر همسايه دارند. با استفاده از اين‌گونه مدل نمايشي در بازي‌هاي RTS، مي‌توانيم گرافيكي ايجاد كنيم كه در آن هر يك از اين عناصر به راس گرافيك كل نقشه مربوط باشد. لبه‌هاي هر يك از عناصر گرافيكي (كه هريك با عنصر همسايه خود مجاورت دارد) امكان يا عدم امكان حركت يكي از اجراي نقشه را به عنصر همسايه نمايش مي‌دهد. در استراتژي‌هاي بي‌درنگ ما معمولاً يكي از رئوس اين عناصر گرافيكي را به عنوان محلي كه كوچك‌ترين واحد بازي در آن جاي مي‌گيرد، قلمداد مي‌كنيم.

در بازي‌هاي FPS رئوس عناصر گرافيكي معمولاً محل‌ها يا اتاق‌ها هستند و توسط اين رئوس است كه اين محل‌ها/ اتاق‌ها با هم ارتباط پيدا مي‌كنند.

الگوريتم‌هايي فراواني براي پيدا كردن بهترين مسير‌يابي در اين عناصر گرافيكي وجود دارد. يكي از ساده‌ترين اين الگوريتم‌ها كه آتش در چمنزار ‌(Fire on the Prairie) ناميده مي‌شود، به اين صورت كار مي‌كند كه چندين دايره متوالي را در نقطه شروع مي‌سازد و در هر مرحله دايره‌هاي ديگري مي‌سازد كه قطر آن‌ها بزرگ‌تر از دايره‌هاي قبلي است. اين دواير متوالي و عناصر مربوط به هر يك، به‌تدريج بزرگ‌تر مي‌شوند و داراي شاخص‌هاي بزرگ‌تري نيز مي‌شوند.

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


با آزمايش روشي كه اين الگوريتم كار مي‌كند، متوجه خواهيم شد كه گرچه اين روش داراي برتري سادگي است، مشكل جدي‌اي هم دارد. مسيري كه اين الگوريتم در مثال ذكر‌شده پيدا كرده‌است تنها از پنج خانه نقشه بازي تشكيل شده‌ و اين سيستم براي اين كار 81 خانه را مورد آزمايش قرار داده ‌است.

حال فرض كنيد كه در نقشه‌اي كه متشكل از 256 خانه عرضي و طولي است، ‌بايد 65536 خانه مورد آزمايش قرار گيرد تا مسير مشخص گردد! در شكل 4 مي‌بينيد كه دايره شاخص شماره 4 توسط يك الگوريتم مسير‌يابي ساده به هدف مورد نظر رسيده‌است.

بايد توجه داشت در اين الگوريتم بهترين راه الزاماً نزديك‌ترين راه نيست. اين الگوريتم غير از مسير‌يابي، مي‌تواند فاكتور‌هاي ديگري همانند نوع زمين بازي را نيز مشخص كند. (به طور مثال، يك تانك در بازي‌هاي استراتژي در زمين معمولي تندتر از زمين گل‌آلود حركت مي‌كند).


از ديگر استفاده‌هاي اين الگوريتم، مي‌توان به تغيير محدوديت زاويه‌هاي دوربين و نمايش تعداد بيشتري از واحد‌ها در يك زمان، اشاره كرد. همچنين اين الگوريتم شرايطي را فراهم مي‌كند كه واحد‌ها نتوانند از نقاط غيرقابل عبور نقشه عبور كنند. البته نبايد فراموش كرد كه بهترين استفاده از اين الگوريتم همان راهيابي بين دو نقطه است. در زير شبه‌كد‌ها يا Psudocodeهاي الگوريتم *A را مشاهده مي‌كنيد:


به علت مشكل محاسباتي كه در بالا براي اين الگوريتم توضيح داده شد، روش‌هاي ويژه‌اي مدنظر قرار گرفته‌ شده است كه يكي از آن‌ها روش بهينه‌سازي است. در واقع تمام تلاش‌هاي يك سيستم هوش‌مصنوعي كه از اين الگوريتم استفاده مي‌كند، بدون روش بهينه‌سازي به علت عمليات‌هاي ناكارآمدي‌ كه براي تعيين مسير مي‌شود، از بين مي‌رود. به همين منظور از مدت‌ها پيش، متد‌هاي برنامه‌نويسي متعددي براي رفع اين نقيصه طراحي شد كه يكي از آن‌ها همين روش بهينه‌سازي بود. اين روش به دو صورت اين نقيصه را رفع مي‌كند:

●‌ بهينه سازي خودِ عمليات جست‌وجوي الگوريتم‌

●‌ بهينه سازي ساختار اطلاعاتي‌

در مورد اول، تمام نقشه بازي به نواحي كوچك‌تري تقسيم مي‌شود و الگوريتم نيز به دو بخش مجزا تقسيم مي‌شود. قسمت اول دنبال مسيري مي‌گردد كه بايد از آن ناحيه عبور كند. سپس قسمت دوم حركت را براي هر منطقه از نقطه ورود به نقطه هدايت مي‌كند. در نتيجه در هر ناحيه، با استفاده از الگوريتم *A مسير مطلوبي به ‌دست مي‌آيد. با اين روش به ‌طور عمده ميدان جست‌وجو را محدودتر و منابع محاسباتي را كمتر مي‌كنيم.

در واقع استفاده از اين روش درست مانند دنياي واقعي، هنگام رفتن فردي از يك جاي شهر به جاي ديگر است. در واقع كسي كه مي‌خواهد از نقطه‌اي از شهر به جاي ديگر آن برود، تمام مسير را با دقت مساوي طي نمي‌كند، بلكه به جاي آن به جاهاي شناسايي مشخصي مي‌رسد و از آنجا براي ادامه مسير خود و ميزان راه باقيمانده تا نقطه بعدي تصميم‌گيري مي‌كند.

فاكتور مطلوب‌سازيِ ديگر انتخاب مناسب عمليات و پارامتر‌هاي جست‌وجوگر است كه تعيين مي‌كند جست‌وجو تا چه محدوده‌اي از نقشه بازي صورت گيرد.



الگوريتم ماشين با حالات محدود
الگوريتم‌هاي ماشين با حالات محدود ‌(Finite State Machines) مدل‌هاي رفتاري‌اي هستند كه از موقعيت ‌‌(State)، انتقال اين موقعيت ‌‌(Transition) و ايجاد يك عمل ‌(Action) تشكيل مي‌شود. در يك موقعيت، اطلاعاتي قبلي ذخيره مي‌شود.

به طور مثال، اطلاعات ورودي از شروع سيستم تا زمان حال در اين بخش قرار مي‌گيرد. در مرحله انتقال، اين موقعيت تغيير مي‌كند و بسته به شرايط، انتقال مي‌يابد و در مرحله آخر اين موقعيتِ منتقل‌شده كه خود نماينده يك حالت بوده ‌است، يك عمل متناسب با آن موقعيت را ايجاد مي‌كند. در شكل 5، نمودار حالتي اين الگوريتم را در باز و بسته كردن يك در مشاهده مي‌كنيد.

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

با اين‌كه الگوريتم‌هاي ساده‌اي هستند، در عين حال يكي از پركاربرد‌ترين و مؤثر‌ترين روش برنامه‌ريزي هوش‌مصنوعي مي‌باشند. براي هر موقعيت در يك بازي كامپيوتري مي‌توان مجموعه اعدادي از چگونگي آن لحظه قائل شد.

براي مثال، يك شواليه را در نظر بگيريد. او در بازي مي‌تواند زره بپوشد، به عنوان نگهباني عمل كند، حمله كند يا در حال استراحت باشد.
يا در يك بازي RTS يكي از مردم عادي شما مي‌تواند چوب جمع كند، خانه‌اي بسازد يا در برابر حمله دشمن از خود دفاع كند. بسته به موقعيت هر يك از اين دو شخصيت، اشيا و اجزاي بازي مي‌توانند عكس‌العمل‌هاي متفاوت، اما محدودي داشته باشند.

در واقع روش FSM به ما امكان مي‌دهد رفتار اين اجزا را در بازي به قسمت‌هاي كوچك‌تري مجزا كنيم و سپس با سهولت بيشتري اين قسمت‌ها را Debug و Extend كنيم. براي موقعيت هر شيء در لحظه آغازين و لحظه بعد از انجام عمل مورد نظر، كدي در نظر گرفته مي‌شود. براي انتقال موقعيت‌ها نيز كد‌هايي در نظر گرفته مي‌شود. اين كد‌ها در هر فريم از بازي مورد استفاده هوش‌مصنوعي قرار مي‌گيرد و با كد‌هاي آمده از محيط بازي نيز خود را تطبيق مي‌دهد.
 

yasin_d

عضو جدید
کاربر ممتاز
هوش مصنوعيِِ Renderware
اين سيستم در واقع يك موتورِ بازي است كه در بسياري از كنسول‌هاي بازي قابل استفاده است. اين موتور شامل بخش‌هاي مختلف صوتي، گرافيكي، محيط بازي و... مي‌شود كه يكي از اين بخش‌ها به هوش‌مصنوعي اختصاص دارد.

هوش‌مصنوعي Renderware هم مي‌تواند در بازي‌هايي كه از اين موتور استفاده مي‌كنند قرار گيرد و هم مي‌تواند در بازي‌هاي ساخته شده براساس موتور‌هاي ديگر كه مي‌خواهند از اين هوش‌مصنوعي بهره ببرند، به كار رود.

از خصوصيات اين سيستم به‌كارگيري فلسفهِ لايه‌اي است. در زير سه لايه اصلي اين هوش‌مصنوعي معرفي مي‌شود:

● ‌لايه ادراك:‌(Perception Layer) مسئول آناليز موقعيت‌ها است. به طور مثال در يك بازي RTS دو جزء استاتيك (مثل نوع زمين و قلمرو‌ها) و ديناميك (سپاهيان و كاراكتر‌ها) توسط اين لايه تحليل مي‌شود.

‌‌● لايه تصميم‌گيرنده: ‌(Decision Layer) مسئول تصميم‌گيري‌هاي استراتژيك در مورد موقعيت‌هايي‌ است كه توسط لايه ادراكي دريافت كرده‌است. تصميم‌گيري‌هايي مانند مسير‌يابي، انجام يا عدم انجام جنگ و دفاع كردن.

●‌ لايه عملياتي:(Action Layer) وظيفه انجام كار مناسب را دارد.

از لايه‌هاي فوق شايد بتوان گفت لايه اول مهم‌ترين است؛ زيرا اگر كامپيوتر نتواند درك صحيحي از موقعيت‌هاي يك زمان خاص بازي داشته باشد، ديگر لايه‌ها تصميم‌ها و اعمال نادرستي خواهند داشت. اين لايه در هوش‌مصنوعيِRenderware با نام PathData شناخته مي‌شود. (كه نامي به‌ظاهر اشتباه جلوه مي‌كند؛ زيرا وظايف لايه ادراكي را فقط معطوف به مسير‌يابي مي‌داند).

سيستم PathData سيستمي قوي است كه به‌راحتي مي‌تواند از خواص توپولوژيك و مسير‌هاي بازي اطلاعات تحليلي خوبي را در اختيار لايه تصميم‌گيري بگذارد. از برتري‌هاي اين سيستم، تحليل خوب اطلاعات در مورد خواص توپولوژيك هر منطقه و واحد‌هاي نزديك به آن است. به عنوان مثال، با اين سيستم كامپيوتر قادر خواهد بود كه بداند در كدام منطقه نقشه نقطه‌اي كور براي پنهان شدن وجود دارد، چه‌چيز‌هاي پراهميتي در نقشه بايد به چشم او بيايد و به چه چيزهايي نبايد اعتنا كند، كدام مسير بهترين راه براي نزديك شدن به دشمن است و ... همچنين با اين سيستم محل ديوار‌ها، موانعي كه نمي‌توان از روي آن‌ها پريد يا عبور كرد و ديگر عناصر محيطي به خوبي تحليل مي‌شوند.

از ديگر مزيت‌هاي اين سيستم هوش‌مصنوعي، عملياتي است كه بعد از شناسايي، درك و تصميم‌گيري توسط آن، به‌ويژه در مورد حركت واحد‌ها، انجام مي‌شود. بعد از مرحله درك، توسط اين هوش‌مصنوعي و با استفاده از اطلاعات به دست آمده، نمودار‌هاي خطي‌ مناسبي ساخته مي‌شود و سپس با استفاده از الگوريتم *A مسير ابتدايي حركت بين دو نقطه ترسيم مي‌شود و سپس با جزئيات دقيق، حركت هر واحد اعمال مي‌شود.

موتور بازي Renderware براي دستگاه‌هاي PC ،Playstation و PS2 ،Nintendo و Xbox قابل استفاده است. البته براي هر يك از اين دستگاه‌ها بهينه سازي شده‌است و امكان بهره‌گيري از يك هوش‌مصنوعي بي‌نقص را براي بازي‌هاي آن‌ها فراهم مي‌كند.
 

arghavan.z

عضو جدید
کاربر ممتاز
با این که این تاپیک خیلی وقت پیش زده شده...ولی من الان دیدم....خیلی مطلب جالبی بود...من هیچ وقت به بازیهای کامپیوتری از این دید نگاه نکرده بودم.....
مرسی جناب یاسین:)
 

Similar threads

بالا