Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh

Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh

Thàinig mi tarsainn air stuth inntinneach mu inntleachd fuadain ann an geamannan. Le mìneachadh air rudan bunaiteach mu AI a 'cleachdadh eisimpleirean sìmplidh, agus a-staigh tha mòran innealan agus dòighean feumail airson a leasachadh agus a dhealbhadh gu math. Tha ciamar, càite agus cuin airson an cleachdadh ann cuideachd.

Tha a’ mhòr-chuid de na h-eisimpleirean sgrìobhte ann am pseudocode, agus mar sin chan eil feum air eòlas prògramadh adhartach. Fon ghearradh tha 35 duilleag de theacsa le dealbhan agus gifs, mar sin dèan deiseil.

UPD. Tha mi duilich, ach tha mi air an eadar-theangachadh agam fhèin a dhèanamh den artaigil seo air Habré mu thràth Euslainteach Zero. Faodaidh tu an dreach aige a leughadh an seo, ach airson adhbhar air choireigin chaidh an artaigil seachad orm (chleachd mi an rannsachadh, ach chaidh rudeigin ceàrr). Agus leis gu bheil mi a’ sgrìobhadh air blog a tha coisrigte ri leasachadh geama, chuir mi romham an dreach agam den eadar-theangachadh fhàgail airson luchd-aontachaidh (tha cuid de phuingean air an cruth eadar-dhealaichte, chaidh cuid fhàgail a dh’aona ghnothach air comhairle an luchd-leasachaidh).

Dè th' ann an AI?

Tha Game AI a’ cuimseachadh air na gnìomhan a bu chòir do nì a dhèanamh stèidhichte air na suidheachaidhean anns a bheil e suidhichte. Canar riaghladh “àidseant tuigseach” ris an seo gu cumanta, far a bheil àidseant na charactar cluicheadair, carbad, bot, no uaireannan rudeigin nas eas-chruthach: buidheann iomlan de bhuidhnean no eadhon sìobhaltachd. Anns gach cùis, is e rud a th’ ann a dh’ fheumas a h-àrainneachd fhaicinn, co-dhùnaidhean a dhèanamh stèidhichte air, agus a bhith ag obair a rèir iad. Canar cearcall Sense / Think / Act ris an seo:

  • Sense: Bidh an neach-ionaid a’ lorg no a’ faighinn fiosrachadh mu rudan san àrainneachd aige a dh’ fhaodadh buaidh a thoirt air a ghiùlan (bagairtean faisg air làimh, nithean ri chruinneachadh, àiteachan inntinneach airson sgrùdadh).
  • Smaoinich: Bidh an neach-ionaid a’ co-dhùnadh ciamar a dhèiligeas e (smaoinich a bheil e sàbhailte gu leòr rudan a chruinneachadh no am bu chòir dha sabaid/falach an toiseach).
  • Achd: bidh an neach-ionaid a 'dèanamh gnìomhan gus an co-dhùnadh roimhe a chur an gnìomh (a' tòiseachadh a 'gluasad a dh'ionnsaigh an nàmhaid no an nì).
  • ...a-nis tha an suidheachadh air atharrachadh mar thoradh air gnìomhan nan caractaran, agus mar sin bidh an cearcall ag ath-aithris le dàta ùr.

Tha AI buailteach a bhith ag amas air pàirt Sense den lùb. Mar eisimpleir, bidh càraichean fèin-riaghailteach a 'togail dhealbhan den rathad, gan cur còmhla ri dàta radar agus lidar, agus gan mìneachadh. Mar as trice bidh seo air a dhèanamh le ionnsachadh innealan, a bhios a’ pròiseasadh dàta a tha a’ tighinn a-steach agus a’ toirt brìgh dha, a’ toirt a-mach fiosrachadh semantach mar “tha càr eile 20 slat air thoiseach ort.” Is iad seo na duilgheadasan seòrsachaidh ris an canar.

Chan fheum geamannan siostam iom-fhillte airson fiosrachadh a tharraing oir tha a' mhòr-chuid den dàta mar phàirt riatanach dheth mu thràth. Cha bhith feum air algorithms aithneachadh ìomhaigh a ruith gus faighinn a-mach a bheil nàmhaid air thoiseach - tha fios aig a’ gheama mu thràth agus bidh e a ’biathadh an fhiosrachaidh gu dìreach a-steach don phròiseas co-dhùnaidh. Mar sin, tha am pàirt Sense den chearcall gu math nas sìmplidh na am pàirt Think and Act.

Cuingeachaidhean air Game AI

Tha grunn chuingealachaidhean aig AI ris am feumar cumail:

  • Chan fheum AI a bhith air a thrèanadh ro làimh, mar gum b 'e algorithm ionnsachadh innealan a bh' ann. Chan eil e ciallach lìonra neòil a sgrìobhadh rè leasachadh gus sùil a chumail air deichean de mhìltean de chluicheadairean agus ionnsachadh an dòigh as fheàrr air cluich nan aghaidh. Carson? Leis nach eil an geama air a leigeil ma sgaoil agus chan eil cluicheadairean ann.
  • Bu chòir don gheama a bhith spòrsail agus dùbhlanach, agus mar sin cha bu chòir do riochdairean an dòigh-obrach as fheàrr a lorg an aghaidh dhaoine.
  • Feumaidh riochdairean coimhead reusanta gus am bi cluicheadairean a’ faireachdainn gu bheil iad a’ cluich an-aghaidh daoine fìor. Bha prògram AlphaGo nas fheàrr na daoine, ach bha na ceumannan a chaidh a thaghadh gu math fada bho thuigse thraidiseanta a’ gheama. Ma tha an geama coltach ri neach-dùbhlain daonna, cha bu chòir am faireachdainn seo a bhith ann. Feumar an algairim atharrachadh gus an dèan e co-dhùnaidhean so-chreidsinneach seach an fheadhainn as fheàrr.
  • Feumaidh AI obrachadh ann an àm fìor. Tha seo a’ ciallachadh nach urrainn don algairim cleachdadh CPU monopolize airson ùine fhada gus co-dhùnaidhean a dhèanamh. Tha eadhon 10 milliseconds ro fhada, oir chan fheum a’ mhòr-chuid de gheamannan ach 16 gu 33 milliseconds gus an giullachd gu lèir a dhèanamh agus gluasad air adhart chun ath fhrèam grafaiceachd.
  • Mas fheàrr, bu chòir co-dhiù pàirt den t-siostam a bhith air a stiùireadh le dàta, gus an urrainn do dhaoine nach eil nan còdairean atharrachaidhean a dhèanamh agus atharraichean tachairt nas luaithe.

Bheir sinn sùil air dòighean-obrach AI a tha a’ còmhdach a’ chearcall Sense / Think / Act gu lèir.

A’ dèanamh cho-dhùnaidhean bunaiteach

Feuch an tòisich sinn leis a’ gheama as sìmplidh - Pong. Amas: gluais am pleadhag gus am bi am ball a’ breabadh dheth seach a bhith ag itealaich seachad air. Tha e coltach ri teanas, far an caill thu mura buail thu am ball. An seo tha obair gu math furasta aig an AI - co-dhùnadh dè an taobh airson an àrd-ùrlar a ghluasad.

Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh

Aithrisean cumhach

Airson an AI ann am Pong, is e am fuasgladh as fhollaisiche a bhith an-còmhnaidh a’ feuchainn ris an àrd-ùrlar a chuir fon bhall.

Algorithm sìmplidh airson seo, sgrìobhte ann am pseudocode:

a h-uile frèam / ùrachadh fhad ‘s a tha an geama a’ ruith:
ma tha am ball air taobh clì na pleadhaig:
gluais pleadhag air chlì
eile ma tha am bàla air taobh deas a' phluig:
gluais paddle ceart

Ma ghluaiseas an àrd-ùrlar aig astar a 'bhàl, is e seo an algairim air leth freagarrach airson an AI ann am Pong. Chan eil feum air dad iom-fhillte mura h-eil uimhir de dhàta ann agus gnìomhan a dh’ fhaodadh a bhith aig an neach-ionaid.

Tha an dòigh-obrach seo cho sìmplidh is gur gann gu bheil an cearcall Sense / Think / Act gu lèir follaiseach. Ach tha e ann:

  • Tha am pàirt Sense ann an dà aithris. Tha fios aig a 'gheama càite a bheil am ball agus far a bheil an àrd-ùrlar, agus mar sin bidh an AI a' coimhead ris airson an fhiosrachaidh sin.
  • Tha am pàirt Think cuideachd air a ghabhail a-steach san dà aithris ma. Tha iad a 'gabhail a-steach dà fuasglaidhean, a tha sa chùis seo a tha neo-eisimeileach a chèile. Mar thoradh air an sin, tha aon de thrì gnìomhan air a thaghadh - gluais an àrd-ùrlar air an taobh chlì, gluais e chun an làimh dheis, no na dèan dad ma tha e mar-thà air a shuidheachadh ceart.
  • Tha pàirt na h-Achd ri lorg anns na h-aithrisean Move Paddle Left and Move Paddle Right. A rèir dealbhadh a’ gheama, faodaidh iad an àrd-ùrlar a ghluasad sa bhad no aig astar sònraichte.

Canar reactive ris a leithid de dhòighean-obrach - tha seata sìmplidh de riaghailtean ann (sa chùis seo ma tha aithrisean anns a’ chòd) a bhios a’ freagairt air staid làithreach an t-saoghail agus a’ dèanamh gnìomh.

Craobh co-dhùnaidh

Tha eisimpleir Pong gu dearbh co-ionann ri bun-bheachd foirmeil AI ris an canar craobh co-dhùnaidh. Bidh an algairim a’ dol troimhe gus “duilleag” a ruighinn - co-dhùnadh dè a bu chòir a dhèanamh.

Dèanamaid diagram bloca den chraobh cho-dhùnaidhean airson algorithm an àrd-ùrlair againn:

Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh

Canar nód ri gach pàirt den chraoibh - bidh AI a’ cleachdadh teòiridh grafa airson cunntas a thoirt air structaran mar sin. Tha dà sheòrsa de nodan ann:

  • Nòtaichean co-dhùnaidh: a’ taghadh eadar dà roghainn eile stèidhichte air deuchainn air suidheachadh air choireigin, far a bheil gach roghainn eile air a riochdachadh mar nód fa leth.
  • Nòtaichean crìochnachaidh: An gnìomh ri dhèanamh a tha a’ riochdachadh a’ cho-dhùnaidh dheireannaich.

Bidh an algairim a’ tòiseachadh bhon chiad nód (“ freumh ”na craoibhe). Bidh e an dàrna cuid a’ tighinn gu co-dhùnadh dè an nód leanabh a thèid e, no bidh e a’ cur an gnìomh a’ ghnìomhachd a tha air a stòradh san nód agus a-mach.

Dè a’ bhuannachd a th’ ann bho chraobh cho-dhùnaidh a bhith a’ dèanamh an aon obair ’s a tha na h-aithrisean san earrann roimhe seo? Tha siostam coitcheann an seo far nach eil ach aon chumha agus dà thoradh comasach aig gach co-dhùnadh. Leigidh seo leis an leasaiche AI ​​a chruthachadh bho dhàta a’ riochdachadh cho-dhùnaidhean ann an craobh gun a bhith aige ri còd cruaidh. Bheir sinn seachad e ann an cruth clàr:

Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh

Air taobh a’ chòd gheibh thu siostam airson teudan a leughadh. Cruthaich nód airson gach fear dhiubh, ceangail loidsig co-dhùnaidh stèidhichte air an dàrna colbh, agus nodan leanabh stèidhichte air an treas agus an ceathramh colbhan. Feumaidh tu fhathast na cumhaichean agus na gnìomhan a phrògramadh, ach a-nis bidh structar a ’gheama nas iom-fhillte. An seo cuiridh tu co-dhùnaidhean agus gnìomhan a bharrachd ris, agus an uairsin gnàthaich an AI gu lèir le bhith dìreach a ’deasachadh faidhle teacsa mìneachadh craoibhe. An uairsin, gluaisidh tu am faidhle gu dealbhaiche a 'gheama, as urrainn an giùlan atharrachadh gun a bhith ag ath-chruinneachadh a' gheama no ag atharrachadh a 'chòd.

Tha craobhan co-dhùnaidh glè fheumail nuair a thèid an togail gu fèin-ghluasadach bho sheata mhòr de eisimpleirean (mar eisimpleir, a 'cleachdadh an algairim ID3). Tha seo gan dèanamh nan inneal èifeachdach agus àrd-choileanaidh airson suidheachaidhean a sheòrsachadh stèidhichte air an dàta a gheibhear. Ach, tha sinn a 'dol nas fhaide na siostam sìmplidh airson àidseantan gnìomhan a thaghadh.

Seallaidhean

Rinn sinn mion-sgrùdadh air siostam craoibhe co-dhùnaidh a chleachd suidheachaidhean agus gnìomhan a chaidh a chruthachadh ro-làimh. Faodaidh an neach a tha a 'dealbhadh an AI a' chraobh a chuir air dòigh ge bith dè a tha e ag iarraidh, ach feumaidh e fhathast a bhith an urra ris a 'chòdaire a chuir a h-uile càil air dòigh. Dè nam b’ urrainn dhuinn na h-innealan a thoirt don dealbhaiche gus na cumhaichean no na gnìomhan aca fhèin a chruthachadh?

Gus nach fheum am prògramadair còd a sgrìobhadh airson na cumhaichean Is Ball Left Of Paddle agus Is Ball Right Of Paddle, faodaidh e siostam a chruthachadh anns am bi an dealbhaiche a’ sgrìobhadh shuidheachaidhean gus na luachan sin a sgrùdadh. An uairsin seallaidh an dàta craobh co-dhùnaidh mar seo:

Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh

Tha seo gu ìre mhòr an aon rud ris a’ chiad chlàr, ach tha an còd fhèin aig na fuasglaidhean annta fhèin, car coltach ris a’ phàirt chumha de aithris if. Air taobh a 'chòd, bhiodh seo a' leughadh anns an dàrna colbh airson na nodan co-dhùnaidh, ach an àite a bhith a 'coimhead airson suidheachadh sònraichte airson a chur gu bàs (Is Ball Left Of Paddle), bidh e a' measadh an abairt chumha agus a 'tilleadh fìor no ceàrr a rèir sin. Tha seo air a dhèanamh a’ cleachdadh cànan sgrìobhaidh Lua no Angelscript. Le bhith gan cleachdadh, faodaidh leasaiche nithean a ghabhail sa gheama aige (ball agus pleadhag) agus caochladairean a chruthachadh a bhios rim faighinn san sgriobt (ball.position). Cuideachd, tha an cànan sgrìobhaidh nas sìmplidh na C ++. Chan fheum e ìre cruinneachaidh iomlan, agus mar sin tha e air leth freagarrach airson loidsig geama atharrachadh gu sgiobalta agus leigeil le “neo-chòdairean” na gnìomhan riatanach a chruthachadh iad fhèin.

Anns an eisimpleir gu h-àrd, chan eil an cànan sgrìobhaidh air a chleachdadh ach airson measadh a dhèanamh air an abairt chumha, ach faodar a chleachdadh cuideachd airson gnìomhan. Mar eisimpleir, dh'fhaodadh an dàta Move Paddle Right a bhith na aithris sgriobt (ball.position.x + = 10). Gus am bi an gnìomh cuideachd air a mhìneachadh san sgriobt, gun fheum air gluasad Paddle Right a phrògramadh.

Faodaidh tu a dhol eadhon nas fhaide agus a’ chraobh cho-dhùnaidhean gu lèir a sgrìobhadh ann an cànan sgrìobhaidh. Bidh seo na chòd ann an cruth aithrisean cumhach le còd cruaidh, ach bidh iad suidhichte ann am faidhlichean sgriobt taobh a-muigh, is e sin, faodar an atharrachadh gun a bhith ag ath-chruinneachadh a’ phrògram gu lèir. Is urrainn dhut gu tric am faidhle sgriobt a dheasachadh aig àm cluiche gus diofar ath-bheachdan AI a dhearbhadh gu sgiobalta.

Freagairt Tachartas

Tha na h-eisimpleirean gu h-àrd foirfe airson Pong. Bidh iad an-còmhnaidh a’ ruith cearcall Sense / Think / Act agus ag obair stèidhichte air an t-suidheachadh as ùire san t-saoghal. Ach ann an geamannan nas iom-fhillte feumaidh tu dèiligeadh ri tachartasan fa leth, agus gun a bhith a’ measadh a h-uile dad aig an aon àm. Tha Pong sa chùis seo mar-thà na dhroch eisimpleir. Taghamaid fear eile.

Smaoinich air neach-losgaidh far a bheil na nàimhdean gun ghluasad gus an lorg iad an cluicheadair, às deidh sin bidh iad ag obair a rèir an “speisealachadh” aca: ruithidh cuideigin gu “rush”, bheir cuideigin ionnsaigh bho chian. Tha e fhathast na shiostam reactive bunaiteach - "ma thèid cluicheadair fhaicinn, dèan rudeigin" - ach faodar a bhriseadh sìos gu loidsigeach gu tachartas Player Seen agus Reaction (tagh freagairt agus cuir an gnìomh e).

Bheir seo sinn air ais gu cearcall Sense/ Think/Act. Is urrainn dhuinn pàirt Sense a chòdachadh a nì sgrùdadh air a h-uile frèam a bheil an AI a 'faicinn a' chluicheadair. Mura tachair, chan eil dad a’ tachairt, ach ma chì e, tha an tachartas Player Seen air a chruthachadh. Bidh earrann air leth aig a’ chòd a tha ag ràdh “nuair a thachras tachartas Player Seen, dèan” càite a bheil am freagairt a dh’ fheumas tu gus dèiligeadh ris na pàirtean Think and Act. Mar sin, suidhichidh tu ath-bheachdan mun tachartas Player Seen: airson a’ charactar “rushing” - ChargeAndAttack, agus airson an snaidhpear - HideAndSnipe. Faodar na dàimhean sin a chruthachadh anns an fhaidhle dàta airson deasachadh luath gun a bhith agad ri ath-chruinneachadh. Faodar cànan sgrìobhaidh a chleachdadh an seo cuideachd.

A’ dèanamh cho-dhùnaidhean duilich

Ged a tha siostaman freagairt sìmplidh gu math cumhachdach, tha mòran shuidheachaidhean ann far nach eil iad gu leòr. Aig amannan feumaidh tu diofar cho-dhùnaidhean a dhèanamh stèidhichte air na tha an neach-ionaid a’ dèanamh an-dràsta, ach tha e duilich seo a shamhlachadh mar chumha. Aig amannan tha cus shuidheachaidhean ann airson an riochdachadh gu h-èifeachdach ann an craobh co-dhùnaidh no sgriobt. Uaireannan feumaidh tu measadh ro-làimh mar a dh'atharraicheas an suidheachadh mus co-dhùin thu air an ath cheum. Tha feum air dòighean-obrach nas ionnsaichte gus na duilgheadasan sin fhuasgladh.

Inneal stàite crìochnaichte

Tha inneal stàite crìochnaichte no FSM (inneal stàite crìochnachaidh) na dhòigh air a ràdh gu bheil an neach-ionaid againn an-dràsta ann an aon de ghrunn stàitean a dh’ fhaodadh a bhith ann, agus gum faod e gluasad bho aon stàit gu stàit eile. Tha àireamh sònraichte de stàitean mar sin - mar sin an t-ainm. Is e solas trafaic an eisimpleir as fheàrr bho bheatha. Tha diofar shreathan de sholais ann an diofar àiteachan, ach tha am prionnsabal mar an ceudna - tha gach stàit a 'riochdachadh rudeigin (stad, coiseachd, msaa). Chan eil solais trafaic ann an aon stàit ach aig àm sònraichte sam bith, agus gluaisidh e bho aon gu fear eile stèidhichte air riaghailtean sìmplidh.

Tha e na sgeulachd coltach ri NPCs ann an geamannan. Mar eisimpleir, gabhamaid geàrd leis na stàitean a leanas:

  • Patrol.
  • A' toirt ionnsaigh.
  • A' teicheadh.

Agus na cumhaichean seo airson a staid atharrachadh:

  • Ma chì an geàrd an nàmhaid, bheir e ionnsaigh.
  • Ma bheir an geàrd ionnsaigh ach nach fhaic e an nàmhaid tuilleadh, tillidh e gu faire.
  • Ma bheir geàrd ionnsaigh ach gu bheil e air a dhroch leòn, ruithidh e air falbh.

Faodaidh tu cuideachd ma-aithrisean a sgrìobhadh le caochladair stàite neach-gleidhidh agus diofar sgrùdaidhean: a bheil nàmhaid faisg air làimh, dè an ìre slàinte a th’ aig an NPC, msaa. Nach cuir sinn beagan stàitean eile ris:

  • Idleness - eadar patroilean.
  • Rannsachadh - nuair a tha an nàmhaid a chaidh fhaicinn air a dhol à bith.
  • Lorg Cuideachadh - nuair a lorgar nàmhaid, ach gu bheil e ro làidir airson sabaid leis fhèin.

Tha an roghainn airson gach fear dhiubh cuingealaichte - mar eisimpleir, cha tèid an geàrd a choimhead airson nàmhaid falaichte ma tha slàinte ìosal aige.

Às dèidh na h-uile, tha liosta mhòr de "ifs" , Sin “ a bhith ro throm, agus mar sin feumaidh sinn dòigh foirmeil a dhèanamh a leigeas leinn stàitean agus eadar-ghluasadan eadar stàitean a chumail san amharc. Gus seo a dhèanamh, bidh sinn a 'toirt aire do na stàitean gu lèir, agus fo gach stàit bidh sinn a' sgrìobhadh sìos ann an liosta a h-uile gluasad gu stàitean eile, còmhla ris na cumhaichean a tha riatanach dhaibh.

Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh

Is e seo clàr gluasaid stàite - dòigh choileanta airson FSM a riochdachadh. Tarraingidh sinn diagram agus gheibh sinn sealladh farsaing air mar a tha giùlan NPC ag atharrachadh.

Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh

Tha an diagram a’ nochdadh brìgh co-dhùnaidh airson an neach-ionaid seo stèidhichte air an t-suidheachadh làithreach. A bharrachd air an sin, tha gach saighead a’ sealltainn gluasad eadar stàitean ma tha an suidheachadh ri thaobh fìor.

Gach ùrachadh nì sinn sgrùdadh air staid làithreach an neach-ionaid, coimhead tron ​​​​liosta de ghluasadan, agus ma thèid na cumhaichean airson a’ ghluasaid a choileanadh, gabhaidh e ris an stàit ùr. Mar eisimpleir, bidh gach frèam a’ sgrùdadh a bheil an timer 10-diog air tighinn gu crìch, agus ma tha, bidh an geàrd a’ dol bho stàit Idling gu Patrolling. San aon dòigh, bidh an stàit ionnsaigh a 'dèanamh sgrùdadh air slàinte an neach-ionaid - ma tha e ìosal, bidh e a' dol a-steach don stàit Fleeing.

Tha seo a’ làimhseachadh eadar-ghluasadan eadar stàitean, ach dè mu dheidhinn an giùlan a tha co-cheangailte ris na stàitean fhèin? A thaobh a bhith a’ cur an gnìomh giùlan fhèin airson stàite sònraichte, mar as trice tha dà sheòrsa “dubhan” ann far am bi sinn a’ sònrachadh ghnìomhan don FSM:

  • Gnìomhan a bhios sinn a’ dèanamh bho àm gu àm airson an t-suidheachaidh làithreach.
  • Na gnìomhan a nì sinn nuair a ghluaiseas sinn bho aon stàit gu stàit eile.

Eisimpleirean airson a 'chiad seòrsa. Gluaisidh an stàit Patrolling an neach-ionaid air an t-slighe faire gach frèam. Feuchaidh an Stàit Ionnsaigh ri ionnsaigh a thòiseachadh gach frèam no gluasad gu staid far a bheil seo comasach.

Airson an dàrna seòrsa, smaoinich air an eadar-ghluasad “ma tha an nàmhaid ri fhaicinn agus gu bheil an nàmhaid ro làidir, rachaibh chun stàit Lorg Cuideachadh. Feumaidh an neach-ionaid taghadh càite an tèid e airson cuideachadh agus am fiosrachadh seo a stòradh gus am bi fios aig an stàit Lorg Cobhair càite an tèid e. Cho luath ‘s a lorgar cuideachadh, bidh an neach-ionaid a’ dol air ais chun Stàit ionnsaigh. Aig an ìre seo, bidh e airson innse don charaid mun chunnart, agus mar sin faodaidh an gnìomh NotifyFriendOfThreat tachairt.

A-rithist, is urrainn dhuinn coimhead air an t-siostam seo tro lionsa cearcall Sense/ Think/Act. Tha mothachadh air a ghabhail a-steach anns an dàta a chleachdas an loidsig gluasaid. Smaoinich - eadar-ghluasadan rim faighinn anns gach stàit. Agus tha Achd air a choileanadh le gnìomhan a thèid a dhèanamh bho àm gu àm taobh a-staigh stàite no aig eadar-ghluasadan eadar stàitean.

Aig amannan faodaidh suidheachadh eadar-ghluasaid a bhith a’ bhòtadh gu leantainneach a bhith cosgail. Mar eisimpleir, ma nì gach àidseant àireamhachadh iom-fhillte a h-uile frèam gus faighinn a-mach am faic e nàimhdean agus tuigsinn an urrainn dha gluasad bhon stàit Patrolling gu Attack, bheir seo tòrr ùine CPU.

Faodar smaoineachadh air atharrachaidhean cudromach ann an staid an t-saoghail mar thachartasan a thèid a làimhseachadh mar a bhios iad a’ tachairt. An àite an FSM a’ sgrùdadh an t-suidheachaidh gluasaid “am faic an neach-ionaid agam an cluicheadair?” a h-uile frèam, faodar siostam air leth a rèiteachadh gus sgrùdadh a dhèanamh cho tric (m.e. 5 tursan san diog). Agus is e an toradh a bhith a’ toirt a-mach Player Seen nuair a thèid an t-seic seachad.

Thèid seo a chuir chun FSM, a bu chòir a-nis a dhol gu suidheachadh a fhuaireadh Player Seen agus freagairt a rèir sin. Tha an giùlan a thig às an aon rud ach a-mhàin dàil cha mhòr do-fhaicsinneach mus freagair thu. Ach tha coileanadh air a thighinn air adhart mar thoradh air a bhith a’ sgaradh a’ phàirt Sense gu bhith na phàirt air leth den phrògram.

Inneal stàite crìochnachaidh rangach

Ach, chan eil e an-còmhnaidh goireasach obrachadh le FSMan mòra. Ma tha sinn airson an stàit ionnsaigh a leudachadh gus MeleeAttacking agus RangedAttacking a sgaradh, feumaidh sinn na h-eadar-ghluasadan bho gach stàit eile a tha a’ leantainn gu staid ionnsaigh (an-dràsta agus san àm ri teachd) atharrachadh.

Is dòcha gun do mhothaich thu gu bheil tòrr eadar-ghluasadan dùblaichte anns an eisimpleir againn. Tha a’ mhòr-chuid de ghluasadan ann an stàite Idling co-ionann ri eadar-ghluasadan anns an stàit Patrolling. Bhiodh e math gun a bhith gar ath-aithris, gu sònraichte ma chuireas sinn barrachd stàitean coltach ris. Tha e ciallach Idling and Parolling a chuir còmhla fon leubail coitcheann “neo-sabaid”, far nach eil ach aon sheata de ghluasadan cumanta gu stàitean sabaid. Ma smaoinicheas sinn air an leubail seo mar stàit, bidh Idling and Parolling gu bhith nan fo-stàitean. Eisimpleir de bhith a’ cleachdadh clàr gluasaid fa leth airson fo-stàit ùr neo-sabaid:

Prìomh stàitean:
Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh

A-mach à inbhe sabaid:
Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh

Agus ann an cruth diagram:

Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh

Is e an aon shiostam a th’ ann, ach le stàit ùr neo-sabaid a tha a’ toirt a-steach Idling and Parolling. Le gach stàit anns a bheil FSM le fo-stàitean (agus na fo-stàitean sin, an uair sin, anns a bheil na FSMan aca fhèin - agus mar sin air adhart cho fada ‘s a dh’ fheumas tu), gheibh sinn Inneal Stàite Crìochnaichte rangachd no HFSM (inneal stàite crìochnachaidh rangach). Le bhith a’ cruinneachadh an stàit neo-sabaid, gheàrr sinn a-mach dòrlach de dh’ eadar-ghluasadan gun fheum. Faodaidh sinn an aon rud a dhèanamh airson stàitean ùra sam bith le eadar-ghluasadan cumanta. Mar eisimpleir, ma leudaicheas sinn san àm ri teachd an stàit ionnsaigh gu stàitean MeleeAttacking agus MissileAttacking, bidh iad nam fo-stàitean a bhios a’ gluasad eadar a chèile stèidhichte air astar chun nàmhaid agus ammo ri fhaighinn. Mar thoradh air an sin, faodar giùlan iom-fhillte agus fo-ghiùlan a riochdachadh le co-dhiù eadar-ghluasad dùblaichte.

Crann giùlain

Le HFSM, tha measgachadh iom-fhillte de ghiùlan air an cruthachadh ann an dòigh shìmplidh. Ach, tha duilgheadas beag ann gu bheil co-dhùnaidhean ann an cruth riaghailtean gluasaid ceangailte gu dlùth ris an t-suidheachadh làithreach. Agus ann am mòran gheamannan is e seo dìreach a tha a dhìth. Agus faodaidh cleachdadh faiceallach de rangachd stàite an àireamh de ath-aithrisean gluasaid a lughdachadh. Ach uaireannan feumaidh tu riaghailtean a bhios ag obair ge bith dè an stàit anns a bheil thu, no a tha a’ buntainn ri cha mhòr stàite sam bith. Mar eisimpleir, ma thuiteas slàinte neach-ionaid gu 25%, bidh thu airson gun ruith e air falbh ge bith an robh e ann an sabaid, leisg, no a’ bruidhinn - feumaidh tu an suidheachadh seo a chuir ris gach stàit. Agus ma tha an dealbhaiche agad nas fhaide air adhart ag iarraidh an ìre slàinte ìosal atharrachadh bho 25% gu 10%, feumar seo a dhèanamh a-rithist.

Mas fheàrr, feumaidh an suidheachadh seo siostam anns a bheil co-dhùnaidhean mu “dè an stàit a bhith ann” taobh a-muigh nan stàitean fhèin, gus atharrachaidhean a dhèanamh ann an aon àite a-mhàin agus gun a bhith a’ beantainn ris na suidheachaidhean gluasaid. Tha craobhan giùlain a 'nochdadh an seo.

Tha grunn dhòighean ann airson an cur an gnìomh, ach tha an bunait an ìre mhath an aon rud dha na h-uile agus tha e coltach ri craobh co-dhùnaidh: bidh an algairim a ’tòiseachadh le nód“ freumh ”, agus tha nodan anns a’ chraobh a tha a ’riochdachadh an dàrna cuid co-dhùnaidhean no gnìomhan. Tha beagan eadar-dhealachaidhean cudromach ann ge-tà:

  • Bidh nodan a-nis a’ tilleadh aon de thrì luachan: Soirbheachas (ma tha an obair deiseil), Dh’ fhàillig (mura h-urrainnear tòiseachadh), no ruith (ma tha e fhathast a’ ruith agus nach eil toradh deireannach ann).
  • Chan eil barrachd nodan co-dhùnaidh ann airson taghadh eadar dà roghainn eile. An àite sin, tha iad nan nodan sgeadachaidh, aig a bheil aon nód leanabh. Ma shoirbhicheas leotha, bidh iad a’ cur an gnìomh an aon nód cloinne aca.
  • Bidh nodan a nì gnìomhan a’ tilleadh luach ruith gus na gnìomhan a thathar a’ dèanamh a riochdachadh.

Faodar an seata bheag seo de nodan a chur còmhla gus àireamh mhòr de ghiùlan iom-fhillte a chruthachadh. Smaoinich sinn air geàrd HFSM bhon eisimpleir roimhe mar chraobh giùlain:

Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh

Leis an structar seo cha bu chòir gluasad follaiseach a bhith ann bho stàitean Idling / Patrolling gu Attack no stàitean sam bith eile. Ma tha nàmhaid ri fhaicinn agus gu bheil slàinte a’ charactar ìosal, stadaidh cur gu bàs aig an nód teicheadh, ge bith dè an nód a bha e a’ cur gu bàs roimhe - Patrol, Idling, A’ toirt ionnsaigh, no gin eile.

Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh

Tha craobhan giùlain iom-fhillte - tha iomadh dòigh ann air an dèanamh suas, agus faodaidh e a bhith dùbhlanach a bhith a 'lorg am measgachadh ceart de sgeadadairean agus nodan cumanta. Tha ceistean ann cuideachd mu dè cho tric airson sùil a thoirt air a 'chraoibh - a bheil sinn airson a dhol tro gach pàirt dheth no dìreach nuair a tha aon de na suidheachaidhean air atharrachadh? Ciamar a bhios sinn a’ stòradh staid co-cheangailte ri nodan - ciamar a bhios fios againn cuin a tha sinn air a bhith Idling airson 10 diogan, no ciamar a bhios fios againn dè na nodan a chaidh a chuir gu bàs an turas mu dheireadh gus an urrainn dhuinn an t-sreath a phròiseasadh gu ceart?

'S e sin carson a tha mòran de chur an gnìomh. Mar eisimpleir, tha cuid de shiostaman air sgeadachaidhean in-loidhne a chuir an àite nodan sgeadachaidh. Bidh iad ag ath-mheasadh a’ chraoibh nuair a dh’ atharraicheas suidheachadh an sgeadachaidh, a’ cuideachadh le bhith a’ ceangal nodan, agus a’ toirt seachad ùrachaidhean bho àm gu àm.

Siostam stèidhichte air goireasan

Tha mòran meacanaigean eadar-dhealaichte aig cuid de gheamannan. Tha e ion-mhiannaichte gum faigh iad na buannachdan uile bho riaghailtean gluasaid sìmplidh agus coitcheann, ach chan ann gu riatanach ann an cruth craobh giùlain iomlan. An àite seata soilleir de roghainnean a bhith agad no craobh de ghnìomhan a dh’ fhaodadh a bhith ann, tha e nas fhasa na gnìomhan gu lèir a sgrùdadh agus am fear as freagarraiche a thaghadh an-dràsta.

Cuidichidh an siostam Utility le dìreach seo. Is e seo siostam far a bheil grunn ghnìomhan aig an neach-ionaid agus a’ taghadh dè an fheadhainn a bu chòir a dhèanamh a rèir cho feumail sa tha gach fear. Far a bheil goireasachd na thomhas neo-riaghailteach air cho cudromach no cho feumail sa tha e don àidseant an gnìomh seo a choileanadh.

Le goireasachd gnìomh gnìomh stèidhichte air an t-suidheachadh gnàthach agus an àrainneachd, faodaidh an neach-ionaid sgrùdadh agus taghadh an stàit eile as iomchaidh aig àm sam bith. Tha seo coltach ri FSM, ach a-mhàin far a bheil eadar-ghluasadan air a dhearbhadh le tuairmse airson gach staid a dh’ fhaodadh a bhith ann, a’ gabhail a-steach an tè a th’ ann an-dràsta. Thoir an aire gu bheil sinn a’ taghadh an gnìomh as fheumaile airson gluasad air adhart (no fuireach ma tha sinn air a chrìochnachadh mu thràth). Airson barrachd measgachadh, dh’ fhaodadh seo a bhith na thaghadh cothromach ach air thuaiream bho liosta bheag.

Bidh an siostam a’ sònrachadh raon neo-riaghailteach de luachan goireis - mar eisimpleir, bho 0 (gu tur neo-mhiannach) gu 100 (gu tur ion-mhiannaichte). Tha grunn pharaimearan aig gach gnìomh a bheir buaidh air àireamhachadh an luach seo. A’ tilleadh chun eisimpleir neach-gleidhidh againn:

Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh

Tha eadar-ghluasadan eadar gnìomhan teagmhach - faodaidh stàite sam bith leantainn air adhart. Tha prìomhachasan gnìomh rim faighinn anns na luachan goireis a chaidh a thilleadh. Ma tha nàmhaid ri fhaicinn, agus gu bheil an nàmhaid sin làidir, agus gu bheil slàinte a’ charactar ìosal, an uairsin tillidh an dà chuid Fleeing agus FindingHelp luachan àrd neo-neoni. Anns a 'chùis seo, bidh FindingHelp an-còmhnaidh nas àirde. Mar an ceudna, cha till gnìomhan neo-sabaid a-rithist nas motha na 50, agus mar sin bidh iad an-còmhnaidh nas ìsle na an fheadhainn sabaid. Feumaidh tu seo a thoirt fa-near nuair a bhios tu a 'cruthachadh ghnìomhan agus a' cunntadh an cuid cleachdaidh.

Anns an eisimpleir againn, bidh na gnìomhan a 'tilleadh an dàrna cuid luach seasmhach stèidhichte no aon de dhà luach stèidhichte. Bheireadh siostam nas reusanta tuairmse air ais bho raon leantainneach de luachan. Mar eisimpleir, bidh an gnìomh Fleeing a 'tilleadh luachan goireis nas àirde ma tha slàinte an neach-ionaid ìosal, agus bidh an gnìomh ionnsaigh a' tilleadh luachan goireis nas ìsle ma tha an nàmhaid ro làidir. Air sgàth seo, tha an gnìomh Fleeing a’ faighinn prìomhachas thairis air A bhith a’ toirt ionnsaigh ann an suidheachadh sam bith far a bheil an neach-ionaid a’ faireachdainn nach eil slàinte gu leòr aige airson a’ chùis a dhèanamh air an nàmhaid. Leigidh seo le prìomhachas a thoirt do ghnìomhan stèidhichte air àireamh sam bith de shlatan-tomhais, a’ dèanamh an dòigh-obrach seo nas sùbailte agus nas caochlaideach na craobh giùlain no FSM.

Tha iomadh suidheachadh aig gach gnìomh airson àireamhachadh phrògraman. Faodar an sgrìobhadh ann an cànan sgrìobhaidh no mar shreath de fhoirmlean matamataigeach. Bidh na Sims, a tha coltach ri cleachdadh làitheil caractar, a 'cur sreath a bharrachd de àireamhachadh - bidh an neach-ionaid a' faighinn sreath de "bhrosnachadh" a bheir buaidh air ìrean cleachdaidh. Ma tha an t-acras air caractar, fàsaidh iad eadhon nas acras thar ùine, agus àrdaichidh luach goireasach gnìomh EatFood gus an dèan an caractar e, a’ lughdachadh ìre an acras agus a’ tilleadh luach EatFood gu neoni.

Tha am beachd air gnìomhan a thaghadh stèidhichte air siostam rangachadh gu math sìmplidh, agus mar sin faodar siostam stèidhichte air Utility a chleachdadh mar phàirt de phròiseasan co-dhùnaidh AI, seach mar àite iomlan dhaibh. Faodaidh an craobh co-dhùnaidh iarraidh air ìre cleachdaidh de dhà nodan pàiste agus tagh am fear as àirde. Mar an ceudna, faodaidh crann giùlain nod Utility coimeasach a bhith aige gus measadh a dhèanamh air goireasachd gnìomhan gus co-dhùnadh dè an leanabh a thèid a chur gu bàs.

Gluasad agus seòladh

Anns na h-eisimpleirean roimhe, bha àrd-ùrlar againn a ghluais sinn clì no deas, agus geàrd a bha a’ cumail faire no ionnsaigh. Ach dè dìreach a làimhsicheas sinn gluasad àidseantan thar ùine? Ciamar a shuidhicheas sinn astar, ciamar a sheallas sinn cnapan-starra, agus ciamar a phlanas sinn slighe nuair a tha e nas duilghe faighinn gu ceann-uidhe na dìreach gluasad ann an loidhne dhìreach? Bheir sinn sùil air seo.

Riaghladh

Aig a 'chiad ìre, gabhaidh sinn ris gu bheil luach astair aig gach àidseant, a tha a' toirt a-steach dè cho luath sa tha e a 'gluasad agus dè an taobh. Faodar a thomhas ann am meatairean gach diog, cilemeatairean san uair, piogsail san diog, msaa. A’ cuimhneachadh air an lùb Sense/ Think/Act, faodaidh sinn smaoineachadh gu bheil am pàirt Think a’ taghadh astar, agus tha pàirt na h-Achd a’ buntainn ris an astar sin ris an àidseant. Mar as trice tha siostam fiosaig aig geamannan a nì an obair seo dhut, ag ionnsachadh luach astair gach nì agus ga atharrachadh. Mar sin, faodaidh tu an AI fhàgail le aon ghnìomh - gus co-dhùnadh dè an astar a bu chòir a bhith aig an neach-ionaid. Ma tha fios agad càite am bu chòir an neach-ionaid a bhith, feumaidh tu a ghluasad san t-slighe cheart aig astar stèidhichte. Co-aontar glè bheag:

wish_travel = ceann-uidhe_position - àidseant_position

Smaoinich air saoghal 2D. Tha an neach-ionaid aig puing (-2, -2), tha an ceann-uidhe an àiteigin san ear-thuath aig puing (30, 20), agus is e an t-slighe a tha a dhìth airson an neach-ionaid faighinn ann (32, 22). Canaidh sinn gu bheil na dreuchdan sin air an tomhas ann am meatairean - ma bheir sinn astar an neach-ionaid gu bhith 5 meatairean san diog, an uairsin bidh sinn a’ sgèile ar vectar gluasaid agus a ’faighinn astar timcheall air (4.12, 2.83). Leis na crìochan sin, ruigeadh an neach-ionaid a cheann-uidhe ann an faisg air 8 diogan.

Faodaidh tu na luachan ath-àireamhachadh aig àm sam bith. Nam biodh an neach-ionaid letheach slighe chun targaid, bhiodh an gluasad leth an fhaid, ach leis gur e astar as àirde an àidseant 5 m / s (cho-dhùin sinn seo gu h-àrd), bidh an astar mar an ceudna. Bidh seo cuideachd ag obair airson targaidean gluasad, a’ leigeil leis an neach-ionaid atharrachaidhean beaga a dhèanamh fhad ‘s a tha iad a’ gluasad.

Ach tha sinn ag iarraidh barrachd eadar-dhealachaidh - mar eisimpleir, ag àrdachadh an astar gu slaodach gus caractar a ghluasad bho sheasamh gu ruith. Faodar an aon rud a dhèanamh aig an deireadh mus stad thu. Canar giùlan stiùiridh ris na feartan sin, agus tha ainmean sònraichte aig gach fear dhiubh: Seek, Flee, Arrival, msaa. gus dòighean eadar-dhealaichte a chleachdadh airson gluasad chun amas.

Tha adhbhar beagan eadar-dhealaichte aig gach giùlan. Tha Seek and Arrival nan dòighean air neach-ionaid a ghluasad gu ceann-uidhe. Seachainn agus Dealachadh Chnap-starra atharraich gluasad an neach-ionaid gus cnapan-starra a sheachnadh air an t-slighe chun amas. Bidh Co-thaobhadh agus Co-leanailteachd a’ cumail riochdairean a’ gluasad còmhla. Faodar àireamh sam bith de ghiùlan stiùiridh eadar-dhealaichte a chruinneachadh gus aon vectar slighe a thoirt gu buil a’ toirt aire do na factaran uile. Neach-ionaid a bhios a’ cleachdadh giùlan Teachd, Sgaradh, agus Seachnadh Chnap-starra gus fuireach air falbh bho bhallachan agus riochdairean eile. Bidh an dòigh-obrach seo ag obair gu math ann an àiteachan fosgailte gun mion-fhiosrachadh neo-riatanach.

Ann an suidheachaidhean nas duilghe, bidh giùlan eadar-dhealaichte ag obair nas miosa - mar eisimpleir, faodaidh neach-ionaid a dhol an sàs ann am balla mar thoradh air còmhstri eadar Teachd a-steach agus Seachnadh Chnap-starra. Mar sin, feumaidh tu beachdachadh air roghainnean a tha nas iom-fhillte na dìreach cuir ris na luachan gu lèir. Is e an dòigh seo: an àite a bhith a 'cur ri toraidhean gach giùlan, faodaidh tu beachdachadh air gluasad ann an diofar stiùiridhean agus tagh an roghainn as fheàrr.

Ach, ann an àrainneachd iom-fhillte le crìochan marbh agus roghainnean air an t-slighe air adhart, bidh feum againn air rudeigin eadhon nas adhartaiche.

A ’lorg dòigh

Tha giùlan stiùiridh math airson gluasad sìmplidh ann an raon fosgailte (raon ball-coise no raon) far a bheil faighinn bho A gu B na shlighe dhìreach le dìreach slighean beaga timcheall air cnapan-starra. Airson slighean iom-fhillte, feumaidh sinn lorg slighe, a tha na dhòigh air an saoghal a rannsachadh agus co-dhùnadh air slighe troimhe.

Is e an rud as sìmplidh cliath a chuir air gach ceàrnag ri taobh an àidseant agus measadh cò dhiubh a tha ceadaichte gluasad. Ma tha fear dhiubh na cheann-uidhe, lean an t-slighe bho gach ceàrnag chun an fhear roimhe gus an ruig thu an toiseach. Seo an t-slighe. Air neo, cuir a-rithist am pròiseas le ceàrnagan eile faisg air làimh gus an lorg thu do cheann-uidhe no gus an ruith thu a-mach à ceàrnagan (a 'ciallachadh nach eil slighe ann). Is e seo an rud ris an canar gu foirmeil Breadth-First Search no BFS (algorithm rannsachaidh leud-an-toiseach). Aig a h-uile ceum tha e a 'coimhead anns a h-uile taobh (mar sin leud, "leud"). Tha an t-àite sgrùdaidh coltach ri tonn-tonn a ghluaiseas gus an ruig e an t-àite a tha thu ag iarraidh - bidh an t-àite sgrùdaidh a’ leudachadh aig gach ceum gus an tèid am puing crìochnachaidh a thoirt a-steach, agus às deidh sin faodar a lorg air ais chun toiseach.

Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh

Mar thoradh air an sin, gheibh thu liosta de cheàrnagan air a bheil an t-slighe a tha thu ag iarraidh air a chur ri chèile. Is e seo an t-slighe (mar sin, lorg slighe) - liosta de dh'àiteachan air am bi an neach-ionaid a 'tadhal fhad' sa tha e a 'leantainn a' chinn-uidhe.

Leis gu bheil fios againn air suidheachadh gach ceàrnag san t-saoghal, is urrainn dhuinn giùlan stiùiridh a chleachdadh gus gluasad air an t-slighe - bho nód 1 gu nód 2, an uairsin bho nód 2 gu nód 3, agus mar sin air adhart. Is e an roghainn as sìmplidh a dhol gu meadhan an ath cheàrnag, ach is e roghainn eadhon nas fheàrr stad ann am meadhan an oir eadar an ceàrnag gnàthach agus an ath fhear. Air sgàth seo, bidh an neach-ionaid comasach air oiseanan a ghearradh air tionndadh biorach.

Tha eas-bhuannachdan aig algorithm BFS cuideachd - bidh e a’ sgrùdadh na h-uimhir de cheàrnagan anns an t-slighe “ceàrr” ’s a tha e san t-slighe “ceart”. Seo far a bheil algorithm nas iom-fhillte ris an canar A * (rionnag A) a 'tighinn a-steach. Bidh e ag obair san aon dòigh, ach an àite a bhith a 'sgrùdadh ceàrnagan nàbaidh gu dall (an uairsin nàbaidhean nàbaidhean, an uairsin nàbaidhean nàbaidhean nàbaidhean, agus mar sin air adhart), bidh e a' cruinneachadh nan nodan gu liosta agus gan rèiteachadh gus am bi an ath nód air a sgrùdadh an-còmhnaidh na aon a tha a’ leantainn chun t-slighe as giorra. Tha nodan air an òrdachadh a rèir heuristic a bheir aire do dhà rud - “cosgais” slighe beachd-bharail chun cheàrnag a tha thu ag iarraidh (a’ toirt a-steach cosgaisean siubhail sam bith) agus tuairmse air dè cho fada ‘s a tha an ceàrnag sin bhon cheann-uidhe (a’ claonadh an rannsachaidh anns an an t-slighe cheart).

Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh

Tha an eisimpleir seo a’ sealltainn gu bheil an neach-ionaid a’ sgrùdadh aon cheàrnag aig an aon àm, gach uair a’ taghadh an tè a tha faisg air làimh as gealltanach. Tha an t-slighe a tha mar thoradh air an aon rud ri BFS, ach chaidh beachdachadh air nas lugha de cheàrnagan sa phròiseas - a bheir buaidh mhòr air coileanadh geama.

Gluasad gun chliath

Ach chan eil a’ mhòr-chuid de gheamannan air an cur a-mach air cliath, agus gu tric tha e do-dhèanta sin a dhèanamh gun a bhith ag ìobairt fìor-eòlas. Tha feum air co-rèiteachaidhean. Dè am meud a bu chòir a bhith aig na ceàrnagan? Ro mhòr agus cha bhith e comasach dhaibh trannsaichean beaga no oidhirpean a riochdachadh gu ceart, ro bheag agus bidh cus cheàrnagan ri lorg, a bheir tòrr ùine aig a’ cheann thall.

Is e a’ chiad rud a thuigeas gu bheil mogal a’ toirt dhuinn graf de nodan ceangailte. Bidh na h-algorithms A* agus BFS ag obair gu dearbh air grafaichean agus chan eil dragh sam bith orra mun mhogal againn idir. Dh’ fhaodadh sinn nodan a chuir an àite sam bith ann an saoghal a’ gheama: fhad ‘s a tha ceangal eadar dà nòs co-cheangailte sam bith, a bharrachd air eadar na puingean tòiseachaidh is crìochnachaidh agus co-dhiù aon de na nodan, obraichidh an algairim a cheart cho math ’s a bha e roimhe. Canar siostam slighe-slighe ris an seo gu tric, leis gu bheil gach nód a’ riochdachadh suidheachadh cudromach san t-saoghal a dh’ fhaodadh a bhith mar phàirt de ghrunn shlighean beachd-bharail.

Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh
Eisimpleir 1: snaidhm anns gach ceàrnag. Bidh an rannsachadh a 'tòiseachadh bhon nód far a bheil an neach-ionaid suidhichte agus a' crìochnachadh aig nód na ceàrnaig a tha thu ag iarraidh.

Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh
Eisimpleir 2: Sreath nas lugha de nodan (puingean slighe). Bidh an rannsachadh a 'tòiseachadh aig ceàrnag an neach-ionaid, a' dol tron ​​​​àireamh de nodan a tha a dhìth, agus an uairsin a 'leantainn chun cheann-uidhe.

Is e siostam gu tur sùbailte agus cumhachdach a tha seo. Ach tha feum air beagan cùraim ann a bhith a’ co-dhùnadh càite agus ciamar a chuireas tu slighe-slighe, air neo is dòcha nach fhaic riochdairean dìreach an t-àite as fhaisge agus nach urrainn dhaibh an t-slighe a thòiseachadh. Bhiodh e na b’ fhasa nam b’ urrainn dhuinn puingean slighe a shuidheachadh gu fèin-ghluasadach stèidhichte air geoimeatraidh an t-saoghail.

Seo far a bheil am mogal seòlaidh no navmesh (mogal seòlaidh) a’ nochdadh. Mar as trice is e seo mogal 2D de thriantan a tha air a chòmhdach le geoimeatraidh an t-saoghail - ge bith càite a bheil cead aig an neach-ionaid coiseachd. Bidh gach triantan sa mhogal gu bhith na nód sa ghraf, agus tha suas ri trì triantan faisg air làimh a bhios nan nodan faisg air làimh sa ghraf.

Tha an dealbh seo na eisimpleir bhon einnsean Unity - rinn e mion-sgrùdadh air geoimeatraidh an t-saoghail agus chruthaich e navmesh (anns an dealbh ann an gorm aotrom). Tha gach polygon ann an navmesh na raon far am faod àidseant seasamh no gluasad bho aon pholygon gu polygon eile. Anns an eisimpleir seo, tha na polygons nas lugha na na làir air a bheil iad suidhichte - tha seo air a dhèanamh gus aire a thoirt do mheud an neach-ionaid, a leudaicheas nas fhaide na a shuidheachadh ainmichte.

Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh

Is urrainn dhuinn slighe a lorg tron ​​​​mhogal seo, a-rithist a’ cleachdadh an algairim A*. Bheir seo dhuinn slighe cha mhòr foirfe san t-saoghal, a bheir aire don a h-uile geoimeatraidh agus nach eil feumach air nodan neo-riatanach agus cruthachadh slighean-slighe.

Tha Pathfinding na chuspair ro fharsaing airson nach eil aon earrann de artaigil gu leòr. Ma tha thu airson a sgrùdadh nas mionaidiche, cuidichidh seo thu Làrach-lìn Amit Patel.

Dealbhadh

Tha sinn air ionnsachadh le lorg slighe nach eil e gu leòr uaireannan dìreach stiùireadh a thaghadh agus gluasad - feumaidh sinn slighe a thaghadh agus beagan oidhirpean a dhèanamh gus faighinn chun cheann-uidhe a tha sinn ag iarraidh. Faodaidh sinn am beachd seo a choitcheannachadh: chan e dìreach an ath cheum a th’ ann a bhith a’ coileanadh amas, ach sreath slàn far am feum thu coimhead air adhart grunn cheuman uaireannan gus faighinn a-mach dè a’ chiad fhear a bu chòir a bhith. Canar planadh ris an seo. Faodar smaoineachadh air lorg-slighe mar aon de ghrunn leudachadh air planadh. A thaobh ar cearcall Smaointe/Smaoinich/Achd, seo far a bheil am pàirt Think a’ dealbhadh grunn phàirtean Achd airson an ama ri teachd.

Bheir sinn sùil air an eisimpleir den gheama bùird Magic: The Gathering. Bidh sinn a’ dol an toiseach leis na cairtean a leanas nar làmhan:

  • Swamp - A 'toirt 1 mana dubh (cairt fearainn).
  • Coille - a 'toirt 1 mana uaine (cairt talmhainn).
  • Draoidh Fugitive - Tha feum air 1 mana gorm airson a ghairm.
  • Elvish Mystic - Feumaidh 1 mana uaine airson a ghairm.

Bidh sinn a’ seachnadh nan trì cairtean a tha air fhàgail gus a dhèanamh nas fhasa. A rèir nan riaghailtean, tha cead aig cluicheadair 1 cairt fearainn a chluich gach cas, faodaidh e “tapadh” air a’ chairt seo gus mana a thoirt bhuaithe, agus an uairsin geasan a thilgeil (a’ toirt a-steach creutair a ghairm) a rèir na tha de mhana. Anns an t-suidheachadh seo, tha fios aig a 'chluicheadair daonna a bhith a' cluich Forest, a 'cnagadh 1 mana uaine, agus an uairsin a' gairm Elvish Mystic. Ach ciamar as urrainn don gheama AI seo a thuigsinn?

Dealbhadh furasta

Is e an dòigh-obrach beag a bhith a’ feuchainn gach gnìomh mu seach gus nach eil feadhainn iomchaidh air fhàgail. Le bhith a 'coimhead air na cairtean, tha an AI a' faicinn dè as urrainn dha Swamp a chluich. Agus tha e ga chluich. A bheil gnìomhan sam bith eile air fhàgail aig an tionndadh seo? Chan urrainn dha Elvish Mystic no Fugitive Wizard a ghairm, oir tha feum aca air mana uaine is gorm airson an gairm, fhad ‘s nach eil Swamp a’ toirt seachad ach mana dubh. Agus cha bhith e comasach dha Forest a chluich tuilleadh, oir tha e air Swamp a chluich mu thràth. Mar sin, lean an geama AI na riaghailtean, ach rinn e gu dona. Faodar a leasachadh.

Faodaidh planadh liosta de ghnìomhan a lorg a bheir an geama chun na stàite a tha thu ag iarraidh. Dìreach mar a bha nàbaidhean aig a h-uile ceàrnag air frith-rathad (ann an lorg slighe), tha nàbaidhean no luchd-leantainn aig a h-uile gnìomh ann am plana. Faodaidh sinn coimhead airson na gnìomhan sin agus gnìomhan às deidh sin gus an ruig sinn an staid a tha thu ag iarraidh.

Anns an eisimpleir againn, is e an toradh a thathar ag iarraidh “crèutair a ghairm ma ghabhas sin dèanamh.” Aig toiseach an tionndaidh, chan eil sinn a 'faicinn ach dà ghnìomh a dh' fhaodadh a bhith ceadaichte le riaghailtean a 'gheama:

1. Cluich Swamp (toradh: Swamp sa gheama)
2. Cluich Coille (toradh: Coille sa gheama)

Faodaidh gach gnìomh leantainn gu tuilleadh ghnìomhan agus dùnadh feadhainn eile, a-rithist a rèir riaghailtean a’ gheama. Smaoinich gun do chluich sinn Swamp - bheir seo air falbh Swamp mar an ath cheum (chluich sinn e mu thràth), agus bheir seo air falbh Coille cuideachd (oir a rèir nan riaghailtean faodaidh tu aon chairt fearainn a chluich gach turas). Às deidh seo, tha an AI a 'cur ris a bhith a' faighinn 1 mana dubh mar an ath cheum oir chan eil roghainnean eile ann. Ma thèid e air adhart agus gun tagh e Tap the Swamp, gheibh e 1 aonad de mana dubh agus cha bhith e comasach dha dad a dhèanamh leis.

1. Cluich Swamp (toradh: Swamp sa gheama)
1.1 “Tap” Swamp (toradh: Swamp “tapped”, + 1 aonad de mana dubh)
Chan eil gnìomhan ri fhaighinn - CRÌOCH
2. Cluich Coille (toradh: Coille sa gheama)

Bha an liosta de ghnìomhan goirid, ràinig sinn deireadh marbh. Bidh sinn ag ath-aithris a 'phròiseas airson an ath cheum. Bidh sinn a’ cluich Coille, fosgail an gnìomh “faigh 1 mana uaine”, a dh’ fhosglas an treas gnìomh - gairm Elvish Mystic.

1. Cluich Swamp (toradh: Swamp sa gheama)
1.1 “Tap” Swamp (toradh: Swamp “tapped”, + 1 aonad de mana dubh)
Chan eil gnìomhan ri fhaighinn - CRÌOCH
2. Cluich Coille (toradh: Coille sa gheama)
2.1 Coille “Tap” (toradh: Tha “tapadh air a’ choille”, + 1 aonad de mana uaine)
2.1.1 Ghairm Elvish Mystic (toradh: Elvish Mystic ann an cluich, -1 mana uaine)
Chan eil gnìomhan ri fhaighinn - CRÌOCH

Mu dheireadh, rannsaich sinn a h-uile gnìomh comasach agus lorg sinn plana a tha a’ gairm creutair.

Is e eisimpleir gu math sìmplidh a tha seo. Tha e ciallach am plana as fheàrr a thaghadh, seach dìreach plana sam bith a choinnicheas ri cuid de shlatan-tomhais. Sa chumantas tha e comasach planaichean a mheasadh stèidhichte air toradh no buannachd iomlan an gnìomhachaidh. Faodaidh tu dhut fhèin 1 phuing a sgòradh airson cairt fearainn a chluich agus 3 puingean airson creutair a ghairm. Bhiodh cluich Swamp na phlana 1 phuing. Agus a’ cluich Coille → Tap the Forest → gairm Elvish Mystic bheir e 4 puingean sa bhad.

Seo mar a tha dealbhadh ag obair ann an Magic: The Gathering, ach tha an aon reusanachadh a’ buntainn ann an suidheachaidhean eile. Mar eisimpleir, gluasad peansail gus rùm a dhèanamh dhan easbaig gluasad ann an tàileasg. No gabh còmhdach air cùl balla gus losgadh gu sàbhailte ann an XCOM mar seo. San fharsaingeachd, gheibh thu am beachd.

Planadh nas fheàrr

Uaireannan tha cus ghnìomhan comasach airson beachdachadh air a h-uile roghainn a dh'fhaodadh a bhith ann. A ’tilleadh chun eisimpleir le Magic: The Gathering: canaidh sinn gu bheil grunn chairtean fearainn is creutair anns a’ gheama agus nad làimh - faodaidh an àireamh de chothlamaidhean de ghluasadan a bhith anns na dusanan. Tha grunn fhuasglaidhean air an duilgheadas.

Is e a 'chiad dhòigh a bhith a' slaodadh air ais. An àite a bhith a 'feuchainn a h-uile measgachadh, tha e nas fheàrr tòiseachadh leis an toradh deireannach agus feuchainn ri slighe dhìreach a lorg. An àite a bhith a 'dol bho fhreumh na craoibhe gu duilleag sònraichte, bidh sinn a' gluasad air an taobh eile - bhon duilleig gu freumh. Tha an dòigh seo nas fhasa agus nas luaithe.

Ma tha 1 slàinte aig an nàmhaid, gheibh thu am plana "milleadh 1 no barrachd". Gus seo a choileanadh, feumar coinneachadh ri grunn shuidheachaidhean:

1. Faodaidh milleadh a bhith air adhbhrachadh le geas - feumaidh e a bhith na làimh.
2. Gus geasa a thilgeil, feumaidh tu mana.
3. Gus mana fhaighinn, feumaidh tu cairt fearainn a chluich.
4. Gus cairt fearainn a chluich, feumaidh tu a bhith nad làimh.

Is e dòigh eile an rannsachadh as fheàrr. An àite a bhith a 'feuchainn a h-uile slighe, bidh sinn a' taghadh an tè as freagarraiche. Mar as trice, bheir an dòigh seo am plana as fheàrr às aonais cosgaisean sgrùdaidh neo-riatanach. Tha A* na sheòrsa den chiad sgrùdadh as fheàrr - le bhith a’ sgrùdadh nan slighean as gealltanach bhon toiseach, faodaidh e an t-slighe as fheàrr a lorg mar-thà gun a bhith a’ sgrùdadh roghainnean eile.

Is e an roghainn sgrùdaidh as fheàrr a tha inntinneach agus a tha a ’sìor fhàs mòr-chòrdte Rannsachadh Crann Monte Carlo. An àite a bhith a’ tomhas dè na planaichean a tha nas fheàrr na feadhainn eile nuair a thaghas iad gach gnìomh às deidh sin, bidh an algairim a’ taghadh luchd-leantainn air thuaiream aig gach ceum gus an ruig e an deireadh (nuair a thàinig buaidh no call air a’ phlana). Tha an toradh deireannach an uairsin air a chleachdadh gus cuideam nan roghainnean a bh’ ann roimhe a mheudachadh no a lughdachadh. Le bhith ag ath-aithris a’ phròiseas seo grunn thursan ann an sreath, tha an algairim a’ toirt deagh thuairmse air dè an ath ghluasad as fheàrr, eadhon ged a dh’ atharraicheas an suidheachadh (ma nì an nàmhaid gnìomh gus bacadh a chur air a’ chluicheadair).

Cha bhiodh sgeulachd sam bith mu phlanadh ann an geamannan coileanta às aonais Dealbhadh Gnìomh stèidhichte air Amas no GOAP (planadh gnìomh stèidhichte air amasan). Is e dòigh a tha seo air a chleachdadh gu farsaing agus air a dheasbad, ach a bharrachd air beagan mion-fhiosrachaidh, is e gu dearbh an dòigh slabhraidh air ais air an do bhruidhinn sinn na bu thràithe. Nam b’ e an amas “an cluicheadair a sgrios” agus am cluicheadair air cùl còmhdach, dh’ fhaodadh am plana a bhith: sgrios le grenade → faigh e → tilg e.

Mar as trice tha grunn amasan ann, gach fear le a phrìomhachas fhèin. Mura h-urrainnear an amas prìomhachais as àirde a choileanadh (chan eil measgachadh de ghnìomhan a’ cruthachadh plana “marbhadh an cluicheadair” leis nach eil an cluicheadair ri fhaicinn), tillidh an AI gu amasan prìomhachais nas ìsle.

Trèanadh agus atharrachadh

Tha sinn air a ràdh mar-thà nach bi AI geama mar as trice a’ cleachdadh ionnsachadh innealan leis nach eil e freagarrach airson riochdairean a riaghladh ann an àm fìor. Ach chan eil seo a’ ciallachadh nach urrainn dhut rudeigin fhaighinn air iasad bhon raon seo. Tha sinn ag iarraidh neach-dùbhlain ann an neach-seilg as urrainn dhuinn rudeigin ionnsachadh bhuaithe. Mar eisimpleir, faigh a-mach mu na h-àiteachan as fheàrr air a’ mhapa. No neach-dùbhlain ann an geama sabaid a chuireadh casg air gluasadan combo a chleachdar gu tric aig a’ chluicheadair, ga bhrosnachadh gus daoine eile a chleachdadh. Mar sin faodaidh ionnsachadh inneal a bhith gu math feumail ann an leithid de shuidheachaidhean.

Staitistig agus coltachd

Mus tèid sinn a-steach gu eisimpleirean iom-fhillte, chì sinn dè cho fada ‘s as urrainn dhuinn a dhol le bhith a’ gabhail beagan thomhasan sìmplidh agus gan cleachdadh gus co-dhùnaidhean a dhèanamh. Mar eisimpleir, ro-innleachd fìor-ùine - ciamar a cho-dhùineas sinn an urrainn do chluicheadair ionnsaigh a chuir air bhog anns a ’chiad beagan mhionaidean den gheama agus dè an dìon a dh’ ullaicheas an aghaidh seo? Is urrainn dhuinn eòlas cluicheadair san àm a dh’ fhalbh a sgrùdadh gus tuigsinn dè na beachdan a dh’ fhaodadh a bhith ann san àm ri teachd. An toiseach, chan eil an leithid de dhàta amh againn, ach is urrainn dhuinn a chruinneachadh - a h-uile uair a bhios an AI a ’cluich an aghaidh duine, faodaidh e àm a’ chiad ionnsaigh a chlàradh. Às deidh beagan sheiseanan, gheibh sinn cuibheasachd den ùine a bheir e don chluicheadair ionnsaigh a thoirt air san àm ri teachd.

Tha duilgheadas ann cuideachd le luachan cuibheasach: ma bha cluicheadair a’ reubadh 20 uair agus a’ cluich gu slaodach 20 uair, bidh na luachan riatanach an àiteigin sa mheadhan, agus cha toir seo dad feumail dhuinn. Is e aon fhuasgladh an dàta cuir a-steach a chuingealachadh - faodar aire a thoirt do na pìosan 20 mu dheireadh.

Thathas a’ cleachdadh dòigh-obrach coltach ris nuair a thathar a’ dèanamh tuairmse air an coltas gum bi gnìomhan sònraichte ann le bhith a’ gabhail ris gum bi roghainnean a’ chluicheadair san àm a dh’ fhalbh mar an ceudna san àm ri teachd. Ma bheir cluicheadair ionnsaigh oirnn còig tursan le ball-teine, dà uair le dealanach, agus aon uair le melee, tha e follaiseach gur fheàrr leis ball-teine. Nach cuir sinn a-mach agus chì sinn an coltachd gun cleachd sinn diofar bhuill-airm: ball-teine ​​= 62,5%, dealanach = 25% agus melee = 12,5%. Feumaidh an geama AI againn ullachadh gus e fhèin a dhìon bho theine.

Is e dòigh inntinneach eile a bhith a’ cleachdadh an Naive Bayes Classifier gus sgrùdadh a dhèanamh air meudan mòra de dhàta cuir a-steach agus an suidheachadh a sheòrsachadh gus am bi an AI a’ freagairt anns an dòigh a tha thu ag iarraidh. Tha luchd-seòrsachaidh Bayesian ainmeil airson an cleachdadh ann an sìoltachain spam post-d. An sin bidh iad a’ sgrùdadh nam faclan, gan coimeas ri far an do nochd na faclan sin roimhe (ann an spam no nach eil), agus a’ tighinn gu co-dhùnaidhean mu phuist-d a tha a’ tighinn a-steach. Faodaidh sinn an aon rud a dhèanamh eadhon le nas lugha de chuir a-steach. Stèidhichte air a h-uile fiosrachadh feumail a tha an AI a 'faicinn (leithid dè na h-aonadan nàmhaid a tha air an cruthachadh, no dè na geasan a bhios iad a' cleachdadh, no dè na teicneòlasan a rinn iad rannsachadh), agus an toradh deireannach (cogadh no sìth, ruaig no dìon, msaa.) - taghaidh sinn an giùlan AI a tha thu ag iarraidh.

Tha na dòighean trèanaidh sin uile gu leòr, ach tha e ciallach an cleachdadh stèidhichte air dàta deuchainn. Ionnsaichidh an AI gabhail ris na diofar ro-innleachdan a chleachd na cluicheadairean-cluiche agad. Faodaidh AI a dh’ atharraicheas don chluicheadair às deidh dha a bhith air a leigeil ma sgaoil a bhith ro ro-innseach no ro dhoirbh a’ chùis a dhèanamh.

Atharrachadh stèidhichte air luach

Leis na tha ann an saoghal a’ gheama againn agus na riaghailtean, is urrainn dhuinn an t-seata luachan a bheir buaidh air co-dhùnaidhean atharrachadh, seach a bhith dìreach a’ cleachdadh an dàta cuir a-steach. Bidh sinn a’ dèanamh seo:

  • Leig leis an AI dàta a chruinneachadh mu staid an t-saoghail agus prìomh thachartasan tron ​​​​gheama (mar gu h-àrd).
  • Nach atharraich sinn beagan luachan cudromach stèidhichte air an dàta seo.
  • Bidh sinn a’ buileachadh ar co-dhùnaidhean stèidhichte air giullachd no luachadh nan luachan sin.

Mar eisimpleir, tha grunn sheòmraichean aig àidseant airson taghadh a dhèanamh air mapa shooter ciad-neach. Tha a luach fhèin aig gach seòmar, a tha a 'dearbhadh dè cho feumail' sa tha e tadhal. Bidh an AI a’ taghadh air thuaiream dè an rùm airson a dhol a rèir an luach. Bidh an neach-ionaid an uairsin a’ cuimhneachadh dè an rùm anns an deach a mharbhadh agus a’ lughdachadh a luach (an coltachd gun till e ann). San aon dòigh airson an t-suidheachadh cùil - ma bhios an neach-ionaid a ’sgrios mòran de luchd-dùbhlain, bidh luach an t-seòmair ag àrdachadh.

Modail Markov

Dè ma chleachdas sinn an dàta cruinnichte gus ro-innse a dhèanamh? Ma chuimhnicheas sinn air a h-uile seòmar anns am faic sinn cluicheadair airson ùine shònraichte, nì sinn ro-innse dè an seòmar a dh’ fhaodadh an cluicheadair a dhol. Le bhith a’ cumail sùil air agus a’ clàradh gluasadan cluicheadair thar rumannan (luachan), is urrainn dhuinn an ro-innse.

Gabhaidh sinn trì seòmraichean: dearg, uaine agus gorm. Agus cuideachd na beachdan a chlàraich sinn fhad ‘s a bha sinn a’ coimhead seisean a ’gheama:

Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh

Tha an àireamh de bheachdan anns gach seòmar cha mhòr co-ionann - chan eil fios againn fhathast càite an dèan sinn àite math airson ambush. Tha cruinneachadh staitistig cuideachd iom-fhillte le bhith ag ath-shìoladh chluicheadairean, a bhios a’ nochdadh gu cothromach air feadh a’ mhapa. Ach tha an dàta mun ath sheòmar a thèid iad a-steach às deidh dhaibh nochdadh air a’ mhapa mar-thà feumail.

Chìthear gu bheil an seòmar uaine a’ freagairt air na cluicheadairean - bidh a’ mhòr-chuid a’ gluasad bhon t-seòmar dhearg thuige, le 50% dhiubh a’ fuireach ann nas fhaide. Chan eil an seòmar gorm, air an làimh eile, mòr-chòrdte; cha mhòr nach eil duine a 'dol thuige, agus ma nì iad, chan eil iad a' fuireach fada.

Ach tha an dàta ag innse rudeigin nas cudromaiche dhuinn - nuair a tha cluicheadair ann an seòmar gorm, bidh an ath sheòmar anns am faic sinn e dearg, chan e uaine. Eadhon ged a tha fèill mhòr air an t-seòmar uaine na an seòmar dearg, bidh an suidheachadh ag atharrachadh ma tha an cluicheadair san t-seòmar ghorm. Tha an ath staid (ie an seòmar dhan tèid an cluicheadair) an urra ris an t-suidheachadh roimhe (ie an seòmar anns a bheil an cluicheadair an-dràsta). Leis gu bheil sinn a’ sgrùdadh eisimeileachd, nì sinn ro-innse nas cruinne na bhitheamaid dìreach a’ cunntadh bheachdan gu neo-eisimeileach.

Canar modal Markov ri bhith a’ ro-innse stàite san àm ri teachd stèidhichte air dàta bho staid a dh’ fhalbh, agus canar slabhraidhean Markov ris na h-eisimpleirean sin (le seòmraichean). Leis gu bheil na pàtrain a’ riochdachadh coltachd atharrachaidhean eadar stàitean leantainneach, tha iad air an taisbeanadh gu fradharcach mar FSMn le coltachd timcheall air gach eadar-ghluasad. Roimhe sin, chleachd sinn FSM gus an staid giùlain anns an robh àidseant a riochdachadh, ach tha am bun-bheachd seo a’ leudachadh gu stàit sam bith, ge bith a bheil e co-cheangailte ris an neach-ionaid no nach eil. Anns a 'chùis seo, tha na stàitean a' riochdachadh an t-seòmair anns a bheil an neach-ionaid:

Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh

Is e dòigh shìmplidh a tha seo airson a bhith a’ riochdachadh coltas coimeasach atharrachaidhean stàite, a’ toirt beagan comais don AI ro-innse mun ath staid. Faodaidh tu a bhith an dùil grunn cheumannan air thoiseach.

Ma tha cluicheadair san t-seòmar uaine, tha teansa 50% ann gum fuirich e ann an ath thuras a thèid fhaicinn. Ach dè na cothroman a th’ ann gum bi e fhathast ann eadhon às deidh sin? Chan e a-mhàin gu bheil teansa ann gun do dh'fhuirich an cluicheadair anns an t-seòmar uaine às deidh dà amharc, ach tha cothrom ann cuideachd gun do dh'fhalbh e agus gun do thill e. Seo an clàr ùr a’ toirt aire don dàta ùr:

Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh

Tha e a’ sealltainn gum bi an cothrom an cluicheadair fhaicinn san t-seòmar uaine às deidh dà shealladh co-ionann ri 51% - 21% gum bi e bhon t-seòmar dearg, 5% dhiubh gun tadhail an cluicheadair air an t-seòmar ghorm eatorra, agus 25% nach fhàg an cluicheadair an seòmar uaine.

Is e dìreach inneal lèirsinneach a th’ anns a’ chlàr - chan fheum am modh-obrach ach na coltachd iomadachadh aig gach ceum. Tha seo a’ ciallachadh gun urrainn dhut coimhead fada san àm ri teachd le aon uaimh: tha sinn a’ gabhail ris gu bheil an cothrom a dhol a-steach do rùm gu tur an urra ris an t-seòmar a th’ ann an-dràsta. Canar seilbh Markov ris an seo - tha an stàit san àm ri teachd an urra ris an latha an-diugh a-mhàin. Ach chan eil seo ceud sa cheud neo-mhearachdach. Faodaidh cluicheadairean co-dhùnaidhean atharrachadh a rèir feartan eile: ìre slàinte no meud armachd. Leis nach bi sinn a’ clàradh nan luachan sin, cha bhi na ro-innsean againn cho ceart.

N-Gram

Dè mu dheidhinn eisimpleir geama sabaid agus ro-innse gluasadan combo a’ chluicheadair? An t-aon rud! Ach an àite aon stàit no tachartas, nì sinn sgrùdadh air na sreathan gu lèir a tha a’ dèanamh suas stailc combo.

Is e aon dòigh air seo a dhèanamh gach cuir a-steach (leithid Kick, Punch or Block) a stòradh ann am bufair agus am bufair gu lèir a sgrìobhadh mar thachartas. Mar sin bidh an cluicheadair a-rithist a 'bruthadh Kick, Kick, Punch gus an ionnsaigh SuperDeathFist a chleachdadh, bidh an siostam AI a' stòradh a h-uile cuir a-steach ann am bufair agus a 'cuimhneachadh air na trì mu dheireadh a chaidh a chleachdadh anns gach ceum.

Mar a chruthaicheas tu AI gaming: stiùireadh do luchd-tòiseachaidh
(Tha na loidhnichean ann an clò trom nuair a chuireas an cluicheadair ionnsaigh SuperDeathFist air bhog.)

Bidh an AI a 'faicinn a h-uile roghainn nuair a bhios an cluicheadair a' taghadh Kick, air a leantainn le breab eile, agus an uairsin mothaich gu bheil an ath in-chur daonnan Punch. Leigidh seo leis an neach-ionaid ro-innse gluasad combo SuperDeathFist agus casg a chuir air ma ghabhas e dèanamh.

Canar N-graman ris na sreathan de thachartasan seo, far a bheil N an àireamh de eileamaidean a tha air an stòradh. Anns an eisimpleir roimhe b’ e 3-gram (trigram) a bh’ ann, a tha a’ ciallachadh: thathas a’ cleachdadh a’ chiad dà inntrig gus an treas fear a ro-innse. Mar sin, ann an 5-gram, tha a 'chiad ceithir inntrigidhean a' ro-innse a 'chòigeamh agus mar sin air adhart.

Feumaidh an dealbhaiche meud N-gram a thaghadh gu faiceallach. Feumaidh N nas lugha nas lugha de chuimhne ach bidh e cuideachd a’ stòradh nas lugha de dh’ eachdraidh. Mar eisimpleir, bidh 2-gram (bigram) a 'clàradh Kick, Kick or Kick, Punch, ach cha bhith e comasach dha Kick, Kick, Punch a stòradh, agus mar sin cha bhith an AI a' freagairt ris a 'chombo SuperDeathFist.

Air an làimh eile, feumaidh àireamhan nas motha barrachd cuimhne agus bidh an AI nas duilghe a thrèanadh oir bidh tòrr a bharrachd roghainnean ann. Nam biodh trì cuir a-steach comasach agad de Kick, Punch or Block, agus gun do chleachd sinn 10-gram, bhiodh sin timcheall air 60 mìle roghainn eadar-dhealaichte.

Is e slabhraidh sìmplidh Markov a th’ anns a’ mhodail bigram - is e bigram a th’ anns gach paidhir stàite / stàite a chaidh seachad roimhe, agus faodaidh tu ro-innse an dàrna staid stèidhichte air a’ chiad fhear. Faodar smaoineachadh air na 3-graman agus N-graman nas motha cuideachd mar shlabhraidhean Markov, far a bheil a h-uile eileamaid (ach a-mhàin an tè mu dheireadh anns an N-gram) còmhla a 'dèanamh a' chiad staid agus an eileamaid mu dheireadh an dàrna fear. Tha an eisimpleir geama sabaid a’ sealltainn cothrom gluasad bho stàit Kick and Kick gu stàite Kick and Punch. Le bhith a’ làimhseachadh ioma-inntrigidhean eachdraidh cur-a-steach mar aon aonad, tha sinn gu bunaiteach ag atharrachadh an t-sreath cuir a-steach gu bhith na phàirt den stàit gu lèir. Bheir seo dhuinn seilbh Markov, a leigeas leinn slabhraidhean Markov a chleachdadh gus an ath chuir a-steach a ro-innse agus tomhas dè an ath ghluasad combo a bhios ann.

co-dhùnadh

Bhruidhinn sinn mu na h-innealan agus dòighean-obrach as cumanta ann an leasachadh inntleachd fuadain. Sheall sinn cuideachd air na suidheachaidhean anns am feum iad a bhith air an cleachdadh agus far a bheil iad gu sònraichte feumail.

Bu chòir seo a bhith gu leòr airson bunaitean geama AI a thuigsinn. Ach, gu dearbh, chan e seo a h-uile dòighean. Am measg nach eil cho mòr-chòrdte, ach nach eil cho èifeachdach tha:

  • algorithms optimization a’ gabhail a-steach sreap bheanntan, teàrnadh caisead agus algoirmean ginteil
  • algorithms sgrùdaidh / clàraidh nàimhdeil (priobadh minimax agus alpha-beta)
  • dòighean seòrsachaidh (perceptrons, lìonraidhean neural agus innealan vector taic)
  • siostaman airson tuigse agus cuimhne riochdairean giullachd
  • dòighean ailtireil a thaobh AI (siostaman tar-chinealach, ailtireachd fo-sheata agus dòighean eile air cuir thairis air siostaman AI)
  • innealan beothachaidh (dealbhadh agus co-òrdanachadh gluasad)
  • factaran dèanadais (ìre mion-fhiosrachaidh, uair sam bith, agus algoirmean clàr-ama)

Goireasan air-loidhne air a’ chuspair:

1. Tha GameDev.net earrann le artaigilean agus clasaichean air AI, a bharrachd air am fòram.
2. AiGameDev.com anns a bheil mòran thaisbeanaidhean agus artaigilean air raon farsaing de chuspairean co-cheangailte ri leasachadh geama AI.
3. An GDC Vault a’ toirt a-steach cuspairean bho Cho-labhairt GDC AI, agus tha mòran dhiubh rim faighinn an-asgaidh.
4. Gheibhear stuthan feumail air an làrach-lìn cuideachd Comann Prògramadairean Gèam AI.
5. Bidh Tommy Thompson, neach-rannsachaidh AI agus leasaiche geama, a’ dèanamh bhideothan air YouTube AI agus geamannan le mìneachadh agus sgrùdadh air AI ann an geamannan malairteach.

Leabhraichean air a’ chuspair:

1. Tha sreath leabhraichean Game AI Pro nan cruinneachaidhean de artaigilean goirid a mhìnicheas mar a chuireas tu feartan sònraichte an gnìomh no mar a dh’ fhuasglas tu duilgheadasan sònraichte.

Game AI Pro: Gliocas cruinnichte de phroifeasantaich geama AI
Gèam AI Pro 2: Gliocas cruinnichte de phroifeasantaich geama AI
Gèam AI Pro 3: Gliocas cruinnichte de phroifeasantaich geama AI

2. Is e sreath Wisdom Prògramadh Gèam AI an ro-shealladh den t-sreath Game AI Pro. Tha dòighean nas sine ann, ach tha cha mhòr a h-uile gin dhiubh buntainneach eadhon an-diugh.

Gliocas prògramadh geama AI 1
Gliocas prògramadh geama AI 2
Gliocas prògramadh geama AI 3
Gliocas prògramadh geama AI 4

3. Artificial Intelligence: dòigh-obrach ùr-nodha Is e seo aon de na teacsaichean bunaiteach airson a h-uile duine a tha airson tuigse fhaighinn air raon coitcheann inntleachd fuadain. Chan e leabhar mu leasachadh geama a tha seo - tha e a’ teagasg bunaitean AI.

Source: www.habr.com

Cuir beachd ann