د لوبو AI رامینځته کولو څرنګوالی: د پیل کونکو لپاره لارښود

د لوبو AI رامینځته کولو څرنګوالی: د پیل کونکو لپاره لارښود

ما په لوبو کې د مصنوعي استخباراتو په اړه ځینې په زړه پوري مواد ولیدل. د ساده مثالونو په کارولو سره د AI په اړه د لومړني شیانو توضیح کولو سره ، او دننه د دې اسانه پراختیا او ډیزاین لپاره ډیری ګټورې وسیلې او میتودونه شتون لري. څنګه، چیرته او کله یې وکاروئ دا هم شتون لري.

ډیری مثالونه په سیوډوکوډ کې لیکل شوي، نو د پروګرام کولو پرمختللي پوهې ته اړتیا نشته. د کټ لاندې د عکسونو او gifs سره د متن 35 شیټونه شتون لري ، نو چمتو اوسئ.

UPD. زه بخښنه غواړم، مګر ما دمخه د دې مقالې خپله ژباړه په Habré کې کړې ده مریض زیرو. تاسو کولی شئ د هغه نسخه ولولئ دلته، مګر د ځینو دلیلونو لپاره مقاله زما لخوا تیره شوه (ما لټون کارولی و، مګر یو څه غلط شو). او له هغه ځایه چې زه د لوبې پراختیا ته وقف شوي بلاګ کې لیکم ، ما پریکړه وکړه چې زما د ژباړې نسخه د پیرودونکو لپاره پریږدم (ځینې ټکي په مختلف ډول فارمیټ شوي ، ځینې یې په قصدي ډول د پراختیا کونکو په مشوره پریښودل شوي).

AI څه شی دی؟

د لوبې AI تمرکز کوي کوم عملونه چې یو شی باید د شرایطو پراساس ترسره کړي په کوم کې چې موقعیت لري. دا عموما د "ذهین اجنټ" مدیریت په نوم یادیږي، چیرې چې یو اجنټ د لوبغاړي کرکټر، یو موټر، بوټ، یا ځینې وختونه نور لنډیز دی: د ادارو ټوله ډله یا حتی یو تمدن. په هر حالت کې، دا یو شی دی چې باید خپل چاپیریال وګوري، د هغې پر بنسټ پریکړې وکړي، او د هغه سره سم عمل وکړي. دې ته د احساس/فکر/عمل دوره ویل کیږي:

  • احساس: اجنټ په خپل چاپیریال کې د شیانو په اړه معلومات لټوي یا ترلاسه کوي چې ممکن د هغې په چلند اغیزه وکړي (نژدې ګواښونه، د راټولولو لپاره توکي، د سپړلو لپاره په زړه پورې ځایونه).
  • فکر وکړئ: اجنټ پریکړه کوي چې څنګه غبرګون وښيي (په پام کې ونیسئ چې ایا دا د توکو راټولولو لپاره کافي خوندي دی یا ایا هغه باید لومړی جګړه / پټ کړي).
  • عمل: اجنټ د پخوانۍ پریکړې پلي کولو لپاره کړنې ترسره کوي (د دښمن یا اعتراض په لور حرکت کوي).
  • اوس وضعیت د کرکټرونو د کړنو له امله بدل شوی، نو دوره د نوي معلوماتو سره تکرار کیږي.

AI د لوپ احساس برخې باندې تمرکز کوي. د مثال په توګه، خودمختاره موټرې د سړک عکسونه اخلي، د رادار او لیډر ډیټا سره یوځای کوي، او تشریح کوي. دا عموما د ماشین زده کړې لخوا ترسره کیږي، کوم چې راتلونکی ډاټا پروسس کوي او معنی ورکوي، د سیمانټیک معلوماتو استخراج لکه "دلته یو بل موټر ستاسو څخه 20 گز مخکې دی." دا تش په نامه طبقه بندي ستونزې دي.

لوبې د معلوماتو استخراج لپاره پیچلي سیسټم ته اړتیا نلري ځکه چې ډیری ډیټا دمخه د هغې لازمي برخه ده. د عکس پیژندنې الګوریتمونو چلولو ته اړتیا نشته ترڅو معلومه کړي چې ایا مخکې دښمن شتون لري — لوبه دمخه پوهیږي او معلومات مستقیم د پریکړې کولو پروسې ته ورکوي. له همدې امله، د دورې احساس برخه اکثرا د فکر او عمل برخې په پرتله خورا ساده ده.

د لوبې AI محدودیتونه

AI یو شمیر محدودیتونه لري چې باید مشاهده شي:

  • AI اړتیا نلري مخکې له مخکې روزل شي، لکه څنګه چې دا د ماشین زده کړې الګوریتم وي. د پراختیا په جریان کې د عصبي شبکې لیکل هیڅ معنی نلري ترڅو د لسګونو زرو لوبغاړو څارنه وکړي او د دوی پروړاندې د لوبې کولو غوره لاره زده کړي. ولې؟ ځکه چې لوبه نه ده خپره شوې او نه پکې لوبغاړي شته.
  • لوبه باید ساتیري او ننګونکي وي، نو اجنټان باید د خلکو په وړاندې غوره چلند ونه موندل شي.
  • اجنټان باید ریښتیني وګوري ترڅو لوبغاړي داسې احساس کړي چې دوی د ریښتیني خلکو پروړاندې لوبې کوي. د الفاګو برنامه د انسانانو څخه ښه کار وکړ ، مګر غوره شوي ګامونه د لوبې دودیز پوهه څخه خورا لرې وو. که لوبه د انسان مخالف جذبوي، دا احساس باید شتون ونلري. الګوریتم باید بدل شي ترڅو دا د مثالي پریکړې پرځای د منلو وړ پریکړې وکړي.
  • AI باید په ریښتیني وخت کې کار وکړي. دا پدې مانا ده چې الګوریتم نشي کولی د پریکړې کولو لپاره د اوږدې مودې لپاره د CPU کارول انحصار کړي. حتی 10 ملیسیکنډونه خورا اوږد دي ، ځکه چې ډیری لوبې یوازې د 16 څخه تر 33 ملی ثانیو ته اړتیا لري ترڅو ټول پروسس وکړي او راتلونکي ګرافیک چوکاټ ته لاړ شي.
  • په عین حال کې، لږترلږه د سیسټم یوه برخه باید د ډیټا چلول وي، ترڅو غیر کوډر کولی شي بدلونونه رامینځته کړي او سمونونه په چټکۍ سره پیښ شي.

راځئ چې د AI طریقې وګورو چې ټول احساس / فکر / عمل دوره پوښي.

بنسټیزې پریکړې کول

راځئ چې د ساده لوبې سره پیل وکړو - پونګ. هدف: پیډل حرکت وکړئ ترڅو بال د هغې څخه د تیریدو پرځای له هغې څخه راوتلی وي. دا د ټینس په څیر دی ، چیرې چې تاسو له لاسه ورکوئ که چیرې تاسو توپ ونه وهئ. دلته AI نسبتا اسانه دنده لري - پریکړه کول چې کوم لوري ته پلیټ فارم حرکت وکړي.

د لوبو AI رامینځته کولو څرنګوالی: د پیل کونکو لپاره لارښود

مشروط بیانونه

په پینګ کې د AI لپاره، ترټولو څرګند حل دا دی چې تل هڅه وکړئ پلیټ فارم د بال لاندې ځای په ځای کړئ.

د دې لپاره یو ساده الګوریتم، په سیډوکوډ کې لیکل شوی:

هر چوکاټ / تازه کول پداسې حال کې چې لوبه روانه وي:
که بال د پیډل کیڼ اړخ ته وي:
پیډل کیڼ لور ته حرکت وکړئ
که چیرې بال د پیډل ښي خوا ته وي:
پیډل ښي خوا ته حرکت وکړئ

که پلیټ فارم د بال په سرعت حرکت وکړي، نو دا په پونګ کې د AI لپاره مثالی الګوریتم دی. هیڅ شی پیچلی کولو ته اړتیا نشته که چیرې د اجنټ لپاره دومره ډیټا او ممکنه کړنې شتون نلري.

دا طریقه دومره ساده ده چې د احساس / فکر / عمل ټوله دوره په سختۍ سره د پام وړ ده. مګر دا شتون لري:

  • د احساس برخه په دوه ډوله ده. لوبه پوهیږي چې بال چیرې دی او پلیټ فارم چیرې دی ، نو AI د دې معلوماتو لپاره ورته ګوري.
  • د فکر برخه هم په دوه بیانونو کې شامله ده. دوی دوه حلونه جذبوي، کوم چې پدې حالت کې دوه اړخیز ځانګړي دي. د پایلې په توګه، له دریو کړنو څخه یو غوره شوی - پلیټ فارم کیڼ لور ته حرکت وکړئ، ښي خوا ته یې حرکت وکړئ، یا هیڅ کار مه کوئ که دا دمخه په سمه توګه موقعیت ولري.
  • د قانون برخه د پیډل کیڼ لور ته حرکت او د پیډل ښي خوا حرکت کولو بیانونو کې موندل کیږي. د لوبې ډیزاین پورې اړه لري، دوی کولی شي پلیټ فارم سمدستي یا په ځانګړي سرعت حرکت وکړي.

دا ډول کړنلارې د عکس العمل په نوم یادیږي - دلته د قواعدو ساده مجموعه شتون لري (په دې حالت کې که په کوډ کې بیانونه) چې د نړۍ اوسني حالت ته غبرګون ښیې او اقدام کوي.

د پریکړې ونه

د پونګ مثال په حقیقت کې د رسمي AI مفهوم سره مساوي دی چې د پریکړې ونې په نوم یادیږي. الګوریتم د دې له لارې تیریږي ترڅو "پاڼي" ته ورسیږي - د کوم اقدام په اړه پریکړه.

راځئ چې زموږ د پلیټ فارم الګوریتم لپاره د پریکړې ونې بلاک ډیاګرام جوړ کړو:

د لوبو AI رامینځته کولو څرنګوالی: د پیل کونکو لپاره لارښود

د ونې هرې برخې ته نوډ ویل کیږي - AI د داسې جوړښتونو تشریح کولو لپاره د ګراف تیوري کاروي. دوه ډوله نوډونه شتون لري:

  • د پریکړې نوډونه: د ځینې حالت ازموینې پراساس د دوه بدیلونو ترمینځ غوره کول ، چیرې چې هر بدیل د جلا نوډ په توګه ښودل کیږي.
  • پای نوډونه: هغه عمل چې ترسره کول یې وروستۍ پریکړه څرګندوي.

الګوریتم د لومړي نوډ څخه پیل کیږي (د ونې "ریښه"). دا یا پریکړه کوي چې کوم ماشوم نوډ ته لاړ شي، یا دا په نوډ کې زیرمه شوي عمل اجرا کوي او وځي.

د پریکړې ونې درلودل څه ګټه لري چې په تیرو برخه کې د بیان په څیر ورته دنده ترسره کوي؟ دلته یو عمومي سیسټم شتون لري چیرې چې هره پریکړه یوازې یو شرط او دوه احتمالي پایلې لري. دا پراختیا کونکي ته اجازه ورکوي چې د ډیټا څخه AI رامینځته کړي چې په ونه کې د پریکړو نمایندګي کوي پرته لدې چې سخت کوډ وکړي. راځئ چې دا د میز په بڼه وړاندې کړو:

د لوبو AI رامینځته کولو څرنګوالی: د پیل کونکو لپاره لارښود

د کوډ اړخ کې به تاسو د تارونو لوستلو لپاره سیسټم ترلاسه کړئ. د هر یو لپاره یو نوډ جوړ کړئ، د پریکړې منطق د دویم کالم پر بنسټ وصل کړئ، او د دریم او څلورم کالم پر بنسټ د ماشوم نوډونه. تاسو لاهم اړتیا لرئ شرایط او کړنې برنامه کړئ ، مګر اوس به د لوبې جوړښت خورا پیچلی وي. دلته تاسو اضافي پریکړې او عملونه اضافه کړئ، او بیا په ساده ډول د ونې تعریف متن فایل سمولو سره ټول AI دودیز کړئ. بیا ، تاسو فایل د لوبې ډیزاینر ته لیږدئ ، څوک چې کولی شي د لوبې له تنظیم کولو یا کوډ بدلولو پرته چلند بدل کړي.

د پریکړې ونې خورا ګټورې دي کله چې دوی د مثالونو لوی سیټ څخه په اتوماتيک ډول جوړ شي (د مثال په توګه، د ID3 الګوریتم کارول). دا دوی د ترلاسه شوي معلوماتو پراساس د شرایطو طبقه بندي کولو لپاره مؤثره او د لوړ فعالیت وسیله جوړوي. په هرصورت، موږ د اجنټانو لپاره د عملونو غوره کولو لپاره د ساده سیسټم څخه بهر ځو.

سناریوګانې

موږ د پریکړې ونې سیسټم تحلیل کړ چې دمخه رامینځته شوي شرایط او کړنې یې کارولې. هغه څوک چې د AI ډیزاین کوي ​​کولی شي ونه تنظیم کړي هر څه چې وغواړي، مګر هغه لاهم په کوډر تکیه کوي چې دا ټول پروګرام کړي. څه که موږ ډیزاینر ته وسايل ورکړو چې خپل شرایط یا عملونه رامینځته کړي؟

نو د دې لپاره چې پروګرامر د شرایطو لپاره د کوډ لیکلو ته اړتیا نلري ایا بال د پیډل کیڼ اړخ دی او د پیډل ښي بال دی، هغه کولی شي داسې سیسټم رامینځته کړي چې ډیزاینر به د دې ارزښتونو چک کولو لپاره شرایط ولیکي. بیا د پریکړې ونې ډاټا به داسې ښکاري:

د لوبو AI رامینځته کولو څرنګوالی: د پیل کونکو لپاره لارښود

دا په اصل کې د لومړي جدول په څیر ورته دی، مګر پخپله دننه حلونه خپل کوډ لري، یو څه د if بیان شرطي برخې په څیر. د کوډ اړخ کې ، دا به د پریکړې نوډونو لپاره په دوهم کالم کې لوستل شي ، مګر د اجرا کولو لپاره د ځانګړي حالت په لټه کې (آیا بال د پیډل څخه پاتې دی) ، دا د مشروط بیان ارزونه کوي او د هغې مطابق ریښتیني یا غلط بیرته راګرځي. دا د Lua یا Angelscript سکریپټینګ ژبې په کارولو سره ترسره کیږي. د دوی په کارولو سره ، یو پراختیا کونکی کولی شي په خپله لوبه کې شیان واخلي (بال او پیډل) او متغیرات رامینځته کړي چې په سکریپټ کې شتون ولري (ball.position). همدارنګه، د سکریپټ ژبه د C++ په پرتله ساده ده. دا د بشپړ تالیف مرحلې ته اړتیا نلري ، نو دا د لوبې منطق ګړندي تنظیم کولو لپاره مثالی دی او "غیر کوډر" ته اجازه ورکوي چې پخپله اړین دندې رامینځته کړي.

په پورته مثال کې، د سکریپټ ژبه یوازې د مشروط بیان ارزولو لپاره کارول کیږي، مګر دا د عملونو لپاره هم کارول کیدی شي. د مثال په توګه، ډاټا د پیډل ښي خوا ته حرکت کولی شي د سکریپټ بیان شي (ball.position.x += 10). نو د دې لپاره چې عمل په سکریپټ کې هم تعریف شوی وي ، پرته له دې چې برنامه موو پیډل رائټ ته اړتیا ولري.

تاسو کولی شئ نور هم لاړ شئ او ټوله پریکړه ونې په سکریپټ ژبه کې ولیکئ. دا به د هارډ کوډ شوي شرطي بیاناتو په بڼه کوډ وي، مګر دوی به په بهرني سکریپټ فایلونو کې موقعیت ولري، دا دی، دوی د ټول پروګرام له بیا تنظیمولو پرته بدلیدلی شي. تاسو کولی شئ ډیری وختونه د لوبې په جریان کې د سکریپټ فایل ایډیټ کړئ ترڅو ګړندي د مختلف AI ځوابونو ازموینه وکړئ.

د پیښې غبرګون

پورته مثالونه د پونګ لپاره مناسب دي. دوی په دوامداره توګه د احساس / فکر / عمل دوره پرمخ وړي او د نړۍ وروستي حالت پراساس عمل کوي. مګر په ډیرو پیچلو لوبو کې تاسو اړتیا لرئ انفرادي پیښو ته عکس العمل ورکړئ، او په یوځل کې هرڅه ارزونه مه کوئ. په دې قضیه کې پینګ لا دمخه یو بد مثال دی. راځئ چې یو بل غوره کړو.

د یو شوټر تصور وکړئ چیرې چې دښمنان بې حرکته وي تر هغه چې دوی لوبغاړی کشف کړي ، وروسته له هغه چې دوی د دوی "تخصص" پورې اړه لري عمل کوي: یو څوک به "تیری" ته وتښتي ، څوک به له لرې څخه برید وکړي. دا لاهم یو بنسټیز عکس العمل سیسټم دی - "که چیرې یو لوبغاړی لیدل کیږي، یو څه وکړئ" - مګر دا په منطقي توګه د پلیر لیدل شوي پیښې او عکس العمل کې مات کیدی شي (ځواب غوره کړئ او اجرا یې کړئ).

دا موږ بیرته د احساس / فکر / عمل دورې ته راوړي. موږ کولی شو د احساس برخه کوډ کړو چې هر چوکاټ به وګوري چې ایا AI لوبغاړی ګوري. که نه، هیڅ شی نه کیږي، مګر که دا وګوري، نو د پلیر لیدل پیښه رامنځته کیږي. کوډ به یوه جلا برخه ولري چې وايي "کله چې د پلیر لیدل شوي پیښه پیښیږي، ترسره کړئ" هغه ځواب چیرته دی چې تاسو یې د فکر او عمل برخې په نښه کولو ته اړتیا لرئ. پدې توګه ، تاسو به د پلیر لیدل شوي پیښې ته عکس العملونه تنظیم کړئ: د "چټکونکي" کرکټر لپاره - چارج انډ اټیک ، او د سپنر لپاره - هایډ اینډ سنیپ. دا اړیکې د ډیټا فایل کې د ګړندي ترمیم لپاره رامینځته کیدی شي پرته لدې چې بیا تنظیم شي. د سکریپټ ژبه هم دلته کارول کیدی شي.

سختې پریکړې کول

که څه هم د ساده غبرګون سیسټمونه خورا پیاوړي دي، ډیری شرایط شتون لري چیرې چې دوی کافي ندي. ځینې ​​​​وختونه تاسو اړتیا لرئ د هغه څه پراساس مختلف پریکړې وکړئ چې اجنټ اوس مهال ترسره کوي، مګر دا د یو حالت په توګه تصور کول ګران دي. ځینې ​​​​وختونه ډیری شرایط شتون لري چې د پریکړې ونې یا سکریپټ کې یې په اغیزمنه توګه استازیتوب وکړي. ځینې ​​​​وختونه تاسو اړتیا لرئ مخکې له مخکې ارزونه وکړئ چې د راتلونکي ګام په اړه پریکړه کولو دمخه به وضعیت څنګه بدل شي. د دې ستونزو د حل لپاره نورو پیچلو لارو چارو ته اړتیا ده.

محدود دولتي ماشین

د محدود حالت ماشین یا FSM (د محدود حالت ماشین) د ویلو یوه لاره ده چې زموږ اجنټ اوس مهال په یو څو ممکنه حالتونو کې دی، او دا کولی شي له یو حالت څخه بل ته انتقال کړي. د دې ډول ایالتونو یو ټاکلی شمیر شتون لري - له همدې امله نوم. د ژوند څخه غوره بیلګه د ټرافیک څراغ دی. په مختلفو ځایونو کې د څراغونو مختلف ترتیبونه شتون لري، مګر اصل یو شان دی - هر حالت د یو څه استازیتوب کوي (دریدل، چل، او نور). د ترافیک څراغ په هر وخت کې یوازې په یو حالت کې وي او د ساده مقرراتو پراساس له یو څخه بل ته حرکت کوي.

دا په لوبو کې د NPCs سره ورته کیسه ده. د مثال په توګه، راځئ چې د لاندې حالتونو سره یو ساتونکی واخلو:

  • ګزمه کول.
  • برید کول.
  • تېښته.

او د خپل حالت د بدلون لپاره دا شرایط:

  • که ساتونکی دښمن وویني، برید کوي.
  • که چیرې ساتونکي برید وکړي مګر نور دښمن ونه ګوري، هغه بیرته ګزمې ته ځي.
  • که یو ساتونکی برید وکړي مګر سخت ټپي شي، هغه وتښتي.

تاسو کولی شئ د ساتونکي ریاست متغیر او مختلف چکونو سره که بیانات هم ولیکئ: ایا نږدې دښمن شتون لري ، د NPC روغتیا کچه څه ده او داسې نور. راځئ چې یو څو نور حالتونه اضافه کړو:

  • بیکارۍ - د ګزمو ترمنځ.
  • لټون - کله چې د پام وړ دښمن ورک شوی وي.
  • د مرستې موندل - کله چې یو دښمن ولیدل شي، مګر یوازې د جګړې لپاره خورا پیاوړی وي.

د هر یو لپاره انتخاب محدود دی - د بیلګې په توګه، ساتونکي به د پټ دښمن په لټه کې نه وي که چیرې هغه ټیټ روغتیا ولري.

په نهایت کې د "که نو " لوی لیست کیدی شي خورا ناخوښه شي ، نو موږ اړتیا لرو چې یو داسې میتود رسمي کړو چې موږ ته اجازه راکوي د دولتونو ترمینځ حالتونه او لیږدونه په ذهن کې وساتو. د دې کولو لپاره ، موږ ټول ایالتونه په پام کې نیسو ، او د هر ایالت لاندې موږ په لیست کې نورو ایالتونو ته ټول لیږدونه د دوی لپاره اړین شرایطو سره لیکو.

د لوبو AI رامینځته کولو څرنګوالی: د پیل کونکو لپاره لارښود

دا د دولت د لیږد میز دی - د FSM استازیتوب کولو لپاره یوه پراخه لاره. راځئ چې یو ډیاګرام رسم کړو او د NPC چلند څنګه بدلیږي بشپړ لید ترلاسه کړو.

د لوبو AI رامینځته کولو څرنګوالی: د پیل کونکو لپاره لارښود

ډیاګرام د اوسني وضعیت پراساس د دې اجنټ لپاره د پریکړې کولو جوهر منعکس کوي. برسېره پردې، هر تیر د دولتونو ترمنځ لیږد ښیي که چیرې د هغې سره نږدې حالت سم وي.

هر تازه معلومات چې موږ د اجنټ اوسنی حالت ګورو، د لیږد لیست ته ګورو، او که د لیږد شرایط پوره شي، دا نوی حالت مني. د مثال په توګه، هر چوکاټ چک کوي چې آیا د 10-ثانوي ټیمر پای ته رسیدلی، او که داسې وي، نو بیا ساتونکي د ایډیلینګ حالت څخه ګزمې ته ځي. په ورته ډول، د برید ریاست د اجنټ روغتیا معاینه کوي - که چیرې دا ټیټ وي، نو دا د تیښتې حالت ته ځي.

دا د دولتونو ترمینځ لیږد اداره کوي ، مګر پخپله د دولتونو سره د چلند په اړه څه؟ د یو ځانګړي دولت لپاره د ریښتیني چلند پلي کولو شرایطو کې ، په عمومي ډول دوه ډوله "هک" شتون لري چیرې چې موږ FSM ته عملونه وړاندې کوو:

  • هغه کړنې چې موږ په دوره توګه د اوسني حالت لپاره ترسره کوو.
  • هغه کړنې چې موږ یې د یو حالت څخه بل ته د لیږد په وخت کې ترسره کوو.

د لومړي ډول لپاره مثالونه. د ګزمې ریاست به اجنټ د ګزمې لارې په هر چوکاټ کې حرکت وکړي. برید کوونکی دولت به هڅه وکړي چې په هر چوکاټ کې برید پیل کړي یا داسې حالت ته انتقال کړي چیرې چې دا ممکنه وي.

د دویم ډول لپاره، لیږد په پام کې ونیسئ "که دښمن څرګند وي او دښمن ډیر پیاوړی وي، نو د مرستې موندنې ریاست ته لاړ شئ. اجنټ باید وټاکي چې چیرته د مرستې لپاره لاړ شي او دا معلومات ذخیره کړي ترڅو د مرستې موندنې ریاست پوه شي چې چیرته ځي. یوځل چې مرسته وموندل شي، اجنټ بیرته د برید حالت ته ځي. په دې وخت کې، هغه به د ګواښ په اړه ملګري ته ووایي، نو د NotifyFriendOfThreat عمل ممکن واقع شي.

یوځل بیا، موږ کولی شو دا سیسټم د احساس / فکر / عمل دورې د لینز له لارې وګورو. احساس د لیږد منطق لخوا کارول شوي ډاټا کې مجسم شوی. فکر وکړئ - لیږدونه په هر ایالت کې شتون لري. او قانون د هغه عملونو په واسطه ترسره کیږي چې په دوره توګه په یو دولت کې یا د دولتونو ترمنځ د لیږد په وخت کې ترسره کیږي.

ځینې ​​​​وختونه په دوامداره توګه د رای ورکولو لیږد شرایط ګران کیدی شي. د مثال په توګه، که هر اجنټ هر چوکاټ پیچلي محاسبې ترسره کړي ترڅو معلومه کړي چې ایا دا کولی شي دښمنان وګوري او پوه شي چې ایا دا د ګزمې څخه د برید حالت ته لیږدول کیدی شي، دا به د CPU ډیر وخت ونیسي.

د نړۍ په حالت کې مهم بدلونونه د پیښو په توګه فکر کیدی شي چې پروسس کیږي لکه څنګه چې پیښیږي. د دې پرځای چې FSM د لیږد حالت معاینه کړي "آیا زما اجنټ لوبغاړی لیدلی شي؟" هر چوکاټ، یو جلا سیسټم تنظیم کیدی شي چې لږ ځله وګورئ (د مثال په توګه په هر ثانیه کې 5 ځله). او پایله دا ده چې د پلیر لیدل کیږي کله چې چک تیریږي.

دا FSM ته لیږدول شوی، کوم چې اوس باید د پلیر لیدل شوي پیښې ترلاسه شوي حالت ته لاړ شي او د مطابق ځواب ورکړي. پایله لرونکی چلند یو شان دی پرته له دې چې ځواب ویلو دمخه نږدې د نه منلو وړ ځنډ. مګر د برنامه په جلا برخه کې د احساس برخې جلا کولو په پایله کې فعالیت ښه شوی.

حیراریکیکل محدود ریاست ماشین

په هرصورت، د لوی FSMs سره کار کول تل اسانه ندي. که موږ غواړو د برید حالت پراخه کړو ترڅو د MeleeAttacking او RangedAttacking جلا کړو، موږ باید د نورو ټولو ایالتونو څخه لیږدونه بدل کړو چې د برید حالت (اوسني او راتلونکي) ته لار هواروي.

تاسو شاید ولیدل چې زموږ په مثال کې ډیری نقل لیږدونه شتون لري. په ایډلینګ ایالت کې ډیری لیږدونه د ګزمې په حالت کې لیږدونو ته ورته دي. دا به ښه وي چې خپل ځان تکرار نکړو، په ځانګړې توګه که موږ ورته ورته حالتونه اضافه کړو. دا د "غیر جنګي" عمومي لیبل لاندې د ډله ایزې ګزمې او ګزمې لپاره معنی لري، چیرې چې د جنګیالیو هیوادونو ته د لیږد یوازې یو عام سیټ شتون لري. که موږ د دې لیبل په اړه د یو دولت په توګه فکر وکړو، نو بیا ایډلینګ او ګزمې سب سټیټ کیږي. د نوي غیر جنګي سبسټیټ لپاره د جلا لیږد میز کارولو مثال:

اصلي حالتونه:
د لوبو AI رامینځته کولو څرنګوالی: د پیل کونکو لپاره لارښود

له جنګي حالت څخه بهر:
د لوبو AI رامینځته کولو څرنګوالی: د پیل کونکو لپاره لارښود

او د ډیاګرام په بڼه:

د لوبو AI رامینځته کولو څرنګوالی: د پیل کونکو لپاره لارښود

دا ورته سیسټم دی ، مګر د نوي غیر جنګي حالت سره چې په کې ایډلنګ او ګزمې شاملې دي. د هر ایالت سره چې د فرعي سټیټونو سره FSM لري (او دا فرعي سټیټونه ، په پایله کې ، خپل FSMs لري - او داسې نور تر هغه چې تاسو ورته اړتیا لرئ) ، موږ د هییرارکیکل فینټ ریاست ماشین یا HFSM (د هییرارکیکل محدود ریاست ماشین) ترلاسه کوو. د غیر جنګي حالت په ډله ایز کولو سره، موږ د بې ځایه لیږدونو یوه ډله پرې کړه. موږ کولی شو د ګډ لیږد سره د هر نوي ایالتونو لپاره ورته کار وکړو. د مثال په توګه، که په راتلونکي کې موږ د برید ریاست د MeleeAttacking او MissileAtacking ریاستونو ته وغزوو، دوی به هغه فرعي سټیټونه وي چې د دښمن د واټن او د مهماتو شتون پراساس د یو بل تر مینځ لیږدوي. د پایلې په توګه، پیچلي چلندونه او فرعي چلندونه د لږترلږه نقل لیږد سره استازیتوب کیدی شي.

د چلند ونې

د HFSM سره، د چلند پیچلي ترکیبونه په ساده ډول رامینځته کیږي. په هرصورت، یو څه مشکل شتون لري چې د لیږد قواعدو په بڼه پریکړه کول د اوسني حالت سره نږدې تړاو لري. او په ډیری لوبو کې دا هغه څه دي چې ورته اړتیا لیدل کیږي. او د دولتي درجه بندي احتیاط کارول کولی شي د لیږد تکرار شمیر کم کړي. مګر ځینې وختونه تاسو قواعدو ته اړتیا لرئ چې کار کوي پرته له دې چې تاسو په کوم حالت کې یاست، یا دا په نږدې هر حالت کې پلي کیږي. د مثال په توګه، که د یو ایجنټ روغتیا 25٪ ته راښکته شي، تاسو به وغواړئ چې هغه وتښتي پرته له دې چې هغه په ​​​​جګړه کې، بې کاره، یا خبرې کولو کې وي - تاسو باید دا حالت په هر ایالت کې اضافه کړئ. او که ستاسو ډیزاینر وروسته غواړي د ټیټ روغتیا حد له 25٪ څخه 10٪ ته بدل کړي، نو دا باید بیا ترسره شي.

په عین حال کې، دا وضعیت داسې سیسټم ته اړتیا لري چې په هغه کې د "کوم دولت" په اړه پریکړې پخپله د دولتونو څخه بهر وي، ترڅو یوازې په یو ځای کې بدلون راولي او د لیږد شرایطو ته لاس ورنکړي. د چلند ونې دلته ښکاري.

د دوی د پلي کولو لپاره ډیری لارې شتون لري، مګر جوهر تقریبا د ټولو لپاره یو شان دی او د پریکړې ونې ته ورته دی: الګوریتم د "روټ" نوډ سره پیل کیږي، او ونه هغه نوډونه لري چې د پریکړې یا عمل استازیتوب کوي. که څه هم یو څو کلیدي توپیرونه شتون لري:

  • نوډونه اوس له دریو ارزښتونو څخه یو بیرته راګرځوي: بریالی (که کار بشپړ شوی وي)، ناکام شوی (که دا پیل نشي)، یا چلول (که دا لاهم روانه وي او وروستۍ پایله شتون نلري).
  • د دوه بدیلونو تر مینځ غوره کولو لپاره نور د پریکړې نوډونه شتون نلري. پرځای یې، دا د ډیکوریټر نوډونه دي، کوم چې یو ماشوم نوډ لري. که دوی بریالي شي، دوی خپل یوازینی ماشوم نوډ اجرا کوي.
  • نوډونه چې کړنې ترسره کوي د چلولو ارزښت بیرته راګرځوي ترڅو د ترسره شوي کړنو استازیتوب وکړي.

د نوډونو دا کوچنۍ سیټ د ډیری پیچلو چلندونو رامینځته کولو لپاره یوځای کیدی شي. راځئ چې د HFSM ساتونکي د تیر مثال څخه د چلند ونې په توګه تصور کړو:

د لوبو AI رامینځته کولو څرنګوالی: د پیل کونکو لپاره لارښود

د دې جوړښت سره باید د ایډیلینګ / ګزمې ریاستونو څخه برید کونکي یا کوم بل ایالت ته کوم څرګند لیږد شتون ونلري. که چیرې یو دښمن څرګند وي او د کرکټر روغتیا ټیټه وي، اعدام به د تېښتې نوډ کې ودریږي، پرته له دې چې کوم نوډ مخکې اجرا کړی وي - ګزمه کول، سست کول، برید کول، یا کوم بل.

د لوبو AI رامینځته کولو څرنګوالی: د پیل کونکو لپاره لارښود

د چلند ونې پیچلې دي - د دوی د ترکیب کولو لپاره ډیری لارې شتون لري، او د سینګار کونکو او مرکب نوډونو سم ترکیب موندل کیدی شي ننګونې وي. د دې په اړه پوښتنې هم شتون لري چې څو ځله ونې وګورئ - ایا موږ غواړو د هغې هرې برخې ته لاړ شو یا یوازې کله چې یو حالت بدل شوی وي؟ موږ څنګه د نوډونو پورې اړوند حالت ذخیره کوو - موږ څنګه پوهیږو کله چې موږ د 10 ثانیو لپاره سست یو، یا موږ څنګه پوهیږو چې کوم نوډونه تیر ځل اجرا کوي نو موږ کولی شو ترتیب په سمه توګه پروسس کړو؟

له همدې امله ډیری پلي کول شتون لري. د مثال په توګه، ځینې سیسټمونه د انلاین ډیکوریټرونو سره د ډیکوریټر نوډونه بدل کړي. دوی د ونې بیا ارزونه کوي کله چې د سینګار شرایط بدل شي، د نوډونو سره یوځای کولو کې مرسته وکړي، او دوره تازه معلومات چمتو کړي.

د کارموندنې پر بنسټ سیسټم

ځینې ​​لوبې ډیری مختلف میخانیکونه لري. دا د پام وړ ده چې دوی د ساده او عمومي لیږد قواعدو ټولې ګټې ترلاسه کړي، مګر اړینه نه ده چې د چلند د بشپړې ونې په بڼه وي. د انتخابونو د واضح سیټ یا د ممکنه عملونو ونې پرځای ، دا اسانه ده چې ټولې کړنې وڅیړئ او په اوس وخت کې ترټولو مناسب غوره کړئ.

د یوټیلټي پر بنسټ سیسټم به یوازې د دې سره مرسته وکړي. دا یو سیسټم دی چیرې چې اجنټ مختلف عملونه لري او غوره کوي چې کوم یو د هر یو د نسبي کارونې پراساس ترسره کړي. چیرته چې افادیت د خپل سري اندازه ده چې د اجنټ لپاره دا عمل ترسره کول څومره مهم یا مطلوب دي.

د اوسني حالت او چاپیریال پراساس د عمل محاسبه شوې ګټه ، اجنټ کولی شي په هر وخت کې ترټولو مناسب بل حالت وګوري او غوره کړي. دا د FSM سره ورته دی، پرته له دې چې لیږدونه د اوسني حالت په ګډون د هر احتمالي حالت لپاره د اټکل له مخې ټاکل کیږي. مهرباني وکړئ په یاد ولرئ چې موږ د حرکت کولو لپاره خورا ګټور عمل غوره کوو (یا پاتې شو که موږ دمخه بشپړ کړی وي). د نورو ډولونو لپاره، دا کیدای شي د کوچني لیست څخه یو متوازن مګر تصادفي انتخاب وي.

سیسټم د ګټورو ارزښتونو خپلسري سلسله وړاندې کوي - د بیلګې په توګه، له 0 (په بشپړه توګه ناغوښتل) څخه تر 100 (په بشپړه توګه مطلوب). هر عمل یو شمیر پیرامیټونه لري چې د دې ارزښت محاسبه اغیزه کوي. زموږ د ساتونکي مثال ته راستنیدل:

د لوبو AI رامینځته کولو څرنګوالی: د پیل کونکو لپاره لارښود

د عملونو تر مینځ لیږد مبهم دی - هر دولت کولی شي د بل پیروي وکړي. د عمل لومړیتوبونه د بیرته راستنیدونکو ګټورو ارزښتونو کې موندل کیږي. که یو دښمن څرګند وي، او هغه دښمن پیاوړی وي، او د کرکټر روغتیا ټیټه وي، نو دواړه تېښته او د موندلو مرسته به لوړ غیر صفر ارزښتونه بیرته راولي. په دې حالت کې، د موندلو مرسته به تل لوړه وي. په ورته ډول، غیر جنګي فعالیتونه هیڅکله د 50 څخه زیات نه راځي، نو دوی به تل د جنګي فعالیتونو څخه ټیټ وي. تاسو اړتیا لرئ دا په پام کې ونیسئ کله چې کړنې رامینځته کړئ او د دوی ګټورتیا محاسبه کړئ.

زموږ په مثال کې، کړنې یا یو ثابت ثابت ارزښت یا د دوو ثابت ارزښتونو څخه یو بیرته راګرځوي. یو ډیر حقیقي سیسټم به د ارزښتونو د دوامداره لړۍ څخه اټکل بیرته راولي. د مثال په توګه، د تېښتې عمل لوړ ګټور ارزښتونه بیرته راګرځوي که چیرې د اجنټ روغتیا ټیټه وي، او د برید کولو عمل ټیټ ګټور ارزښتونه بیرته راولي که دښمن ډیر پیاوړی وي. له همدې امله، د تېښتې عمل په هر حالت کې په برید کې لومړیتوب لري چیرې چې اجنټ احساس کوي چې هغه د دښمن د ماتولو لپاره کافي روغتیا نلري. دا کار ته اجازه ورکوي چې د هر ډول معیارونو پراساس لومړیتوب ورکړل شي، دا طریقه د چلند ونې یا FSM په پرتله خورا انعطاف وړ او متغیر کوي.

هر عمل د پروګرام حساب لپاره ډیری شرایط لري. دوی د سکریپټینګ ژبه کې یا د ریاضياتي فورمولونو لړۍ کې لیکل کیدی شي. سيمز، چې د کرکټر ورځنۍ ورځنۍ چارې سمبالوي، د محاسبې اضافي پرت اضافه کوي - اجنټ د "هڅې" لړۍ ترلاسه کوي چې د کارونې درجه بندي اغیزه کوي. که چیرې یو کرکټر وږی وي ، نو دوی به د وخت په تیریدو سره نور هم وږی شي ، او د EatFood عمل ګټور ارزښت به تر هغه پورې لوړ شي تر هغه چې کرکټر یې ترسره کړي ، د لوږې کچه راټیټه کړي او د EatFood ارزښت صفر ته راستون کړي.

د درجه بندي سیسټم پراساس د عملونو غوره کولو نظر خورا ساده دی ، نو د یوټیلټي پراساس سیسټم د AI پریکړې کولو پروسو برخې په توګه کارول کیدی شي ، نه د دوی لپاره د بشپړ بدیل په توګه. د پریکړې ونې ممکن د دوه ماشومانو نوډونو د کارونې درجه غوښتنه وکړي او لوړ یو غوره کړي. په ورته ډول، د چلند ونې کولی شي د یوټیلیټ نوډ ولري ترڅو د عملونو ګټورتیا ارزونه وکړي ترڅو پریکړه وکړي چې کوم ماشوم اعدام کړي.

حرکت او نیویگیشن

په تیرو مثالونو کې، موږ یو پلیټ فارم درلود چې موږ چپ یا ښي خوا ته حرکت کاوه، او یو ساتونکی چې ګزمه کوي یا برید کوي. مګر موږ څنګه د یوې مودې په اوږدو کې د اجنټ حرکت اداره کوو؟ موږ څنګه سرعت ټاکو، څنګه د خنډونو څخه مخنیوی وکړو، او څنګه موږ یوه لاره پلان کړو کله چې یو منزل ته رسیدل یوازې په مستقیم کرښه کې د حرکت کولو په پرتله خورا ستونزمن وي؟ راځئ چې دا وګورو.

حکومتداري

په لومړي پړاو کې، موږ به فرض کړو چې هر ایجنټ د سرعت ارزښت لري، پدې کې شامل دي چې څومره چټک حرکت کوي او په کوم لوري کې. دا په هر ثانیه کې په مترو کې، په ساعت کې کیلومتره، په فی ثانیه کې پکسلز، او داسې نور اندازه کیدی شي. د احساس / فکر / عمل لوپ په یادولو سره، موږ تصور کولی شو چې د فکر برخه سرعت غوره کوي، او د عمل برخه په اجنټ باندې دا سرعت تطبیقوي. معمولا لوبې د فزیک سیسټم لري چې دا کار ستاسو لپاره ترسره کوي، د هر څیز سرعت ارزښت زده کوي او تنظیموي. له همدې امله ، تاسو کولی شئ AI د یوې دندې سره پریږدئ - پریکړه وکړئ چې اجنټ باید کوم سرعت ولري. که تاسو پوهیږئ چې اجنټ باید چیرې وي، نو تاسو اړتیا لرئ چې په ټاکل شوي سرعت کې سم لوري ته حرکت وکړئ. یو ډیر کوچنی معادل:

مطلوب_سفر = منزل_پوزیشن – ایجنټ_پوزیشن

د 2D نړۍ تصور وکړئ. اجنټ په (-2، -2) نقطه کې دی، منزل په شمال ختیځ کې په نقطه (30, 20) کې دی، او د اجنټ د رسیدو لپاره اړین لاره (32, 22) ده. راځئ چې ووایو دا موقعیتونه په مترو کې اندازه کیږي - که موږ د اجنټ سرعت په هر ثانیه کې 5 متره واخلو، نو موږ به زموږ د بې ځایه کیدو ویکتور اندازه کړو او نږدې (4.12، 2.83) سرعت ترلاسه کړو. د دې پیرامیټونو سره، اجنټ به په نږدې 8 ثانیو کې خپل منزل ته ورسیږي.

تاسو کولی شئ په هر وخت کې ارزښتونه بیا محاسبه کړئ. که چیرې اجنټ هدف ته نیمایي وي، حرکت به نیمایي اوږدوالی وي، مګر څنګه چې د اجنټ اعظمي سرعت 5 m/s دی (موږ دا پورته پریکړه وکړه)، سرعت به ورته وي. دا د حرکت اهدافو لپاره هم کار کوي، اجنټ ته اجازه ورکوي چې کوچني بدلونونه وکړي کله چې دوی حرکت کوي.

مګر موږ نور بدلون غواړو - د مثال په توګه، ورو ورو سرعت زیات کړئ ترڅو یو کرکټر چې له ولاړ څخه چلولو ته حرکت کوي انډول کړي. ورته د ودرولو دمخه په پای کې ترسره کیدی شي. دا ځانګړتیاوې د سټیرینګ چلند په نوم پیژندل کیږي، چې هر یو یې ځانګړي نومونه لري: لټون، تیښته، رارسیدل، او داسې نور. نظریه دا ده چې د سرعت ځواک د اجنټ په سرعت کې پلي کیدی شي، د اجنټ موقعیت او اوسني سرعت د منزل سره پرتله کولو پراساس. هدف ته د رسیدو مختلف میتودونو کارولو لپاره.

هر چلند یو څه توپیر لري. لټون او رارسیدل هغه لارې دي چې یو اجنټ منزل ته لیږدوي. د خنډ مخنیوی او جلا کول د ایجنټ حرکت تنظیموي ترڅو هدف ته په لاره کې د خنډونو مخه ونیسي. سمون او همغږي اجنټان یوځای حرکت کوي. هر ډول مختلف سټیرینګ چلندونه د ټولو فکتورونو په پام کې نیولو سره د واحد لار ویکتور تولید لپاره خلاص کیدی شي. یو اجنټ چې له دیوالونو او نورو اجنټانو څخه لرې پاتې کیدو لپاره د رارسیدو ، جلا کیدو ، او د خنډ مخنیوي چلندونه کاروي. دا طریقه د غیر ضروري توضیحاتو پرته په خلاص ځایونو کې ښه کار کوي.

په ډیرو سختو شرایطو کې، د بیلابیلو چلندونو اضافه کول بد کار کوي - د بیلګې په توګه، یو اجنټ کولی شي په دیوال کې د رارسیدو او د خنډ مخنیوي ترمنځ د شخړې له امله ودریږي. له همدې امله ، تاسو اړتیا لرئ هغه اختیارونه په پام کې ونیسئ چې د ټولو ارزښتونو اضافه کولو څخه خورا پیچلي دي. لاره دا ده: د هر چلند پایلې اضافه کولو پرځای، تاسو کولی شئ په مختلفو لارښوونو کې حرکت په پام کې ونیسئ او غوره انتخاب غوره کړئ.

په هرصورت، په یوه پیچلي چاپیریال کې د مړو پایونو او انتخابونو سره چې کومې لارې ته لاړ شو، موږ به یو څه نور هم پرمختللي ته اړتیا ولرو.

د یوې لارې موندل

د سټیرینګ چلندونه په خلاص ساحه کې د ساده حرکت لپاره خورا ښه دي (فوټبال میدان یا میدان) چیرې چې له 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 شنه مینه (د ځمکې کارت) ورکوي.
  • فراري جادوګر - د احضارولو لپاره 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 په مطلوب ډول عکس العمل وکړي. د بایسیان طبقه بندي کونکي د بریښنالیک سپیم فلټرونو کې د دوی کارولو لپاره غوره پیژندل شوي. هلته دوی ټکي معاینه کوي، هغه پرتله کوي چې دا ټکي مخکې له مخکې ښکاره شوي (په سپیم یا نه)، او د راتلونکو بریښنالیکونو په اړه پایلې راوباسي. موږ کولی شو حتی د لږو معلوماتو سره ورته کار وکړو. د ټولو ګټورو معلوماتو پراساس چې AI یې ګوري (لکه د دښمن کوم واحدونه رامینځته شوي ، یا کوم سپیل دوی کاروي ، یا کوم ټیکنالوژي چې دوی یې څیړلي) ، او وروستۍ پایله (جګړه یا سوله ، رش یا دفاع ، او داسې نور) - موږ به د مطلوب AI چلند غوره کړو.

دا ټول د روزنې میتودونه کافي دي ، مګر دا مشوره ورکول کیږي چې د ازموینې معلوماتو پراساس یې وکاروئ. AI به د مختلف ستراتیژیو سره تطبیق زده کړي چې ستاسو د لوبغاړو لخوا کارول شوي. AI چې د خوشې کیدو وروسته د لوبغاړي سره تطابق کیږي ممکن خورا وړاندوینې یا ماتې ورکول خورا ستونزمن وي.

د ارزښت پر بنسټ تطبیق

زموږ د لوبې نړۍ مینځپانګې او مقرراتو ته په پام سره ، موږ کولی شو د ارزښتونو سیټ بدل کړو چې د تصمیم نیولو اغیزه کوي ، د ساده معلوماتو ډیټا کارولو پرځای. موږ دا کوو:

  • اجازه راکړئ چې AI د لوبې په جریان کې د نړۍ حالت او کلیدي پیښو په اړه معلومات راټول کړي (لکه پورته).
  • راځئ چې د دې معلوماتو پراساس یو څو مهم ارزښتونه بدل کړو.
  • موږ د دې ارزښتونو د پروسس یا ارزونې پراساس خپلې پریکړې پلي کوو.

د مثال په توګه، یو اجنټ د لومړي کس شوټر نقشه کې د غوره کولو لپاره ډیری خونې لري. هره خونه خپل ارزښت لري، کوم چې ټاکي چې د لیدلو لپاره څومره مطلوب دی. AI په تصادفي ډول غوره کوي چې د ارزښت پراساس کومې خونې ته لاړ شي. اجنټ بیا یادونه کوي چې هغه په ​​​​کومه خونه کې وژل شوی او ارزښت یې کموي (احتمال چې هغه به هلته بیرته راشي). په ورته ډول د برعکس حالت لپاره - که چیرې اجنټ ډیری مخالفین له منځه یوسي، نو د کوټې ارزښت لوړیږي.

د مارکوف ماډل

څه که موږ د وړاندوینې کولو لپاره راټول شوي معلومات وکاروو؟ که موږ هره خونه په یاد ولرو چې موږ یو لوبغاړی د یوې ټاکلې مودې لپاره ګورو، موږ به وړاندوینه وکړو چې لوبغاړی به کومې خونې ته لاړ شي. په خونو (ارزښتونو) کې د لوبغاړي حرکتونو تعقیب او ثبتولو سره ، موږ کولی شو د دوی وړاندوینه وکړو.

راځئ چې درې کوټې واخلو: سور، شنه او نیلي. او همدارنګه هغه مشاهدات چې موږ د لوبې سیشن لیدو پرمهال ثبت کړل:

د لوبو AI رامینځته کولو څرنګوالی: د پیل کونکو لپاره لارښود

په هره خونه کې د کتنو شمیر تقریبا مساوي دی - موږ لاهم نه پوهیږو چې د برید لپاره ښه ځای چیرته جوړ کړو. د احصایو راټولول د لوبغاړو د بیا راګرځیدو له امله هم پیچلي دي ، کوم چې په ټوله نقشه کې په مساوي ډول څرګندیږي. مګر د بلې خونې په اړه معلومات چې دوی په نقشه کې څرګندیدو وروسته ننوځي لا دمخه ګټور دي.

دا لیدل کیدی شي چې شنه خونه د لوبغاړو سره مناسبه ده - ډیری خلک د سور خونه څخه دې ته ځي، چې 50٪ یې پاتې دي. نیلي کوټه، برعکس، مشهوره نه ده؛ نږدې هیڅوک ورته نه ځي، او که دوی وکړي، دوی اوږد نه پاتې کیږي.

مګر ډاټا موږ ته یو څه ډیر مهم راکوي - کله چې یو لوبغاړی په نیلي خونه کې وي، بله خونه چې موږ یې وینو هغه به سور وي، نه شنه. که څه هم شنه خونه د سور خونې په پرتله خورا مشهوره ده، وضعیت بدلیږي که چیرې لوبغاړی په نیلي خونه کې وي. راتلونکی حالت (د بیلګې په توګه هغه کوټه چې لوبغاړی به یې ځي) په تیر حالت پورې اړه لري (د بیلګې په توګه هغه خونه چې لوبغاړی اوس مهال دی). ځکه چې موږ انحصارونه لټوو، موږ به د دې په پرتله ډیر دقیق وړاندوینې وکړو که چیرې موږ په ساده ډول مشاهدې په خپلواکه توګه حساب کړو.

د تیر حالت څخه د معلوماتو پراساس د راتلونکي حالت وړاندوینه کول د مارکوف ماډل بلل کیږي، او دا ډول مثالونه (د خونو سره) د مارکوف زنځیرونه بلل کیږي. څرنګه چې نمونې د پرله پسې حالتونو ترمنځ د بدلون احتمال څرګندوي، دوی د هر لیږد په شاوخوا کې د احتمال سره د FSMs په توګه لیدل کیږي. مخکې، موږ د چلند حالت استازیتوب کولو لپاره FSM کارولی چې یو اجنټ پکې و، مګر دا مفهوم هر دولت ته غزیدلی، ایا دا د اجنټ سره تړاو لري یا نه. په دې حالت کې، ایالتونه د هغه کوټې استازیتوب کوي چې استازی یې نیولی دی:

د لوبو AI رامینځته کولو څرنګوالی: د پیل کونکو لپاره لارښود

دا د دولت د بدلونونو نسبي احتمال استازیتوب کولو یوه ساده لاره ده ، AI ته د راتلونکي حالت وړاندوینې کولو وړتیا ورکوي. تاسو کولی شئ څو ګامونه مخکې اټکل کړئ.

که چیرې یو لوبغاړی په شنه خونه کې وي، د 50٪ چانس شتون لري چې هغه به بل ځل چې لیدل کیږي هلته پاتې شي. خو دا چانسونه څه دي چې هغه به تر دې وروسته هم هلته وي؟ نه یوازې دا فرصت شتون لري چې لوبغاړی د دوه لیدنو وروسته په شنه خونه کې پاتې شي، مګر یو چانس هم شتون لري چې هغه پریږدي او بیرته راشي. دلته نوی جدول دی چې نوي ډیټا په پام کې نیسي:

د لوبو AI رامینځته کولو څرنګوالی: د پیل کونکو لپاره لارښود

دا ښیې چې د دوه لیدنو وروسته به په شنه خونه کې د لوبغاړي لیدو چانس 51٪ - 21٪ سره برابر وي چې هغه به د سور خونې څخه وي ، د دوی 5٪ چې لوبغاړی به د دوی ترمینځ نیلي کوټې څخه لیدنه وکړي ، او 25٪ چې لوبغاړی به شین خونه نه پریږدي.

جدول په ساده ډول یو بصری وسیله ده - طرزالعمل یوازې په هر ګام کې د احتمالاتو ضرب کولو ته اړتیا لري. دا پدې مانا ده چې تاسو کولی شئ راتلونکي ته د یو احتیاط سره وګورئ: موږ ګومان کوو چې یوې خونې ته د ننوتلو چانس په بشپړ ډول په اوسنۍ خونې پورې اړه لري. دا د مارکوف ملکیت بلل کیږي - راتلونکی حالت یوازې په اوسني پورې اړه لري. خو دا خبره سل په سلو کې سمه نه ده. لوبغاړي کولی شي د نورو فاکتورونو پراساس پریکړې بدل کړي: د روغتیا کچه یا د مهماتو مقدار. ځکه چې موږ دا ارزښتونه نه ثبتوو، زموږ وړاندوینې به لږ دقیق وي.

N-ګرامه

د جنګی لوبې مثال او د لوبغاړي کومبو حرکتونو وړاندوینې په اړه څه؟ ورته! مګر د یو دولت یا پیښې پرځای، موږ به ټول هغه ترتیبونه وڅیړو چې کومبو اعتصاب رامینځته کوي.

د دې کولو یوه لاره دا ده چې هر ان پټ (لکه کیک، پنچ یا بلاک) په بفر کې ذخیره کړئ او ټول بفر د پیښې په توګه ولیکئ. نو لوبغاړی په مکرر ډول کیک ، کیک ، پنچ فشاروي ترڅو د SuperDeathFist برید څخه کار واخلي ، د AI سیسټم ټول داخلونه په بفر کې ساتي او په هر مرحله کې کارول شوي وروستي درې په یاد ساتي.

د لوبو AI رامینځته کولو څرنګوالی: د پیل کونکو لپاره لارښود
(په بولډ کې کرښې هغه وخت دي کله چې لوبغاړی د سوپر ډیت فیسټ برید پیلوي.)

AI به ټول اختیارونه وګوري کله چې لوبغاړی کیک غوره کوي، ورپسې بل کیک، او بیا په پام کې ونیسئ چې راتلونکی ان پټ تل پنچ دی. دا به اجنټ ته اجازه ورکړي چې د SuperDeathFist کومبو حرکت وړاندوینه وکړي او د امکان په صورت کې یې بند کړي.

د پیښو دا ترتیب د N-grams په نوم یادیږي، چیرته چې N د ذخیره شوي عناصرو شمیر دی. په پخوانۍ بېلګه کې دا یو 3-ګرام (ټریگرام) و، چې پدې معنی ده: لومړی دوه ننوتل د دریمې وړاندوینې لپاره کارول کیږي. په دې اساس، په 5-ګرام کې، لومړی څلور ننوتل د پنځم او داسې نور وړاندوینه کوي.

ډیزاینر باید د N-ګرام اندازه په احتیاط سره غوره کړي. یو کوچنی N لږ حافظې ته اړتیا لري مګر لږ تاریخ ذخیره کوي. د مثال په توګه، یو 2-ګرام (بیگرام) به Kick، Kick یا Kick، Punch ثبت کړي، مګر د Kick، Kick، Punch ذخیره کولو توان نلري، نو AI به د SuperDeathFist کومبو ته ځواب ونه کړي.

له بلې خوا، لوی شمیر ډیرې حافظې ته اړتیا لري او د AI روزنه به خورا ستونزمن وي ځکه چې ډیری نور احتمالي اختیارونه به وي. که تاسو د کیک، پنچ یا بلاک درې ممکنه انډولونه درلودل، او موږ 10-ګرام کاروو، دا به شاوخوا 60 زره مختلف انتخابونه وي.

د بیګرم ماډل یو ساده مارکوف سلسله ده - هر تیر حالت/اوسني حالت جوړه بیګرم ده، او تاسو کولی شئ د لومړي پراساس دوهم حالت وړاندوینه وکړئ. 3-ګرام او لوی N-ګرامونه د مارکوف زنځیرونو په توګه هم فکر کیدی شي، چیرې چې ټول عناصر (پرته له دې چې په N-ګرام کې وروستی عنصر) یوځای لومړی حالت او وروستی عنصر دوهم جوړوي. د جګړې لوبې مثال د کیک او کیک حالت څخه د کیک او پنچ حالت ته د لیږد چانس ښیې. د یو واحد واحد په توګه د ډیری ننوت تاریخ ثبتولو سره چلند کولو سره، موږ په اصل کې د ټول حالت په برخه کې د ننوتلو ترتیب بدلوو. دا موږ ته د مارکوف ملکیت راکوي، کوم چې موږ ته اجازه راکوي چې د مارکوف زنځیرونه وکاروو ترڅو د راتلونکي ان پټ وړاندوینه وکړو او اټکل وکړو چې کوم کومبو حرکت به راتلونکی وي.

پایلې

موږ د مصنوعي استخباراتو په پراختیا کې د ډیرو عامو وسیلو او طریقو په اړه خبرې وکړې. موږ هغه حالتونه هم وڅیړل چې په کومو کې دوی باید وکارول شي او چیرې چې دوی په ځانګړي توګه ګټور دي.

دا باید د لوبې AI اساساتو پوهیدو لپاره کافي وي. مګر، البته، دا ټول میتودونه ندي. لږ مشهور، مګر لږ اغیزمن ندي پدې کې شامل دي:

  • د اصلاح کولو الګوریتمونه په شمول د غونډۍ ختلو، تدریجي نزول او جینیتیک الګوریتمونه
  • مخالف لټون/ مهالویش الګوریتمونه (مینیمکس او الفا بیټا شاخه کول)
  • د طبقه بندي میتودونه (پرسیپټرون، عصبي شبکې او د ملاتړ ویکتور ماشینونه)
  • د اجنټانو د لید او حافظې پروسس کولو سیسټمونه
  • AI ته معماري تګلارې (هایبرډ سیسټمونه، فرعي جوړښتونه او د AI سیسټمونو پوښلو نورې لارې)
  • د حرکت وسیلې (پلان جوړونه او حرکت همغږي)
  • د فعالیت فکتورونه (د توضیحاتو کچه، هر وخت، او د وخت ویشلو الګوریتمونه)

په موضوع کې آنلاین سرچینې:

1. GameDev.net لري د AI په اړه د مقالو او درسونو سره برخهاو همدارنګه فورم.
2. AiGameDev.com د لوبې AI پراختیا پورې اړوند پراخه موضوعاتو باندې ډیری پریزنټشنونه او مقالې لري.
3. د GDC والټ د GDC AI غونډې موضوعات شامل دي، چې ډیری یې وړیا شتون لري.
4. ګټور توکي هم په ویب پاڼه کې موندل کیدی شي د AI لوبې پروګرامرانو ګیلډ.
5. ټامي تامپسن، د AI څیړونکی او د لوبې پراختیا کونکی، په یوټیوب کې ویډیوګانې جوړوي AI او لوبې په سوداګریزو لوبو کې د AI تشریح او مطالعې سره.

د موضوع په اړه کتابونه:

1. د لوبې AI پرو کتاب لړۍ د لنډو مقالو ټولګه ده چې تشریح کوي چې څنګه ځانګړي ځانګړتیاوې پلي کول یا د ځانګړو ستونزو حل کولو څرنګوالی.

د لوبې AI پرو: د لوبې AI مسلکيانو راټول شوي حکمت
د لوبې AI پرو 2: د لوبې AI مسلکيانو راټول شوي حکمت
د لوبې AI پرو 3: د لوبې AI مسلکيانو راټول شوي حکمت

2. د AI لوبې پروګرام کولو حکمت لړۍ د لوبې AI پرو لړۍ مخکینۍ ده. دا زاړه میتودونه لري، مګر نږدې ټول حتی نن ورځ اړوند دي.

د AI لوبې پروګرام کولو حکمت 1
د AI لوبې پروګرام کولو حکمت 2
د AI لوبې پروګرام کولو حکمت 3
د AI لوبې پروګرام کولو حکمت 4

3. مصنوعي ذهانت: یوه عصري طریقه د هرچا لپاره یو له بنسټیزو متنونو څخه دی چې غواړي د مصنوعي استخباراتو عمومي ساحه پوه شي. دا د لوبې پراختیا په اړه کتاب ندی - دا د AI اساسات درس ورکوي.

سرچینه: www.habr.com

Add a comment