آموزش تشکیل هوش مصنوعی در بازیهای رایانه | مقدماتی

Mahdi_Rashed

Well-Known Member
سلام به دوستان عزیز در مجید آنلاین . بلاخره بعد از مدتها میخوام یک سری آموزش در باره ساخت و تشکیل هوش مصنوعی یا Artificial Intelligence یا AI در بازی های رایانه 3بعدی در این تاپیک قرار بدم. آموزشها رو از یکی از جزوه های آموزشی معروفترین استاد دانشگاه Full sail و MIT ترجمه میکنم و در اینجا قرار میدم . این جزوه رو از یکی از دانشجوهای دانشگاه Full Sail گرفتم که دوستم هست و اونجا تحصیل میکنه . این جزوه اموزشی راه های طراحی یک هوش مصنوعی رو آموزش میده و روش ها و نظریه های مختلف رو توضیح داده ولی آموزش برنامه نویسی به یک زبان خاص رو شامل نمیشه . به نحوی آمده و همه جزییات هوش مصنوعی رو توضیح داده به طوری که بشه روی خیلی از زبانهای برنامه نویسی مخصوص بازی شبیه خانواده C پیاده کرد . بنابراین اگر دوست دارید مستقیماً برنامه نویسی رو یاد بگیرید این جزوه رو به شما توصیه نمیکنم ولی اگه میخواید همه مفاهیم هوش مصنوعی بازی ها رو یاد بگیرید و بعد خودتون یک هوش مصنوعی رو طراحی کنید این جزوه بسیار عالیه .

اگر بخوایم این جزوه رو با کلاسهای دانشگاه های خودمون آموزش بدیم یک سری درس 8 واحدی هست که در 2 ترم مختلف 4 واحدی ارائه میشه . اولی آموزش مقدمات و تاریخچه های هوش مصنوعی هست و بعد هم آموزش حرفه ای اون که شامل یک پروژه طراحی هوش مصنوعی به عنوان پروژه پایان ترم هست.

دسته بندی اموزش مقدماتی:

  • آشنایی با هوش مصنوعی
    • تعریف کلی هوش مصنوعی
    • تاریخچه هوش مصنوعی در بازیهای رایانه
    • کاربرد هوش مصنوعی در بازی های رایانه
  • دسته بندی های هوش مصنوعی
    • دسته بندی قبل از سال 2000
      • هوش مصنوعی با اجرای خطی
      • هوش مصنوعی با اجرای کلی
    • دسته بندی بعد از سال 2000
      • هوش مصنوعی استاتیک (آموزش در دوره تکمیلی)
      • هوش مصنوعی دینامیک (آموزش در دوره تکمیلی)
  • هوش مصنوعی با اجرای خطی
    • تعریف
    • الگوریتم اجرایی در سیستم
    • محاسن و معایب
    • نظریهای مربوطه
      • نظریه خط قرمز
      • نظریه گذر خطی
      • نظریه انکار عمل (در هوش مصنوعی با اجرای خطی)
  • هوش مصنوعی با اجرای کلی
    • تعریف
    • الگوریتم اجرایی در سیستم
    • محاسن و معایب
    • نظریه های مربوطه
      • نظریه حق انتخاب
      • نظریه اجرای اشتباه دستور یا تلفیق غیر مجاز دستوری
      • نظریه رادیکال بازگشتی
      • نظریه انکار عمل (در هوش مصنوعی با اجرای کلی)
=> نکته: من تاجایی که تونستم با بهترین و نزدیک ترین معنی به موضوع کلی متون رو ترجمه کردم. اگر باز هم مشکلی بود دیگه منو ببخشید.:)
 
آخرین ویرایش:

Mahdi_Rashed

Well-Known Member
آشنایی با هوش مصنوعی:

1: تعریف کلی هوش مصنوعی:

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

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

پردازش کننده: دقیقاً شبیه پردازش داده ها در یک CPU ، دستورات گرفته شده از طرف گیرنده دستور در هوش مصنوعی باید پردازش شوند تا بر اساس آن دستورات اجاریی جدید صادر شود. به عنوان یک مثال هنگامی که یک کارکتر هوشمند ( کارکتری که دارای هوش مصنوعی استاندارد باشد ) صدایی را در میدان جنگ میشنود به آن صدا مشکوک شده و به دنبال علت آن برود. در اینجا صدای ایجاد شده از طریق گیرنده دستور هوش مصنوعی کارکتر به پردازش گر میرود. اگر پردازش گر دارای برنامه نویسی درست و مدیریت شده ای باشد نتیجه کار بروز رفتار مشکوک شدن در کارکتر است. پس مدیریت برنامه نویسی در پردازش کننده بسیار مهم است. این مدیریت شامل نوع دستور گرفته شده است که بر حسب زمان و مکان فرق دارد. به عنوان مثال اگر سرباز در بین 4 خانه ایستاده باشد و از خانه شماره 3 یک صدا به عنوان دستور به هوش مصنوعی کارکتر وارد شود در یک پردازش درست و استاندارد کارکتر باید مستقیماً به خانه شماره 3 برود و علت آن را پیدا کند ولی اگر هوش مصنوعی بدون مدیریت طراحی شده باشد سرباز به ترتیب از خانه 1 تا 4 را برای پیدا کردن علت میگردد. پردازش کننده هر دستور از 3 بخش پردازش اولیه، پردازش مرکزی و مدیریت خروجی تشکیل شده. در پردازش اولیه دستوری که از طرف گیرنده دریافت شده است بر حسب موارد مختلف مانند زمان و مکان و نوع دریافت طبقه بندی و با توجه به اهمیت آن به واحد پردازش مرکزی فرستاده میشوند تا دوباره بر اساس موارد از پیش تعیین شده نوع رفتار خروجی و موقعیت آن مشخص شود. و در اخر به بخش مدیریت پردازش فرستاده میشوند تا بر اساس ترتیب اجرای یک رفتار طبقه بندی شده و به بخش اجرا کننده دستور فرستاده شوند.

اجرا کننده: هنگامی که دستوری از طرف پردازش کننده برای اجرا کننده فرستاده شود، این بخش با توجه به داده ها و منابع و ذخایر موجو مانند فایلهای حرکتی یک کارکتر دستور را اجرا میکند. ساده ترین مثال راه رفتن کارکتر به سمتی که صدا در آنجا ایجاد شده. اجرا کننده ها معمولاً از یک بخش ویژه در پایگاه اطلاعات استفاده میکنند که در آن کلیه منابع و ذخایر بازی به صورت یک کد کوتاه طبقه بندی شده اند. البته اجرا کننده میتواند دستور را بدون اینکه از این منابع استفاده کند اجرا کند. مانند دستورات آزاد کننده یا حذف کننده دستور قبلی. به عنوان مثال کارکتر دستوری را داشته که با توجه به آن باید از نقطه A به B حرکت میکرده. ولی در این مسیر اتفاقی رخ میدهد که کارکتر از از اجرای این دستور باز میدارد. در این حالت هوش مصنوعی به جای Load کردن یک فایل جدید حرکتی یا هر نوع فایل دیگر کلیه اطلاعات مربوط به حرکت از A به B را unload میکند و به اصطلاح به حالت پایدار در می آید.

نکته: در یک هوش مصنوعی استاندارد فاصله دریافت دستور تا اجرای آن باید بین 0.06 تا 0.1 ثانیه باشد. این متغیر میتواند نسبت به شرایط مکانی تغییر کند. به عنوان مثال هنگامی که کارکتر در اثر یک انفجار بزرگ گیج میشود این فاصله میتواند تا 5 ثانیه افزایش پیدا کند.

2: تاریخچه هوش مصنوعی در بازیهای رایانه:

هوش مصنوعی برای اولین بار در سال 1958 در یم بازی بسیار ساده به نام Tennis For Two طراحی و پیاده سازی شد. این بازی دارای یک خط افقی برای زمین بازی و یک خط عمودی کوتاه به عنوان تور بازی تنیس و یک دایره به عنوان توپ بود. در این بازی کاربر باید با استفاده از کلیدهای چپ یا راست هنگام نزدیک شدن توپ به زمین آن را به زمین مقابل که یک کاربر هوش مصنوعی بود پرتاب میکرد. این نوع هوش مصنوعی به عنوان هوش مصنوعی با اجرای خطی یک دستور شناخته میشد که یکی از روش های آن اجرای ماتریس خطی در هر بار جابجایی توپ بین زمین بود. این نوع هوش مصنوعی تا سالها در بسیاری ازکنسولهای بازی استفاده میشد و بسیاری از شرکتهای سازنده این کنسولها با اضافه کردن کدها و دستورات جدید این نوع هوش مصنوعی را گسترش میدادند تا این که برای اولین بار شرکت سگا در یکی از کنسولهایش هوش مصنوعی جدیدی ابداع کرد که توانایی اجرای چندین دستور را با هم را داشت . البته این هوش مصنوعی باز هم یکی از زیر مجموعه های هوش مصنوعی با اجرای خطی دستور به شمار میرفت ولی محدوده استفاده آن بیشتر بود. هوش مصنوعی با اجرای کلی دستورات برای اولین بار در موتور طراحی بازی doom که اولین موتور طراحی بازی بود به کار گرفته شد و بازی های رایانه از سال 1988 وارد نسل جدیدی از بازی ها کرد. هوش مصنوعی با اجرای کلی دستور کمک بسیار زیادی در طراجی بازیهایی 3بعدی FPS کرد . بعد از موتور طراحی بازی doom موتور طراحی بازی Build engine که امروزه هم مورد استفاده مبتدی های رایانه و طراحی بازی قرار میگیرد از این نوع هوش مصنوعی جدید استفاده کرد. البته Build engine دومین موتور طراحی بازی نبود ولی از نظر استفاده از هوش مصنوعی جدید دومین موتور محسوب میشود. همچنین در سال 1992 برای اولین بار هوش مصنوعی با اجرای خطی در بازیهای استراتژیک مورد استفاده قرار گرفت.

3: کاربرد هوش مصنوعی در بازیهای رایانه:

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

Mahdi_Rashed

Well-Known Member
دسته بندیهای هوش مصنوعی:

دسته بندی های قبل از سال 2000:

این دسته بندی ها شامل موتور های طراحی بازی قدیمی میشود که از سیستم های هوش مصنوعی خطی یا کلی استفاده میکردند.

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

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

دسته بندی های بعد از سال 2000:

با ورود به نسل جدید بازی ها و پدید آمدن بسیاری از موتور های طراحی بازی نظیر Unreal Engine 1 کلیه بخشهای طراحی بازی تغییرات عمده ای کرد. به عنوان مثال سیستم رندرینگ 3بعدی Voxel value جای خود را به DirectX و بعد OpenGL داد. در همین دوره سیستم های هوش مصنوعی تغییرات بسیار زیادی کرد و سیستم های محاسبه گر جدیدی به آنها اضافه شد که میتوان به path finder و Pylon اشاره کرد.

هوش مصنوعی استاتیک: نوعی هوش مصنوعی در بازیهای نسل جدید است که با دریافت اطلاعات و پردازش آنها دستورات هوش مصنوعی را مستقیماً و بدون واسطه انجام میدهد. (آموزش در دوره تکمیلی)

هوش مصنوعی دینامیک:
نوعی هوش مصنوعی که پس از دریافت و پردازش اطلاعات دریافت شده با در نظر گرفتن متغیرهای محیطی و زمانی مختلف ان دستور را اجرا میکند. یعنی ممکن است که در هنگام اجرای یک دستور از هوش مصنوعی ناگهان تصمیم خود را عوض کرده و دستور جدیدی را که درافت کرده اجرا کند. (آموزش در دوره تکمیلی)
 

Mahdi_Rashed

Well-Known Member
هوش مصنوعی با اجرای خطی:

تعریف: شبیه یک سیستم داس هوش مصنوعی با اجرای خطی نیز دستورات گرفته شده را خط به خط پردازش و اجرا میکند. هوش مصنوعی با اجرای خطی در اصل یک سیستم بسیار پیچیده از ترکیب زبانهای ماشین و ماتریسهای پیچیده با معادلات ریاضی است. این هوش مصنوعی در اولین بار در سال 1958 یک بازی بسیار ساده به نام Tennis For two استفاده شد که از یک ترکیب ماتریسی ساده برای کاربر CPU دستوراتی را برای شناسایی محل توپ و حرکت دادن صفحه راکت تنیس به سمت توپ استفاده میکرد. هوش مصنوعی با اجرای خطی ثمره تلاش 3ساله 120 محقق رایانه و ریاضیدان بود که در اولین نگاه خود بزرگترین یافته بشر در دهه 1950 است. هوش مصنوعی با اجرای خطی پس از مدتها کار و تلاش سر انجام با انجام 1500 مورد تغییر و ارتقای برنامه نویسی توسط برنامه نویسان شرکت سگا به نسل بعدی خود ارتقا پیدا کرد که توانایی اجرای چند تابع هوش مصنوعی خطی در آن را دارا بود. البته این نوع هوش مصنوعی تا 7 سال در انحصار شرکت سگا و کنسولهای بازی آنها بود. نسلهای قدیمی و اولیه هوش مصنوعی با اجرای خطی فقط یک تابع را دریافت میکردند و کارکتر های تابع را به یک مسیر مشخص با هدف مشخص بفرستد ولی در نسل جدید با اضافه شدن چند لایه دیگر به سیستم هوش مصنوعی در هر مرحله بازی میشد تا 5 نوع کارکتر با هدف و مسیر جداگانه داشت .

الگوریتم اجرایی در سیستم ها: در حال حاظر این نوع هوش مصنوعی از الگوریتم بسیار بسیار ساده ای ساخته میشود که یک دانشجوی با اطلاعات بسیار کم و جزیی میتواند آن را برنامه نویسی کند ولی در دهه 1950 این الگوریتم به دلیل نبود نرم افزارهای برنامه نویسی و سیستم عاملها کاری بسیار سخت بوده است . الگوریتم این نوع سیستم هوش مصنوعی از 5 بخش جداگانه تشکیل میشد.

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

2: اجراکننده قوانین پس از دریافت داده های خام از شناساگر قوانین آنها را طی یک مرحله پردازشی اصلی و یک مرحله طبقه بندی، قوانین را مدیریت و آماده استفاده میکند. این بخش نسبتاً زمان زیادی را برای محاسبه میبرد. اطلاعات در اولین مرحله پردازش میشوند . یعنی هر یک از قوانین که وارد این بخش میشود باید به عکس العملی متصل شود که هنگام زیر پا گذاشته شدن این قوانین در کمترین زمان ممکن اجرا شود. مثلاً در صورتی که کاربر CPU در حال خروج از محدوده بازی بود بلافاصله راه او بسته شود. پس از این مرحله اطلاعات باید طبقه بندی بشوند تا اجرا آنها سریع تر باشد. پس در مرحله طبقه بندی این قوانین به سطوحی که برنامه نویسان تعیین میکنند طبقه بندی میشوند. مثلاً در جاهایی که باید جلو ادامه حرکت کاراکتر گرفته شود در یک طبقه یا حرکاتی که در موقعیت های خاص نباید انجام دهد در یک طبقه دیگر. پس از این مرحله قوانین آماده استفاده در محیط بازی هستند . این اطلاعات طبقه بندی و مدیریت شده در بخشی از حافظه همراه اطلاعات دیگر نگه داری میشوند تا تابع های مختلف آنها را فراخوانی کند.

3: بخش سوم که شاید در بسیاری از زبانهای برنامه نویسی امروزی نیز وجود داشته باشد Listener است که همیشه منتظر یک عمل است تا عکس و العملی را اجرا کند . Listener به 2 نوع تقسیم میشود. World Listener و Local Listener که کار این دو در حالی که از هم جدا است ولی باید با هم باشد( ترجمش رو خودمم نفهمیدم - فکر کنم اشتباه ترجمه کردم - ببخشید )

World Listener: این بخش همیشه منتظر عملهایی است که کاراکتر CPU با انجام یک کار قوانینی که از قبل شناسایی و پردازش شده اند را زیر پا میگذارد. در واقع World listener همیشه یک رابطه دائمی بین قوانین و رفتار کاراکتر دارد که در صورتی که رفتار از محدوده قوانین خارج شد از اجرای آن جلگیری شود. یعنی هنگامی که کاراکتر از محدوده بازی خارج میشود Listener رفتار را برای قوانین و بخش اجار کننده قوانین میفرستد و دستور منع حرکت را برای listener و از Listener برای کاراکتر میفرستد. در این حالت کاراکتر دیگر به حرکت خود که قانون شکنی را به همراه دارد خودداری میکند.

Local Listener: هنگام اجرای بازی با توجه به دستوری که ما به آن میدهیم -یعنی سطح سختی بازی از آسان تا خیلی سخت- اجرا میکند. هر یک از سطوح سختی بازی دارای اطلاعاتی است که کاراکتر CPU را با توجه به آن اطلاعات و متغیر ها مجبود به انجام عکس العمل میکند. این اطلاعات شامل سرعت، نوع حرکت، سرعت هدفگیری یا تیر انداری و... میشود که با بالا رفتن سطح سختی بازی بیشتر میشود. البته این نوع Listener بعدها به هوش مصنوعی با اجرا خطی اضافه شد.

نکته : در مقایسه با سیستم های هوش مصنوعی امروزی Listener همان دریافت کننده دستور در هوش مصنوعی استاندارد است.

4: بخش چهارم پردازش کننده دستوراتی است که از Listener به اجرا کننده قوانین و بر عکس را بر عهده دارد. این بخش از سیستم هوش مصنوعی حافظه بیشتری نسبت به دیگر بخشها دارد چرا که باید چندین کار را بر روی یک دستور به طور همزمان انجام دهد. هنگامی که دستوری از Listener برای اجرا کننده یا برعکس ارسال میشود پردازش کننده باید اختصات اولیه و مختصات مقصد را به صورت اعداد و ارقام ریاضی دریافت کند و طی پردازش آنها را به ماتریس های اجرایی برای کاراکتر ها تبدیل کند. این پردازش به جز مختصات میتواند اطلاعاتی شبیه سرعت و دقت و درصد خطا و... نیز باشد. پس از پردازش و قبل از اجرا دستور یا قانون پردازش کننده اطلاعات را به بخش اجرا کننده ی نهایی میفرستد تا این دستورات با استفاده از رابط های گرافیکی و منابع بازی در صفحه نمایش اجرا شود.

5: این بخش که بعدها در بازیهایی با گرافیک بالاتر اضافه شد پس از دریافت داد ها از پردازش کننده با رجوع به رابطهای گرافیک و منابع گرافیکی بازی نوع حرکت را در صفحه نمایش پیاده میکند . البته قبل از پیاده سازی این اطلاعات یک نسخه از آن را برای اجرا کننده قوانین میفرستد تا عکس العمل های مورد نیاز نیر صورت بگیرد.
 

Mahdi_Rashed

Well-Known Member
محاسن و معایب:

سیستم هوش مصنوعی با اجرای خطی از برخی نظرها دارای محاسنی میباشد که شاید در سیستم های هوش مصنوعی دیگر وجود نداشته باشد ولی در عین حال دارای معایب و کمبود هایی نیز هست.

محاسن:

- نتیجه ی محاسباتی که کاراکتر تبعیت کننده انجام میدهد درست مطابق خواسته طراح بازی و هوش مصنوعی هست.
- امکان بروز خطاهایی که باعث ایجاد یک باگ کلی در سیستم بازی شوند بسیار کم است.
- این نوع هوش مصنوعی به دلیل این که از یک الگوریتم محاسباتی مشخصی پیروی میکند دارای حجم پردازشی پایینی در سیستم ها و رایانه های امروزی است.

معایب:

- سادگی بیش از اندازه با توجه به حجم پردازشی پایین که استفاده از این نوع هوش مصنوعی را در بازیهای امروزی غیر ممکن کرده.
- محاسبه بر پایه ریاضی ممکن است برای اجرا در موتور های طراحی بازی نسل جدید مشکل ایجاد کند.
- غیر طبیعی بودن رفتارها اگر این سیستم هوش مصنوعی برای کارکتر ها استفاده شود. بهترین گزینه برای استفاده از این هوش مصنوعی در بازیهای امروزی استفاده آن برای سیستمهای غیر کارکتری است.
- نبود تابع برخوردی برای اجرای یک دستور
 

Mahdi_Rashed

Well-Known Member
نظریهای مربوطه:

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

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

نظریه گذر خطی: این اصل مربوط به حد و مرز کلی بازی و محدودیتهای حرکتی کاراکتر تبعیت کننده است. در هر بازی به عنوان مثال یا بازی شبیه سازی اتومبیل هنگامی که کاراکتر سعی در خارج شدن از جاده را داشته باشد دستوراتی صادر میشود که کاراکتر یا اتومبیل را از خارج شدن منع میکند. یعنی کاراکتر به دیوار بر خورد میکند و ... . ولی مواقعی هست که اصرار بر انجام یک عمل در کاراکتر یا اتومبیل زیاد میشود به حدی که سیستم هدایت کننده هوش مصنوعی دیگر قادر به انجام محاسبات مربوط به یک اتومبیل به خصوص نیست چون در این صورت باید دیگر اتومبیل هایی که از آن تبعیت میکنند را رها کند تا حجم پردازشی بیشتر برای اتومبیل مورد نظر داشته باشد. در این حالت است که طبق یک سری دستورات جدید که خود به خود و باز هم به شکل معادلات و رادیکالهای ریاضیات پدید می آیند محدودیت های اتومبیل مورد نظر را کمتر یا به طور کلی بر میدارد. در این حالت اتومبیل از همه موانع میتواند عبور کند و یا در برخی مواقع به صورت کلی از حرکت باز ایستد یا به یک خط مستقیم سیر کند. راه حل این نظریه در سیستم های هوش مصنوعی با اجرای خطی ممکن نبود و در سیستم های بعد از آن یعنی اجرای کلی و کامپایلر ها امکانپذیر شد. در هنگام نوشتن بازی و تعیین هوش مصنوعی برای اتومبیل ها باید برای هر اتومبیل یک شاخه جداگانه هوش مصنوعی تعریف کرد و برای هر شاخه دو دستور که یکی سیستم تبعیت کننده از هوش منصوعی مادر است و شاخه ی دیگر Reset کننده شاخه مربوط به اتومبیل است. بنابراین وقتی که اتومبیل یا کارکتر از مرز بازی عبور کند بلافاصله دستور اجرای مجدد سیستم هوش مصنوعی صادر میشود و باعث میشود تا کاراکتر به نزدیکترین نقطه در مرز بازی نسبت به موقعیت فعلی اش منتقل شود و سیستم هوش مصنوعیش به طور کلی راه اندازی مجدد شود . در این حالت در 80 درصد مواقع کارکتر دیگر به انجام عمل قبلی یعنی خروج از مرز بازی بر نمیگردد .
این نظریه برای همه ی سیستم های هوش مصنوعی وجود دارد ولی برای اولین بار در سیستم هوش مصنوعی با اجرای خطی اتفاق افتاد.

نظریه انکار عمل (در هوش مصنوعی با اجرای خطی): این نظریه برای هر سیستم هوش مصنوعی عملکرد متفاوتی دارد. انکار عمل همانطور که از اسمش هم پیداست یعنی خودداری از انجام یک عمل . دلیل بوجود آمدن این مشکل وجود بار سنگین انجام دستورات سیستم هوش مصنوعی بر کاراکتر تبعیت کننده است که باعث میشود کاراکتر یک عمل را مدام انجام دهد و دیگر دستورات را انکار کند یا این که دیگر دستوری را انجام نداده و ثابت در جای خود بماند. در سیستم هوش مصنوعی با اجرا خطی راه حلی نیست که بتوان این مشکل را حل کرد ولی در سیستم های دیگر هوش مصنوعی راه حلی شبیه راه حل نظریه گذر خطی میتواند این مشکل را حل کند. این نظریه برای همه ی سیستم های هوش مصنوعی وجود دارد ولی برای اولین بار در سیستم هوش مصنوعی با اجرای خطی اتفاق افتاد.

 

earth

New Member
چه اعصابی داری محمد!
راستی، من تو سافت ایمیج دارم میسازم. یک روزه، یک بخشش رو ساختم.
شامل حرکت، و ساختو امیت، تشخیص ترینش و اینا. البته تغییرات بر اصاص فاصله با هدف رو نصفه کردم.:cool:
اون جزوه هه که بهم دادی هم نخوندم! اینگیلیسش لحجه داشت!!!!!! :green:
 

Mahdi_Rashed

Well-Known Member
هوش مصنوعی با اجرای کلی:

تعریف :
هوش مصنوعی با اجرای کلی یا هوش مصنوعی کامپایلری همونطور که از اسمش هم پیداست دستورات اصلی هوش مصنوعی و اهداف و راه های رسیدن به اون اهداف رو از قبل به صورت کامل پردازش یا کامپایل میکنه . " از قبل " یعنی بعضی اوقات در هنگام بارگذاری مرحله و برخی مواقع در هنگامی که بازی در بخش طراحی مراحل وجود داره. این سیستم هوش مصنوعی حتی در حال حاظر هم در حال گسترش و به روز رسانی هست و در بسیاری از موتورهای طراحی بازی به صورت سیستم هوش مصنوعی پایه یا فرعی مورد استفاده قرار میگیره . در ابتدا این سیستم هوش مصنوعی ساختار ساده و راحتی داشت و اون مشخص کردن چند نقطه به عنوان Way poin بود و مشخص کردن چم نقطه دیگه که برای هر بازی متغیر هم بده شبیه محل پناه گرفتن و... و بعد از مشخص شدن این نقاط سیستم بازی و موتور طراحی بازی شروع به پردازش و کامپایل این نقاط میکرد و با توجه به موانعی که در سر راه قرار داره یک مسیر و محدوده ای رو برای بازی کن های تبعیت کننده از هوش مصنوعی ایجاد میکرد. مهم ترین ویژگی این سیستم هوش مصنوتی علاوه بر این که سرعت بازی های 3بعدی رو افزایش داد این بود که میتوانست چندین لایه هوش مصنوعی رو بدون این که اطلاعات اونها بر روی هم دیگه اثری بذاره اجرا کنه.

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

بخشهای اول ، دوم و سوم دستخوش تغییرات عمده ای برای هماهنگ سازی با محیطهای 3بعدی و سیستم های هوش مصنوعی جدید شدن ولی پایه و اساس اصلی آنها همه یکی بود و وظیفه داشتن تا دستوراتی شبیه انتخاب هدف و راه و... رو هدایت کنند ولی بخش چهارم که به طور کامل تغییر کرد یکی از مهمترین عوامل ایجاد یک سیستم هوش مصنوعی بود. بخش اجرا کننده قوانین کلی بازی یا همون Listener ها که باز هم به دو نوع محلی و جهانی یا Local و World تقسیم میشدند وظیفه داشتند تا به جای این که محدوده بازی را محاسبه کنند و به کاراکتر تبعیت کننده بدهند، محدوده که قبلاً توسط کامپایلر ها محاسبه شده بود را زیر نظر بگیرند تا قوانینی که از طرف تبعیت کننده زیر پا گذاشته میشوند را اصلاح و در صورت نیاز به طور کامل Reset و Reconfiguration کنند. همچنین به جز قوانین کلی بازی باید بر رفتار سیستم تبعیت کننده نظارت داشته باشند تا در صورت بروز خطا قبل از این که مشکلی در اجرای بازی پیش بیاید آن را انکار کرده یا نقیض ان را با محاسبات پیچیده ریاضی ایجاد کنند و به کاراکتر تبعیت کننده ارسال کنند. از وظایف دیگر Listener ها میتوان به کنترل مرتب متغیرهای بازی هم اشاره کرد . در سیستم هوش مصنوعی کامپایلری میتوان سیستمی تعریف کرد تا تبعیت کننده را به یک مقدار مشخصی از صدا حساس کرد. یکی از این متغیر ها ک مرتب توسط listener ها بررسی و کنترل میشود ( به عنوان مثال ) متغیر صدا محیطی است که اگر در یک حد خاصی بالاتر برود یعنی متغیر بر حسب نوع طراحی بالا تر برود سیستم listener دستوراتی را برای کاراکتر تبعیت کننده صادر میکند که باعث میشود کاراکتر نسبت به صدا مشکوک شده و به دنبال علت آن برود . مهمترین ویژگی که Listener ها در این نوع سیستم هوش مصنوعی دارند قابلیت پذیرش هر نوع کلاس و دستوری است بنابر این در طراحی یک listener میتوان هر دستوری را که ممکن در است در طول بازی به آن نیازی داشته باشیم به ان اضافه کنیم تا در محیط بازی مورد استفاده قرار بگیرد.
 

Mahdi_Rashed

Well-Known Member
هوش مصنوعی با اجرای کلی:

محاسن و معایب:

محاسن:

- سیستم هوش مصنوعی با اجرای کلی یا کامپایلری سرعت بسیار بیشتری را نسبت به سیستم اجرای خطی دارد. در برخی از منابع سرعت آن را 125 برابر و در برخی دیگر 170 برابر سرعت سیستم هوش مصنوعی با اجرای خطی میدانند. منظور از سرعت زمان بین دریافت، پردازش و اجرا دستورات هوش مصنوعی در یک بازی میباشد .

-
سیستم هوش مصنوعی با اجرای کلی یا کامپایلری دارای سیستم های فرعی یا ساب سیستمهای زیادی است که دست طراحان بازی را برای اجرا و پیاده سازی انواع مختلف هوش مصنوعی را فراهم کرده است. سیستم هوش منصوعی Pylon برای محاسبه یک دسته کاراکتر تابع با یک سری از قوانین پایه است. سیستم Goal Driven که با استفاده مقادیر و متغیر های مختلف به کاراکتر تابع اجازه میدهد تا با توجه به شرایط محیط و شرایط خود کاراکتر بهترین دستور را انتخاب و اجرا کند. سیستم Way point به کاراکتر تابع اجازه میدهد تا در شعاغ مشخصی از هر یک از Poin های از پیش مشخص شده فعالیت کرده و بیشتر برای بازی های آنلاین که دارای سیستم Bot هستند مورد استفاده قرار میگیرد.

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

- سیستم هوش مصنوعی با اجرای کلی یا کامپایلری در یک بازی میتواند با توجه به مشخصات سخت افزاری رایانه اجرا کننده ملیاردها دستور هوش مصنوعی را به طور همزمان دریافت، پردازش و اجرا کرده و همزمان Listener های مختلفی را مدیریت کند.

معایب:

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

-
سیستم هوش مصنوعی با اجرای کلی برای استفاده در بازی های آنلاین یا تحت شبکه مناسب است ولی اگر بازی دارای متغیرهای زیاده باشد که باید بین سرور جابه جا شوند پینگ ( زمان ارسال داده ها به سرور و دریافت از آن به میلی ثانیه ) بالا رفته و در برخی مواقع به اصطلاح Lag پیش بیاید. به عنوان مثال Battle Field 2 دارای این مشکلات است.

- اشتباهاتی که در
سیستم هوش مصنوعی با اجرای کلی رخ میدهد برخی مواقع بسیار بزرگ و (خنده دار! - Funny ) به قدری که به هیچ عنوان اصلاح آن در محیط بازی ممکن نیست و برای اصلاح آن سیستم باید کل پایگاه داده هوش مصنوعی را زیر و رو کند.
 

Mahdi_Rashed

Well-Known Member
نظریه های مربوط به سیستم هوش مصنوعی با اجرای کلی:

نظریه حق انتخاب:
این نظریه یا اصل یکی از مهمترین و معروفترین اصلهایی است که سیستم هوش مصنوعی ممکن است آن را رعایت نکند . نظریه حق انتخاب بیان میکند که هنگامی که کاراکتر تبعیت کننده ( اغلب در سیستم Goal Driven ) در بین دو یا چند گزینه انتخاب اجباری قرار گیرد که همه ی آنها به صورت یکسان متغیرهای سیستم هوش مصنوعی را تغییر دهند ( متغیر هایی شبیه سودها و زیانهای انتخاب یک گزینه ) در این حالت است که سیستم هوش مصنوعی با استفاده از محاسباتی که به صورت خودکار ایجاد میکند که شامل هزاران رادیکال و معادله چندین مجهولی است که سعی میکند تا متغیر ها را بیشتر بررسی کند و یک گزینه را انتخاب کند ولی در 90 درصد مواقع این رادیکالها و معادلات موثر نبوده و سیستم هوش مصنوعی دستور Stage.ignore یا انکار بخش فعلی را صادر میکند و کاراکتر تبعیت کننده که یکی از بخشها را انکار کرده نمیتواند در بخشهای دیگر انتخابی داشته باشد بنابراین بیحرکت در یک جا میماند و عملی انجام نمیدهد. در سیستم های دیگر شبیه Way Point و Pylon هم اگر کاراکتر در بین 2 یا چند مسیر یکسان قرار بگیر این انتفاق رخ میدهد و کاراکتر در جای خود ثابت مانده یا در محلی که ثابت ایستاده به دور خود میچرخد . راه حلی که برای رفع این مشکل پیشنهاد شده اضافه کردن تگ و کلاس Delete به دستور Stage.Ignore است . بنابراین وقتی انکار بخش به کاراکتر داد شود به جای اینکه بدون استفاده در جای خود ثابت بماند یا دور خود بچرخد از صحنه بازی به طور کامل حذف میشود . توجه داشته باشید که اگر شخصیت یا دشمن اصلی بازی دچار این مشکل بود حذف آن عاقلانه نیست . برای همین سیستم هوش مصنوعی دشمن اصلی بازی یا همان کاراکتری که برای ( به طور مثال کشتن وی ) بازی میکنید باید هر چند دقیقه Reset شود تا احتمال بروز این خطا کم باشد . Reset شد شامل دریافت دستورات جدید هنگام ورود شما ( Player ) یا دشمن اصلی به یک ناحیه خاص است .

نظریه اجرای اشتباه دستور یا تلفیق غیر مجاز دستوری: این نظریه هنگامی پیش میآید که سیستم هوش مصنوعی توان و کشش محاسبه و ارسال دستور را به کاراکتر تبعیت کننده به صورت دقیق نداشته باشد. به عنوان مثال در صحنه ای که چندصد نفر در حال جنگ با هم هستند اگر به صورت معمولی از سیستمی به غیر از Pylon یا mass Thinker یا کلاس Thinker استفاده نشود ممکن است ( یعنی از سیستم Goal Driven یا Way point ) دستوراتی که به کاراکتر های مختلف ارسال میشود ممکن از بر حسب خطا با هم عوض شده و به هر کاراکتر دستور اشتباه ارسال شده و در پی آن کاراکتر عمل اشتباهی را انجام دهد . مثلاً یکی از دوستان شما در بازی ناگهان به سمت شما تیر اندازی کند و در مقابل یکی از افراد دشمن نیز به یک دشمن دیگر تیر اندازی کند . دلیل آن جا به جا شدن دستورات است . برخی مواقع بیشتر در بازی های سبک شبیه سازی اتوموبیل ممکن است دستورات با هم تلفیق شده یعنی به جای این که دستورات برای اجرا در ماشین تبعیت کننده در صف قرار بگیرند ناگهان با هم اجرا شوند . مثلاً در حالی که اتوموبیل باید به چپ بپیچد هم زمان دستور پیچیدن به راست هم اجرا شود . در این حالت است که ماشین تبعیت کننده از مسیر خارج شده و ممکن است که به طور کامل از بازی حذف شود . این نظریه در موتور طراحی بازی Unreal Engine 2 رفع شد و علت ان یک اشتباه در برنامه نویسی در base سیستم هوش مصنوعی اعلام شد ولی هنوز هم ممکن است این مشکل در برخی از موتورهای طراحی بازی یا سورسهای هوش مصنوعی وجود داشته باشد . برای رفع آن باید از روش بهینه سازی صف اجرایی استفاده کرد و دستوراتی را تعریف کرد که به محض ورود دستور دوم به صف اجرا آن را در بخشی جداگانه به اصطلاح قرنطینه کند تا دستور جاری به صورت کامل اجرا شده و گزارش اجرای صحیح ان به مرکز سیستم هوش مصنوعی برگردد . البته برخی موارد لازم است دو یا چند دستور با هم اجرا شوند که در این حالت باید تگ و کلاسی را در نظر گرفت که اولویت اجرا را بر قرار گیری در صف داشته باشد.

نظریه انکار عمل (در هوش مصنوعی با اجرای کلی): این نظریه مانند نظریه انکار عمل در هوش مصنوعی با اجرا خطی میباشد ولی با این فرق که احتمال وقوع آن در سیستم هوش مصنوعی با اجرای کلی کمتر است چرا که بار محاسباتی سیستم هوش مصنوعی بسیار زیاد شده و این مشکل فقط در حالاتی رخ میدهد که سیستم به دلیل سنگین شدن قادر به محاسبه نباشد .

نکنه ها:

- سیستم هوش مصنوعی Way point همان سیستم Path system است و فرقی ندارد.

- سیستم های هوش مصنوعی از دو لحاظ ممکن است ضعف بکنند . یکی از لحاظ باز محاسباتی سنگین که ممکن است باعث ایجاد مشکل ذکر شده درنظریه انکار عمل شود و دوم از لحاظ سیستم ارسال و اجرا که ممکن است باعث ایجاد مشکلات ذکر شده در نظریه تلفیق دستوری شوند.
- نظریه های خط قرمز و گذر خطی در این سیستم هوش مصنوعی نیز وجود دارد و ممکن است اتفاق بیفتد.

*نظریه نظریه رادیکال بازگشتی بسیار مفصل است که در پستهای بعدی مینویسم ( هنوز ترجمه نکردم :green:)
 
آخرین ویرایش:

Mahdi_Rashed

Well-Known Member
نظریه نظریه رادیکال بازگشتی: قبل از اینکه بخوام این بخش رو توضیح بدم از شما میخوام که فیلم i, Robot محصول سال 2007 رو تماشا کنین. در این فیل بخشی وجود داره که خالق روباتها میگه " در روباتها رفتارهایی غیر برنامه ریزی شده ای وجود داره که ما نمیتونیم اونها رو توضیح بدیم . شبیه وقتی که رباتها در یک محیط بسته باشن به جای اینکه هر کدوم یک گوشه بایستند دور هم جمع میشن یا اینکه اگر نوری رو در تاریکی ببینن ناخواسته به سمت اون میرن "

تعریف کلیه نظریه رادیکار بازگشتی همین رفتارهای غیربرنامه ریزی شده هست که ممکنه در سیستم هوش مصنوعی ( حالا یا ربات یا بازی های رایانه ) پیش بیاد . رادیکال بازگشتی به هیچ عنوان راه حلی برای جلوگیری از اون نداره و هیچکس تا به حال نتونسته این رادیکالها رو تعریف کنه . احتمال اتفاق افتادن در محیط بازی از هر بازی تا هر موتور طراحی بازی یا سیستم هوش مصنوعی متفاوته و ممکنه هیچوقت اتفاق نیفته و ممکنه که کلاً همیشه درحال اتفاق افتادن باشه. سیستم های هوش مصنوعی دارای پیچیدگی های برنامه نویسی خاصی هستند که حاصل اونها یک مجموعه متحد از دستورات، معادلات و به خصوص رادیکالها و ماتریسهای پیچیده هست . از اونجایی که Base سیستم های پردازش گر و اجرایی اعداد 0 و 1 هست پس معادلات ماتریسی برای رایانه یک مسئله حل شده هست و کمتر پیش میاد تا سیستم های هوش مصنوعی در این بخش از معادلات دچار مشکل بشن ولی رادیکالها بخش عمده مشکلات سیستم های هوش مصنوعی یا سیستم های مشابه رو تشکیل میدن . اگر نظریه ها و اصول قبلی رو هم خونده باشید خواهید فهمید که بیشتر این نظریه ها به دلیل درست محاسبه نشدن رادیکالها و معادلات رادیکالی به وجود میان . رادیکال بازگشتی به این دلیل رادیکال بازگشتی نام گرفته چون احتمال میره که وقتی سیستم هوش مصنوعی درحال محاسبه رادیکالها هست تعدادی از اونها از سیستم تعیین کننده صف و خود صف محاسبه خارج میشن و دوباره به پایگاه ذخیره اطلاعات بر میگردن و اونجا با عث ایجاد تغییراتی در سیستم هوش مصنوعی و دستورات جاری میشن که همین باعث وجود آمدن رفتارهای غیر عادی و غیر قابل پیشبینی در تبعیت کننده ها میشن . به عنوان مثال همین جمع شدن کاراکتر ها در یک محیط یا تشابه خیلی زیاد رفتاری ( باهم قدم گذاشتن . با هم پریدن و ... )

رادیکال بازگشتی یا Radical Recursion در بسیاری از علوم رایانه ای یا غیر رایانه ای کاربرد داره ولی اینجا کاربرد اون در سیستم های هوش مصنوعی بازی مد نظر هست . یکی از ساده ترین الگریتمهای هوش مصنوعی حرکت بر روی یک خط صاف هست که با دستورها و سینتکس های پیروی اجرا میشه . وقتی این خط مستقیم در سیستم هوش مصنوعی طوری تعریف بشه که نهایت اون مشخص نشه یا محدودیتی برای کاراکتر تبعیت کننده وجود نداشته باشه احتمال میره که Radical Recursion اتفاق بیفته . یعنی دستورهای تکرار دستور رادیکال ها رو به ترتیب به صف اجرا وارد میکنن ولی حجم سنگین رادیکالها باعث میشه که برخی این محاسبات رادیکالی که نسبت به بقیه ساده ترند از درون صف خارج شده و به پایگاهی که اطلاعات بعد از دریافت دستور از listener وارد بشن . در این حالت گفته میشه که رادیکال اثر عکس داره یا بازگشتیه . هنگام ورود رادیکال بازگشتی به سیستم هوش مصنوعی به دلیل داشتن تگ ها و کلاسهای پردازشی و پیش پردازشی یک سری از دستورات آماده و دریافت شده را به دستورات خود اضافه میکند و دوباره در صف پردازش قرار میگیرد . پردازش گر با دیدن چندین دستور و معادله متفاوت در یک بسته دستوری که قبلاً دریافت و آماده پردازش شده ممکن است آن را ignore کرده یا به درستی پردازش نکند . در صورتی که بسته دستوری به درستی پردازش نشود عملی که از اجرا کننده و خروجی بیرون می آید بسته به نوع پردازش متفاوت است ولی اگر Ignore شود اینجاست که رادیکال بازگشتی با استفاده از دیگر دستوراتی که به معادلات خود اضافه کرده ، خروجی هایی را ایجاد میکند که رفتارهایی عجیب و غیر منتظره که گاهاً طبیعی و بیشتر غیر طبیعی است را اجرا میکند .
 

جدیدترین ارسال ها

بالا