
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 . Faodaidh tu an dreach aige a leughadh , 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.

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:

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:

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:

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.

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.

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:

A-mach Ă inbhe sabaid:

Agus ann an cruth diagram:

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:

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.

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:

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 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).

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.

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.

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.

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 .
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:

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:

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:

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.

(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 , a bharrachd air .
2. anns a bheil mòran thaisbeanaidhean agus artaigilean air raon farsaing de chuspairean co-cheangailte ri leasachadh geama AI.
3. 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 .
5. Bidh Tommy Thompson, neach-rannsachaidh AI agus leasaiche geama, aâ dèanamh bhideothan air YouTube 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.
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.
3. 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
