Prírodou inšpirované algoritmy

študijné materiály pre projekt mobilnej triedy umelej inteligencie

Späť ku kurzom triedy
Obsah
Základné princípy OOP
Prvý program v Objective C
Spoločný život dvoch objektov
Používanie Swarmu
Viac agentov v prostredí
Parametre modelu
Grafické rozhranie



Ostatné kapitoly
Swarm
RePast
LEM
SDML
Eos
DDLab


Tutoriály
 Celulárne automaty
 Morfogenéza
 Simulátory
 Evolučné algoritmy
 Chaos
 Roboty
 Rôzne


Prvý program v Objective C

Popis hlavného súboru

Hlavný program na vytvorenie "chrobáka" je Main.m. Nastaví sa tu vnútorný stav a povie, čo sa bude vykonávať. S "chrobákom" komunikujeme pomocou posielania odkazov, použitím syntaxe:

[id odkaz argumenty]

Napr.:

  • príkaz [aBug setX: xPos Y:yPos] posiela objektu aBug odkaz: Nastav svoje X,Y súradnice na hodnotu xPos, yPos.
  • odkaz [Bug create: globalZone] zabezpečí, že triede Bug sa priradia inštancie.
  • odkaz [aBug step] zabezpečí vykonanie akcie, v našom prípade náhodný pohyb.

Vytvorenie objektu

Každý objekt je implementovaný v dvoch súboroch. V našom prípade pre objekt "chrobák") to budú súbory Bug.h a Bug.m.

Súbory *.h deklarujú vnútorné premenné objektov a odkazy, ktoré budú posielané. Nazývame ich "interface" súbormi, pretože deklarujú čo bude objekt robiť bez toho, ako to bude robiť.

V súboroch *.m sa špecifikuje, ako budú objekty komunikovať.

V našom prípade má objekt bug špecifikované:

  • štyri vnútorné premenné: xPos, yPos, worldXSize, worldYSize.
  • tri rôzne typy odkazov pre komunikáciu : setX: Y:, setWordSize X: Y: a step.

Veľkosť poľa je worldXSize, worldYSize. Počiatočná poloha "chrobáka" je xPos, yPos.

pozn.: objekt uniformIntRand je generátor náhodných čísel, je to objekt s knižnice Swarmu. Vracia náhodné celé číslo z rozsahu rMin, rMax, v našom prípade vracia jednu s troch hodnôt 1,0,1.

Vytvorenie súboru makefile

Makefile urobí kompiláciu a vytvorí súbory main.o a Bug.o. Zadefinujeme tu pripojenie na Swarm, názov spúšťacieho súboru a mená objektových súborov.

Príklad, ktorý kompiluje predošlé súbory:

SWARMHOME=/adresa... //domovský adresár
APPLICATION=bug
OBJECTS= main.o Bug.o
include $(SWARMHOME)/Makefile.appl

main.o: main.m Bug.h
Bug.o: Bug.h Bug.m

Spustenie modelu

Po kompilácii máme v našom adresári simpleObjC už šesť súborov:

  • main.m
  • main.o
  • Bug.m
  • Bug.h
  • Bug.o
  • *bug, ktorým spustíme model.

Hore
Kontakt: Marek Bundzel