Yadda ake ƙirƙirar AI caca: jagora ga masu farawa

Yadda ake ƙirƙirar AI caca: jagora ga masu farawa

Na ci karo da wasu abubuwa masu ban sha'awa game da hankali na wucin gadi a cikin wasanni. Tare da bayani na ainihin abubuwa game da AI ta amfani da misalai masu sauƙi, kuma a ciki akwai kayan aiki masu amfani da yawa da kuma hanyoyin da za su dace da haɓakawa da ƙira. Ta yaya, inda da lokacin amfani da su ma akwai.

Yawancin misalan an rubuta su a cikin pseudocode, don haka ba a buƙatar ingantaccen ilimin shirye-shirye. A ƙarƙashin yanke akwai rubutun 35 tare da hotuna da gifs, don haka shirya.

UPD. Ina neman afuwa, amma na riga na yi nawa fassarar wannan labarin akan Habré Mara lafiyaZero. Kuna iya karanta sigar sa a nan, amma saboda wasu dalilai labarin ya wuce ni (Na yi amfani da binciken, amma wani abu ya ɓace). Kuma tun lokacin da nake rubutawa akan bulogin da aka sadaukar don haɓaka wasan, na yanke shawarar barin sigar fassarar ta ga masu biyan kuɗi (wasu maki an tsara su daban, wasu an cire su da gangan bisa shawarar masu haɓakawa).

Menene AI?

Wasan AI yana mai da hankali kan ayyukan da ya kamata abu ya yi dangane da yanayin da yake ciki. Ana kiran wannan da yawa a matsayin gudanarwa na "wakili mai hankali", inda wakili ɗan wasa ne, abin hawa, bot, ko wani lokacin wani abu mafi ƙaranci: gabaɗayan ƙungiyar ƙungiyoyi ko ma wayewa. A kowane hali, abu ne da dole ne ya ga yanayinsa, ya yanke hukunci a kansa, kuma ya yi aiki da su. Wannan shi ake kira Sense/Think/Act cycle:

  • Hankali: Wakilin ya samo ko karɓar bayanai game da abubuwa a cikin mahallinsa waɗanda zasu iya rinjayar halayensa (barazanar da ke kusa, abubuwan da za a tattara, wurare masu ban sha'awa don ganowa).
  • Ka yi tunani: Wakilin ya yanke shawarar yadda za a mayar da martani (ya yi la'akari da ko yana da lafiya don tattara abubuwa ko ya kamata ya yi yaƙi / ɓoye farko).
  • Dokar: wakili yana yin ayyuka don aiwatar da shawarar da ta gabata (fara motsawa zuwa ga abokan gaba ko abu).
  • ... yanzu yanayin ya canza saboda ayyukan haruffa, don haka sake zagayowar ta sake maimaitawa tare da sababbin bayanai.

AI yana kula da mayar da hankali kan sashin Sense na madauki. Misali, motoci masu cin gashin kansu suna daukar hotunan hanyar, suna hada su da bayanan radar da lidar, suna fassara su. Yawanci ana yin wannan ta hanyar koyon injin, wanda ke aiwatar da bayanan da ke shigowa kuma ya ba shi ma'ana, yana fitar da bayanan ma'anar kamar "akwai wata mota ta yadi 20 a gabanku." Waɗannan su ne abubuwan da ake kira matsalolin rarrabawa.

Wasanni ba sa buƙatar tsari mai sarƙaƙƙiya don fitar da bayanai tun da yawancin bayanai sun riga sun zama wani ɓangarensa. Babu buƙatar gudanar da algorithms gano hoto don tantance idan akwai maƙiyi a gaba-wasan ya riga ya sani kuma yana ciyar da bayanin kai tsaye cikin tsarin yanke shawara. Sabili da haka, ɓangaren Sense na zagayowar sau da yawa ya fi sauƙi fiye da ɓangaren Tunani da Dokar.

Iyakance Game AI

AI yana da iyakoki da yawa waɗanda dole ne a kiyaye su:

  • AI baya buƙatar horarwa a gaba, kamar dai na'ura ce ta koyon algorithm. Ba shi da ma'ana don rubuta hanyar sadarwa ta jijiyoyi yayin haɓaka don sa ido kan dubun-dubatar 'yan wasa da koyan hanya mafi kyau don yin wasa da su. Me yasa? Domin ba'a saki wasan ba kuma babu 'yan wasa.
  • Wasan ya kamata ya zama mai daɗi da ƙalubale, don haka wakilai kada su sami mafi kyawun tsarin kan mutane.
  • Wakilai suna buƙatar duba na zahiri don 'yan wasa su ji kamar suna wasa da mutane na gaske. Shirin AlphaGo ya zarce ɗan adam, amma matakan da aka zaɓa sun yi nisa da fahimtar al'ada game da wasan. Idan wasan ya kwaikwayi abokin hamayyar mutum, wannan jin bai kamata ya kasance ba. Algorithm yana buƙatar canza algorithm don ya yanke shawara masu ma'ana maimakon waɗanda suka dace.
  • AI dole ne yayi aiki a ainihin lokacin. Wannan yana nufin cewa algorithm ba zai iya sarrafa amfani da CPU na dogon lokaci don yanke shawara ba. Ko da miliyon 10 ya yi tsayi da yawa, saboda yawancin wasanni suna buƙatar mil 16 zuwa 33 kawai don yin duk aikin da matsawa zuwa firam ɗin zane na gaba.
  • Mahimmanci, aƙalla ɓangaren tsarin ya kamata ya kasance mai sarrafa bayanai, ta yadda ba codeers za su iya yin canje-canje kuma gyare-gyare na iya faruwa da sauri.

Bari mu dubi hanyoyin AI waɗanda ke rufe duk tsarin Sense/Thinki/Act.

Yin Yanke Shawara

Bari mu fara da mafi sauƙi wasan - Pong. Buri: matsar da kwalwar ta yadda ƙwallon ya tashi daga sama maimakon ya wuce ta. Kamar wasan tennis ne, inda za ka yi asara idan ba ka buga kwallon ba. Anan AI yana da aiki mai sauƙi mai sauƙi - yanke shawarar wane shugabanci don matsar da dandamali.

Yadda ake ƙirƙirar AI caca: jagora ga masu farawa

Kalamai na sharadi

Ga AI a cikin Pong, mafi kyawun bayani shine koyaushe ƙoƙarin sanya dandamali a ƙarƙashin ƙwallon.

Algorithm mai sauƙi don wannan, an rubuta a cikin pseudocode:

kowane firam / sabuntawa yayin wasan yana gudana:
idan kwallon tana hannun hagu na kwali:
matsar da filafili hagu
in ba haka ba kwallon tana hannun dama na kwalkwalin:
matsar da filafili dama

Idan dandamali yana motsawa cikin saurin ƙwallon ƙwallon, to wannan shine ingantaccen algorithm don AI a cikin Pong. Babu buƙatar rikitarwa wani abu idan babu bayanai da yawa da ayyuka masu yiwuwa ga wakili.

Wannan hanya mai sauƙi ce ta yadda ba a iya ganin tsarin Sense/Think/Act. Amma akwai:

  • Bangaren Sense yana cikin biyu idan maganganu. Wasan ya san inda ƙwallon yake da kuma inda dandamali yake, don haka AI yana kallon sa don wannan bayanin.
  • Hakanan an haɗa ɓangaren Tunani a cikin biyun idan bayanai. Sun ƙunshi mafita guda biyu, waɗanda a cikin wannan yanayin suna da alaƙa da juna. A sakamakon haka, an zaɓi ɗaya daga cikin ayyuka uku - matsar da dandamali zuwa hagu, matsar da shi zuwa dama, ko yin kome idan an riga an daidaita shi daidai.
  • Ana samun ɓangaren Dokar a cikin Matsar da Fitilar Hagu da Matsar da Fitilar Dama kalamai. Dangane da ƙirar wasan, za su iya matsar da dandamali nan take ko a wani takamaiman gudu.

Irin waɗannan hanyoyin ana kiransu reactive - akwai ƙa'idodi masu sauƙi (a cikin wannan yanayin idan maganganun da ke cikin lambar) waɗanda ke amsa yanayin halin yanzu na duniya kuma suna ɗaukar mataki.

Bishiyar yanke shawara

Misalin Pong yana daidai da ainihin ra'ayin AI da ake kira itace yanke shawara. Algorithm yana shiga ta hanyarsa don isa ga "leaf" - yanke shawara game da matakin da za a ɗauka.

Bari mu yi toshe zane na bishiyar yanke shawara don algorithm na dandalin mu:

Yadda ake ƙirƙirar AI caca: jagora ga masu farawa

Kowane bangare na bishiyar ana kiransa node - AI yana amfani da ka'idar jadawali don bayyana irin wannan tsarin. Akwai nau'ikan nodes guda biyu:

  • Ƙididdigar yanke shawara: zaɓi tsakanin zaɓuɓɓuka biyu dangane da gwada wasu yanayi, inda kowane madadin ke wakilta azaman kumburi daban.
  • Ƙarshen nodes: Aikin da za a yi wanda ke wakiltar yanke shawara ta ƙarshe.

Algorithm yana farawa daga kumburin farko ("tushen" bishiyar). Ko dai ya yanke shawara game da kullin yaro don zuwa, ko kuma ya aiwatar da aikin da aka adana a cikin kumburi da fita.

Menene fa'idar samun bishiyar yanke shawara ta yi aiki iri ɗaya da maganganun da ke cikin sashin da ya gabata? Akwai tsarin gaba ɗaya a nan inda kowane yanke shawara yana da sharadi ɗaya kawai da sakamako biyu masu yiwuwa. Wannan yana bawa mai haɓaka damar ƙirƙirar AI daga bayanan da ke wakiltar yanke shawara a cikin bishiya ba tare da yin la'akari da shi ba. Bari mu gabatar da shi a cikin tsarin tebur:

Yadda ake ƙirƙirar AI caca: jagora ga masu farawa

A gefen lambar za ku sami tsarin karanta kirtani. Ƙirƙirar kumburi ga kowane ɗayansu, haɗa dabarun yanke shawara bisa shafi na biyu, da nodes ɗin yara bisa ginshiƙai na uku da na huɗu. Har yanzu kuna buƙatar tsara yanayin yanayi da ayyuka, amma yanzu tsarin wasan zai fi rikitarwa. Anan kun ƙara ƙarin yanke shawara da ayyuka, sannan ku tsara AI gaba ɗaya ta hanyar gyara fayil ɗin rubutun ma'anar bishiyar kawai. Bayan haka, kuna canja wurin fayil ɗin zuwa mai tsara wasan, wanda zai iya canza hali ba tare da sake tattara wasan ba ko canza lambar.

Bishiyoyin yanke hukunci suna da amfani sosai lokacin da aka gina su ta atomatik daga manyan misalai (misali, ta amfani da algorithm ID3). Wannan ya sa su zama kayan aiki mai inganci da babban aiki don rarraba yanayi bisa bayanan da aka samu. Koyaya, mun wuce tsarin sauƙi don wakilai don zaɓar ayyuka.

Al'amura

Mun bincika tsarin bishiyar yanke shawara wanda yayi amfani da yanayin da aka riga aka halicce shi da ayyuka. Mutumin da ke zayyana AI zai iya tsara itacen yadda yake so, amma har yanzu dole ne ya dogara ga codeer wanda ya tsara shi duka. Idan za mu iya ba masu zanen kayan aikin don ƙirƙirar yanayi ko ayyukansu?

Don kada mai tsara shirye-shirye ya rubuta lambar don sharuɗɗan Shin Ball Left Of Paddle kuma Shin Ball Dama Daga Fadan, zai iya ƙirƙirar tsarin da mai zane zai rubuta yanayi don bincika waɗannan ƙimar. Sannan bayanan bishiyar yanke hukunci zai yi kama da haka:

Yadda ake ƙirƙirar AI caca: jagora ga masu farawa

Wannan ainihin daidai yake da a cikin tebur na farko, amma mafita a cikin kansu suna da nasu lambar, ɗan kama da yanayin yanayin idan sanarwa. A gefen lambar, wannan zai karanta a shafi na biyu don yanke shawara, amma maimakon neman takamaiman yanayin aiwatarwa (Is Ball Left Of Paddle), yana kimanta yanayin yanayin kuma ya dawo gaskiya ko ƙarya daidai. Ana yin wannan ta amfani da yaren rubutun Lua ko Angelscript. Yin amfani da su, mai haɓakawa zai iya ɗaukar abubuwa a cikin wasansa (ball da paddle) kuma ya haifar da masu canji waɗanda za su kasance a cikin rubutun (ball.position). Hakanan, yaren rubutun ya fi C++ sauƙi. Ba ya buƙatar cikakken matakin tattarawa, don haka yana da kyau don daidaita ma'anar wasan da sauri kuma yana ba da damar "marasa codeers" don ƙirƙirar ayyukan da suka dace da kansu.

A cikin misalin da ke sama, ana amfani da yaren rubutun kawai don kimanta yanayin yanayin, amma kuma ana iya amfani da shi don ayyuka. Misali, bayanan Motsa Paddle Right na iya zama bayanin rubutun (ball.position.x += 10). Don haka an ayyana aikin a cikin rubutun, ba tare da buƙatar shirin Motsa Paddle Right ba.

Kuna iya ci gaba har ma da rubuta duk bishiyar yanke shawara a cikin yaren rubutun. Wannan zai zama lamba a cikin nau'i na kalmomi masu ma'ana, amma za a same su a cikin fayilolin rubutun waje, wato, ana iya canza su ba tare da sake tattara dukkan shirin ba. Kuna iya sau da yawa shirya fayil ɗin rubutun yayin wasan wasa don gwada martanin AI daban-daban da sauri.

Martanin Lamarin

Misalan da ke sama sun dace da Pong. Suna ci gaba da gudanar da zagayowar Sense/Think/Act kuma suna aiki bisa sabon yanayin duniya. Amma a cikin wasanni masu rikitarwa, kuna buƙatar amsawa ga abubuwan da suka faru na mutum ɗaya, kuma kada ku kimanta komai a lokaci ɗaya. Pong a cikin wannan yanayin ya riga ya zama misali mara kyau. Mu zabi wani.

Ka yi tunanin wani mai harbi inda abokan gaba ba su da motsi har sai sun gano mai kunnawa, bayan haka sun yi aiki dangane da "na musamman": wani zai gudu zuwa "gaggawa", wani zai kai hari daga nesa. Har yanzu babban tsarin amsawa ne - "idan an hange mai kunnawa, yi wani abu" - amma ana iya rarrabuwar shi cikin ma'ana cikin abin da aka gani na mai kunnawa da kuma Reaction (zaba amsa kuma aiwatar da shi).

Wannan yana dawo da mu zuwa tsarin Sense/Think/Act. Za mu iya ƙididdige ɓangaren Sense wanda zai bincika kowane firam ko AI yana ganin mai kunnawa. Idan ba haka ba, babu abin da zai faru, amma idan ya gani, to an ƙirƙiri taron gani na Playeran wasan. Lambar za ta sami wani sashe na daban wanda ya ce "lokacin da abin da aka gani mai kunnawa ya faru, yi" inda amsar da kuke buƙatar magance sassan Tunani da Dokar. Don haka, zaku saita martani ga abin da aka gani mai kunnawa: don halin "gaggawa" - ChargeAndAttack, da kuma maharbi - HideAndSnipe. Ana iya ƙirƙirar waɗannan alaƙa a cikin fayil ɗin bayanai don gyara sauri ba tare da sake haɗawa ba. Ana iya amfani da yaren rubutun a nan kuma.

Yin yanke shawara mai wahala

Kodayake tsarin amsawa mai sauƙi yana da ƙarfi sosai, akwai yanayi da yawa inda basu isa ba. Wani lokaci kana buƙatar yanke shawara daban-daban bisa ga abin da wakili yake yi a halin yanzu, amma yana da wuya a yi tunanin wannan a matsayin yanayi. Wani lokaci akwai sharuɗɗa da yawa don wakiltar su yadda ya kamata a cikin bishiyar yanke shawara ko rubutun. Wani lokaci kuna buƙatar tantancewa a gaba yadda yanayin zai canza kafin yanke shawarar mataki na gaba. Ana buƙatar ƙarin nagartattun hanyoyi don magance waɗannan matsalolin.

Na'ura mai iyaka

Na'ura mai ƙarewa ko FSM (na'ura mai iyaka) hanya ce ta cewa wakilinmu a halin yanzu yana ɗaya daga cikin jihohi da yawa, kuma yana iya canzawa daga wannan jiha zuwa wata. Akwai takamaiman adadin irin waɗannan jihohi-don haka sunan. Mafi kyawun misali daga rayuwa shine hasken zirga-zirga. Akwai nau'ikan fitilu daban-daban a wurare daban-daban, amma ka'ida ɗaya ce - kowace jiha tana wakiltar wani abu (tsayawa, tafiya, da dai sauransu). Hasken zirga-zirga yana cikin yanayi ɗaya kawai a kowane lokaci, kuma yana motsawa daga ɗayan zuwa wancan bisa ƙa'idodi masu sauƙi.

Yana da irin wannan labari tare da NPCs a cikin wasanni. Misali, bari mu dauki gadi tare da jihohi masu zuwa:

  • Yin sintiri.
  • Kai hari.
  • Gudu.

Kuma waɗannan sharuɗɗan don canza yanayinsa:

  • Idan mai gadi ya ga abokan gaba, ya kai hari.
  • Idan mai gadi ya kai hari amma bai ga abokan gaba ba, sai ya koma sintiri.
  • Idan mai gadi ya kai hari amma ya ji rauni, sai ya gudu.

Hakanan zaka iya rubuta idan-bayani tare da madaidaicin jihar mai kulawa da bincike daban-daban: shin akwai maƙiyi a kusa, menene matakin lafiya na NPC, da sauransu. Bari mu ƙara wasu jahohi kaɗan:

  • Rashin zaman banza - tsakanin 'yan sintiri.
  • Bincike - lokacin da abokin gaba da aka lura ya ɓace.
  • Neman Taimako - lokacin da aka hange maƙiyi, amma ya fi ƙarfin yin yaƙi shi kaɗai.

Zaɓin kowane ɗayansu yana iyakance - alal misali, mai tsaro ba zai je neman maƙiyi na ɓoye ba idan yana da ƙarancin lafiya.

Bayan haka, akwai babban jerin "ifs" , Wannan "zai iya zama mai wahala sosai, don haka muna buƙatar tsara hanyar da za ta ba mu damar kiyaye jihohi da sauye-sauye tsakanin jihohi. Don yin wannan, muna la'akari da duk jihohin, kuma a ƙarƙashin kowace jiha za mu rubuta duk wani canji zuwa wasu jihohi, tare da sharuddan da suka dace.

Yadda ake ƙirƙirar AI caca: jagora ga masu farawa

Wannan tebirin miƙa mulki ne na jiha - cikakkiyar hanya don wakiltar FSM. Bari mu zana zane kuma mu sami cikakken bayyani na yadda halayen NPC ke canzawa.

Yadda ake ƙirƙirar AI caca: jagora ga masu farawa

Zane yana nuna ainihin yanke shawara ga wannan wakili bisa ga halin da ake ciki. Bugu da ƙari, kowace kibiya tana nuna canji tsakanin jihohi idan yanayin da ke kusa da shi gaskiya ne.

Kowace sabuntawa muna duba halin yanzu na wakili, duba cikin jerin canje-canje, kuma idan an cika sharuɗɗan canji, ya yarda da sabuwar jihar. Misali, kowane firam yana bincika ko mai ƙididdigewa na daƙiƙa 10 ya ƙare, kuma idan haka ne, to mai gadin yana tafiya daga jihar Idling zuwa Patrolling. Hakazalika, Jihar Attacking tana duba lafiyar wakilin - idan yayi ƙasa, to ya shiga cikin Gudun Gudun.

Wannan shine tafiyar da sauye-sauye tsakanin jihohi, amma yaya game da halayen da ke da alaƙa da jihohin kansu? Dangane da aiwatar da ainihin ɗabi'a ga wata jiha, yawanci akwai nau'ikan "ƙugiya" guda biyu inda muke sanya ayyuka ga FSM:

  • Ayyukan da muke yi lokaci-lokaci don halin yanzu.
  • Ayyukan da muke ɗauka lokacin canzawa daga wannan jiha zuwa waccan.

Misalai na nau'in farko. Jihar sintiri za ta motsa wakili tare da hanyar sintiri kowane firam. Jihar mai kai hari za ta yi ƙoƙarin fara kai hari kowane firam ko miƙa mulki zuwa jihar da hakan zai yiwu.

Don nau'i na biyu, yi la'akari da sauyawa "idan abokan gaba suna bayyane kuma abokan gaba sun yi karfi sosai, to, je zuwa Jihar Neman Taimako. Dole ne wakili ya zaɓi inda zai je neman taimako kuma ya adana wannan bayanin domin jihar Neman Taimakon ta san inda za a je. Da zarar an sami taimako, wakilin zai koma jihar Haɗari. A wannan lokacin, zai so ya gaya wa abokin tarayya game da barazanar, don haka NotifyFriendOfThreat mataki na iya faruwa.

Har yanzu, za mu iya kallon wannan tsarin ta hanyar ruwan tabarau na zagayowar Sense/Think/Act. Hankali yana kunshe a cikin bayanan da aka yi amfani da su ta hanyar dabaru na canji. Yi tunani - ana samun canji a kowace jiha. Kuma ana aiwatar da dokar ta hanyar ayyukan da ake yi lokaci-lokaci a cikin wata jiha ko a canjin yanayi tsakanin jihohi.

Wani lokaci ci gaba da gudanar da zaɓe yanayin miƙa mulki na iya yin tsada. Misali, idan kowane wakili ya yi hadaddun lissafin kowane firam don tantance ko zai iya ganin abokan gaba kuma ya fahimci ko zai iya canzawa daga Patrolling zuwa Attacking jihar, wannan zai ɗauki lokaci mai yawa na CPU.

Ana iya la'akari da muhimman canje-canje a cikin yanayin duniya a matsayin abubuwan da za a sarrafa su yayin da suke faruwa. Maimakon FSM yana duba yanayin canjin “wakilina zai iya ganin mai kunnawa?” kowane firam, ana iya saita tsarin daban don bincika ƙasa akai-akai (misali sau 5 a sakan daya). Kuma sakamakon shine fitar da Mai kunnawa Ana gani lokacin da cak ɗin ya wuce.

An wuce wannan ga FSM, wanda ya kamata yanzu je zuwa yanayin da aka gani na Playeran wasan kuma ya amsa daidai. Halin da aka samu iri ɗaya ne sai dai kusan jinkirin da ba za a iya fahimta ba kafin amsawa. Amma aikin ya inganta sakamakon raba sashin Sense zuwa wani bangare na shirin.

Na'ura mai iyakacin iyaka

Koyaya, aiki tare da manyan FSMs ba koyaushe bane dacewa. Idan muna son fadada jihar harin don raba MeleeAttacking da RangedAttacking, dole ne mu canza sauyi daga duk sauran jihohin da ke kaiwa ga jihar Attacking (na yanzu da nan gaba).

Wataƙila kun lura cewa a cikin misalinmu akwai sauye-sauye da yawa. Yawancin canje-canje a cikin jihar Idling iri ɗaya ne da sauye-sauye a cikin jihar Patrol. Zai yi kyau kada mu maimaita kanmu, musamman idan muka ƙara wasu jihohi makamancin haka. Yana da ma'ana ga rukunin Idling da Patrolling a ƙarƙashin lakabin gabaɗaya na "marasa yaƙi", inda akwai saiti guda ɗaya kawai na miƙa mulki don yaƙar jihohi. Idan muka yi la'akari da wannan lakabin a matsayin jiha, to Idling da Patrolling sun zama ƙananan hukumomi. Misali na yin amfani da keɓan teburin miƙa mulki don sabon ƙasa mara yaƙi:

Manyan jihohi:
Yadda ake ƙirƙirar AI caca: jagora ga masu farawa

Daga matsayin yaƙi:
Yadda ake ƙirƙirar AI caca: jagora ga masu farawa

Kuma a cikin tsarin zane:

Yadda ake ƙirƙirar AI caca: jagora ga masu farawa

Tsarin iri ɗaya ne, amma tare da sabuwar ƙasar da ba ta yaƙi da ta haɗa da Idling da Patrolling. Tare da kowace jiha mai ɗauke da FSM tare da ƙananan jihohi (kuma waɗannan ƙananan hukumomi, bi da bi, suna ɗauke da nasu FSMs - da sauransu har tsawon lokacin da kuke buƙata), muna samun Injin Ƙarfin Jiha ko HFSM (na'ura mai iyakacin matsayi). Ta hanyar haɗa jihohin da ba yaƙi ba, mun yanke ɗimbin ɗumbin sauye-sauye. Za mu iya yin haka ga kowace sabbin jihohi tare da sauyi na gama gari. Misali, idan a nan gaba muka fadada jihar Attacking zuwa MeleeAttacking da Missile Attacking jihohin, za su zama kananan hukumomi da cewa canjawa wuri tsakanin juna bisa nisa da makiya da kuma ammo samuwa. Sakamakon haka, ana iya wakilta hadaddun ɗabi'u da ƙananan halaye tare da ƙaramin juzu'i na kwafi.

Bishiyar dabi'a

Tare da HFSM, hadaddun haɗakar halaye an ƙirƙira su a hanya mai sauƙi. Duk da haka, akwai ɗan wahala cewa yanke shawara ta hanyar tsarin mulki yana da alaƙa da yanayin da ake ciki yanzu. Kuma a cikin wasanni da yawa wannan shine ainihin abin da ake bukata. Kuma yin amfani da tsattsauran ra'ayi na jaha na iya rage yawan maimaita sauyi. Amma wani lokacin kuna buƙatar ƙa'idodi waɗanda ke aiki ko da wane jiha kuke, ko waɗanda ke aiki a kusan kowace jiha. Misali, idan lafiyar wakili ya ragu zuwa kashi 25 cikin 25, zaku so ya gudu ba tare da la’akari da ko yana cikin fama, ba shi da aiki, ko yana magana - dole ne ku ƙara wannan yanayin a kowace jiha. Kuma idan mai zanen ku daga baya yana son canza ƙarancin lafiya daga 10% zuwa XNUMX%, to dole ne a sake yin hakan.

Da kyau, wannan yanayin yana buƙatar tsarin da yanke shawara game da "wani yanayi zai kasance" a waje da jihohin da kansu, don yin canje-canje a wuri ɗaya kawai kuma kada ku taɓa yanayin canji. Bishiyoyin halayen suna bayyana a nan.

Akwai hanyoyi da yawa don aiwatar da su, amma ainihin ma'anar kusan iri ɗaya ce ga kowa kuma yana kama da bishiyar yanke shawara: algorithm yana farawa da kumburin "tushen", kuma itacen ya ƙunshi nodes waɗanda ke wakiltar ko dai yanke shawara ko ayyuka. Akwai 'yan bambance-bambance masu mahimmanci ko da yake:

  • Nodes yanzu sun dawo da ɗayan dabi'u uku: Nasara (idan an gama aikin), Ba a yi nasara ba (idan ba za a iya farawa ba), ko Gudu (idan har yanzu yana gudana kuma babu sakamako na ƙarshe).
  • Babu sauran hanyoyin yanke shawara don zaɓar tsakanin hanyoyin biyu. Madadin haka, su ne nodes na Ado, waɗanda ke da kumburin yaro ɗaya. Idan sun ci nasara, suna aiwatar da kumburin ɗansu ɗaya tilo.
  • Nodes waɗanda ke yin ayyuka suna dawo da ƙimar Gudu don wakiltar ayyukan da ake yi.

Ana iya haɗa wannan ƙananan ƙananan nodes don ƙirƙirar adadi mai yawa na halaye masu rikitarwa. Bari mu yi tunanin mai tsaron HFSM daga misali na baya a matsayin bishiyar hali:

Yadda ake ƙirƙirar AI caca: jagora ga masu farawa

Tare da wannan tsarin bai kamata a sami sauyi a bayyane ba daga Jihohin Idling/Patrolling zuwa Attacking ko wasu jihohi. Idan maƙiyi yana iya gani kuma lafiyar halayen ta yi ƙasa, za a daina aiwatar da kisa a kumburin Gudu, ba tare da la'akari da wane kumburin da yake aiwatarwa a baya ba - Patrolling, Idling, Attacking, ko wani.

Yadda ake ƙirƙirar AI caca: jagora ga masu farawa

Bishiyoyin dabi'a suna da rikitarwa - akwai hanyoyi da yawa don tsara su, kuma gano madaidaicin haɗin kayan ado da nodes na fili na iya zama ƙalubale. Har ila yau, akwai tambayoyi game da sau nawa za a duba itacen - muna so mu bi ta kowane bangare na shi ko kawai lokacin da ɗaya daga cikin yanayin ya canza? Ta yaya muke adana jihar da ta shafi nodes - ta yaya za mu san lokacin da muka yi Idling na daƙiƙa 10, ko kuma ta yaya za mu san waɗanne nodes suke aiwatarwa a lokacin ƙarshe don mu iya aiwatar da jerin daidai?

Wannan shine dalilin da ya sa akwai aiwatarwa da yawa. Misali, wasu tsarin sun maye gurbin nodes na ado tare da masu adon layi. Suna sake kimanta bishiyar lokacin da yanayin kayan ado ya canza, suna taimakawa shiga nodes, da samar da sabuntawa na lokaci-lokaci.

Tsarin tushen amfani

Wasu wasannin suna da injiniyoyi daban-daban. Yana da kyawawa cewa sun sami duk fa'idodi na ƙa'idodi masu sauƙi da na gaba ɗaya, amma ba lallai ba ne a cikin cikakkiyar bishiyar ɗabi'a. Maimakon samun takamaiman zaɓi na zaɓi ko bishiyar ayyuka masu yuwuwa, yana da sauƙin bincika duk ayyukan kuma zaɓi mafi dacewa a yanzu.

Tsarin tushen Utility zai taimaka tare da wannan kawai. Wannan tsari ne inda wakili yana da ayyuka iri-iri kuma ya zaɓi waɗanda zai yi bisa la'akari da amfanin kowannensu. Inda amfani shine ma'auni na sabani na yadda mahimmanci ko abin da ake so ga wakili ya yi wannan aikin.

Ƙididdigar amfanin aiki bisa yanayin halin yanzu da muhalli, wakili na iya bincika kuma zaɓi mafi dacewa da sauran jihar a kowane lokaci. Wannan yayi kama da FSM, sai dai inda aka ƙayyade canje-canje ta hanyar ƙididdigewa ga kowace ƙasa mai yuwuwa, gami da na yanzu. Lura cewa mun zaɓi aikin da ya fi dacewa don ci gaba (ko zama idan mun riga mun kammala shi). Don ƙarin iri-iri, wannan na iya zama daidaitaccen zaɓi amma bazuwar zaɓi daga ƙaramin jeri.

Tsarin yana ba da kewayon ƙimar amfani na sabani-misali, daga 0 (wanda ba a so gaba ɗaya) zuwa 100 (wanda ake so gaba ɗaya). Kowane aiki yana da adadin sigogi waɗanda ke shafar lissafin wannan ƙimar. Komawa ga misalin waliyinmu:

Yadda ake ƙirƙirar AI caca: jagora ga masu farawa

Canje-canje tsakanin ayyuka ba su da tabbas-kowace jiha na iya bin kowace. Ana samun fifikon ayyuka a cikin ƙimar amfanin da aka dawo. Idan maƙiyi yana bayyane, kuma wannan maƙiyin yana da ƙarfi, kuma lafiyar halin ya yi ƙasa, to duka Gudu da NemanTaimako za su dawo da ƙima mara kyau. A wannan yanayin, FindingHelp zai kasance mafi girma koyaushe. Hakazalika, ayyukan da ba na yaƙi ba za su dawo fiye da 50 ba, don haka koyaushe za su kasance ƙasa da na yaƙi. Kuna buƙatar la'akari da wannan lokacin ƙirƙirar ayyuka da ƙididdige amfanin su.

A cikin misalinmu, ayyukan suna dawowa ko dai tsayayyen ƙima ko ɗaya daga cikin ƙayyadaddun ƙima biyu. Tsarin da ya fi dacewa zai dawo da kimantawa daga ci gaba da ƙima. Misali, aikin Gudu yana dawo da ƙimar amfani mafi girma idan lafiyar wakilin ta yi ƙasa, kuma matakin kai hari yana dawo da ƙananan ƙimar amfani idan abokan gaba sun yi ƙarfi sosai. Saboda wannan, aikin Gudun yana da fifiko akan kai hari a kowane yanayi inda wakili ya ji cewa ba shi da isasshen lafiya don cin nasara kan abokan gaba. Wannan yana ba da damar ba da fifikon ayyuka dangane da kowane adadin ma'auni, yana sa wannan hanyar ta zama mafi sassauƙa da sauyi fiye da bishiyar ɗabi'a ko FSM.

Kowane aiki yana da sharuɗɗa da yawa don lissafin shirin. Ana iya rubuta su cikin yaren rubutun ko a matsayin jerin dabarun lissafi. The Sims, wanda ke kwatanta halin yau da kullum na yau da kullum, yana ƙara ƙarin lissafin lissafi - wakilin yana karɓar jerin "ƙarfafa" waɗanda ke rinjayar ƙimar amfani. Idan hali yana jin yunwa, za su ƙara jin yunwa a kan lokaci, kuma ƙimar amfanin aikin EatFood zai ƙaru har sai halin ya yi shi, yana rage yawan yunwa da mayar da darajar EatFood zuwa sifili.

Tunanin zaɓin ayyuka bisa tsarin ƙima abu ne mai sauƙi, don haka ana iya amfani da tsarin tushen Utility azaman wani ɓangare na tsarin yanke shawara na AI, maimakon a matsayin cikakken maye gurbinsu. Bishiyar yanke shawara na iya neman ƙimar amfani na nodes na yara biyu kuma zaɓi mafi girma. Hakazalika, itacen hali na iya samun kullin Utility mai haɗaka don kimanta amfanin ayyuka don yanke shawarar ko wane yaro zai zartar.

Motsi da kewayawa

A cikin misalan da suka gabata, muna da dandali da muke matsawa hagu ko dama, da kuma mai gadi da ke sintiri ko kai hari. Amma ta yaya daidai muke tafiyar da motsi na wakili na tsawon lokaci? Ta yaya za mu saita gudu, ta yaya za mu guje wa cikas, kuma ta yaya za mu tsara hanya sa’ad da isa ga inda ake nufi ya fi yin tafiya a madaidaiciyar layi? Mu kalli wannan.

Gudanar da mulki

A mataki na farko, za mu ɗauka cewa kowane wakili yana da ƙimar saurin gudu, wanda ya haɗa da yadda sauri yake motsawa da kuma wace hanya. Ana iya auna shi a cikin mita a sakan daya, kilomita a cikin sa'a, pixels a sakan daya, da dai sauransu. Tunawa da Sense/Think/Act madauki, zamu iya tunanin cewa sashin tunani yana zaɓar gudu, kuma sashin Dokar yana amfani da wannan gudun ga wakili. Yawanci wasanni suna da tsarin ilimin lissafi wanda ke yin wannan aikin a gare ku, koyan ƙimar saurin kowane abu da daidaita shi. Sabili da haka, zaku iya barin AI tare da ɗawainiya ɗaya - don yanke shawarar irin saurin da wakili ya kamata ya samu. Idan kun san inda wakilin ya kamata ya kasance, to kuna buƙatar matsar da shi a madaidaiciyar hanya a saurin da aka saita. Ma'auni maras muhimmanci:

want_travel = manufa_position - agent_position

Ka yi tunanin duniyar 2D. Wakilin yana a aya (-2,-2), inda aka nufa shi ne wani wuri a arewa maso gabas a ma'ana (30, 20), kuma hanyar da ake buƙata ga wakilin don isa wurin shine (32, 22). Bari mu ce ana auna waɗannan matsayi a cikin mita - idan muka ɗauki gudun wakilin ya zama mita 5 a cikin daƙiƙa guda, to za mu auna siginar matsugunin mu kuma mu sami saurin kusan (4.12, 2.83). Tare da waɗannan sigogi, wakilin zai isa wurin da zai nufa cikin kusan daƙiƙa 8.

Kuna iya sake ƙididdige ƙimar kowane lokaci. Idan wakilin ya kasance rabin zuwa ga manufa, motsi zai zama rabin tsawon, amma tun da matsakaicin matsakaicin wakili shine 5 m / s (mun yanke shawarar wannan a sama), saurin zai kasance iri ɗaya. Wannan kuma yana aiki don motsawar maƙasudi, ƙyale wakili ya yi ƙananan canje-canje yayin da suke motsawa.

Amma muna son ƙarin bambance-bambance - alal misali, ƙara saurin sauri a hankali don kwaikwayi halin da ke motsawa daga tsaye zuwa gudu. Hakanan za'a iya yin haka a ƙarshen kafin tsayawa. Wadannan fasalulluka an san su da halayen tuƙi, kowannensu yana da takamaiman sunaye: Neman, Gudu, Zuwa, da dai sauransu. Manufar ita ce za a iya amfani da ƙarfin haɓakawa zuwa saurin wakili, dangane da kwatanta matsayin wakili da saurin halin yanzu tare da inda aka nufa. domin yin amfani da hanyoyi daban-daban na motsawa zuwa ga manufa.

Kowane hali yana da wata manufa daban. Neman da isowa hanyoyi ne don matsar da wakili zuwa wuri. Kaucewa Kashewa da Rabuwa suna daidaita motsin wakili don gujewa cikas akan hanyar zuwa manufa. Daidaitawa da Haɗin kai suna sa wakilai suna tafiya tare. Ana iya taƙaita kowane adadin halayen tuƙi daban-daban don samar da vector guda ɗaya tare da la'akari da dukkan abubuwa. Wakilin da ke amfani da Zuwan, Rabuwa, da Halayen Kaucewa Kaucewa don nisantar bango da sauran wakilai. Wannan hanya tana aiki da kyau a wuraren buɗewa ba tare da cikakkun bayanai marasa mahimmanci ba.

A cikin mawuyacin yanayi, ƙari na halaye daban-daban yana aiki mafi muni - alal misali, wakili zai iya makale a bango saboda rikici tsakanin isowa da Kaucewa. Don haka, kuna buƙatar yin la'akari da zaɓuɓɓuka waɗanda suka fi rikitarwa fiye da ƙara duk ƙimar kawai. Hanyar ita ce: maimakon ƙara sakamakon kowane hali, za ku iya yin la'akari da motsi a wurare daban-daban kuma zaɓi mafi kyawun zaɓi.

Koyaya, a cikin mahalli mai sarƙaƙƙiya tare da matattun ƙarewa da zaɓi game da hanyar da za mu bi, za mu buƙaci wani abu har ma da ci gaba.

Neman hanya

Halayen tuƙi suna da kyau don motsi mai sauƙi a cikin buɗaɗɗen wuri (filin ƙwallon ƙafa ko filin wasa) inda samun daga A zuwa B hanya ce madaidaiciya tare da ƙananan karkata zuwa ga cikas. Don hadaddun hanyoyi, muna buƙatar gano hanyoyin, wanda shine hanyar bincika duniya da yanke shawarar hanyar ta.

Mafi sauƙaƙa shine a yi amfani da grid zuwa kowane murabba'i kusa da wakili kuma auna wanne daga cikinsu aka yarda ya motsa. Idan daya daga cikinsu ya kasance alkibla, to, ku bi hanyar daga kowane fili zuwa wanda ya gabata har sai kun isa farkon. Wannan ita ce hanya. In ba haka ba, maimaita tsari tare da wasu murabba'ai na kusa har sai kun sami wurin da kuke so ko kun ƙare daga murabba'ai (ma'ana babu wata hanya mai yuwuwa). Wannan shine abin da aka fi sani da Binciken Breadth-First Search ko BFS (algorithm bincike na buri-farko). A kowane mataki yana duban kowane bangare (saboda haka fadi, "nisa"). Wurin bincike kamar igiyar igiyar ruwa ne wanda ke motsawa har ya isa wurin da ake so - wurin nema yana faɗaɗa kowane mataki har sai an haɗa ƙarshen ƙarshen, bayan haka ana iya gano shi zuwa farkon.

Yadda ake ƙirƙirar AI caca: jagora ga masu farawa

A sakamakon haka, za ku sami jerin murabba'ai waɗanda aka haɗa hanyar da ake so. Wannan ita ce hanya (saboda haka, gano hanya) - jerin wuraren da wakilin zai ziyarta yayin bin wurin da aka nufa.

Ganin cewa mun san matsayin kowane murabba'i a duniya, zamu iya amfani da halayen tuƙi don motsawa tare da hanya - daga kumburi 1 zuwa kumburi 2, sannan daga kumburi 2 zuwa kumburi 3, da sauransu. Zaɓin mafi sauƙi shine zuwa tsakiyar murabba'i na gaba, amma mafi kyawun zaɓi shine tsayawa a tsakiyar gefen tsakanin murabba'in na yanzu da na gaba. Saboda wannan, wakili zai iya yanke sasanninta akan kaifi mai kaifi.

Algorithm na BFS shima yana da nakasu - yana bincikar murabba'ai da yawa a cikin “ba daidai ba” shugabanci kamar yadda yake a “daidai”. Wannan shine inda mafi hadadden algorithm mai suna A* (Tauraro) ya shigo cikin wasa. Haka yake aiki, amma maimakon a makance bincikar murabba'ai da ke makwabtaka (sannan makwabciyar makwabta, sannan makwabtan makwabta, da sauransu), ta tattara nodes a cikin jerin kuma ta jera su don kullin na gaba da aka bincika koyaushe shine. wanda ke kaiwa ga mafi guntuwar hanya. An jera nodes bisa la'akari da abubuwa guda biyu - "kudin" hanyar zato zuwa filin da ake so (ciki har da duk wani farashin balaguron balaguro) da kiyasin yadda filin yake da nisa daga wurin da aka nufa (rashin son bincike a cikin hanya madaidaiciya).

Yadda ake ƙirƙirar AI caca: jagora ga masu farawa

Wannan misalin yana nuna cewa wakili yana bincika murabba'i ɗaya a lokaci ɗaya, kowane lokaci yana zaɓar na kusa da wanda ya fi dacewa. Hanyar da ta haifar iri ɗaya ce da BFS, amma an yi la'akari da ƙananan murabba'ai a cikin tsarin - wanda ke da babban tasiri akan wasan kwaikwayon wasan.

Motsi ba tare da grid

Amma yawancin wasannin ba a tsara su a kan grid, kuma galibi ba zai yiwu a yi hakan ba tare da sadaukar da haƙiƙance ba. Ana buƙatar sasantawa. Wane girman ya kamata murabba'ai su kasance? Ya yi girma kuma ba za su iya wakiltar ƙananan tituna ko juyi daidai ba, ƙanƙanta kuma za a sami filaye da yawa don nema, wanda a ƙarshe zai ɗauki lokaci mai yawa.

Abu na farko da za a fahimta shi ne cewa raga yana ba mu jadawali na nodes masu alaƙa. Algorithms na A* da BFS suna aiki a zahiri akan jadawali kuma basu damu da ragarmu kwata-kwata ba. Za mu iya sanya nodes a ko'ina a cikin duniyar wasan: muddin akwai haɗin kai tsakanin kowane nau'i na biyu da aka haɗa, da kuma tsakanin farkon da ƙarshen maki kuma aƙalla ɗaya daga cikin nodes, algorithm zai yi aiki kamar yadda ya gabata. Ana kiran wannan sau da yawa tsarin hanyar hanya, tun da kowane kumburi yana wakiltar matsayi mai mahimmanci a duniya wanda zai iya zama wani ɓangare na kowane adadin hanyoyi na zato.

Yadda ake ƙirƙirar AI caca: jagora ga masu farawa
Misali 1: kulli a kowane murabba'i. Binciken yana farawa daga kumburi inda wakili yake kuma yana ƙarewa a kumburin filin da ake so.

Yadda ake ƙirƙirar AI caca: jagora ga masu farawa
Misali 2: Karamin saitin nodes (waypoints). Binciken yana farawa daga filin wakili, yana wucewa ta adadin nodes ɗin da ake buƙata, sannan ya ci gaba zuwa wurin da aka nufa.

Wannan tsari ne mai sassauƙa da ƙarfi gaba ɗaya. Amma ana buƙatar wasu kulawa wajen yanke shawarar inda kuma yadda za a sanya hanyar hanya, in ba haka ba wakilai na iya kawai ganin wurin mafi kusa kuma ba za su iya fara hanyar ba. Zai yi sauƙi idan za mu iya sanya wuraren hanya ta atomatik bisa ga lissafin duniya.

Wannan shi ne inda ragar kewayawa ko navmesh (raɗin kewayawa) ya bayyana. Wannan yawanci ragon 2D ne na triangles wanda aka lulluɓe akan jumhuriyar duniya - duk inda aka ba wa wakili damar tafiya. Kowane triangles a cikin ragar ya zama kumburi a cikin jadawali, kuma yana da har zuwa uku makusantan da ke kusa da su waɗanda suka zama maƙwabta a cikin jadawali.

Wannan hoton misali ne daga injin Unity - ya yi nazarin ilimin lissafi a duniya kuma ya haifar da navmesh (a cikin hoton da ke cikin haske blue). Kowace polygon a cikin navmesh yanki ne da wakili zai iya tsayawa ko motsawa daga polygon zuwa wani polygon. A cikin wannan misali, polygons sun fi ƙanƙanta fiye da benayen da suke a kan su - ana yin wannan don la'akari da girman wakilin, wanda zai wuce fiye da matsayinsa.

Yadda ake ƙirƙirar AI caca: jagora ga masu farawa

Za mu iya nemo hanya ta wannan raga, sake amfani da A* algorithm. Wannan zai ba mu kusan cikakkiyar hanya a cikin duniya, wanda ke yin la'akari da duk juzu'i kuma baya buƙatar nodes marasa mahimmanci da ƙirƙirar hanyoyin hanya.

Neman hanya babban jigo ne wanda sashe ɗaya na labarin bai isa ba. Idan kuna son yin nazarinsa dalla-dalla, to wannan zai taimaka Amit Patel gidan yanar gizon.

Tsare-tsare

Mun koya tare da gano hanyar cewa wani lokacin bai isa mu ɗauki alkibla kawai mu matsa ba - dole ne mu ɗauki hanya mu yi ƴan juyi don isa wurin da muke so. Za mu iya haɗa wannan ra'ayin: cimma manufa ba mataki na gaba ba ne kawai, amma jerin gabaɗaya ne inda wani lokaci kuna buƙatar duba matakai da yawa don gano abin da ya kamata na farko ya kasance. Wannan shi ake kira tsarawa. Ana iya tunanin gano hanyar a matsayin ɗaya daga cikin haɓakawa da yawa don tsarawa. Dangane da zagayowar Sense/Thinki/Dokar mu, wannan shine inda sashin Tunani yake tsara sassan Dokar da yawa na gaba.

Bari mu kalli misalin wasan allo Magic: The Gathering. Za mu fara farawa tare da saitin katunan a hannunmu:

  • Famawa - Yana ba da mana baki 1 (katin ƙasa).
  • Daji - yana ba da mana kore 1 (katin ƙasa).
  • Mayen Gudu - Yana buƙatar mana shuɗi 1 don kira.
  • Elvish Mystic - Yana buƙatar mana kore 1 don kira.

Mun yi watsi da sauran katunan uku don sauƙaƙawa. A bisa ka’ida, an ba dan wasa damar buga katin kasa 1 a kowane biki, zai iya “taba” wannan katin don fitar da mana daga ciki, sannan ya yi sihiri (ciki har da kiran wata halitta) gwargwadon adadin mana. A cikin wannan yanayin, ɗan wasan ɗan adam ya san wasa da gandun daji, danna mana kore 1, sannan ya kira Elvish Mystic. Amma ta yaya wasan AI zai iya gano wannan?

Sauƙi shirin

Hanyar maras muhimmanci ita ce a gwada kowane aiki bi da bi har sai babu wanda ya dace da ya rage. Ta kallon katunan, AI yana ganin abin da Swamp zai iya takawa. Kuma yana buga shi. Shin akwai wasu ayyuka da suka rage wannan juzu'in? Ba zai iya kiran ko dai Elvish Mystic ko Fugitive Wizard ba, saboda suna buƙatar mana kore da shuɗi don kiran su, yayin da Swamp ke ba da mana baki kawai. Kuma ba zai sake iya buga dajin ba, domin ya riga ya buga fadama. Don haka, wasan AI ya bi ka'idoji, amma bai yi kyau ba. Ana iya ingantawa.

Tsara na iya samun jerin ayyukan da ke kawo wasan zuwa yanayin da ake so. Kamar yadda kowane filin da ke kan hanya yana da maƙwabta (a cikin gano hanya), kowane aiki a cikin tsari ma yana da makwabta ko magada. Za mu iya neman waɗannan ayyuka da ayyuka na gaba har sai mun kai ga yanayin da ake so.

A cikin misalinmu, sakamakon da ake so shi ne "ku tara halitta idan zai yiwu." A farkon juyi, muna ganin ayyuka biyu ne kawai waɗanda dokokin wasan suka yarda da su:

1. Kunna fadama (sakamakon: fadama cikin wasan)
2. Play Forest (sakamakon: daji a wasan)

Kowane mataki da aka ɗauka zai iya haifar da ƙarin ayyuka da rufe wasu, kuma ya danganta da ƙa'idodin wasan. Ka yi tunanin mun buga Swamp - wannan zai cire Swamp a matsayin mataki na gaba (mun riga mun buga shi), kuma wannan kuma zai cire Forest (saboda bisa ga ka'idodin za ku iya kunna katin ƙasa ɗaya a kowane bi da bi). Bayan wannan, AI ta ƙara samun 1 baki mana a matsayin mataki na gaba saboda babu wasu zaɓuɓɓuka. Idan ya ci gaba ya zaɓi Taɓa Ruwa, zai karɓi mana baƙar fata raka'a 1 kuma ba zai iya yin komai da ita ba.

1. Kunna fadama (sakamakon: fadama cikin wasan)
1.1 "Taɓa" Fama (sakamakon: Fama "taɓa", +1 na baki mana)
Babu ayyuka da ke akwai - KARSHE
2. Play Forest (sakamakon: daji a wasan)

Jerin ayyukan gajere ne, mun kai ga mutuwa. Muna maimaita tsari don mataki na gaba. Muna wasa Forest, buɗe aikin "samu 1 kore mana", wanda hakan zai buɗe mataki na uku - kira Elvish Mystic.

1. Kunna fadama (sakamakon: fadama cikin wasan)
1.1 "Taɓa" Fama (sakamakon: Fama "taɓa", +1 na baki mana)
Babu ayyuka da ke akwai - KARSHE
2. Play Forest (sakamakon: daji a wasan)
2.1 "Taɓa" Dajin (sakamakon: An "taɓa da daji", +1 na koren mana)
2.1.1 Kira Elvish Mystic (sakamakon: Elvish Mystic a cikin wasa, -1 kore mana)
Babu ayyuka da ke akwai - KARSHE

A ƙarshe, mun bincika duk abubuwan da za a iya yi kuma mun sami wani tsari wanda ke kiran wata halitta.

Wannan misali ne mai sauqi qwarai. Yana da kyau a zabi mafi kyawun tsarin da zai yiwu, maimakon kowane shirin da ya cika wasu sharudda. Gabaɗaya yana yiwuwa a kimanta yuwuwar tsare-tsare bisa ga sakamako ko fa'idar aiwatar da su gabaɗaya. Kuna iya maki maki 1 don kunna katin ƙasa da maki 3 don kiran halitta. Yin wasa Swamp zai zama shirin maki 1. Kuma wasa dajin → Matsa dajin → kira Elvish Mystic zai ba da maki 4 nan da nan.

Wannan shine yadda tsarawa ke aiki a cikin Magic: Gathering, amma dabaru iri ɗaya ya shafi wasu yanayi. Misali, matsar da ɗan leƙen asiri don ba da wuri don bishop ya motsa a cikin dara. Ko a rufe bayan bango don yin harbi lafiya a cikin XCOM kamar wannan. Gabaɗaya, kuna samun ra'ayin.

Ingantaccen shiri

Wani lokaci akwai yuwuwar ayyuka da yawa don yin la'akari da kowane zaɓi mai yiwuwa. Komawa ga misali tare da Magic: Gathering: bari mu ce a cikin wasan kuma a hannunka akwai katunan ƙasa da yawa - adadin yuwuwar haɗuwa na motsi na iya zama cikin dozin. Akwai hanyoyin magance matsalar da yawa.

Hanya ta farko ita ce sarka ta baya. Maimakon gwada duk haɗuwa, yana da kyau a fara tare da sakamakon ƙarshe kuma kuyi ƙoƙarin neman hanyar kai tsaye. Maimakon tafiya daga tushen bishiyar zuwa wani takamaiman ganye, muna motsawa ta hanyar da ba ta dace ba - daga ganye zuwa tushen. Wannan hanya ta fi sauƙi da sauri.

Idan abokan gaba suna da lafiya 1, zaku iya samun shirin "lalacewar 1 ko fiye". Don cimma wannan, dole ne a cika wasu sharuɗɗa:

1. Lalacewa na iya lalacewa ta hanyar sihiri - dole ne a hannu.
2. Don yin sihiri, kuna buƙatar mana.
3. Don samun mana, kuna buƙatar kunna katin ƙasa.
4. Don kunna katin ƙasa, kuna buƙatar samun shi a hannun ku.

Wata hanya ita ce mafi kyawun bincike-farko. Maimakon gwada duk hanyoyin, mun zaɓi mafi dacewa. Mafi sau da yawa, wannan hanyar tana ba da mafi kyawun tsari ba tare da farashin nema ba. A* wani nau'i ne na mafi kyawun bincike na farko - ta hanyar nazarin hanyoyin da suka fi dacewa tun daga farko, zai iya samun hanya mafi kyau ba tare da duba wasu zaɓuɓɓuka ba.

Wani zaɓi mai ban sha'awa da ƙara shahara mafi kyawun zaɓin nema shine Monte Carlo Tree Search. Maimakon yin hasashe waɗanne tsare-tsare ne mafi kyau fiye da sauran lokacin zabar kowane mataki na gaba, algorithm yana zaɓar magada bazuwar a kowane mataki har ya kai ƙarshe (lokacin da shirin ya haifar da nasara ko cin nasara). Ana amfani da sakamakon ƙarshe don ƙara ko rage nauyin zaɓuɓɓukan da suka gabata. Ta hanyar maimaita wannan tsari sau da yawa a jere, algorithm yana ba da ƙima mai kyau na abin da mafi kyawun motsi na gaba shine, koda kuwa yanayin ya canza (idan abokan gaba sun dauki mataki don tsoma baki tare da mai kunnawa).

Babu wani labari game da tsare-tsare a wasanni da zai cika ba tare da Tsare-tsare Tsare-tsare na Manufa ko GOAP (tsarin aiwatar da manufa ba). Wannan hanya ce da aka fi amfani da ita kuma ana tattaunawa, amma ban da ƴan bambance-bambancen dalla-dalla, ainihin hanyar sarƙar da muka yi magana akai a baya. Idan makasudin shine "halakar da mai kunnawa" kuma mai kunnawa yana baya, shirin zai iya zama: halakar da gurneti → samo shi → jefa shi.

Yawanci akwai manufa da yawa, kowanne yana da fifikon kansa. Idan ba za a iya kammala maƙasudin fifiko mafi girma ba (babu haɗin ayyukan da ke haifar da shirin "kashe mai kunnawa" saboda ba a iya ganin mai kunnawa), AI zai koma zuwa ƙananan manufofin fifiko.

Horo da daidaitawa

Mun riga mun faɗi cewa wasan AI yawanci baya amfani da koyon injin saboda bai dace da sarrafa wakilai a ainihin lokacin ba. Amma wannan ba yana nufin ba za ku iya aro wani abu daga wannan yanki ba. Muna son abokin hamayya a cikin mai harbi wanda zamu iya koyan wani abu daga gareshi. Misali, nemo game da mafi kyawun matsayi akan taswira. Ko kuma abokin hamayya a wasan fada wanda zai toshe motsin haduwar dan wasan da ake yawan amfani da shi, yana motsa shi ya yi amfani da wasu. Don haka koyon inji na iya zama da amfani sosai a irin wannan yanayi.

Ƙididdiga da Ƙididdiga

Kafin mu shiga cikin misalai masu rikitarwa, bari mu ga yadda za mu iya tafiya ta hanyar ɗora ƴan auna sauƙi da amfani da su don yanke shawara. Misali, dabarun lokaci na gaske - ta yaya zamu tantance ko dan wasa zai iya kaddamar da hari a cikin ‘yan mintoci na farko na wasan da kuma wane tsaro da zai shirya wa wannan? Za mu iya yin nazarin abubuwan da ɗan wasa ya yi a baya don fahimtar abin da halayen gaba zai iya kasancewa. Da farko, ba mu da irin wannan ɗanyen bayanai, amma za mu iya tattara su - duk lokacin da AI ta yi wasa da ɗan adam, yana iya yin rikodin lokacin harin farko. Bayan 'yan zaman, za mu sami matsakaicin lokacin da mai kunnawa zai ɗauka don kai hari a nan gaba.

Hakanan akwai matsala tare da matsakaita dabi'u: idan mai kunnawa ya yi sauri sau 20 kuma yayi wasa a hankali sau 20, ƙimar da ake buƙata za ta kasance wani wuri a tsakiya, kuma wannan ba zai ba mu wani abu mai amfani ba. Ɗaya daga cikin mafita ita ce iyakance bayanan shigarwa - ana iya la'akari da guda 20 na ƙarshe.

Ana amfani da irin wannan hanya yayin kiyasin yuwuwar wasu ayyuka ta hanyar ɗauka cewa abubuwan da ɗan wasan ya yi a baya za su kasance iri ɗaya a nan gaba. Idan dan wasa ya kai mana hari sau biyar da kwallon wuta, sau biyu da walƙiya, sau ɗaya kuma tare da melee, a bayyane yake cewa ya fi son ƙwallon wuta. Bari mu fitar da mu ga yuwuwar amfani da makamai daban-daban: ƙwallon wuta = 62,5%, walƙiya = 25% da melee = 12,5%. Wasan mu AI yana buƙatar shirya don kare kansa daga wuta.

Wata hanya mai ban sha'awa ita ce yin amfani da Naive Bayes Classifier don nazarin yawancin bayanan shigarwa da kuma rarraba halin da ake ciki ta yadda AI ta yi ta hanyar da ake so. Bayesian classifiers an fi sanin su don amfani da su a cikin tace spam na imel. A can suna bincika kalmomin, suna kwatanta su zuwa inda waɗannan kalmomin suka bayyana a baya (a cikin spam ko a'a), kuma suna yanke shawara game da imel masu shigowa. Za mu iya yin abu ɗaya ko da da ƙarancin bayanai. Dangane da duk bayanan da AI ke gani (kamar abin da aka ƙirƙira ɓangarorin abokan gaba, ko waɗanne dabaru suke amfani da su, ko waɗanne fasahohin da suka bincika), da sakamakon ƙarshe (yaƙi ko zaman lafiya, gaggawa ko karewa, da sauransu). - za mu zabi halin AI da ake so.

Duk waɗannan hanyoyin horo sun isa, amma yana da kyau a yi amfani da su bisa bayanan gwaji. AI za ta koyi daidaitawa da dabaru daban-daban da masu wasan kwaikwayon ku suka yi amfani da su. AI wanda ya dace da mai kunnawa bayan an sake shi na iya zama abin tsinkaya ko kuma da wahala a sha kashi.

Daidaita tushen ƙima

Ganin abubuwan da ke cikin duniyar wasan mu da ƙa'idodi, za mu iya canza saitin ƙimar da ke tasiri ga yanke shawara, maimakon amfani da bayanan shigarwa kawai. Muna yin wannan:

  • Bari AI ta tattara bayanai game da yanayin duniya da mahimman abubuwan da suka faru yayin wasan (kamar yadda yake sama).
  • Bari mu canza wasu ƙima masu mahimmanci bisa wannan bayanan.
  • Muna aiwatar da shawararmu bisa aiki ko kimanta waɗannan ƙimar.

Misali, wakili yana da ɗakuna da yawa don zaɓar daga taswirar mai harbi mutum na farko. Kowane ɗaki yana da ƙimar kansa, wanda ke ƙayyade yadda ake son ziyarta. AI ba da gangan ba ya zaɓi ɗakin da zai je bisa ƙimar. Sai wakilin ya tuna a wane dakin da aka kashe shi kuma ya rage darajarsa (yiwuwar komawa can). Hakazalika ga halin da ake ciki - idan wakili ya halakar da abokan adawar da yawa, to, darajar ɗakin yana ƙaruwa.

Markov model

Idan muka yi amfani da bayanan da aka tattara don yin tsinkaya fa? Idan muka tuna duk dakin da muka ga dan wasa a ciki na wani lokaci, za mu yi hasashen dakin da dan wasan zai iya zuwa. Ta hanyar sa ido da yin rikodin motsin mai kunnawa a cikin ɗakuna (daraja), zamu iya hango su.

Mu dauki dakuna uku: ja, kore da shudi. Da kuma abubuwan da muka yi rikodin yayin kallon wasan:

Yadda ake ƙirƙirar AI caca: jagora ga masu farawa

Adadin abubuwan lura a kowane ɗaki ya kusan daidaita - har yanzu ba mu san inda za mu yi kyakkyawan wuri don kwanto ba. Har ila yau, tattara ƙididdiga yana da rikitarwa ta hanyar sake dawo da 'yan wasa, waɗanda ke bayyana a ko'ina cikin taswirar. Amma bayanai game da dakin da suka shiga bayan sun bayyana akan taswira sun riga sun yi amfani.

Ana iya ganin cewa koren dakin ya dace da 'yan wasa - yawancin mutane suna motsawa daga ɗakin ja zuwa gare shi, 50% na wanda ya rage a can. Dakin shuɗi, akasin haka, ba sananne ba ne; kusan babu wanda ke zuwa wurinsa, kuma idan sun yi, ba su daɗe ba.

Amma bayanan sun gaya mana wani abu mafi mahimmanci - lokacin da ɗan wasa yana cikin ɗaki shuɗi, ɗakin na gaba da muka gan shi zai zama ja, ba kore ba. Ko da yake koren dakin ya fi shahara fiye da dakin ja, yanayin yana canzawa idan mai kunnawa yana cikin dakin blue. Jiha ta gaba (watau dakin da dan wasan zai je) ya dogara da yanayin da ya gabata (watau dakin da dan wasan yake a yanzu). Saboda muna bincika abubuwan dogaro, za mu yi hasashen hasashen da ya dace fiye da idan kawai muka ƙidaya abubuwan lura da kansu.

Yin tsinkaya a halin da ake ciki a nan gaba bisa bayanan da aka samu daga jihar da ta gabata ana kiranta samfurin Markov, kuma irin waɗannan misalai (tare da dakuna) ana kiran su Markov sarƙoƙi. Tun da alamu suna wakiltar yuwuwar canje-canje tsakanin jihohi masu zuwa, ana nuna su a gani azaman FSMs tare da yuwuwar kusan kowane canji. A baya can, mun yi amfani da FSM don wakiltar yanayin halin da wakili yake ciki, amma wannan ra'ayi ya wuce zuwa kowace jiha, ko yana da alaƙa da wakili ko a'a. A wannan yanayin, jihohi suna wakiltar ɗakin da wakilin ya mamaye:

Yadda ake ƙirƙirar AI caca: jagora ga masu farawa

Wannan wata hanya ce mai sauƙi ta wakiltar yiwuwar sauye-sauye na jihohi, yana ba AI damar yin tsinkaya a jihar ta gaba. Kuna iya tsammanin matakai da yawa a gaba.

Idan mai kunnawa yana cikin koren dakin, akwai damar 50% cewa zai ci gaba da kasancewa a can a gaba in an gan shi. Amma menene damar cewa har yanzu zai kasance a can ko da bayan? Ba wai kawai akwai damar cewa dan wasan ya kasance a cikin koren dakin bayan kallo biyu ba, amma akwai kuma damar da ya bar ya dawo. Ga sabon tebur yana la'akari da sabbin bayanai:

Yadda ake ƙirƙirar AI caca: jagora ga masu farawa

Ya nuna cewa damar ganin dan wasan a cikin koren dakin bayan lura biyu zai kasance daidai da 51% - 21% cewa zai kasance daga dakin ja, 5% daga cikinsu cewa mai kunnawa zai ziyarci dakin blue a tsakanin su, kuma 25% cewa mai kunnawa ba zai bar dakin kore ba.

Tebur kayan aiki ne kawai na gani - hanya kawai tana buƙatar ninka yuwuwar a kowane mataki. Wannan yana nufin zaku iya duba zuwa gaba tare da faɗakarwa ɗaya: muna ɗauka cewa damar shiga ɗaki ya dogara gaba ɗaya akan ɗakin na yanzu. Wannan shi ake kira da Markov Property - nan gaba jihar dogara ne kawai a kan halin yanzu. Amma wannan ba daidai bane dari bisa dari. 'Yan wasa na iya canza yanke shawara dangane da wasu dalilai: matakin lafiya ko adadin harsasai. Saboda ba mu yin rikodin waɗannan dabi'un, hasashen mu ba zai yi ƙarancin inganci ba.

N-grams

Me game da misalin wasan fada da tsinkaya haduwar dan wasan? Duk daya! Amma maimakon jiha ɗaya ko aukuwa ɗaya, za mu bincika dukkan jerin abubuwan da suka haɗa yajin aiki.

Hanya ɗaya don yin wannan ita ce adana kowace shigarwa (kamar Kick, Punch ko Toshe) a cikin ma'aji kuma rubuta duka buffer azaman taron. Don haka mai kunnawa akai-akai yana danna Kick, Kick, Punch don amfani da harin SuperDeathFist, tsarin AI yana adana duk abubuwan da aka shigar a cikin buffer kuma yana tunawa da uku na ƙarshe da aka yi amfani da su a kowane mataki.

Yadda ake ƙirƙirar AI caca: jagora ga masu farawa
(Layukan da ke cikin m sune lokacin da mai kunnawa ya ƙaddamar da harin SuperDeathFist.)

AI zai ga duk zaɓuɓɓuka lokacin da mai kunnawa ya zaɓi Kick, sannan wani Kick ya biyo baya, sannan kuma lura cewa shigarwa na gaba koyaushe shine Punch. Wannan zai bawa wakili damar yin hasashen motsin haduwar SuperDeathFist kuma ya toshe shi idan zai yiwu.

Ana kiran waɗannan jerin abubuwan da suka faru N-grams, inda N shine adadin abubuwan da aka adana. A cikin misalin da ya gabata yana da gram 3 (trigram), wanda ke nufin: ana amfani da shigarwar biyu na farko don tsinkayar na uku. Dangane da haka, a cikin gram 5, shigarwar huɗun farko sun faɗi na biyar da sauransu.

Mai zane yana buƙatar zaɓar girman N-grams a hankali. Karamin N yana buƙatar ƙarancin ƙwaƙwalwar ajiya amma kuma yana adana ƙasan tarihi. Misali, gram 2 (bigram) zai yi rikodin Kick, Kick ko Kick, Punch, amma ba zai iya adana Kick, Kick, Punch ba, don haka AI ba zai amsa gamayyar SuperDeathFist ba.

A gefe guda, lambobi masu girma suna buƙatar ƙarin ƙwaƙwalwar ajiya kuma AI zai fi wahalar horarwa tunda za a sami ƙarin zaɓuɓɓukan da yawa. Idan kuna da abubuwa uku masu yuwuwar Kick, Punch ko Block, kuma mun yi amfani da gram 10, wannan zai zama kusan zaɓuɓɓukan daban-daban dubu 60.

Samfurin bigram shine sarkar Markov mai sauƙi - kowane yanki na baya / halin yanzu shine bigram, kuma zaku iya tsinkayar jihar ta biyu bisa ta farko. gram 3 da mafi girma N-gram kuma ana iya ɗaukar su azaman sarƙoƙi na Markov, inda dukkan abubuwa (sai na ƙarshe a cikin N-gram) tare sun zama jiha ta farko da kashi na ƙarshe na biyu. Misalin wasan fada yana nuna damar sauyawa daga jihar Kick da Kick zuwa jihar Kick da Punch. Ta hanyar kula da shigarwar tarihin shigarwa da yawa azaman raka'a ɗaya, da gaske muna canza tsarin shigarwa zuwa wani yanki na gaba ɗaya. Wannan yana ba mu dukiyar Markov, wanda ke ba mu damar amfani da sarƙoƙi na Markov don tsinkayar shigarwa ta gaba kuma mu yi tunanin abin da motsin combo zai kasance na gaba.

ƙarshe

Mun yi magana game da kayan aiki da hanyoyin da aka fi sani da su a cikin haɓakar basirar wucin gadi. Mun kuma duba yanayin da ya kamata a yi amfani da su da kuma inda suke da amfani musamman.

Wannan yakamata ya isa ya fahimci mahimman abubuwan wasan AI. Amma, ba shakka, waɗannan ba duka hanyoyin ba ne. Mafi ƙarancin shahara, amma ba ƙaramin tasiri ya haɗa da:

  • Algorithms na ingantawa gami da hawan tudu, zuriyar gradient da algorithms na kwayoyin halitta
  • Algorithms bincike/tsara-tsara (minimax da alpha-beta pruning)
  • Hanyoyin rarrabuwa (perceptrons, cibiyoyin sadarwa na jijiyoyi da na'urori masu goyan baya)
  • tsarin don sarrafa ma'aikata' hasashe da ƙwaƙwalwar ajiya
  • Hanyoyi na gine-gine zuwa AI (tsarin matasan, tsarin gine-ginen gine-gine da sauran hanyoyin rufe tsarin AI)
  • kayan aikin rayarwa (tsari da daidaita motsi)
  • abubuwan aiki (matakin daki-daki, kowane lokaci, da algorithms na lokaci)

Albarkatun kan layi akan batun:

1. GameDev.net yana da sashe tare da labarai da koyawa akan AIKuma taron.
2. AiGameDev.com ya ƙunshi gabatarwa da labarai da yawa akan batutuwa masu yawa da suka shafi ci gaban AI game.
3. Farashin GDC ya haɗa da batutuwa daga taron GDC AI, yawancin su ana samun su kyauta.
4. Hakanan ana iya samun kayan aiki masu amfani akan gidan yanar gizon AI Game Programmers Guild.
5. Tommy Thompson, AI mai bincike kuma mai haɓaka wasan kwaikwayo, yana yin bidiyo akan YouTube AI da Wasanni tare da bayani da nazarin AI a cikin wasanni na kasuwanci.

Littattafai kan batun:

1. Jerin littafin Game AI Pro tarin gajerun labarai ne waɗanda ke bayyana yadda ake aiwatar da takamaiman fasali ko yadda ake magance takamaiman matsaloli.

Wasan AI Pro: Tattara Hikimar Wasanni AI Kwararru
Wasan AI Pro 2: Tattara Hikimar Wasanni AI Kwararru
Wasan AI Pro 3: Tattara Hikimar Wasanni AI Kwararru

2. AI Wasan Shirye-shiryen Hikimar Hikima ita ce magabacin jerin Wasannin AI Pro. Ya ƙunshi tsofaffin hanyoyin, amma kusan duk suna dacewa har ma a yau.

Hikimar Shirye-shiryen Wasan AI 1
Hikimar Shirye-shiryen Wasan AI 2
Hikimar Shirye-shiryen Wasan AI 3
Hikimar Shirye-shiryen Wasan AI 4

3. Hankalin Artificial: Hanyar Zamani yana ɗaya daga cikin matani na asali ga duk wanda ke son fahimtar fage na gaba ɗaya na hankali na wucin gadi. Wannan ba littafi ba ne game da ci gaban wasa - yana koyar da tushen AI.

source: www.habr.com

Add a comment