Prírodou inšpirované algoritmyštudijné materiály pre projekt mobilnej triedy umelej inteligencie |
||
BojovníciBojové programy môžeme rozdeliť podľa inteligencie, agresivity a veľkosti. Do kategórie malých, agresívnych a nie veľmi inteligentných patria IMP a DWARF. Na ďalšom stupni sú programy, ktoré sú väčšie, trochu menej agresívne, ale dostatočne bystré na to aby si poradili s nižšou triedou. Bystrejšie programy majú schopnosť rozhodovať o útoku spolu s kopírovaním seba mimo nebezpečenstva. Každý z týchto programov obsahuje časť kódu, ktorý je podobný kódu GEMINI. GEMINI je iba funkcia na kopírovanie bojového programu, ktorého je súčasťou, o 100 adries za aktuálnu pozíciu a na nastavenie novej kópie ako aktívnej. Takto vznikli BIGFOOT a JUGGERNAUT. Na ďalšom stupni náročnosti sa nachádzajú bojové programy SCANNER a RAIDAR. Títo bojovníci sú však príliš dlhí na to aby sa mohli reprodukovať v tomto prostredí. DWARF: Je to veľmi primitívny a nebezpečný program. Bombarduje každú 5 adresu s nulou. Nula je celé číslo označujúce nevykonateľnú dátovú inštrukciu. Ak dopadne do nepriateľského programu môže spôsobiť zastavenie (prehru).
Toto je celý Dwarf. Do relatívnej adresy Je na zamyslenie, že statický bojový program, ktorý má viac ako 4 inštrukcie sa môže a vyhnúť zásahu od Dwarf-a. Nepriateľ má iba tri možné stratégie:
Pri poslednej stratégii bojový program musí mať "veľa šťastia", aby Dwarf zasiahol. Má okolo 1600 vykonávacích cyklov skôr ako dostane zásah. Ak 2. program je tiež Dwarf, tak každý program vyhrá 30% času. TRAP-DWARF: Modifikácia, ktorá každú bombu (nulu) ochráni inštrukciou IMP: Je to jednoriadkový bojový program: IMP GUN: Vylepšením klasického Imp o inštrukciu
IMP PIT(stomper): Je to jediná možnosť ako sa môže väčší program ochrániť pred ImpGun.
IMP vs. DWARF
Bombardovanie pamäťového poľa nulami Dwarf-om je rýchlejšie ako pohyb Imp-u, ale to neznamená, že Dwarf má výhodu. Otázkou je či Dwarf zasiahne Imp, keď ho dobehne.
Ak Imp zasiahne Dwarf-a prvý, tak mu zmení kód. Ak Dwarf vykoná inštrukciu na GEMINI
Skladá sa s troch hlavných časti. Dve dátové inštrukcie na začiatku slúžia ako smerníky, označujú kde sa skopíruje nasledujúce inštrukcia. Cyklus v strede programu premiestňuje každú inštrukciu o 100 pozícii ďalej za ich aktuálnu pozíciu. Pri každom prechode cyklom sa oba smerníky inkrementujú o hodnotu 1, tým označujú novú zdrojovú a cieľovú adresu. Porovnávacia inštrukcia JUGGERNAUT: Kopíruje sa o 10 pozícii dopredu (na rozdiel od Gemini, ktorý skáče o 100). Ako Imp pokúša sa prejsť cez všetkých svojich nepriateľov. Vyhráva oveľa častejšie ako Imp, pretože prepísané programy sú menej schopné vykonávať časti Juggernaut-ovho kódu. BIGFOOT: Ďalší program založený na Gemini mechanizme, vytvára interval veľkých prvočísiel medzi kópiami. Je ťažké ho chytiť a má aký istý ničiaci účinok ako Juggernaut. RAIDAR: Udržuje dve strážne veže v okolí programu. Každá strážna veža pozostáva zo 100 nasledujúcich adries obsahujúcich SCANNER: Tento program napísal Jones ako opravujúci sa program, ktorý môže prežiť nejaké útoky, i keď nie všetky. Udržuje dve kópie seba, ale aktívna je len jedna. Bežiaca kópia periodicky sníma druhú kópiu, či nebola zmenená. Zmeny sa zistia pri porovnávaní. Vždy sa predpokladá, že vykonávacia kópia je správna. Ak sa nájdu nejaké zlé inštrukcie, tak sú nahradené a riadenie sa prenesie na druhú kópiu, ktorá začne skúmať prvú. Je to čisto defenzívny program. Dokáže prežiť útok Dwarf-a, Imp-a, Juggernaut-a a podobných pomaly postupujúcich útočníkov. COMMANDO: Je opísaný pri Prvom Core War turnaji. Chang1:
MICE:
Aj títo dvaja bojovníci sú opísaní pri prvom Core War turnaji. |
||
Kontakt: Marek Bundzel |