Prírodou inšpirované algoritmyštudijné materiály pre projekt mobilnej triedy umelej inteligencie |
||
Neadaptívne algoritmySekvenčný program - predprogramované monštrá majú kusy kódu, ktorý sa spúšťa inštrukcia za inštrukciou, s tým presne určuje poradie rozhodovacích podmienok. Je to najjednoduchší spôsob programovania chovania a vykonávanie kódu je veľmi rýchle, ale výsledné správanie monštier je veľmi stereotypné a jednoduché. Keď si ešte spomeniete, ako za vami chodili opičky v DOOMe - iba vo veľkom dave - kým sme im brokovnicou nepovedali: "Ľahni !!!". V rade nových hier je možné meniť vlastnosti umelej inteligencie, pretože nie je natvrdo uložená v kóde, ale popísaná špeciálnym jazykom v samostatnom súbore. Jednoduchým programovacím jazykom pre AI sa bežne hovorí skripty a tvorbe skriptov - hoc ide o plnohodnotné programovanie - sa hovorí scripting. Ako vyzerá časť skriptu pre bojovníka z hry Bladur's Gate:
Program s náhodnými faktormi. Je pomerne jednoduchý, ale dostatočne efektívny spôsob, ako vniesť do davu nepriateľov variabilné správanie.Dodáva sekvenčnému programu pre každé monštrum aj náhodné rozhodnutie - akési hodenie kockou, či bude vykonané rozhodnutie, alebo nie. Príšery potom nepobehujú ako sprievod robotníkov na Prvého mája, ale niektorá utečie, iná zaútočí a podobne. Nie je to príliš náročné na implementáciu a je to pomerne rýchle. Problém je v tom, že monštrá sa správajú skôr chaoticky než zmysluplne a aj napriek náhodnosti v ich chovaní sa dajú znateľne pozorovať stereotypy. Vkladanie náhodných faktorov je skôr doplnková technika než samostatný spôsob programovania umelej inteligencie. Často sa objavuje v spolupráci s Fuzzy logikou, kde fuzzy výsledok vyhodnocovania situácie funguje zároveň ako pravdepodobnosť, že sa spustí určité správanie. Pokiaľ napríklad fuzzy logika povie, že je dobré "zaútočiť=0,8" a "brániť sa=0,4", klasický algoritmus sa rozhodne vždy pre útok. Pokiaľ je ale rozhodovanie pravdepodobnostné, program si vypočíta, že pomer "zaútočiť" ku "brániť" zodpovedá 2:1 pre útok. Takéto správanie i keď nie je racionálne - vyzerá pomerne źivo. Problém je ale v tom, že človek uvažuje aj o faktoroch, ktoré žiadny algoritmus bez schopnosti plánovať nemá - napríklad, pokiaľ už sú vyťažené suroviny na mape a nie je už možné vyrábať nákladné jednotky, človek nebude nikdy riskovať nákladné jednotky a nepôjde s nimi do útoku s rizikom 1:1, zatiaľ čo počítač - na základe pravdepodobnosti - do nich pôjde priemerne v každom druhom prípade. V tom je ľudská šikovnosť - vyzerá to ako čakanie na chybu počítača, ale nie je to chyba, je to pravdepodobnosť. A tá - na rozdiel od chyby - po dostatočne dlhom čakaní nastane. |
||
Kontakt: Marek Bundzel |