هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ

هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ

مون کي راندين ۾ مصنوعي ذهانت بابت ڪجهه دلچسپ مواد مليو. AI بابت بنيادي شين جي وضاحت سان سادي مثالن کي استعمال ڪندي، ۽ اندر ان جي آسان ترقي ۽ ڊزائين لاء ڪيترائي مفيد اوزار ۽ طريقا موجود آهن. انهن کي ڪيئن، ڪٿي ۽ ڪڏهن استعمال ڪرڻو آهي، اهو پڻ موجود آهي.

گھڻا مثال pseudocode ۾ لکيل آهن، تنهنڪري ترقي يافته پروگرامنگ جي ڄاڻ جي ضرورت ناهي. ڪٽ جي هيٺان 35 شيٽ جا ٽيڪسٽ تصويرون ۽ گف سان گڏ آهن، تنهنڪري تيار ٿي وڃو.

يو پي ڊي. مان معافي وٺان ٿو، پر مون اڳ ۾ ئي هن مضمون جو پنهنجو ترجمو Habré تي ڪيو آهي مريض زيرو. توهان هن جو نسخو پڙهي سگهو ٿا هتي، پر ڪجهه سببن لاءِ مضمون مون کي منظور ڪيو (مون ڳولها استعمال ڪئي، پر ڪجهه غلط ٿي ويو). ۽ جيئن ته آئون هڪ بلاگ تي لکي رهيو آهيان راند جي ترقي لاءِ وقف آهي، مون فيصلو ڪيو ته منهنجي ترجمي جو نسخو رڪنن لاءِ (ڪجهه نقطا مختلف فارميٽ ڪيا ويا آهن، ڪجهه ڊولپرز جي صلاح تي عمدي طور تي ختم ڪيا ويا).

ڇا اهو آهي؟

راند AI ان تي ڌيان ڏئي ٿو ته ڪهڙيون شيون انجام ڏيڻ گهرجن حالتن جي بنياد تي جن ۾ اهو واقع آهي. اهو عام طور تي حوالو ڏنو ويو آهي "ذهني ايجنٽ" انتظام، جتي هڪ ايجنٽ هڪ پليئر ڪردار، هڪ گاڏي، هڪ بوٽ، يا ڪڏهن ڪڏهن ڪجهه وڌيڪ خلاصو آهي: ادارن جو هڪ مڪمل گروپ يا هڪ تهذيب. هر معاملي ۾، اها هڪ شيء آهي، جيڪو پنهنجي ماحول کي ڏسڻ، ان جي بنياد تي فيصلا ڪرڻ ۽ انهن جي مطابق عمل ڪرڻ گهرجي. ان کي چئبو آهي احساس/سوچ/ عمل چڪر:

  • احساس: ايجنٽ پنهنجي ماحول ۾ شين جي باري ۾ معلومات ڳولي يا وصول ڪري ٿو جيڪا شايد ان جي رويي تي اثر انداز ٿئي ٿي (ويجهو خطرو، شيون گڏ ڪرڻ لاء، دلچسپ هنڌن کي ڳولڻ لاء).
  • سوچيو: ايجنٽ فيصلو ڪري ٿو ته ڪيئن رد عمل ڪجي (ان ڳالهه تي غور ڪيو ته ڇا شيون گڏ ڪرڻ لاء ڪافي محفوظ آهي يا ڇا هن کي پهرين وڙهڻ / لڪائڻ گهرجي).
  • ايڪٽ: ايجنٽ اڳئين فيصلي کي لاڳو ڪرڻ لاء ڪارناما انجام ڏئي ٿو (دشمن يا اعتراض ڏانهن وڌڻ شروع ٿئي ٿو).
  • ... هاڻي صورتحال تبديل ٿي چڪي آهي ڪردارن جي عملن جي ڪري، تنهنڪري چڪر نئين ڊيٽا سان ورجائي ٿو.

AI لوپ جي احساس واري حصي تي ڌيان ڏيڻ جي ڪوشش ڪندو آهي. مثال طور، خودمختيار ڪارون روڊ جون تصويرون وٺن ٿيون، انهن کي رادار ۽ ليڊر ڊيٽا سان گڏ ڪن ٿا، ۽ انهن جي تشريح ڪن ٿا. اهو عام طور تي مشين لرننگ ذريعي ڪيو ويندو آهي، جيڪا ايندڙ ڊيٽا کي پروسيس ڪري ٿي ۽ ان کي معنيٰ ڏئي ٿي، معنيٰ جي معلومات ڪڍي ٿي، جيئن ته ”توهان کان 20 گز اڳ هڪ ٻي ڪار آهي“. اهي نام نهاد درجه بندي مسئلا آهن.

معلومات کي ڪڍڻ لاء راندين کي پيچيده سسٽم جي ضرورت ناهي ڇو ته اڪثر ڊيٽا اڳ ۾ ئي ان جو هڪ لازمي حصو آهي. اهو طئي ڪرڻ لاءِ تصوير جي سڃاڻپ واري الگورتھم کي هلائڻ جي ڪا ضرورت ناهي ته ڇا اڳتي ڪو دشمن آهي- راند اڳ ۾ ئي ڄاڻي ٿي ۽ معلومات کي سڌو سنئون فيصلو ڪرڻ واري عمل ۾ فيڊ ڪري ٿي. تنهن ڪري، چڪر جو احساس حصو اڪثر سوچ ۽ عمل واري حصي کان گهڻو آسان آهي.

راند AI جون حدون

AI وٽ ڪجھ حدون آھن جن کي مشاهدو ڪيو وڃي:

  • AI کي اڳ ۾ تربيت ڏيڻ جي ضرورت ناهي، ڄڻ ته اها مشين سکيا وارو الگورٿم هجي. اهو ڪو به احساس ناهي ته ترقي دوران هڪ اعصابي نيٽ ورڪ لکين هزارين رانديگرن جي نگراني ڪرڻ ۽ انهن جي خلاف کيڏڻ جو بهترين طريقو سکو. ڇو؟ ڇو ته راند جاري نه ڪئي وئي آهي ۽ نه ڪي رانديگر آهن.
  • راند کي مزو ۽ مشڪل هجڻ گهرجي، تنهنڪري ايجنٽ ماڻهن جي خلاف بهترين طريقي سان ڳولڻ نه گهرجي.
  • ايجنٽ کي حقيقي ڏسڻ جي ضرورت آهي ته جيئن رانديگرن کي محسوس ٿئي ته اهي حقيقي ماڻهن جي خلاف راند ڪري رهيا آهن. AlphaGo پروگرام انسانن کي اڳتي وڌايو، پر چونڊيل قدم راندين جي روايتي سمجھ کان تمام پري هئا. جيڪڏهن راند انساني مخالف کي تخليق ڪري ٿي، اهو احساس موجود نه هجڻ گهرجي. الگورتھم کي تبديل ڪرڻ جي ضرورت آھي ته جيئن اھو مثالي فيصلا ڪرڻ بجاءِ قابل عمل فيصلا ڪري.
  • AI حقيقي وقت ۾ ڪم ڪرڻ گهرجي. هن جو مطلب اهو آهي ته الگورٿم فيصلا ڪرڻ لاء ڊگهي عرصي تائين سي پي يو جي استعمال کي هٽائي نٿو سگهي. جيتوڻيڪ 10 مليسيڪنڊ تمام ڊگهو آهي، ڇاڪاڻ ته اڪثر رانديون صرف 16 کان 33 مليسيڪنڊن جي ضرورت هونديون آهن سڀني پروسيسنگ ڪرڻ ۽ ايندڙ گرافڪس فريم ڏانهن وڃڻ لاء.
  • مثالي طور، سسٽم جو گهٽ ۾ گهٽ حصو ڊيٽا تي ٻڌل هجڻ گهرجي، انهي ڪري ته غير ڪوڊر تبديليون ڪري سگهن ٿيون ۽ ترتيبون وڌيڪ جلدي ٿي سگهن ٿيون.

اچو ته AI طريقن تي نظر رکون جيڪي سڄي احساس/سوچڻ/ايڪٽ چڪر کي ڍڪيندا آهن.

بنيادي فيصلا ڪرڻ

اچو ته آسان ترين راند سان شروع ڪريون - پونگ. گول: پيڊل کي ھلايو ته جيئن بال ان جي مٿان اڏامڻ بجاءِ ان کي باؤنس ڪري. اهو ٽينس وانگر آهي، جتي توهان وڃائي ڇڏيو جيڪڏهن توهان بال کي نه ماريو. هتي AI وٽ هڪ نسبتا آسان ڪم آهي - اهو فيصلو ڪرڻ ته پليٽ فارم کي ڪهڙي طرف منتقل ڪيو وڃي.

هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ

مشروط بيان

پونگ ۾ AI لاء، سڀ کان وڌيڪ واضح حل هميشه پليٽ فارم کي بال جي هيٺان رکڻ جي ڪوشش ڪرڻ آهي.

ھن لاءِ ھڪڙو سادو الگورتھم، pseudocode ۾ لکيل آھي:

هر فريم / تازه ڪاري جڏهن راند هلي رهي آهي:
جيڪڏهن بال پيڊل جي کاٻي پاسي آهي:
پيڊل کاٻي پاسي منتقل ڪريو
ٻي صورت ۾ جيڪڏهن بال پيڊل جي ساڄي پاسي آهي:
پيڊل ساڄي طرف منتقل ڪريو

جيڪڏهن پليٽ فارم بال جي رفتار تي هلندو آهي، پوء اهو پونگ ۾ AI لاء مثالي الگورتھم آهي. ڪجھ به پيچيدگي ڪرڻ جي ڪا ضرورت ناهي جيڪڏهن ايجنٽ لاء تمام گهڻو ڊيٽا ۽ ممڪن عمل نه آهي.

اهو طريقو ايترو سادو آهي جو سڄو احساس/سوچ/ عمل چڪر مشڪل سان قابل ذڪر آهي. پر اهو اتي آهي:

  • Sense حصو ٻن صورتن ۾ آھي. راند کي خبر آهي ته بال ڪٿي آهي ۽ پليٽ فارم ڪٿي آهي، تنهنڪري AI ان کي ان معلومات لاءِ ڏسندو آهي.
  • Think حصو پڻ ٻن ۾ شامل ڪيو ويو آهي بيان. اهي ٻه حل پيش ڪن ٿا، جيڪي هن صورت ۾ هڪ ٻئي سان خاص آهن. نتيجي طور، ٽن عملن مان ھڪڙو چونڊيو ويو آھي - پليٽ فارم کي کاٻي پاسي ڏانھن منتقل ڪريو، ان کي ساڄي ڏانھن منتقل ڪريو، يا ڪجھ به نه ڪريو جيڪڏھن اھو اڳ ۾ ئي صحيح پوزيشن ۾ آھي.
  • ايڪٽ جو حصو Move Paddle Left ۽ Move Paddle Right بيانن ۾ ملي ٿو. راند جي ڊيزائن تي مدار رکندي، اهي پليٽ فارم کي فوري طور تي يا مخصوص رفتار تي منتقل ڪري سگهن ٿا.

اهڙن طريقن کي رد عمل سڏيو ويندو آهي - ضابطن جو هڪ سادي سيٽ آهي (هن صورت ۾ جيڪڏهن ڪوڊ ۾ بيان) جيڪي دنيا جي موجوده حالت تي رد عمل ڪن ٿا ۽ عمل ڪن ٿا.

فيصلي جو وڻ

پونگ مثال اصل ۾ هڪ رسمي AI تصور جي برابر آهي جنهن کي فيصلو وڻ سڏيو ويندو آهي. الورورٿم ان جي ذريعي وڃي ٿو "پتي" تائين پهچڻ لاءِ - هڪ فيصلو جنهن بابت ڪهڙو قدم کڻڻو آهي.

اچو ته اسان جي پليٽ فارم جي الگورتھم لاءِ فيصلي واري وڻ جو هڪ بلاڪ ڊراگرام ٺاهيون:

هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ

وڻ جي هر حصي کي نوڊ سڏيو ويندو آهي - AI اهڙين اڏاوتن کي بيان ڪرڻ لاءِ گراف ٿيوري استعمال ڪري ٿو. نوڊ جا ٻه قسم آهن:

  • فيصلا نوڊس: ٻن متبادلن جي وچ ۾ چونڊڻ جي بنياد تي ڪجھ شرطن جي جانچ ڪرڻ، جتي ھر متبادل ھڪڙي الڳ نوڊ جي طور تي پيش ڪيو ويندو آھي.
  • آخري نوڊس: انجام ڏيڻ جو عمل جيڪو حتمي فيصلي جي نمائندگي ڪري ٿو.

الورورٿم پهرين نوڊ (وڻ جي "روٽ") کان شروع ٿئي ٿو. اهو يا ته اهو فيصلو ڪري ٿو ته ڪهڙي چائلڊ نوڊ ڏانهن وڃڻو آهي، يا اهو نوڊ ۾ محفوظ ڪيل عمل کي انجام ڏئي ٿو ۽ ٻاهر نڪري ٿو.

فيصلي واري وڻ کي ساڳيو ڪم ڪرڻ جو ڪهڙو فائدو آهي جيئن پوئين حصي ۾ بيان ڪيل بيان؟ هتي هڪ عام نظام آهي جتي هر فيصلي ۾ صرف هڪ شرط ۽ ٻه ممڪن نتيجا آهن. هي ڊولپر کي اجازت ڏئي ٿو AI ٺاهڻ جي ڊيٽا مان AI ٺاهي جيڪا ڪنهن وڻ ۾ فيصلا ڪرڻ جي بغير ان کي سخت ڪوڊ ڪرڻ جي. اچو ته ان کي ٽيبل جي صورت ۾ پيش ڪريون:

هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ

ڪوڊ جي پاسي تي توھان کي پڙھڻ لاءِ ھڪڙو سسٽم ملندو. انهن مان هر هڪ لاء هڪ نوڊ ٺاهيو، ٻئي ڪالمن جي بنياد تي فيصلي جي منطق سان ڳنڍيو، ۽ ٻار جي نوڊس ٽئين ۽ چوٿين ڪالمن جي بنياد تي. توھان کي اڃا تائين شرطن ۽ ڪارناما پروگرام ڪرڻ جي ضرورت آھي، پر ھاڻي راند جي جوڙجڪ وڌيڪ پيچيده ٿي ويندي. هتي توهان اضافي فيصلا ۽ ڪارناما شامل ڪريو ٿا، ۽ پوءِ مڪمل AI کي ترتيب ڏيو صرف وڻ جي تعريف واري ٽيڪسٽ فائل ۾ ترميم ڪندي. اڳيون، توهان فائل کي راند جي ڊيزائنر ڏانهن منتقل ڪيو، جيڪو راند کي ٻيهر ترتيب ڏيڻ يا ڪوڊ کي تبديل ڪرڻ کان سواء رويي کي تبديل ڪري سگهي ٿو.

فيصلي جا وڻ ڏاڍا ڪارآمد هوندا آهن جڏهن اهي مثالن جي وڏي سيٽ مان پاڻمرادو ٺاهيا ويندا آهن (مثال طور، ID3 الگورتھم استعمال ڪندي). اهو انهن کي حاصل ڪيل ڊيٽا جي بنياد تي حالتن جي درجه بندي ڪرڻ لاءِ هڪ مؤثر ۽ اعليٰ ڪارڪردگي وارو اوزار بڻائي ٿو. تنهن هوندي، اسان عملن کي چونڊڻ لاءِ ايجنٽن لاءِ هڪ سادي سسٽم کان ٻاهر وڃون ٿا.

منظرنامو

اسان هڪ فيصلي واري وڻ جي سسٽم جو تجزيو ڪيو جيڪو استعمال ڪيو ويو اڳ ٺاهيل حالتون ۽ ڪارناما. AI کي ڊزائين ڪرڻ وارو شخص وڻ کي ترتيب ڏئي سگهي ٿو جيئن هو چاهي، پر هن کي اڃا تائين ڪوڊر تي ڀروسو ڪرڻو پوندو جيڪو اهو سڀ پروگرام ڪيو. ڇا جيڪڏهن اسان ڊزائنر کي پنهنجون حالتون يا ڪارناما ٺاهڻ لاءِ اوزار ڏئي سگهون ٿا؟

انهي ڪري ته پروگرامر کي شرطن لاءِ ڪوڊ لکڻ جي ضرورت نه آهي Is Ball Left of Paddle ۽ Is Ball Right of Paddle، هو هڪ سسٽم ٺاهي سگهي ٿو جنهن ۾ ڊزائنر انهن قدرن کي جانچڻ لاءِ شرطون لکندو. پوء فيصلو وڻ ڊيٽا هن طرح نظر ايندي:

هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ

اهو بنيادي طور تي ساڳيو ئي آهي جيئن پهرين جدول ۾، پر انهن جي اندر اندر حل انهن جو پنهنجو ڪوڊ آهي، ٿورو ڪجهه شرطي حصو وانگر هڪ if بيان. ڪوڊ جي پاسي تي، اهو فيصلو نوڊس لاء ٻئي ڪالمن ۾ پڙهي سگهندو، پر عمل ڪرڻ لاء هڪ مخصوص حالت ڳولڻ جي بدران (پيڊل ​​جو بال کاٻي پاسي آهي)، اهو شرطي اظهار جو جائزو وٺندو آهي ۽ ان جي مطابق صحيح يا غلط موٽائي ٿو. اهو Lua يا Angelscript اسڪرپٽنگ ٻولي استعمال ڪندي ڪيو ويندو آهي. انهن کي استعمال ڪندي، هڪ ڊولپر پنهنجي راند ۾ شيون وٺي سگھي ٿو (بال ۽ پيڊل) ۽ متغير ٺاهي سگھي ٿو جيڪي اسڪرپٽ ۾ موجود هوندا (ball.position). انهي سان گڏ، اسڪرپٽ ٻولي C++ کان وڌيڪ آسان آهي. ان کي مڪمل تاليف واري اسٽيج جي ضرورت نه آهي، تنهنڪري اهو جلدي ترتيب ڏيڻ لاءِ مثالي آهي راند جي منطق ۽ ”غير ڪوڊرز“ کي اجازت ڏئي ٿو ته پاڻ کي ضروري افعال ٺاهي.

مٿي ڏنل مثال ۾، اسڪرپٽنگ ٻولي صرف مشروط اظهار جو جائزو وٺڻ لاءِ استعمال ٿئي ٿي، پر ان کي عملن لاءِ پڻ استعمال ڪري سگھجي ٿو. مثال طور، ڊيٽا Move Paddle Right هڪ اسڪرپٽ بيان بڻجي سگهي ٿي (ball.position.x += 10). انهي ڪري ته عمل پڻ اسڪرپٽ ۾ بيان ڪيو ويو آهي، پروگرام ڪرڻ جي ضرورت کان سواء پيڊل ساڄي منتقل ڪريو.

توهان اڃا به اڳتي وڃو ۽ سڄي فيصلي واري وڻ کي اسڪرپٽنگ ٻولي ۾ لکي سگهو ٿا. ھي ڪوڊ ھوندو سخت ڪوڊ ٿيل مشروط بيانن جي صورت ۾، پر اھي خارجي اسڪرپٽ فائلن ۾ واقع ھوندا، يعني انھن کي تبديل ڪري سگھجي ٿو بغير پوري پروگرام کي ٻيهر ٺاھڻ جي. توھان اڪثر ڪري سگھوٿا اسڪرپٽ فائل کي گیم پلے دوران جلدي مختلف AI رد عمل کي جانچڻ لاءِ.

واقعي جو جواب

مٿي ڏنل مثال پونگ لاءِ ڀرپور آهن. اهي مسلسل احساس/سوچ/عمل جي چڪر کي هلائيندا آهن ۽ دنيا جي جديد حالت جي بنياد تي عمل ڪندا آهن. پر وڌيڪ پيچيده راندين ۾ توهان کي انفرادي واقعن تي رد عمل ڪرڻ جي ضرورت آهي، ۽ هڪ ڀيرو هر شيء جو جائزو وٺڻ نه گهرجي. هن معاملي ۾ پونگ اڳ ۾ ئي هڪ خراب مثال آهي. اچو ته هڪ ٻيو چونڊيو.

هڪ شوٽر جو تصور ڪريو جتي دشمن متحرڪ هوندا آهن جيستائين اهي پليئر کي نه ڳوليندا آهن، جنهن کان پوءِ اهي عمل ڪندا آهن انهن جي ”اسپيشلائيزيشن“ تي منحصر آهي: ڪو ماڻهو ”رش“ ڏانهن ڊوڙندو، ڪو پري کان حملو ڪندو. اهو اڃا تائين هڪ بنيادي رد عمل وارو نظام آهي - "جيڪڏهن هڪ پليئر ڏٺو ويو آهي، ڪجهه ڪريو" - پر اهو منطقي طور تي پليئر ڏٺو ويو واقعو ۽ رد عمل ۾ ٽوڙي سگهجي ٿو (هڪ جواب چونڊيو ۽ ان تي عمل ڪريو).

اهو اسان کي واپس آڻيندو آهي احساس/سوچ/عمل چڪر ڏانهن. اسان هڪ سينس پارٽ ڪوڊ ڪري سگهون ٿا جيڪو هر فريم کي چيڪ ڪندو ته ڇا AI پليئر کي ڏسي ٿو. جيڪڏهن نه، ڪجهه به نه ٿيندو، پر جيڪڏهن اهو ڏسي ٿو، ته پوء پليئر ڏٺو واقعو پيدا ٿئي ٿو. ڪوڊ ۾ هڪ الڳ سيڪشن هوندو جيڪو چوي ٿو "جڏهن پليئر ڏٺو واقعو ٿئي ٿو، ڪريو" ڪٿي آهي جواب جيڪو توهان کي سوچڻ ۽ عمل جي حصن کي خطاب ڪرڻ جي ضرورت آهي. اهڙيء طرح، توهان پليئر ڏٺو واقعي تي ردعمل قائم ڪنداسين: "جلدي" ڪردار لاء - ChargeAndAttack، ۽ سپنر لاء - HideAndSnipe. اهي رشتا ڊيٽا فائل ۾ ٺاهي سگھجن ٿا جلدي ايڊٽ ڪرڻ لاءِ بغير ٻيهر ٺاهڻ جي. لکت جي ٻولي هتي پڻ استعمال ڪري سگهجي ٿي.

مشڪل فيصلا ڪرڻ

جيتوڻيڪ سادي ردعمل سسٽم تمام طاقتور آهن، اتي ڪيتريون ئي حالتون آهن جتي اهي ڪافي نه آهن. ڪڏهن ڪڏهن توهان کي مختلف فيصلا ڪرڻ جي ضرورت آهي انهي جي بنياد تي جيڪو ايجنٽ هن وقت ڪري رهيو آهي، پر اهو تصور ڪرڻ ڏکيو آهي هڪ شرط طور. ڪڏهن ڪڏهن اتي تمام گهڻيون حالتون آهن انهن کي مؤثر انداز ۾ نمائندگي ڪرڻ لاءِ فيصلي جي وڻ يا رسم الخط ۾. ڪڏهن ڪڏهن توهان کي اڳ ۾ ئي اندازو لڳائڻ جي ضرورت آهي ته ايندڙ قدم تي فيصلو ڪرڻ کان اڳ صورتحال ڪيئن بدلجي ويندي. انهن مسئلن کي حل ڪرڻ لاء وڌيڪ نفيس طريقن جي ضرورت آهي.

محدود رياست مشين

Finite State machine يا FSM (Finit state machine) چوڻ جو هڪ طريقو آهي ته اسان جو ايجنٽ هن وقت ڪيترن ئي ممڪن رياستن مان هڪ ۾ آهي، ۽ اهو هڪ رياست کان ٻي رياست ڏانهن منتقل ٿي سگهي ٿو. اهڙين رياستن جو هڪ خاص تعداد آهي، تنهنڪري نالو. زندگي مان بهترين مثال ٽرئفڪ جي روشني آهي. مختلف هنڌن تي روشني جا مختلف سلسلو آهن، پر اصول ساڳيو آهي - هر رياست ڪجهه نمائندگي ڪري ٿو (روڪ، هلڻ، وغيره). هڪ ٽريفڪ لائيٽ ڪنهن به وقت صرف هڪ رياست ۾ آهي، ۽ سادي ضابطن جي بنياد تي هڪ کان ٻئي ڏانهن هلندو آهي.

اها ساڳي ڪهاڻي آهي NPCs سان راندين ۾. مثال طور، اچو ته ھيٺين رياستن سان ھڪڙو محافظ وٺو:

  • گشت ڪرڻ.
  • حملو ڪرڻ.
  • ڀڄڻ.

۽ ان جي حالت کي تبديل ڪرڻ لاء اهي شرط:

  • جيڪڏهن محافظ دشمن کي ڏسي ٿو، هو حملو ڪري ٿو.
  • جيڪڏهن گارڊ حملو ڪري ٿو پر هاڻي دشمن کي نه ڏسندو آهي، هو گشت ڏانهن موٽندو آهي.
  • جيڪڏهن ڪو گارڊ حملو ڪري ٿو پر سخت زخمي آهي ته هو ڀڄي وڃي ٿو.

توهان پڻ لکي سگهو ٿا if-statements with a guardian state variable ۽ مختلف چيڪن: ڇا ويجهو ڪو دشمن آهي، NPC جي صحت جي سطح ڇا آهي، وغيره. اچو ته ڪجهه وڌيڪ رياستون شامل ڪريون:

  • Idleness - گشت جي وچ ۾.
  • ڳولها - جڏهن محسوس ٿيل دشمن غائب ٿي ويو آهي.
  • مدد ڳولڻ - جڏهن هڪ دشمن ڏٺو ويو آهي، پر اڪيلو وڙهڻ لاء ڏاڍو مضبوط آهي.

انهن مان هر هڪ لاء چونڊ محدود آهي - مثال طور، گارڊ هڪ لڪيل دشمن کي ڳولڻ لاء نه ويندا جيڪڏهن هن جي صحت گهٽ آهي.

آخرڪار، "ifs" جي هڪ وڏي فهرست آهي ، اهو "ڏاڍو پيچيده ٿي سگهي ٿو، تنهنڪري اسان کي هڪ طريقو رسمي ڪرڻ جي ضرورت آهي جيڪا اسان کي رياستن ۽ رياستن جي وچ ۾ منتقلي کي ذهن ۾ رکڻ جي اجازت ڏئي ٿي. هن کي ڪرڻ لاء، اسان سڀني رياستن کي حساب ۾ رکون ٿا، ۽ هر رياست جي تحت اسان هڪ فهرست ۾ لکندا آهيون سڀني رياستن ڏانهن منتقلي، انهن لاء ضروري شرطن سان گڏ.

هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ

هي هڪ رياستي منتقلي ٽيبل آهي - FSM جي نمائندگي ڪرڻ جو هڪ جامع طريقو. اچو ته هڪ خاڪو ڪڍون ۽ مڪمل جائزو وٺون ته ڪيئن اين پي سي جي رويي ۾ تبديلي اچي ٿي.

هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ

ڊراگرام موجوده صورتحال جي بنياد تي هن ايجنٽ لاءِ فيصلو ڪرڻ جي جوهر کي ظاهر ڪري ٿو. ان کان علاوه، هر تير رياستن جي وچ ۾ هڪ منتقلي ڏيکاري ٿو جيڪڏهن ان جي اڳيان شرط صحيح آهي.

هر تازه ڪاري اسان ايجنٽ جي موجوده حالت کي چيڪ ڪريون ٿا، منتقلي جي فهرست ذريعي ڏسو، ۽ جيڪڏهن منتقلي لاء شرطون ملن ٿيون، اها نئين رياست کي قبول ڪري ٿي. مثال طور، هر فريم چيڪ ڪري ٿو ته ڇا 10-سيڪنڊ ٽائمر ختم ٿي ويو آهي، ۽ جيڪڏهن ائين آهي، ته پوءِ گارڊ آئيڊلنگ اسٽيٽ کان گشت ڏانهن وڃي ٿو. ساڳئي طرح، حملي ڪندڙ رياست ايجنٽ جي صحت کي جانچيندي آهي - جيڪڏهن اهو گهٽ آهي، پوء اهو ڀڄي وڃڻ واري رياست ۾ وڃي ٿو.

هي رياستن جي وچ ۾ منتقلي کي سنڀاليندو آهي، پر رياستن سان لاڳاپيل رويي بابت ڇا؟ هڪ خاص رياست لاءِ حقيقي رويي کي لاڳو ڪرڻ جي لحاظ کان، عام طور تي ٻه قسم آهن "هڪ" جتي اسان عملن کي FSM ڏانهن تفويض ڪريون ٿا:

  • ڪارناما جيڪي اسان وقتي طور تي موجوده حالت لاء انجام ڏين ٿا.
  • عمل جيڪي اسان کڻون ٿا جڏهن هڪ رياست کان ٻئي ڏانهن منتقلي.

پهرين قسم جا مثال. گشت واري رياست ايجنٽ کي گشت واري رستي سان هر فريم تي منتقل ڪندي. حملي ڪندڙ رياست هر فريم تي حملي شروع ڪرڻ جي ڪوشش ڪندي يا رياست ڏانهن منتقلي ڪرڻ جي ڪوشش ڪندي جتي اهو ممڪن آهي.

ٻئي قسم لاءِ، منتقلي تي غور ڪريو ”جيڪڏهن دشمن نظر اچي رهيو آهي ۽ دشمن تمام مضبوط آهي، ته پوءِ ڳوليو مدد رياست ڏانهن وڃو. ايجنٽ کي چونڊڻ گهرجي ته ڪٿي مدد لاءِ وڃڻو آهي ۽ هن معلومات کي ذخيرو ڪرڻ گهرجي ته جيئن ڳولڻ واري مدد رياست کي معلوم ٿئي ته ڪٿي وڃڻو آهي. هڪ دفعو مدد ملي ٿي، ايجنٽ واپس حملو ڪندڙ رياست ڏانهن وڃي ٿو. هن موقعي تي، هو اتحادي کي خطري بابت ٻڌائڻ چاهيندو، تنهنڪري NotifyFriendOfThreat ڪارروائي ٿي سگهي ٿي.

هڪ ڀيرو ٻيهر، اسان هن سسٽم کي حس/سوچ/عمل جي چڪر جي لينس ذريعي ڏسي سگهون ٿا. منتقلي منطق پاران استعمال ڪيل ڊيٽا ۾ احساس شامل ڪيو ويو آهي. سوچيو - منتقلي هر رياست ۾ موجود آهي. ۽ ايڪٽ وقتي طور تي رياست اندر يا رياستن جي وچ ۾ منتقلي جي عملن ذريعي ڪيو ويندو آهي.

ڪڏهن ڪڏهن مسلسل پولنگ جي منتقلي جون حالتون قيمتي ٿي سگهن ٿيون. مثال طور، جيڪڏهن هر ايجنٽ پيچيده حسابن کي انجام ڏئي ٿو هر فريم اهو طئي ڪرڻ لاءِ ته ڇا اهو دشمنن کي ڏسي سگهي ٿو ۽ سمجهي سگهي ٿو ته ڇا اهو پيٽرولنگ کان حملي واري حالت ڏانهن منتقل ٿي سگهي ٿو، اهو تمام گهڻو وقت وٺندو CPU.

دنيا جي حالت ۾ اهم تبديلين کي واقعن جي طور تي سمجهي سگهجي ٿو جيڪي انهن جي واقعن تي عمل ڪيو ويندو. بدران FSM جي منتقلي جي حالت جي جانچ ڪندي "ڇا منهنجو ايجنٽ پليئر ڏسي سگهي ٿو؟" هر فريم، هڪ الڳ سسٽم ترتيب ڏئي سگهجي ٿو ته گهٽ بار بار چيڪ ڪرڻ لاء (مثال طور 5 ڀيرا في سيڪنڊ). ۽ نتيجو اهو آهي ته پليئر ڏٺو ويو جڏهن چيڪ گذري ٿو.

اهو منظور ڪيو ويو آهي FSM، جنهن کي هاڻي وڃڻ گهرجي پليئر ڏٺو واقعي واقعي جي حالت حاصل ڪئي ۽ مطابق جواب ڏيو. نتيجو وارو رويو ساڳيو آهي سواءِ جواب ڏيڻ کان اڳ لڳ ڀڳ ناقابل تصور دير جي. پر ڪارڪردگي بهتر ٿي وئي آهي نتيجي ۾ احساس واري حصي کي پروگرام جي الڳ حصي ۾ الڳ ڪرڻ.

درجيبندي محدود رياستي مشين

بهرحال، وڏي FSMs سان ڪم ڪرڻ هميشه آسان ناهي. جيڪڏهن اسان MeleeAttacking ۽ RangedAttacking کي الڳ ڪرڻ لاءِ حملي واري رياست کي وڌائڻ چاهيون ٿا، اسان کي ٻين سڀني رياستن مان منتقلي کي تبديل ڪرڻو پوندو جيڪي حملي واري رياست (موجوده ۽ مستقبل) ڏانهن ويندا آهن.

توهان شايد محسوس ڪيو آهي ته اسان جي مثال ۾ تمام گهڻو نقل ٿيل منتقلي آهن. Idling رياست ۾ گهڻيون منتقلي گشت واري رياست ۾ منتقلي جي هڪجهڙائي آهي. اهو سٺو لڳندو ته پاڻ کي ٻيهر نه ورجايو، خاص طور تي جيڪڏهن اسان وڌيڪ ساڳيون رياستون شامل ڪيون. اهو سمجھ ۾ اچي ٿو ته گروپ Idling ۽ پيٽرولنگ کي "غير جنگي" جي عام ليبل تحت، جتي جنگي رياستن ڏانهن منتقلي جو صرف هڪ عام سيٽ آهي. جيڪڏهن اسان هن ليبل کي هڪ رياست سمجهون ٿا، ته پوءِ Idling ۽ Patrolling substate ٿي وڃن ٿا. نئين غير جنگي سب اسٽيٽ لاءِ الڳ منتقلي ٽيبل استعمال ڪرڻ جو هڪ مثال:

مکيه رياستون:
هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ

جنگي حالت کان ٻاهر:
هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ

۽ ڊاگرام فارم ۾:

هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ

اهو ساڳيو سسٽم آهي، پر هڪ نئين غير جنگي رياست سان جنهن ۾ Idling ۽ گشت شامل آهن. هر رياست سان گڏ هڪ FSM تي مشتمل آهي سب اسٽيٽس (۽ اهي سب اسٽيٽس، موڙ ۾، انهن جي پنهنجي FSMs تي مشتمل آهن - ۽ انهي تي جيستائين توهان جي ضرورت هجي)، اسان حاصل ڪندا آهيون هڪ هائيررڪيڪل فائنيٽ اسٽيٽ مشين يا HFSM (هيئرارڪليڪل فائنٽ اسٽيٽ مشين). غير جنگي رياست کي گروپ ڪندي، اسان بيڪار منتقلي جو هڪ گروپ ڪٽيو. اسان ساڳيو ڪم ڪري سگهون ٿا ڪنهن به نئين رياستن لاءِ عام منتقلي سان. مثال طور، جيڪڏهن مستقبل ۾ اسان حملي واري رياست کي MeleeAttacking ۽ MissileAttacking رياستن تائين وڌايون ٿا، اهي ذيلي رياستون هونديون جيڪي هڪ ٻئي جي وچ ۾ دشمن جي فاصلي ۽ بارود جي دستيابي جي بنياد تي منتقل ٿينديون. نتيجي طور، پيچيده رويي ۽ ذيلي رويي جي نمائندگي ڪري سگھجي ٿو گھٽ ۾ گھٽ نقل جي منتقلي سان.

رويي جو وڻ

HFSM سان، رويي جي پيچيده مجموعا هڪ سادي طريقي سان ٺاهيا ويا آهن. بهرحال، ٿوري مشڪل آهي ته منتقلي جي ضابطن جي صورت ۾ فيصلو ڪرڻ جو موجوده حالت سان ويجھو تعلق آهي. ۽ ڪيترن ئي راندين ۾ اهو ئي آهي جيڪو گهربل آهي. ۽ رياستي ورهاڱي جو محتاط استعمال منتقلي ورجائي جي تعداد کي گھٽائي سگھي ٿو. پر ڪڏهن ڪڏهن توهان کي قاعدن جي ضرورت هوندي آهي جيڪي ڪم ڪن ٿا ته توهان ڪهڙي رياست ۾ آهيو، يا اهي لڳ ڀڳ ڪنهن به رياست ۾ لاڳو ٿين ٿا. مثال طور، جيڪڏهن هڪ ايجنٽ جي صحت 25٪ تائين گهٽجي وڃي ٿي، توهان چاهيو ٿا ته هو ڀڄي وڃي قطع نظر ته هو جنگي، بيڪار، يا ڳالهائڻ ۾ هو - توهان کي هن شرط کي هر رياست ۾ شامل ڪرڻو پوندو. ۽ جيڪڏھن توھان جو ڊزائنر بعد ۾ گھٽ صحت واري حد کي 25٪ کان 10٪ تائين تبديل ڪرڻ چاھي ٿو، پوء اھو وري ڪرڻو پوندو.

مثالي طور، هن صورتحال کي هڪ سسٽم جي ضرورت آهي جنهن ۾ "ڪهڙي رياست ۾ ٿيڻ" بابت فيصلا رياستن کان ٻاهر آهن، صرف هڪ جاء تي تبديليون ڪرڻ ۽ منتقلي جي حالتن کي هٿ نه ڪرڻ لاء. هتي جا وڻ وڻ لڳن ٿا.

انهن تي عمل ڪرڻ جا ڪيترائي طريقا آهن، پر جوهر تقريبن سڀني لاءِ ساڳيو آهي ۽ هڪ فيصلي واري وڻ وانگر آهي: الگورٿم شروع ٿئي ٿو "روٽ" نوڊ سان، ۽ وڻ ۾ نوڊس شامل آهن جيڪي يا ته فيصلا يا عملن جي نمائندگي ڪن ٿا. جيتوڻيڪ ڪجھ اھم فرق آھن:

  • نوڊس ھاڻي ھڪڙي ٽن قدرن مان موٽندا آھن: ڪامياب (جيڪڏھن ڪم مڪمل ٿي ويو آھي)، ناڪام (جيڪڏھن اھو شروع نه ٿي سگھي)، يا ھلندڙ (جيڪڏھن اھو اڃا ھلندو آھي ۽ ڪو حتمي نتيجو نه آھي).
  • ٻن متبادلن جي وچ ۾ چونڊڻ لاءِ وڌيڪ فيصلا نوڊس نه آهن. ان جي بدران، اهي سجاڳ نوڊس آهن، جن ۾ هڪ ٻار نوڊ آهي. جيڪڏهن اهي ڪامياب ٿين ٿا، اهي انهن جي صرف ٻار جي نوڊ تي عمل ڪن ٿا.
  • نوڊس جيڪي ڪارناما انجام ڏين ٿا رننگ ويليو واپس ڪن ٿا ڪمن جي نمائندگي ڪرڻ لاءِ.

نوڊس جو هي ننڍڙو سيٽ هڪ وڏي تعداد ۾ پيچيده رويي ٺاهڻ لاء گڏ ڪري سگهجي ٿو. اچو ته تصور ڪريو HFSM گارڊ پوئين مثال مان هڪ رويي جي وڻ وانگر:

هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ

هن ڍانچي سان، Idling/Patrolling states کان حملي ڪرڻ يا ڪنهن ٻئي رياست ۾ ڪا واضح منتقلي نه ٿيڻ گهرجي. جيڪڏهن ڪو دشمن نظر اچي رهيو آهي ۽ ڪردار جي صحت گهٽ آهي ته، ڦاهيءَ واري نوڊ تي عمل ڪرڻ بند ٿي ويندو، ان کان سواءِ ته اهو ڪنهن نوڊ تي عمل ڪري رهيو هو - گشت ڪرڻ، بيهڻ، حملو ڪرڻ، يا ٻيو ڪو.

هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ

رويي جا وڻ پيچيده آهن- انهن کي ترتيب ڏيڻ جا ڪيترائي طريقا آهن، ۽ سينگارين ۽ مرڪب نوڊس جو صحيح ميلاپ ڳولڻ مشڪل ٿي سگهي ٿو. اتي پڻ سوال آهن ته ڪيترا ڀيرا وڻ کي جانچڻ لاء - ڇا اسان ان جي هر حصي مان وڃڻ چاهيون ٿا يا صرف ان صورت ۾ جڏهن حالتن مان هڪ بدلجي ويو آهي؟ اسان نوڊس سان لاڳاپيل اسٽيٽ کي ڪيئن ذخيرو ڪريون ٿا - اسان ڪيئن ڄاڻون ٿا جڏهن اسان 10 سيڪنڊن لاءِ بيڪار رهيا آهيون، يا اسان ڪيئن ڄاڻون ٿا ته ڪهڙا نوڊس آخري وقت تي عمل ڪري رهيا هئا ته جيئن اسان ترتيب کي صحيح طريقي سان پروسيس ڪري سگهون؟

اهو ئي سبب آهي ته اتي ڪيترائي عمل آهن. مثال طور، ڪجهه سسٽم ان لائن سجاڳي وارن سان سينگار ڪندڙ نوڊس کي تبديل ڪيو آهي. اهي وڻ جو ٻيهر جائزو وٺندا آهن جڏهن سجاڳيءَ جون حالتون بدلجن ٿيون، نوڊس ۾ شامل ٿيڻ ۾ مدد ڪن ٿيون، ۽ وقتي طور تي تازه ڪاريون مهيا ڪن ٿيون.

يوٽيلٽي تي ٻڌل سسٽم

ڪجهه رانديون ڪيترائي مختلف ميڪيڪل آهن. اهو ضروري آهي ته اهي سادي ۽ عام منتقلي جي ضابطن جا سڀئي فائدا حاصل ڪن، پر لازمي طور تي رويي جي مڪمل وڻ جي صورت ۾ نه. انتخابن جي واضح سيٽ يا ممڪن عملن جي وڻ جي بدران، سڀني عملن کي جانچڻ ۽ هن وقت سڀ کان وڌيڪ مناسب چونڊڻ آسان آهي.

يوٽيلٽي تي ٻڌل سسٽم صرف هن سان مدد ڪندي. هي هڪ اهڙو نظام آهي جتي ايجنٽ وٽ مختلف ڪارناما آهن ۽ چونڊيندو آهي ته ڪهڙن کي انجام ڏيڻ لاءِ هر هڪ جي لاڳاپي جي بنياد تي. جتي افاديت هڪ خودمختياري ماپ آهي ته اهو ڪيترو اهم يا گهربل آهي ايجنٽ لاءِ اهو عمل انجام ڏيڻ.

موجوده حالت ۽ ماحول جي بنياد تي هڪ عمل جي حساب سان افاديت، ايجنٽ چيڪ ڪري سگهي ٿو ۽ ڪنهن به وقت سڀ کان وڌيڪ مناسب رياست چونڊيو. هي FSM سان ملندڙ جلندڙ آهي، سواءِ ان جي جتي منتقلي هر امڪاني رياست جي تخميني سان طئي ڪئي ويندي آهي، بشمول موجوده هڪ. مهرباني ڪري نوٽ ڪريو ته اسان سڀ کان وڌيڪ ڪارائتو عمل چونڊيندا آهيون اڳتي وڌڻ لاءِ (يا رکو جيڪڏهن اسان اڳ ۾ ئي مڪمل ڪري چڪا آهيون). وڌيڪ قسم جي لاء، هي هڪ ننڍي فهرست مان هڪ متوازن پر بي ترتيب چونڊ ٿي سگهي ٿو.

سسٽم يوٽيلٽي ويلز جي هڪ خودمختياري رينج کي تفويض ڪري ٿو - مثال طور، 0 (مڪمل طور تي ناپسنديده) کان 100 (مڪمل طور تي گهربل). هر عمل ۾ ڪيترائي پيرا ميٽر آهن جيڪي هن قدر جي حساب سان متاثر ڪن ٿا. اسان جي سرپرست مثال ڏانهن موٽڻ:

هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ

عملن جي وچ ۾ تبديليون مبهم آهن- ڪا به رياست ڪنهن ٻئي جي پيروي ڪري سگهي ٿي. عمل جي ترجيحات واپسي يوٽيلٽي ويلز ۾ مليا آھن. جيڪڏهن هڪ دشمن نظر اچي رهيو آهي، ۽ اهو دشمن مضبوط آهي، ۽ ڪردار جي صحت گهٽ آهي، ته پوءِ ٻنهي ڀڄڻ ۽ فائڊنگ هيلپ اعليٰ غير صفر قدر واپس ڪندا. انهي صورت ۾، FindingHelp هميشه اعلي هوندي. ساڳئي طرح، غير جنگي سرگرميون ڪڏهن به 50 کان وڌيڪ واپس نه اينديون آهن، تنهنڪري اهي هميشه جنگي ماڻهن کان گهٽ هوندا. توهان کي اهو حساب ۾ رکڻو پوندو جڏهن ڪارناما ٺاهي رهيا آهيو ۽ انهن جي افاديت جي حساب سان.

اسان جي مثال ۾، ڪارناما يا ته هڪ مقرر مسلسل قيمت يا ٻن مقرر ڪيل قدرن مان هڪ واپسي. هڪ وڌيڪ حقيقي نظام قدرن جي لڳاتار رينج مان اندازو لڳائيندو. مثال طور، فلينگ ايڪشن اعلي يوٽيلٽي ويلز واپس ڏئي ٿو جيڪڏهن ايجنٽ جي صحت گهٽ آهي، ۽ حملي آور ايڪشن گهٽ يوٽيلٽي ويلز موٽائي ٿو جيڪڏهن دشمن تمام مضبوط آهي. ان ڪري، ڀڄڻ وارو عمل ڪنهن به صورت ۾ حملي ڪرڻ تي اوليت رکي ٿو جتي ايجنٽ محسوس ڪري ٿو ته هن وٽ دشمن کي شڪست ڏيڻ لاءِ ڪافي صحت ناهي. هي عملن کي ڪنهن به معيار جي بنياد تي ترجيح ڏيڻ جي اجازت ڏئي ٿو، انهي طريقي سان وڌيڪ لچڪدار ۽ متغير هڪ رويي جي وڻ يا FSM کان.

هر عمل ۾ پروگرام جي حساب سان ڪيتريون ئي شرطون هونديون آهن. اهي لکت واري ٻولي ۾ يا رياضياتي فارمولن جي هڪ سيريز جي طور تي لکي سگهجن ٿيون. سمز، جيڪو هڪ ڪردار جي روزاني معمول کي ترتيب ڏئي ٿو، حساب جي هڪ اضافي پرت شامل ڪري ٿو - ايجنٽ کي "حوصلا افزائي" جو هڪ سلسلو ملي ٿو جيڪو افاديت جي درجه بندي کي متاثر ڪري ٿو. جيڪڏهن هڪ ڪردار بکيو آهي، اهي وقت سان گڏ اڃا به بکيو ٿي ويندا، ۽ EatFood عمل جي افاديت جي قيمت وڌي ويندي جيستائين ڪردار ان کي انجام نه ڏئي، بک جي سطح کي گھٽائي ۽ EatFood جي قيمت صفر ڏانهن واپس آڻيندي.

ريٽنگ سسٽم جي بنياد تي عملن کي چونڊڻ جو خيال بلڪل سادو آهي، تنهنڪري يوٽيلٽي تي ٻڌل سسٽم کي AI فيصلي سازي جي عملن جي حصي طور استعمال ڪري سگهجي ٿو، بلڪه انهن جي مڪمل متبادل جي طور تي. فيصلي جو وڻ شايد ٻن ٻارن جي نوڊس جي يوٽيلٽي ريٽنگ لاءِ پڇي ۽ اعليٰ چونڊيو. اهڙي طرح، هڪ رويي جي وڻ وٽ هڪ جامع يوٽيلٽي نوڊ ٿي سگهي ٿو عملن جي افاديت جو جائزو وٺڻ لاءِ فيصلو ڪرڻ لاءِ ته ڪهڙي ٻار کي عمل ڪرڻ گهرجي.

تحريڪ ۽ نيويگيشن

پوئين مثالن ۾، اسان وٽ ھڪڙو پليٽ فارم ھو جنھن کي اسان کاٻي يا ساڄي منتقل ڪيو، ۽ ھڪڙو گارڊ جيڪو گشت ڪيو يا حملو ڪيو. پر اسان ڪيتري عرصي دوران ايجنٽ تحريڪ کي ڪيئن سنڀاليندا آهيون؟ اسان رفتار ڪيئن مقرر ڪريون ٿا، اسان رڪاوٽن کان ڪيئن بچون ٿا، ۽ اسان ڪيئن رستي جي رٿابندي ڪريون ٿا جڏهن منزل تي پهچڻ هڪ سڌي لڪير ۾ هلڻ کان وڌيڪ ڏکيو آهي؟ اچو ته ان تي نظر وجهون.

Management

شروعاتي اسٽيج تي، اسان فرض ڪنداسين ته هر ايجنٽ جي رفتار جي قيمت آهي، جنهن ۾ اهو شامل آهي ته اهو ڪيترو تيز ۽ ڪهڙي طرف هلي رهيو آهي. اهو ميٽر في سيڪنڊ، ڪلوميٽر في ڪلاڪ، پکسل في سيڪنڊ، وغيره ۾ ماپي سگهجي ٿو. احساس/سوچڻ/ايڪٽ لوپ کي ياد ڪندي، اسان تصور ڪري سگهون ٿا ته Think حصو هڪ رفتار چونڊي ٿو، ۽ Act حصو ان رفتار کي ايجنٽ تي لاڳو ڪري ٿو. عام طور تي راندين ۾ هڪ فزڪس سسٽم هوندو آهي جيڪو توهان لاءِ اهو ڪم ڪندو آهي، هر شئي جي رفتار جي قيمت سکڻ ۽ ان کي ترتيب ڏيڻ. تنهن ڪري، توهان AI کي هڪ ڪم سان ڇڏي سگهو ٿا - اهو فيصلو ڪرڻ لاءِ ته ايجنٽ کي ڪهڙي رفتار هجڻ گهرجي. جيڪڏهن توهان کي خبر آهي ته ايجنٽ ڪٿي هجڻ گهرجي، پوء توهان کي ان کي صحيح هدايت ۾ هڪ مقرر رفتار تي منتقل ڪرڻ جي ضرورت آهي. هڪ تمام معمولي مساوات:

desired_travel = منزل_پوزيشن - ايجنٽ_پوزيشن

هڪ 2D دنيا جو تصور ڪريو. ايجنٽ پوائنٽ تي آهي (-2, -2)، منزل ڪٿي آهي اتر اوڀر ۾ پوائنٽ تي (30, 20)، ۽ ايجنٽ لاء گهربل رستو اتي آهي (32, 22). اچو ته چئو ته اهي پوزيشن ميٽرن ۾ ماپي وينديون آهن - جيڪڏهن اسان ايجنٽ جي رفتار کي 5 ميٽر في سيڪنڊ ۾ وٺون ٿا، ته پوء اسان پنهنجي بي گھرڻ واري ويڪر کي ماپ ڪنداسين ۽ تقريبا (4.12، 2.83) جي رفتار حاصل ڪنداسين. انهن پيرا ميٽرز سان، ايجنٽ تقريباً 8 سيڪنڊن ۾ پنهنجي منزل تي پهچندو.

توهان ڪنهن به وقت قدر ٻيهر ڳڻپ ڪري سگهو ٿا. جيڪڏھن ايجنٽ ھدف ڏانھن اڌ رستي تي ھجي، ته حرڪت اڌ ڊگھائي ھوندي، پر جيئن ته ايجنٽ جي وڌ ۾ وڌ رفتار 5 m/s آھي (اسان مٿي ڏنل فيصلو ڪيو آھي)، رفتار ساڳي ھوندي. ھي ھدف کي ھلائڻ لاءِ پڻ ڪم ڪري ٿو، ايجنٽ کي ننڍيون تبديليون ڪرڻ جي اجازت ڏئي ٿو جيئن اھي ھلندا آھن.

پر اسان چاهيون ٿا وڌيڪ تغيرات - مثال طور، رفتار کي تيزيءَ سان وڌائڻ لاءِ هڪ ڪردار کي بيٺو کان ڊوڙڻ تائين نقل ڪرڻ لاءِ. اهو ئي ڪري سگهجي ٿو آخر ۾ بند ڪرڻ کان اڳ. اهي خاصيتون اسٽيئرنگ رويي جي طور تي سڃاتل آهن، جن مان هر هڪ کي مخصوص نالا آهن: ڳولڻ، ڀڄڻ، پهچڻ، وغيره. خيال اهو آهي ته تيز رفتار قوتن کي ايجنٽ جي رفتار تي لاڳو ڪري سگهجي ٿو، ايجنٽ جي پوزيشن ۽ موجوده رفتار جي منزل سان مقابلي جي بنياد تي. مقصد ڏانھن منتقل ڪرڻ جا مختلف طريقا استعمال ڪرڻ لاء.

هر رويي جو ٿورو مختلف مقصد آهي. ڳولهڻ ۽ پهچڻ جا طريقا آهن ايجنٽ کي منزل ڏانهن منتقل ڪرڻ جا. رڪاوٽ کان بچڻ ۽ الڳ ٿيڻ ايجنٽ جي تحريڪ کي ترتيب ڏئي ٿو ته جيئن مقصد جي رستي ۾ رڪاوٽون کان بچڻ لاء. ترتيب ۽ هم آهنگي ايجنٽن کي گڏ هلندا رهن ٿا. مختلف اسٽيئرنگ رويي جو ڪو به تعداد سمورو ڪري سگھجي ٿو ھڪڙو واحد رستو ویکٹر پيدا ڪرڻ لاءِ سڀني عنصرن کي حساب ۾ رکندي. هڪ ايجنٽ جيڪو استعمال ڪري ٿو آمد، علحدگي، ۽ رڪاوٽ کان بچڻ واري رويي کي ڀتين ۽ ٻين ايجنٽ کان پري رهڻ لاء. اهو طريقو سٺو ڪم ڪري ٿو کليل جڳهن ۾ بغير غير ضروري تفصيلن جي.

وڌيڪ مشڪل حالتن ۾، مختلف رويي جو اضافو وڌيڪ خراب ڪم ڪري ٿو - مثال طور، هڪ ايجنٽ اچڻ ۽ رڪاوٽ کان بچڻ جي وچ ۾ تڪرار سبب ڀت ۾ ڦاسي سگھي ٿو. تنهن ڪري، توهان کي انهن اختيارن تي غور ڪرڻ جي ضرورت آهي جيڪي صرف سڀني قدرن کي شامل ڪرڻ کان وڌيڪ پيچيده آهن. طريقو هي آهي: هر رويي جي نتيجن کي شامل ڪرڻ بدران، توهان مختلف طرفن ۾ تحريڪ تي غور ڪري سگهو ٿا ۽ بهترين اختيار چونڊيو.

تنهن هوندي به، هڪ پيچيده ماحول ۾ مئل سرن ۽ اختيارن سان گڏ ڪهڙو رستو وڃڻو آهي، اسان کي ڪجهه وڌيڪ ترقي يافته جي ضرورت پوندي.

رستو ingولهڻ

ھلندڙ ميدان (فٽبال جو ميدان يا ميدان) ۾ سادي ھلچل لاءِ ھلندڙ عمل بھترين آھن، جتي A کان B تائين پھچڻ ھڪڙو سڌو رستو آھي، جنھن ۾ رڳو رڪاوٽن جي چوڌاري ننڍا ننڍا رستا آھن. پيچيده رستن لاء، اسان کي رستي جي ڳولا جي ضرورت آهي، جيڪو دنيا کي ڳولڻ ۽ ان ذريعي رستي تي فيصلو ڪرڻ جو هڪ طريقو آهي.

سڀ کان آسان آهي ايجنٽ جي اڳيان هر چورس تي گرڊ لاڳو ڪرڻ ۽ اندازو لڳايو ته انهن مان ڪهڙي کي منتقل ڪرڻ جي اجازت آهي. جيڪڏهن انهن مان هڪ منزل آهي، ته پوءِ هر چورس کان پوئين هڪ تائين رستي جي پيروي ڪريو جيستائين توهان شروعات ۾ پهچي وڃو. اهو رستو آهي. ٻي صورت ۾، عمل کي ويجهي ٻين چوڪن سان ورجايو جيستائين توهان پنهنجي منزل نه ڳوليندا آهيو يا توهان چوڪن کان ٻاهر نڪرندا آهيو (مطلب ته ڪو ممڪن رستو ناهي). اھو اھو آھي جيڪو رسمي طور تي سڃاتل آھي Breadth-First Search يا BFS (براڊٿ-فرسٽ سرچ الگورٿم). هر قدم تي هو سڀني طرفن ۾ ڏسندو آهي (تنهنڪري ويڪر، "چوڪر"). سرچ اسپيس ھڪ موج فرنٽ وانگر آھي جيڪو ھلندو رھندو آھي تيستائين مطلوب مقام تي پھچندو آھي - سرچ اسپيس ھر قدم تي پکڙجي ويندي آھي تيستائين آخري نقطو شامل ڪيو ويندو آھي، جنھن کان پوءِ ان کي شروعات ڏانھن واپس ڳولي سگھجي ٿو.

هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ

نتيجي طور، توھان چوڪن جي ھڪڙي فهرست حاصل ڪندا جنھن سان گڏ مطلوب رستو مرتب ڪيو ويو آھي. هي رستو آهي (تنهنڪري، رستو ڳولڻ) - جڳهن جي هڪ فهرست جنهن کي ايجنٽ دورو ڪندو جڏهن منزل تي عمل ڪندي.

ڏنو ويو آهي ته اسان ڄاڻون ٿا دنيا جي هر چورس جي پوزيشن، اسان استعمال ڪري سگهون ٿا اسٽيئرنگ رويي کي رستي ۾ هلڻ لاءِ - نوڊ 1 کان نوڊ 2 تائين، پوءِ نوڊ 2 کان نوڊ 3 تائين، وغيره. سڀ کان آسان آپشن آهي ته ايندڙ چورس جي مرڪز ڏانهن وڃو، پر ان کان به بهتر اختيار اهو آهي ته ڪنارن جي وچ ۾ موجوده چورس ۽ ايندڙ چورس جي وچ ۾ روڪيو وڃي. انهي جي ڪري، ايجنٽ تيز موڙ تي ڪنڊن کي ڪٽڻ جي قابل هوندو.

BFS الورورٿم ۾ پڻ نقصانات آهن - اهو "غلط" هدايت ۾ ڪيترن ئي چوڪن کي ڳولي ٿو جيئن "صحيح" هدايت ۾. هي اهو آهي جتي هڪ وڌيڪ پيچيده الگورتھم سڏيو ويندو آهي A * (A اسٽار) راند ۾ اچي ٿو. اهو ساڳيو ڪم ڪري ٿو، پر ان جي بدران پاڙيسري چوڪن کي انڌو جانچڻ (پوءِ پاڙيسري جا پاڙيسري، پوءِ پاڙيسري جا پاڙيسري جا پاڙيسري، ۽ پوءِ) اهو نوڊس کي هڪ فهرست ۾ گڏ ڪري ٿو ۽ انهن کي ترتيب ڏئي ٿو ته جيئن ايندڙ نوڊ جي جانچ ڪئي وڃي. جيڪو ننڍو رستو وٺي ٿو. نوڊس ترتيب ڏنل ھيورسٽڪ جي بنياد تي جيڪي ٻن شين کي مدنظر رکن ٿا - ھڪ فرضي رستي جي ”قيمت“ گھربل چورس تائين (بشمول ڪنھن به سفر جي خرچ) ۽ اندازو لڳايو ته اھو چورس منزل کان ڪيترو پري آھي (ڳوڙھ کي تعصب ڪندي. صحيح هدايت).

هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ

هي مثال ڏيکاري ٿو ته ايجنٽ هڪ وقت ۾ هڪ چورس کي ڳولي ٿو، هر ڀيري ڀرسان هڪ چونڊيو جيڪو سڀ کان وڌيڪ اميد رکندڙ آهي. نتيجو وارو رستو BFS وانگر ساڳيو آهي، پر پروسيس ۾ گهٽ چوڪن تي غور ڪيو ويو - جيڪو راند جي ڪارڪردگي تي وڏو اثر آهي.

بغير گرڊ جي حرڪت

پر اڪثر رانديون گرڊ تي نه رکيا ويا آهن، ۽ اهو اڪثر ڪري ناممڪن آهي ائين ڪرڻ کان سواءِ حقيقت جي قرباني ڏيڻ کان سواءِ. سمجھوتا ​​جي ضرورت آھي. چوڪن کي ڪهڙي سائيز هجڻ گهرجي؟ تمام وڏا آهن ۽ اهي صحيح طرح ننڍڙن ڪنڊرن يا موڙ جي نمائندگي نه ڪري سگهندا، تمام ننڍا ۽ ڳولڻ لاءِ تمام گهڻا چوڪا هوندا، جن ۾ آخرڪار گهڻو وقت لڳندو.

سمجھڻ جي پهرين شيء اها آهي ته هڪ ميش اسان کي ڳنڍيل نوڊس جو گراف ڏئي ٿو. A* ۽ BFS الگورتھم اصل ۾ گرافس تي ڪم ڪن ٿا ۽ اسان جي ميش جي پرواھ نه ڪندا آھن. اسان راند جي دنيا ۾ ڪٿي به نوڊس رکي سگهون ٿا: جيستائين ڪنهن به ٻن ڳنڍيل نوڊس جي وچ ۾ ڪنيڪشن آهي، انهي سان گڏ شروعاتي ۽ آخر پوائنٽن جي وچ ۾ ۽ گهٽ ۾ گهٽ هڪ نوڊس جي وچ ۾، الورورٿم ڪم ڪندو اڳي وانگر. اهو اڪثر ڪري هڪ واٽ پوائنٽ سسٽم سڏيو ويندو آهي، ڇاڪاڻ ته هر نوڊ دنيا ۾ هڪ اهم پوزيشن جي نمائندگي ڪري ٿو جيڪو ڪنهن به فرضي رستن جو حصو ٿي سگهي ٿو.

هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ
مثال 1: هر چورس ۾ هڪ ڳٽ. ڳولا نوڊ کان شروع ٿئي ٿي جتي ايجنٽ واقع آهي ۽ مطلوب چورس جي نوڊ تي ختم ٿئي ٿو.

هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ
مثال 2: نوڊس جو هڪ ننڍڙو سيٽ (واٽ پوائنٽس). ڳولا ايجنٽ جي چورس تي شروع ٿئي ٿي، نوڊس جي گهربل تعداد ذريعي وڃي ٿي، ۽ پوء منزل تائين جاري رهي ٿي.

هي هڪ مڪمل طور تي لچڪدار ۽ طاقتور نظام آهي. پر اهو فيصلو ڪرڻ ۾ ڪجهه احتياط جي ضرورت آهي ته ڪٿي ۽ ڪيئن رستو رکڻو آهي، ٻي صورت ۾ ايجنٽ شايد ويجهي نقطي کي نه ڏسي سگهندا ۽ رستو شروع ڪرڻ جي قابل نه هوندا. اهو آسان ٿيندو جيڪڏهن اسان خود بخود دنيا جي جاميٽري جي بنياد تي واٽ پوائنٽس رکي سگهون.

هي اهو آهي جتي نيويگيشن ميش يا نيوميش (نيويگيشن ميش) ظاهر ٿئي ٿو. اهو عام طور تي مثلث جو هڪ 2D ميش آهي جيڪو دنيا جي جاميٽري تي ڍڪيل آهي - جتي به ايجنٽ کي هلڻ جي اجازت آهي. ميش ۾ موجود ٽڪنڊيز مان هر هڪ گراف ۾ هڪ نوڊ بڻجي ويندو آهي، ۽ ان ۾ ٽي ويجها ٽڪنڊا هوندا آهن جيڪي گراف ۾ ويجها نوڊ بڻجي ويندا آهن.

هي تصوير يونٽي انجڻ مان هڪ مثال آهي - اهو دنيا ۾ جاميٽري جو تجزيو ڪيو ۽ هڪ نيومش ٺاهيو (اسڪرين شاٽ ۾ هلڪو نيري ۾). نيوميش ۾ هر هڪ پوليگون هڪ علائقو آهي جتي هڪ ايجنٽ اٿي سگهي ٿو يا هڪ پوليگون کان ٻئي پوليگون ڏانهن منتقل ٿي سگهي ٿو. هن مثال ۾، ڪثرت فرش کان ننڍا آهن جن تي اهي واقع آهن - اهو ڪيو ويو آهي اڪائونٽ ۾ ايجنٽ جي سائيز کي، جيڪو ان جي نامياري پوزيشن کان ٻاهر وڌايو ويندو.

هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ

اسان هن ميش ذريعي رستو ڳولي سگهون ٿا، ٻيهر A* الورورٿم استعمال ڪندي. اهو اسان کي دنيا ۾ تقريبن مڪمل رستو ڏيندو، جيڪو سڀني جاميٽري کي حساب ۾ رکي ٿو ۽ غير ضروري نوڊس جي ضرورت نه آهي ۽ رستي جي نقطي ٺاهڻ جي ضرورت ناهي.

Pathfinding تمام وسيع موضوع آھي جنھن لاءِ مضمون جو ھڪڙو حصو ڪافي نه آھي. جيڪڏھن توھان ان کي وڌيڪ تفصيل سان پڙھڻ چاھيو ٿا، پوء اھو مدد ڪندو اميت پٽيل ويب سائيٽ.

منصوبه بندي

اسان pathfinding سان سکيو آهي ته ڪڏهن ڪڏهن اهو ڪافي ناهي ته صرف هڪ طرف چونڊڻ ۽ هلڻ - اسان کي هڪ رستو چونڊڻو پوندو ۽ پنهنجي گهربل منزل تي پهچڻ لاءِ ڪجهه موڙ ٺاهڻا پوندا. اسان هن خيال کي عام ڪري سگهون ٿا: هڪ مقصد حاصل ڪرڻ صرف ايندڙ قدم نه آهي، پر هڪ مڪمل تسلسل آهي جتي ڪڏهن ڪڏهن توهان کي ڪيترن ئي قدمن کي اڳتي وڌڻ جي ضرورت آهي انهي کي ڳولڻ لاء پهريون ڇا هجڻ گهرجي. اهو منصوبو سڏيو ويندو آهي. رٿابندي ڪرڻ جي ڪيترن ئي توسيعن مان هڪ جي طور تي پاٿ فائنڊنگ سمجهي سگهجي ٿو. اسان جي احساس / سوچ / عمل جي چڪر جي لحاظ کان، هي اهو آهي جتي سوچيو حصو مستقبل لاء ڪيترن ئي ايڪٽ حصن جو منصوبو ٺاهي ٿو.

اچو ته بورڊ جي راند جادو جا مثال ڏسو: گڏجاڻي. اسان پهريون ڀيرو اسان جي هٿن ۾ ڪارڊ جي هيٺين سيٽ سان وڃون ٿا:

  • دلدل - ڏئي ٿو 1 ڪارو منا (لينڊ ڪارڊ).
  • ٻيلو - ڏئي ٿو 1 گرين مينا (لينڊ ڪارڊ).
  • Fugitive Wizard - طلب ڪرڻ لاءِ 1 نيري من جي ضرورت آهي.
  • ايلويش ميسٽڪ - طلب ڪرڻ لاءِ 1 سائي مينا جي ضرورت آهي.

اسان ان کي آسان ڪرڻ لاء باقي ٽن ڪارڊ کي نظر انداز ڪريون ٿا. ضابطن جي مطابق، هڪ رانديگر کي 1 لينڊ ڪارڊ کيڏڻ جي اجازت هوندي آهي هر موڙ، هو هن ڪارڊ کي "ٽيپ" ڪري سگهي ٿو ان مان مانا ڪڍڻ لاء، ۽ پوء منتر (بشمول هڪ مخلوق کي سڏڻ) من جي مقدار جي مطابق. هن صورتحال ۾، انساني پليئر ڄاڻي ٿو ٻيلو کيڏڻ، ٽيپ ڪريو 1 گرين مينا، ۽ پوء ايلوش صوفي کي سڏڻ. پر راند AI اهو ڪيئن معلوم ڪري سگهي ٿو؟

آسان منصوبه بندي

معمولي طريقو اهو آهي ته هر عمل کي بدلي ۾ آزمايو وڃي جيستائين ڪو به مناسب نه بچيو وڃي. ڪارڊ ڏسڻ سان، AI ڏسي ٿو ته ڇا سومپ راند ڪري سگهي ٿو. ۽ اھو ادا ڪندو آھي. هن موڙ کي ڇڏي ڪي ٻيا عمل آهن؟ اهو يا ته ايلويش صوفي يا ڀوڳ جادوگر کي طلب نٿو ڪري سگهي، ڇاڪاڻ ته انهن کي طلب ڪرڻ لاءِ ترتيب سان سائي ۽ نيري من جي ضرورت آهي، جڏهن ته دلدل صرف ڪاري ماني فراهم ڪري ٿي. ۽ هو هاڻي ٻيلو کيڏڻ جي قابل نه هوندو، ڇاڪاڻ ته هو اڳ ۾ ئي سومپ کيڏي چڪو آهي. اهڙيء طرح، راند AI قاعدن جي پيروي ڪئي، پر ان کي خراب ڪيو. بهتر ڪري سگهجي ٿو.

منصوبه بندي ڪارناما جي هڪ فهرست ڳولي سگهي ٿي جيڪا راند کي گهربل حالت ۾ آڻيندي. جيئن ته رستي تي هر چورس پاڙيسري (رستي ڳولڻ ۾) هئا، هر منصوبي ۾ هر عمل ۾ پاڙيسري يا جانشين پڻ آهن. اسان انهن عملن ۽ ايندڙ عملن کي ڳولي سگهون ٿا جيستائين اسان مطلوب حالت تي پهچي نه وڃون.

اسان جي مثال ۾، گهربل نتيجو آهي "جيڪڏهن ممڪن هجي ته هڪ مخلوق کي سڏي." موڙ جي شروعات ۾، اسان ڏسون ٿا صرف ٻه ممڪن عملن جي اجازت ڏنل راند جي ضابطن جي ذريعي:

1. دلدل کيڏيو (نتيجو: راند ۾ دلدل)
2. ٻيلو کيڏيو (نتيجو: ٻيلو راند ۾)

هر عمل ڪيو ويو وڌيڪ ڪارناما ڏانهن وٺي سگھي ٿو ۽ ٻين کي بند ڪري سگھي ٿو، ٻيهر راند جي ضابطن تي منحصر ڪري ٿو. تصور ڪريو ته اسان سومپ کيڏيو آھي - ھي ھٽائي ڇڏيندو سومپ کي ايندڙ قدم طور (اسان اڳ ۾ ئي ان کي راند ڪيو آھي)، ۽ اھو پڻ ٻيلي کي ختم ڪري ڇڏيندو (ڇاڪاڻ ته ضابطن جي مطابق توھان کيڏي سگھو ٿا ھڪڙو لينڊ ڪارڊ في موڙ). ان کان پوء، AI شامل ڪري ٿو 1 ڪارو ماني حاصل ڪرڻ کي ايندڙ قدم طور ڇو ته ٻيو ڪو به اختيار نه آهي. جيڪڏهن هو اڳتي وڌندو ۽ ٽيپ دي سومپ کي چونڊيندو، هن کي 1 يونٽ ڪارو مانا ملندو ۽ ان سان ڪجهه به نه ڪري سگهندو.

1. دلدل کيڏيو (نتيجو: راند ۾ دلدل)
1.1 ”ٽيپ“ دلدل (نتيجو: دلدل ”ٽيپ ٿيل“، ڪاري ماني جو +1 يونٽ)
ڪوبه عمل دستياب ناهي - END
2. ٻيلو کيڏيو (نتيجو: ٻيلو راند ۾)

ڪارناما جي فهرست مختصر هئي، اسان هڪ آخري آخر تائين پهچي ويا. اسان ايندڙ قدم لاء عمل کي ورجائي. اسان ٻيلو کيڏيون ٿا، ايڪشن کي کوليو ”1 گرين مانا حاصل ڪريو“، جنهن جي نتيجي ۾ ٽيون ايڪشن کلي ويندو - ايلوش صوفي کي طلب ڪيو.

1. دلدل کيڏيو (نتيجو: راند ۾ دلدل)
1.1 ”ٽيپ“ دلدل (نتيجو: دلدل ”ٽيپ ٿيل“، ڪاري ماني جو +1 يونٽ)
ڪوبه عمل دستياب ناهي - END
2. ٻيلو کيڏيو (نتيجو: ٻيلو راند ۾)
2.1 "ٽيپ" ٻيلو (نتيجو: ٻيلو "ٽيپ ٿيل" آهي، سائي ماني جو +1 يونٽ)
2.1.1 سمن ايلويش ميسٽڪ (نتيجو: ايلويش ميسٽڪ راند ۾، -1 گرين مينا)
ڪوبه عمل دستياب ناهي - END

آخرڪار، اسان سڀني ممڪن ڪمن کي ڳولي ورتو ۽ ھڪڙو منصوبو مليو جيڪو ھڪڙي مخلوق کي سڏي ٿو.

هي هڪ تمام آسان مثال آهي. اهو مشورو ڏنو ويو آهي ته بهترين ممڪن منصوبو چونڊيو، بجاء ڪنهن به منصوبي جي ڀيٽ ۾ جيڪو ڪجهه معيار کي پورو ڪري ٿو. اهو عام طور تي ممڪن آهي ته امڪاني منصوبن جو اندازو لڳائڻ جي نتيجن جي بنياد تي يا انهن جي عمل جي مجموعي فائدي جي بنياد تي. توهان پنهنجو پاڻ کي لينڊ ڪارڊ کيڏڻ لاءِ 1 پوائنٽ ۽ مخلوق کي سڏڻ لاءِ 3 پوائنٽ اسڪور ڪري سگهو ٿا. دلدل کيڏڻ هڪ 1 پوائنٽ پلان هوندو. ۽ ٻيلو کيڏڻ → ٻيلي تي ٽيپ ڪريو → سمن ايلويش ميسٽڪ فوري طور تي 4 پوائنٽ ڏيندو.

اهو ڪيئن آهي منصوبابندي جادو ۾ ڪم ڪري ٿو: گڏجاڻي، پر ساڳيو منطق ٻين حالتن ۾ لاڳو ٿئي ٿو. مثال طور، شطرنج ۾ هلڻ لاءِ بشپ لاءِ ڪمرو ٺاهڻ لاءِ هڪ پيادو منتقل ڪرڻ. يا هن طرح محفوظ طور تي XCOM ۾ شوٽ ڪرڻ لاءِ ڀت جي پويان ڍڪ وٺو. عام طور تي، توهان اهو خيال حاصل ڪيو.

بهتر رٿابندي

ڪڏهن ڪڏهن هر ممڪن اختيار تي غور ڪرڻ لاء تمام گهڻا امڪاني ڪارناما آهن. جادوءَ سان مثال ڏانهن موٽڻ: گڏجاڻي: اچو ته چئو ته راند ۾ ۽ توهان جي هٿ ۾ ڪيترائي زمين ۽ مخلوق ڪارڊ آهن - هلڻ جي ممڪن مجموعن جو تعداد درجن ۾ ٿي سگهي ٿو. مسئلا جا ڪيترائي حل آهن.

پهريون طريقو پوئتي زنجير آهي. سڀني مجموعن جي ڪوشش ڪرڻ جي بدران، اهو بهتر آهي ته حتمي نتيجو سان شروع ڪرڻ ۽ سڌو رستو ڳولڻ جي ڪوشش ڪريو. وڻ جي پاڙ کان هڪ مخصوص پني ڏانهن وڃڻ بدران، اسان ان جي سامهون رخ ۾ هلون ٿا - پني کان جڙ تائين. اهو طريقو آسان ۽ تيز آهي.

جيڪڏهن دشمن وٽ 1 صحت آهي، توهان ڳولي سگهو ٿا "ڊيل 1 يا وڌيڪ نقصان" جو منصوبو. هن کي حاصل ڪرڻ لاء، ڪجهه شرطن کي پورا ڪرڻ گهرجي:

1. نقصان پھچڻ سبب ٿي سگھي ٿو - اھو ھٿ ۾ ھجڻ گھرجي.
2. هڪ جادو ڪرڻ لاء، توهان کي من جي ضرورت آهي.
3. ماني حاصل ڪرڻ لاء، توهان کي لينڊ ڪارڊ کيڏڻ جي ضرورت آهي.
4. لينڊ ڪارڊ کيڏڻ لاءِ، توھان کي ھٿ ۾ ھجڻ گھرجي.

ٻيو طريقو بهترين آهي - پهرين ڳولا. سڀني رستن جي ڪوشش ڪرڻ بدران، اسان سڀ کان وڌيڪ مناسب چونڊيو ٿا. گهڻو ڪري، هي طريقو غير ضروري ڳولا جي قيمت کان سواء بهترين منصوبو ڏئي ٿو. A* بهترين پهرين ڳولها جو هڪ روپ آهي - شروعات کان سڀ کان وڌيڪ اميد رکندڙ رستن کي جانچڻ سان، اهو اڳ ۾ ئي ٻين اختيارن کي جانچڻ کان سواءِ بهترين رستو ڳولي سگهي ٿو.

هڪ دلچسپ ۽ وڌندڙ مقبول بهترين-پهريون ڳولا جو اختيار مونٽي ڪارلو وڻ جي ڳولا آهي. ان جي بدران اندازو لڳائڻ جي ته ڪهڙا منصوبا ٻين کان بهتر آهن جڏهن هر ايندڙ عمل کي چونڊيو، الورورٿم هر قدم تي بي ترتيب جانشين کي چونڊيندو آهي جيستائين اهو پڄاڻي تي پهچي (جڏهن منصوبي جي نتيجي ۾ فتح يا شڪست هجي). آخري نتيجو وري استعمال ڪيو ويندو آھي اڳوڻن اختيارن جو وزن وڌائڻ يا گھٽائڻ لاءِ. هن عمل کي هڪ قطار ۾ ڪيترائي ڀيرا ورجائڻ سان، الورورٿم هڪ سٺو اندازو ڏئي ٿو ته ايندڙ بهترين قدم ڇا آهي، جيتوڻيڪ صورتحال تبديل ٿي وڃي (جيڪڏهن دشمن پليئر سان مداخلت ڪرڻ لاءِ قدم کڻي ٿو).

راندين ۾ منصوبابندي بابت ڪا به ڪهاڻي مڪمل نه ٿيندي بغير گول-اورينٽيڊ ايڪشن پلاننگ يا GOAP (گول آرينٽيڊ ايڪشن پلاننگ). هي هڪ وڏي پيماني تي استعمال ٿيل ۽ بحث ڪيل طريقو آهي، پر ڪجهه خاص تفصيلن کان سواء، اهو بنيادي طور تي پوئتي زنجير جو طريقو آهي جنهن بابت اسان اڳ ۾ ڳالهايو آهي. جيڪڏهن مقصد "پليئر کي تباهه ڪرڻ" هو ۽ پليئر ڍڪ جي پويان آهي، منصوبو ٿي سگهي ٿو: گرينيڊ سان تباهه ڪريو → حاصل ڪريو → اڇلايو.

عام طور تي ڪيترائي مقصد آھن، ھر ھڪ پنھنجي ترجيح سان. جيڪڏهن اعليٰ ترجيحي مقصد مڪمل نه ٿو ٿي سگهي (ڪارن جو ڪو به مجموعو ”پليئر کي مارڻ“ جو منصوبو نٿو ٺاهي ڇاڪاڻ ته پليئر نظر نٿو اچي)، AI واپس گهٽجي ويندي ترجيحي مقصدن ڏانهن.

تربيت ۽ موافقت

اسان اڳ ۾ ئي چئي چڪا آهيون ته راند AI عام طور تي مشين لرننگ استعمال نه ڪندي آهي ڇاڪاڻ ته اها حقيقي وقت ۾ ايجنٽن کي منظم ڪرڻ لاءِ مناسب ناهي. پر هن جو مطلب اهو ناهي ته توهان هن علائقي مان ڪجهه قرض نٿا وٺي سگهو. اسان شوٽر ۾ هڪ مخالف چاهيون ٿا جنهن مان اسان ڪجهه سکي سگهون ٿا. مثال طور، نقشي تي بهترين پوزيشن بابت ڄاڻو. يا وڙهڻ واري راند ۾ هڪ مخالف جيڪو پليئر جي اڪثر استعمال ٿيل ڪمبو هلڻ کي روڪيندو، کيس ٻين کي استعمال ڪرڻ جي حوصلا افزائي ڪندو. تنهنڪري مشين سکيا اهڙين حالتن ۾ ڪافي ڪارائتو ٿي سگهي ٿو.

شماريات ۽ امڪان

ان کان اڳ جو اسان پيچيده مثالن ۾ وڃون، اچو ته ڏسون ته ڪجھ سادو ماپون وٺي ۽ فيصلا ڪرڻ لاءِ انھن کي استعمال ڪندي اسان ڪيتري حد تائين وڃي سگھون ٿا. مثال طور، حقيقي وقت جي حڪمت عملي - اسان ڪيئن طئي ڪريون ٿا ته ڇا هڪ رانديگر راند جي پهرين چند منٽن ۾ حملو شروع ڪري سگهي ٿو ۽ ان جي خلاف ڪهڙو دفاع تيار ڪيو وڃي؟ اسان هڪ رانديگر جي ماضي جي تجربن جو مطالعو ڪري سگهون ٿا اهو سمجهڻ لاءِ ته مستقبل جا ردعمل ڇا ٿي سگهن ٿا. شروع ڪرڻ سان، اسان وٽ اهڙي خام ڊيٽا نه آهي، پر اسان ان کي گڏ ڪري سگهون ٿا - هر وقت AI انسان جي خلاف راند ڪندو آهي، اهو پهريون حملي جو وقت رڪارڊ ڪري سگهي ٿو. ڪجھ سيشنن کان پوءِ، اسان ھڪ سراسري وقت حاصل ڪنداسين جيڪو پليئر کي مستقبل ۾ حملو ڪرڻ لاءِ وٺندو.

اوسط قدرن سان پڻ مسئلو آهي: جيڪڏهن هڪ رانديگر 20 ڀيرا ڊوڙي ٿو ۽ 20 ڀيرا سست کيڏي ٿو، پوءِ گهربل قدر وچ ۾ ڪٿي هوندا، ۽ اهو اسان کي ڪجهه به مفيد نه ڏيندو. ھڪڙو حل آھي ان پٽ ڊيٽا کي محدود ڪرڻ - آخري 20 ٽڪرن کي حساب ۾ وٺي سگھجي ٿو.

ساڳيو طريقو استعمال ڪيو ويندو آهي جڏهن ڪجهه ڪارناما جي امڪان جو اندازو لڳائي اهو فرض ڪندي ته پليئر جي ماضي جي ترجيحن کي مستقبل ۾ ساڳيو هوندو. جيڪڏهن ڪو رانديگر اسان تي پنج دفعا فائر بال سان حملو ڪري، ٻه ڀيرا بجليءَ سان، ۽ هڪ ڀيرو ميلي سان، ظاهر آهي ته هو فائر بال کي ترجيح ڏئي ٿو. اچو ته ڏسون ۽ مختلف هٿيارن جي استعمال جي امڪان کي ڏسو: فائر بال = 62,5٪، روشني = 25٪ ۽ ميلي = 12,5٪. اسان جي راند AI پاڻ کي باهه کان بچائڻ لاء تيار ڪرڻ جي ضرورت آهي.

ٻيو دلچسپ طريقو اهو آهي ته Naive Bayes Classifier کي استعمال ڪيو وڃي وڏي مقدار ۾ ان پٽ ڊيٽا جو مطالعو ڪرڻ ۽ صورتحال کي درجه بندي ڪرڻ لاءِ ته جيئن AI گهربل طريقي سان رد عمل ظاهر ڪري. Bayesian classifiers تمام سڃاتل آھن انھن جي استعمال لاءِ اي ميل اسپام فلٽرز ۾. اتي اهي لفظن کي جانچيندا آهن، انهن جو مقابلو ڪندا آهن ته اهي لفظ اڳ ڪٿي ظاهر ٿيا آهن (اسپام ۾ يا نه)، ۽ ايندڙ اي ميلن بابت نتيجو ڪڍو. اسان ساڳيو ڪم ڪري سگهون ٿا جيتوڻيڪ گهٽ ان پٽ سان. سڀني مفيد معلومات جي بنياد تي جيڪو AI ڏسي ٿو (جهڙوڪ ڪهڙا دشمن يونٽ ٺاهيا ويا آهن، يا اهي ڪهڙا منتر استعمال ڪن ٿا، يا ڪهڙي ٽيڪنالاجي انهن جي تحقيق ڪئي)، ۽ آخري نتيجو (جنگ يا امن، رش يا دفاع، وغيره) - اسان مطلوب AI رويي کي چونڊيندا سين.

اهي سڀئي تربيتي طريقا ڪافي آهن، پر انهن کي استعمال ڪرڻ جي صلاح ڏني وئي آهي جانچ جي ڊيٽا جي بنياد تي. AI مختلف حڪمت عملين کي اپنائڻ لاءِ سکندو جيڪي توهان جي رانديگرن استعمال ڪيا آهن. AI جيڪا رليز ٿيڻ کان پوءِ پليئر سان مطابقت رکي ٿي شايد تمام گهڻو اڳڪٿي ڪري سگهجي ٿي يا شڪست ڏيڻ ڏاڍو ڏکيو ٿي سگهي ٿو.

قدر جي بنياد تي موافقت

اسان جي راند جي دنيا جي مواد ۽ ضابطن کي نظر ۾ رکندي، اسان قدرن جي سيٽ کي تبديل ڪري سگھون ٿا جيڪي فيصلا ڪرڻ تي اثرانداز ٿين ٿا، بجاءِ ان پٽ ڊيٽا کي استعمال ڪرڻ جي. اسان هي ڪندا آهيون:

  • اچو ته AI کي دنيا جي حالت تي ڊيٽا گڏ ڪري ۽ راند دوران اهم واقعا (جيئن مٿي).
  • اچو ته ھن ڊيٽا جي بنياد تي ڪجھ اھم قدر تبديل ڪريون.
  • اسان انهن قدرن جي پروسيسنگ يا تشخيص جي بنياد تي پنهنجا فيصلا لاڳو ڪريون ٿا.

مثال طور، هڪ ايجنٽ وٽ ڪيترائي ڪمرا آهن جن مان چونڊڻ لاءِ پهرين شخص جي شوٽر نقشي تي. هر ڪمري جو پنهنجو قدر آهي، جيڪو اهو طئي ڪري ٿو ته اهو گهمڻ لاء ڪيترو گهربل آهي. AI بي ترتيب انداز سان چونڊيندو آهي ته ڪهڙي ڪمري ۾ وڃي قدر جي بنياد تي. ايجنٽ وري ياد ڪري ٿو جنهن ڪمري ۾ هن کي قتل ڪيو ويو ۽ ان جي قيمت گھٽائي ٿو (امڪان آهي ته هو اتي واپس ايندو). ساڳيء طرح ريورس صورتحال لاء - جيڪڏهن ايجنٽ ڪيترن ئي مخالفين کي تباهه ڪري، پوء ڪمري جي قيمت وڌائي ٿي.

مارڪوف ماڊل

ڇا جيڪڏهن اسان گڏ ڪيل ڊيٽا استعمال ڪريون اڳڪٿيون ڪرڻ لاءِ؟ جيڪڏهن اسان هر ڪمري کي ياد رکون ٿا جنهن ۾ اسان هڪ پليئر کي ڪجهه وقت لاءِ ڏسون ٿا، اسان اڳڪٿي ڪنداسين ته رانديگر ڪهڙي ڪمري ۾ وڃي سگهي ٿو. ڪمري ۾ پليئر جي حرڪت کي ٽريڪ ڪرڻ ۽ رڪارڊ ڪرڻ سان (قيمتن)، اسان انهن جي اڳڪٿي ڪري سگهون ٿا.

اچو ته ٽي ڪمرا وٺون: ڳاڙهو، سائو ۽ نيرو. ۽ پڻ مشاهدو جيڪي اسان رڪارڊ ڪيو جڏهن راند سيشن کي ڏسندي:

هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ

هر ڪمري ۾ مشاهدن جو تعداد لڳ ڀڳ برابر آهي - اسان اڃا تائين نه ٿا ڄاڻون ته هڪ گهيرو ڪرڻ لاء سٺو جڳهه ڪٿي آهي. انگ اکر گڏ ڪرڻ پڻ پيچيده آهي رانديگرن جي ٻيهر پيدا ٿيڻ سان، جيڪي سڄي نقشي ۾ هڪجهڙا نظر اچن ٿا. پر نقشي تي ظاهر ٿيڻ کان پوءِ داخل ٿيل ايندڙ ڪمري بابت ڊيٽا اڳ ۾ ئي ڪارائتو آهي.

اهو ڏسي سگھجي ٿو ته گرين ڪمرو رانديگرن لاءِ مناسب آهي - گھڻا ماڻھو ڳاڙھي ڪمري مان ھلندا آھن، جن مان 50٪ اتي رھندا آھن. نيرو ڪمرو، ان جي ابتڙ، مشهور نه آهي؛ تقريبن ڪو به ان ڏانهن نه ٿو وڃي، ۽ جيڪڏهن اهي ڪن ٿا، اهي گهڻو وقت نه رهندا آهن.

پر ڊيٽا اسان کي ڪجهه وڌيڪ اهم ٻڌائي ٿي - جڏهن هڪ رانديگر نيري ڪمري ۾ هوندو آهي، ايندڙ ڪمرو جنهن ۾ اسان کيس ڏسندا آهيون اهو ڳاڙهو ٿيندو، سائو نه. جيتوڻيڪ گرين روم ڳاڙهي ڪمري کان وڌيڪ مشهور آهي، صورتحال تبديل ٿي ويندي آهي جيڪڏهن پليئر نيري ڪمري ۾ آهي. ايندڙ رياست (يعني اهو ڪمرو جنهن ۾ پليئر ويندو) پوئين رياست تي منحصر هوندو آهي (يعني اهو ڪمرو جنهن ۾ پليئر هن وقت آهي). ڇاڪاڻ ته اسان انحصار کي ڳوليندا آهيون، اسان ان کان وڌيڪ صحيح اڳڪٿيون ڪنداسين جيڪڏهن اسان صرف مشاهدن کي آزاد طور تي شمار ڪريون.

ماضي جي ڊيٽا جي بنياد تي مستقبل جي رياست جي اڳڪٿي ڪرڻ کي مارڪوف ماڊل سڏيو ويندو آهي، ۽ اهڙن مثالن (ڪمرن سان) کي مارڪوف زنجير سڏيو ويندو آهي. جيئن ته نمونن لڳاتار رياستن جي وچ ۾ تبديلين جي امڪان جي نمائندگي ڪن ٿا، اهي بصري طور تي ڏيکاريا ويا آهن FSMs جي طور تي هر منتقلي جي چوڌاري امڪان سان. اڳي، اسان استعمال ڪيو FSM رويي جي رياست جي نمائندگي ڪرڻ لاء جيڪو هڪ ايجنٽ هو، پر اهو تصور ڪنهن به رياست تائين وڌايو آهي، ڇا اهو ايجنٽ سان لاڳاپيل آهي يا نه. هن حالت ۾، رياستون نمائندگي ڪن ٿيون ڪمري جو ايجنٽ جيڪو قبضو ڪري ٿو:

هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ

هي رياست جي تبديلين جي لاڳاپي جي امڪان جي نمائندگي ڪرڻ جو هڪ آسان طريقو آهي، جيڪو AI کي ايندڙ رياست جي اڳڪٿي ڪرڻ جي صلاحيت ڏئي ٿو. توھان اڳتي وڌڻ جا ڪيترائي قدم پيش ڪري سگھو ٿا.

جيڪڏهن هڪ رانديگر گرين روم ۾ آهي، اتي هڪ 50٪ موقعو آهي ته هو اتي ئي رهندو جڏهن هو ايندڙ وقت جو مشاهدو ڪيو ويندو. پر پوءِ به ان جا ڪهڙا چانس آهن ته هو اتي ئي رهندو؟ نه رڳو اهو هڪ موقعو آهي ته رانديگر ٻن مشاهدن کان پوء گرين روم ۾ رهي، پر هڪ موقعو پڻ آهي ته هو ڇڏي ويو ۽ واپس آيو. ھتي آھي نئين جدول نئين ڊيٽا کي مدنظر رکندي:

هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ

اهو ڏيکاري ٿو ته رانديگر کي ٻن مشاهدن کان پوء گرين روم ۾ ڏسڻ جو موقعو 51٪ - 21٪ جي برابر هوندو ته هو ڳاڙهي ڪمري مان هوندو، انهن مان 5٪ اهو آهي ته رانديگر انهن جي وچ ۾ نيري ڪمري جو دورو ڪندو، ۽ 25٪ ته پليئر گرين روم نه ڇڏيندو.

ٽيبل صرف هڪ بصري اوزار آهي - طريقيڪار صرف هر قدم تي امڪانن کي ضرب ڪرڻ جي ضرورت آهي. هن جو مطلب آهي ته توهان هڪ احتياط سان مستقبل ۾ پري ڏسي سگهو ٿا: اسان فرض ڪريون ٿا ته ڪمري ۾ داخل ٿيڻ جو موقعو مڪمل طور تي موجوده ڪمري تي منحصر آهي. هن کي سڏيو ويندو آهي مارڪوف ملڪيت - مستقبل جي رياست صرف موجوده تي منحصر آهي. پر اهو هڪ سئو سيڪڙو صحيح ناهي. رانديگر فيصلا تبديل ڪري سگھن ٿا ٻين عنصرن جي بنياد تي: صحت جي سطح يا گولا بارود جي مقدار. ڇاڪاڻ ته اسان انهن قدرن کي رڪارڊ نه ڪندا آهيون، اسان جي اڳڪٿيون گهٽ صحيح هونديون.

اين-گرام

وڙهندڙ راند جو مثال ڇا آهي ۽ رانديگر جي ڪمبو هلڻ جي اڳڪٿي ڪرڻ؟ ساڳيو! پر هڪ رياست يا واقعي جي بدران، اسان انهن سڀني ترتيبن کي جانچينداسين جيڪي ڪمبو هڙتال ڪن ٿا.

اهو ڪرڻ جو هڪ طريقو اهو آهي ته هر ان پٽ (جهڙوڪ ڪِڪ، پنچ يا بلاڪ) کي بفر ۾ محفوظ ڪيو وڃي ۽ سڄي بفر کي ايونٽ طور لکو. پوءِ پليئر بار بار ڪِڪ، ڪِڪ، پنچ کي دٻائي ٿو SuperDeathFist حملي کي استعمال ڪرڻ لاءِ، AI سسٽم سڀني انپٽس کي بفر ۾ محفوظ ڪري ٿو ۽ هر قدم ۾ استعمال ٿيل آخري ٽن کي ياد ڪري ٿو.

هڪ گيمنگ AI ڪيئن ٺاهيو: شروعات ڪندڙن لاءِ هڪ گائيڊ
(ليڪون بولڊ ۾ آهن جڏهن پليئر شروع ڪري ٿو SuperDeathFist حملي.)

AI سڀني اختيارن کي ڏسندو جڏهن پليئر ڪِڪ چونڊيو، ان کان پوءِ ٻيو ڪِڪ، ۽ پوءِ نوٽيس ڪيو ته ايندڙ ان پٽ هميشه پنچ هوندو آهي. هي ايجنٽ کي SuperDeathFist جي ڪمبو حرڪت جي اڳڪٿي ڪرڻ جي اجازت ڏيندو ۽ جيڪڏهن ممڪن هجي ته ان کي بلاڪ ڪري.

انهن واقعن جي تسلسل کي N-grams سڏيو ويندو آهي، جتي N ذخيرو ٿيل عناصر جو تعداد آهي. پوئين مثال ۾ اهو هڪ 3-گرام (ٽريگرام) هو، جنهن جو مطلب آهي: پهرين ٻن داخلن کي ٽئين جي اڳڪٿي ڪرڻ لاءِ استعمال ڪيو ويندو آهي. ان مطابق، هڪ 5-گرام ۾، پهرين چار اندراج پنجين وغيره جي اڳڪٿي ڪن ٿا.

ڊزائنر کي اين-گرام جي سائيز کي احتياط سان چونڊڻ جي ضرورت آهي. ھڪڙو ننڍڙو N گھٽ ياداشت جي ضرورت آھي پر گھٽ تاريخ پڻ ذخيرو ڪري ٿو. مثال طور، هڪ 2-گرام (بگگرام) ڪِڪ، ڪِڪ يا ڪِڪ، پنچ رڪارڊ ڪندو، پر ڪِڪ، ڪِڪ، پنچ کي ذخيرو ڪرڻ جي قابل نه هوندو، تنهنڪري AI SuperDeathFist ڪمبو جو جواب نه ڏيندو.

ٻئي طرف، وڏن انگن کي وڌيڪ ميموري جي ضرورت هوندي آهي ۽ AI کي تربيت ڏيڻ وڌيڪ ڏکيو ٿيندو ڇو ته اتي ڪيترائي ممڪن اختيار هوندا. جيڪڏهن توهان وٽ ڪيڪ، پنچ يا بلاڪ جا ٽي ممڪن ان پٽ هئا، ۽ اسان 10-گرام استعمال ڪيو، ته اٽڪل 60 هزار مختلف آپشن هوندا.

بگگرام ماڊل هڪ سادي مارڪوف زنجير آهي - هر ماضي رياست/موجوده رياست جو جوڙو هڪ وڏو گرام آهي، ۽ توهان پهرين جي بنياد تي ٻي رياست جي اڳڪٿي ڪري سگهو ٿا. 3-گرام ۽ وڏي N-grams کي به مارڪوف زنجيرن وانگر سمجھي سگھجي ٿو، جتي سڀ عنصر (سواءِ N-gram ۾ آخري ھڪڙي) گڏجي پھرئين حالت ۽ آخري عنصر ٻئي کي ٺاھيندا آھن. وڙهڻ واري راند جو مثال ڏيکاري ٿو ڪيڪ ۽ ڪڪ رياست کان ڪڪ ۽ پنچ رياست ڏانهن منتقلي جو موقعو. گھڻن ان پٽ جي تاريخ جي داخلائن کي ھڪڙي يونٽ جي طور تي علاج ڪرڻ سان، اسان بنيادي طور تي ان پٽ جي ترتيب کي سڄي رياست جي حصي ۾ تبديل ڪري رھيا آھيون. هي اسان کي مارڪوف جي ملڪيت ڏئي ٿو، جيڪا اسان کي اجازت ڏئي ٿي مارڪوف زنجيرن کي استعمال ڪرڻ لاءِ ايندڙ ان پٽ جي اڳڪٿي ڪرڻ ۽ اندازو لڳايو ته ڪهڙي ڪمبو حرڪت اڳيان هوندي.

ٿڪل

اسان مصنوعي ذهانت جي ترقي ۾ سڀ کان وڌيڪ عام اوزار ۽ طريقن بابت ڳالهايو. اسان انهن حالتن تي پڻ غور ڪيو جنهن ۾ انهن کي استعمال ڪرڻ جي ضرورت آهي ۽ جتي اهي خاص طور تي مفيد آهن.

هي راند AI جي بنيادي ڳالهين کي سمجهڻ لاءِ ڪافي هجڻ گهرجي. پر، يقينا، اهي سڀئي طريقا نه آهن. گهٽ مشهور، پر گهٽ اثرائتو نه شامل آهن:

  • اصلاح الخوارزمي سميت ٽڪريءَ تي چڙهڻ، تدريسي نزول ۽ جينياتي الگورتھم
  • مخالف ڳولها/ شيڊيولنگ ​​الگورتھم (مني ميڪس ۽ الفا بيٽا پرننگ)
  • درجه بندي جا طريقا (perceptrons، neural networks ۽ support vector machines)
  • پروسيسنگ ايجنٽ جي تصور ۽ ياداشت لاء سسٽم
  • AI ڏانهن آرڪيٽيڪچرل طريقا (هائبرڊ سسٽم، سبسٽ آرڪيٽيڪچرز ۽ AI سسٽم کي اوورلي ڪرڻ جا ٻيا طريقا)
  • اينيميشن جا اوزار (منصوبابندي ۽ موشن ڪوآرڊينيشن)
  • ڪارڪردگي جا عنصر (تفصيل جي سطح، ڪنهن به وقت، ۽ ٽائيم سلائينگ الگورتھم)

موضوع تي آن لائين وسيلن:

1. GameDev.net آهي AI تي آرٽيڪل ۽ سبق سان گڏ سيڪشن، انهي سان گڏوگڏ فورم.
2. AiGameDev.com گيم AI ڊولپمينٽ سان لاڳاپيل موضوعن جي وسيع رينج تي ڪيتريون ئي پيشيونٽيون ۽ آرٽيڪل شامل آهن.
3. جي ڊي سي والٽ GDC AI سمٽ جا عنوان شامل آهن، جن مان ڪيترائي مفت ۾ دستياب آهن.
4. مفيد مواد ويب سائيٽ تي پڻ ملي سگھن ٿا AI گيم پروگرامر گلڊ.
5. ٽامي ٿامپسن، AI محقق ۽ گيم ڊولپر، يوٽيوب تي وڊيوز ٺاهي ٿو AI ۽ رانديون تجارتي راندين ۾ AI جي وضاحت ۽ مطالعي سان.

موضوع تي ڪتاب:

1. The Game AI Pro ڪتاب سيريز مختصر مضمونن جو هڪ مجموعو آهي جيڪو وضاحت ڪري ٿو ته مخصوص خصوصيتن کي ڪيئن لاڳو ڪجي يا مخصوص مسئلن کي ڪيئن حل ڪجي.

گيم AI پرو: گيم AI پروفيشنلز جي گڏ ڪيل حڪمت
گيم AI پرو 2: گيم AI پروفيشنلز جو گڏ ڪيل حڪمت
گيم AI پرو 3: گيم AI پروفيشنلز جو گڏ ڪيل حڪمت

2. AI Game Programming Wisdom Series Game AI Pro سيريز جو اڳوڻو آھي. اهو پراڻن طريقن تي مشتمل آهي، پر لڳ ڀڳ سڀ اڄ به لاڳاپيل آهن.

AI راند پروگرامنگ حڪمت 1
AI راند پروگرامنگ حڪمت 2
AI راند پروگرامنگ حڪمت 3
AI راند پروگرامنگ حڪمت 4

3. مصنوعي ذهانت: هڪ جديد انداز هر ڪنهن لاءِ بنيادي متن مان هڪ آهي جيڪو مصنوعي ذهانت جي عام فيلڊ کي سمجهڻ چاهي ٿو. هي راند جي ترقي بابت ڪتاب ناهي - اهو AI جي بنياديات کي سيکاريندو آهي.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو