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


Základné princípy OOP

Hlavné nástroje na riešenie problémov

Pre riešenie zložitých problémov zo sveta aplikácií použijeme následovné nástroje:

  • dekompozícia: zložitý problém sa vhodným spôsobom rozdelí na menšie problémy, ktoré sa riešia jednotlivo a celkový výsledok sa poskladá z čiastkových výsledkov.
  • abstrakcia: pri riešení problémov hľadáme zjednodušené modely objektov z reálneho sveta (nepodstatné vlastnosti objektov zanedbáme). Abstraktný popis umožňuje popísať chovanie ľubovolného množstva podobných objektov.
  • hierarchia abstraktných modelov: podobne ako sme cestou zjednodušenia dospeli k abstraktným modelom reality, môžeme opačnou cestou dospieť k špecializácii abstraktného modelu.

Charakteristika

Objektovo orientovaný programovací štýl sa dá v stručnosti popísať ako obecný postup založený na priamom modelovaní objektov z reálneho sveta vo svete počítača s využitím prostriedkov pre abstrakciu a hierarchizáciu popisu.

Modelom objektu z reálneho sveta je objekt, ktorý existuje za behu programu. Vlastnosti objektov z reálneho sveta sú v objektoch sveta počítača realizované ako vlastnosti s charakterom:

  • informácie: sú implementované ako dátové štruktúry. Vlastnosti tohto typu sa v OOP označujú ako atribúty, napr. pre objekt Chrobák je konštantným atribútom veľkosť sveta v ktorom sa pohybuje a premenlivým jeho momentálna pozícia vo svete.
  • typové operácie, (funkcie alebo služby): prevádzajú sa nad dátovou štruktúrou objektu. Ich volaním zvonku sa realizuje interakcia (spolupráca) objektov. Vlastnosti s charakterom typových operácii sú implementované ako procedúry, funkcie v OOP sa označujú ako metódy. V programovacom jazyku Ojective C je pred každou metódou znamienko mínus. Pri Chrobákovi môže byť príklad metódy: urob ďalší krok, čím sa zmení atribút momentálnej pozície vo svete.
  • činnosť: je implementovaná ako programový text popisujúci vlastnú aktivitu (t.j. život) objektu, realizovanú súbežne s aktivitou iných objektov. Ako príklad možno uviesť viacero Chrobákov požierajúcich rôzne druhy potravy, čo sú tiež objekty.

Triedy a inštancie

Objektový typ sa realizuje prostredníctvom konštrukcie nazývanej trieda. Trieda realizuje konkrétnu podobu zapuzdrenia svojich prvkov. Zložky triedy sú obvykle atribúty a metódy. Zapuzdrením sa myslí, že každý prvok s charakterom dát patrí nejakej triede či inštancii. Inštancia je objekt s konkrétnymi vlastnosťami. Hovorili sme o tom, že Chrobák požiera viac druhov potravy, čo sú objekty rovnakého typu. Bolo by neekonomické konštruovať samostatný programový popis (model) pre každý druh potravy. Nasadíme mechanizmus abstrakcie, ktorý sme spomenuli vyššie a budeme uvažovať len druh potravy a jej umiestnenie vo svete. Po tejto úvahe môžeme skonštruovať abstraktný popis potravy nasledovne:

  • typ a meno atribútu druh potravy
  • typ a meno atribútu umiestnenie vo svete
  • programový text metódy jedenie potravy

Jednotný popis vlastností množiny podobných objektov sa v OOP nazýva objektový typ.

Hore
Kontakt: Marek Bundzel