zde - Univerzita Hradec Králové

Transkript

zde - Univerzita Hradec Králové
SBORNÍK PŘÍSPĚVKŮ
Z LETNÍ ŠKOLY „MEZIOBOROVÉ PŘÍSTUPY
INFORMATIKY A KOGNITIVNÍ VĚDY“
Fakulta informatiky a managementu Univerzity Hradec Králové
Projekt Informační, kognitivní a interdisciplinární podpora výzkumu je spolufinancován
Evropským sociálním fondem a státním rozpočtem České republiky.
Recenzent: prof. RNDr. Josef Zelenka, CSc. Recenzovaný sborník 1. ročníku letní školy „Mezioborové přístupy informatiky a kognitivní vědy“. Publikace neprošla jazykovou úpravou. Za obsahovou správnost odpovídají autoři příspěvků. ISBN 978­80­7435­137­2 Recenzovaný sborník příspěvků z 1. ročníku letní školy „Mezioborové přístupy
informatiky a kognitivní vědy“.
Letní školu uspořádali členové vědeckých týmů působících na Fakultě informatiky
a managementu Univerzity Hradec Králové spolu s projektovým týmem INKOV ve
dnech 6. až 10. června 2011.
Programový výbor:
Ing. Agáta Bodnárová
prof. RNDr. Martin Gavalec, CSc.
Ing. Filip Malý, Ph.D.
prof. RNDr. Peter Mikulecký, Ph.D.
Mgr. Petr Tučník, Ph.D.
Organizační výbor:
Bc. Anna Hovorková
Ing. Kateřina Mišičková
Ing. Hana Šafránková
prof. RNDr. Josef Zelenka, CSc.
OBSAH Josef Zelenka LETNÍ ŠKOLA MEZIOBOROVÉ PŘÍSTUPY INFORMATIKY A KOGNITIVNÍ VĚDY …. 7 PŘÍSPĚVKY Lukáš Beran, Karel Petránek ROZPOZNÁNÍ OBLIČEJŮ NA MOBILNÍCH ZAŘÍZENÍCH ………………………………… 8 Josef Horálek, Martin Hátaš, Tomáš Cink PROBLEMATIKA PROTOKOLU IPV6 …………………………………………………………… 16 Lukáš Kinc, Jiří Neuman TÝMOVÁ KOMUNIKACE A ZÁZNAMNÍK POZNÁMEK Z TERÉNU …………………… 28 Tomáš Machálek VYUŽITÍ METODY PARTICLE SWARM OPTIMIZATION PŘI VZÁJEMNÉM ZAROVNÁVÁNÍ 2D OBRÁZKŮ ………………………………………………………………………. 38 Peter Mikulecký AMBIENTNÍ INTELIGENCE – JEDNA Z CEST KE KOMPLEXNÍ PODPOŘE LIDSKÝCH AKTIVIT ……………………………………………………………………. 48 Peter Sinčák, Mária Virčíková, Marcel Hric NOVÉ VÝZVY STROJOVEJ INTELIGENCIE – TEORETICKÉ VÝCHODISKÁ ………. 58 Ján Vaščák UMELÁ INTELIGENCIA V METÓDACH NAVIGÁCIE ROBOTOV ................................... 70 POSTERY Luboš Běhounek HLEDÁNÍ CESTY A GENEROVÁNÍ MAPY ……….................................................................... 83 Stanislav Brandejs UŽITÍ SOFTROBOTŮ A „UI“ PRO NPC …………………………………………………………... 90 Richard Cimler MULTIAGENTOVÝ PŘÍSTUP K PROBLÉMŮM LINEÁRNÍHO PROGRAMOVÁNÍ …………………………………………………………………… 100 Richard Cimler, Kamila Olševičová AGENTOVÝ MODEL DOPRAVY: POROVNÁNÍ KŘIŽOVATKY A KRUHOVÉHO OBJEZDU ……………………………………………………………………………. 104 Nikola Dostálová VÍCEKRITERIÁLNÍ ROZHODOVÁNÍ U AUTONOMNÍCH AGENTŮ ………………….... 108 Michal Gregor, Karel Petránek, Martin Burian ROBOTICKÁ RUKA – KONSTRUKCE A POUŽITÍ …………………………………………….. 118 5
Nela Klusáčková APLIKACE VÍCEKRITERIÁLNÍHO ROZHODOVÁNÍ V MULTIAGENTNÍCH SYSTÉMECH ……………………………………………………………... 123 Zuzana Němcová FRONTY V UZAVŘENÍM A OTEVŘENÉM SYSTÉMU HROMADNÉ OBSLUHY ………………………………………………………………………………… 133 Alena Pozdílková MONGEOVSKÉ MATICE V MAX‐MIN ALGEBŘE …………………………………………….. 137 Jiří Štěpánek VYUŽITÍ MULTIAGENTOVÉHO SYSTÉMU V SIMULACI AKCIOVÉHO TRHU …………………………………………………………………. 141 Hana Tomášková EIGENPROBLEM CIRKULANTNÍCH MATIC V EXTREMÁLNÍCH ALGEBRÁCH …………………………………………………………………. 145 6
LETNÍ ŠKOLA MEZIOBOROVÉ PŘÍSTUPY INFORMATIKY A KOGNITIVNÍ VĚDY Poprvé v červnu 2011 Fakulta informatiky a managementu Univerzity Hradec Králové hostila účastníky letní školy „Mezioborové přístupy informatiky a kogni‐
tivní vědy, kterou připravili členové vědeckých týmů působících na FIM spolu s projektovým týmem INKOV. Každý den letní školy byl věnován jednomu tématu a byl garantován jedním vě‐
deckým týmem. V dopoledních blocích se odborníci z České republiky i ze zahraničí věnovali těmto tématům: „Quo & Qua Vadis Intelligent Systems“ – prof. Ing. Peter Sinčák, CSc., „Umelá inteligencia v metódach navigácie robotov“ – Dr. Ing. Ján Vaščák, „Extremal Algebras in Optimization“ – prof. Karel Zimmermann, „Tropical linear program‐
ming“ a „Tropical two‐sided eigenproblem“ – Dr. Sergei Sergeev. Přednášelo i několik externích odborníků, s přednáškou „Vývoj pro Windows Phone 7“ vy‐
stoupil Štěpán Bechynský a „Úvod do vývoje pro Android“ přednesl Ing. Ondřej Berger. Zaslouženou pozornost vyvolala i přednáška „Ambientní inteligence – jedna z cest ke komplexní podpoře lidských aktivit“ – prof. RNDr. Peter Mikulecký, Ph.D. Odpoledne začala posterovými sekcemi studentů a pokračovala praktickými semi‐
náři pod vedením pozvaných hostů či členů vědeckých týmů. V rámci letní školy byla otevřena tato témata: •
Moderní přístupy v oblasti počítačových sítí, •
Autonomní systémy, •
Nestandardní optimalizační metody, •
Mobilní aplikace a jejich vývoj, •
Inteligentní a znalostní přístupy k podpoře lidských aktivit. Přejeme Vám, aby první ročník letní školy byl pro Vás zajímavou inspirací. za organizátory letní školy Josef Zelenka Poděkování Všechny příspěvky vznikly za podpory projektu „Informační, kognitivní a interdisci‐
plinární podpora výzkumu – INKOV, registrační číslo CZ.1.07/2.3.00/20.0001, který je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. 7
ROZPOZNÁNÍ OBLIČEJŮ NA MOBILNÍCH ZAŘÍZENÍCH
FACE RECOGNITION ON MOBILE DEVICES
Lukáš Beran, Karel Petránek
Abstrakt
Vývoj současných aplikací je v současnosti velkou měrou ovlivněn zejména nároky
na uživatelskou přívětivost, intuitivní a rychlé ovládání výsledné aplikace.
V souvislosti s tímto trendem se v aplikacích čím dál více využívá počítačového vidění.
Jedním z nejčastějších úkolů počítačového vidění je detekce a rozpoznání osob na
fotografii. Příspěvek se věnuje detekci a rozpoznání obličejů na fotografiích, které
jsou pořízeny pomocí mobilního telefonu s platformou Android. V příspěvku jsou
představeny běžně používané algoritmy a navržena demonstrační mobilní aplikace
typu klient-server, která rozpozná osoby na fotografii pořízené vestavěnou kamerou.
Klíčová slova
detekce obličejů, rozpoznání obličejů, počítačové vidění, Android, mobilní zařízení
Abstract
The development of modern applications strongly depends on user friendliness and
fast responses of the user interface. Following this trend, many applications employ
computer vision as a key usability element. The most frequent use of computer vision
is in the area of face detection and recognition. This article presents face detection
and recognition on mobile devices running the Android operating system and
discusses some commonly used algorithms. The results of face recognition on
a mobile device using its built-in camera are demonstrated on a sample application.
Keywords
face detection, face recognition, computer vision, Android, mobile devices
1. Úvod
Zvyšující se požadavky na rychlost a bezpečnost dnešních systémů vedou vývojáře
k používání sofistikovaných metod jak spolehlivě a v krátkém časovém intervalu
jednoznačně identifikovat jedince. Jednou z možností jsou biometrická data. Mezi
tato data patří např. otisky prstů, oční sítnice, duhovka nebo obličej. Jejich
porovnávání s referenčními daty uloženými v databázi lze určit jejich shodu
a potvrdit totožnost nebo naopak.
8
V souvislosti s rozvojem technologií umožňujícími pracovat s vizuálními daty
vzrostla poptávka po jejich využívání v nejrůznějších aplikacích. Mezi velmi
populární případy využití počítačové analýzy obrazu patří rozpoznávání lidského
obličeje. Tento princip identifikace jedince lze využít v celé řadě aplikací, které
pracují s fotografiemi jednotlivých lidí. Typickým příkladem jsou např. sociální sítě,
kde jsou kromě některých osobních údajů uživatelů obsaženy také fotografie
s jejich obličeji. Mezi základní cíle tohoto příspěvku patři využití algoritmu
rozpoznání lidské tváře v oblasti mobilních technologií a sociálních sítí.
2. Úvod do problematiky
2.1. Biometrická data
Biometrická data se v současnosti využívají v mnoha odvětvích zejména v souvislosti
s identifikací dané osoby a zvýšení bezpečnosti. Ať už se jedná o velkou organizaci
(např. tovární komplex s utajenými výrobními postupy) nebo pouze o přístupový
terminál pro výdej určitého druhu zboží (identifikace pomocí obličeje v tomto případě
zvyšuje zejména rychlost autentizace), slouží biometrická data obecně za účelem
rozpoznání. Způsob využití těchto dat pak primárně závisí kontextu a na konkrétním
účelu, za kterým jsou získávána. Následující tabulka shrnuje některé příklady jak tato
data využít (zdroj [10]).
Oblast
Biometrika
Informační bezpečnost
Dohlížení a prosazování zákonů
Identifikační karty
Přístupová práva
Konkrétní využití
řidičské průkazy, imigrace, pasy,
registrace voličů
úřady vyžadující kontrolu totožnosti
(sociální příspěvky, …)
logování do systémů (např. Windows 7)
zabezpečení přístupu k databázi,
bezpečnost aplikací, šifrování souborů
zabezpečení obchodních terminálů
(bankomatů)
přístup k síti intranet, přístup k síti
internet, lékařské záznamy
kamerové systémy
identifikace tváře podezřelého
vyšetřování
autentizace uživatele
přístup do organizace (např. do továrny,
do utajeného prostoru)
možnost přístupu k vybranému přístroji
Tab. 1: Typické aplikace rozpoznání obličeje
2.2. Proces rozpoznání obličeje
Celý proces rozpoznávání obličeje lze z teoretického hlediska rozdělit do několika
následujících kroků:
9
Získání dat pro následnou analýzu
pořízení snímku z fotoaparátu, popř. nalezení existujícího snímku,
extrahování snímku z videa.
Identifikace obličeje na analyzovaném snímku
využití vhodného algoritmu, volba správné míry kritérií pro rozpoznání
obličeje.
Porovnání zjištěného obličeje s obličeji v databázi
porovnání získaných grafických dat s grafickými daty v databázi
2.3. Identifikace obličejů v obraze
Identifikace obličejů ve vyfotografovaném snímku se dá rozdělit na dvě dílčí části:
detekce obličejů – zjištění oblastí, ve kterých se obličeje nachází,
rozpoznání obličejů – porovnání detekovaných oblastí s databází známých
obličejů.
Protože rozpoznání obličejů vyžaduje databázi obličejů, která může být velmi
rozsáhlá, není vhodné provádět rozpoznání obličejů na mobilním zařízení
s omezenou pamětí. Vhodnou strategií je provést detekci obličejů na zařízení
a detekované obličeje odeslat k rozpoznání na server.
Detekce obličejů
Detekce obličejů na mobilním zařízení musí být co nejméně výpočetně náročná,
aby nedocházelo k prodlevám při používání aplikace a s tím spojené vysoké
spotřebě elektrické energie.
Detekce na základě barvy kůže
Jednou z nejjednodušších a zároveň výpočetně nejméně náročných metod je
detekce obličejů na základě barvy kůže. Dá se ukázat, že barva lidské kůže se
pohybuje v poměrně úzké části barevného spektra, a lze ji proto snadným
způsobem segmentovat ze vstupního obrazu [1].
Vhodným barevným modelem pro snadnou specifikaci barvy kůže je HSV [8] (HueSaturation-Value). HSV reprezentuje barvu jako tři hodnoty – odstín (hue), jako
mix základních barev červené, zelené, modré a žluté; sytost (saturation), která
reprezentuje barevnost (nulová sytost znamená šedotónový obrázek); světlost
(value), která udává intenzitu dopadajícího světla.
Mezi výhody detekce na základě barvy patří nezávislost na orientaci obličeje a jeho
vzdálenosti od kamery. Metoda je rovněž robustní vůči změnám v osvětlení
obličeje a změnám výrazu.
Nevýhodou detekce na základě barvy kůže je fakt, že se tato barva na fotografiích
vyskytuje často i v oblastech, které nejsou součástí lidského těla. Navíc není možné
detekovat obličeje na černobílých fotografiích.
10
Obr. 1: Ukázka segmentace na základě barvy kůže
Na obrázku je vidět častý výskyt barvy kůže mimo oblast těla.
Detekce algoritmem pro rozpoznání objektů
Viola a Jones [9] v roce 2001 navrhli adaptivní algoritmus pro detekci objektů
v obraze. Protože obličeje lze chápat jako speciální případ objektu, je možné tento
algoritmus využít pro jejich detekci.
Algoritmus nejprve transformuje vstupní obraz do jednoduchého feature space,
které obsahuje pouze čtyři druhy obdélníkových features. Tyto features lze
vypočítat v konstantním čase, nezávisle na velikosti obdélníku [4]. Díky tomu je
možné dosáhnout velmi rychlého běhu algoritmu, a zároveň testovat různé
velikosti obdélníků, čímž je zajištěna nezávislost na velikosti obličeje.
Protože obecně existuje v obrazu velké množství features (několikanásobně větší
než je počet pixelů), je nutné eliminovat features, které nejsou pro detekci objektu
kritické. Viola a Jones používají adaptivní učící se algoritmus AdaBoost [6] pro
detekci takových features.
Pro detekci na základě natrénovaných dat je opět použit AdaBoost pro rozhodnutí,
zda daná množina features odpovídá danému objektu.
Výhodou Viola-Jones algoritmu je vysoká rychlost, detekce obličejů
i v šedotónových obrazech, možnost adaptace a nezávislost na velikosti objektu.
Nevýhodou je nutnost algoritmus natrénovat a citlivost vůči rotaci a afinnímu
zkreslení, které je u fotografií běžné.
Tento algoritmus je použit v implementaci mobilní aplikace, přičemž jako základ
byly využity knihovny OpenCV [3] a JViolaJones [2], které obsahují implementaci
tohoto algoritmu a rovněž natrénované modely ve formě XML souborů.
11
Obr. 2: Ukázka detekce obličejů s použitím Viola-Jones algoritmu a trénovacích dat OpenCV.
Obličej, který je pootočen, není správně detekován.
Rozpoznání obličejů
Cílem rozpoznání obličejů je porovnání oblastí vrácených detektorem obličejů
s databází známých obličejů. V implementaci byla fáze rozpoznání obličejů
přesunuta na server kvůli vysoké paměťové náročnosti při zpracovávání
rozsáhlejší databáze obličejů. Umístění na serveru rovněž umožňuje jednodušší
propojení se sociálními sítěmi.
Rozpoznávání na základě 2D informace
Pro 2D rozpoznání obličejů je možné využít podobné principy jako pro detekci.
Základem je extrakce features ze snímku obličeje, čímž dojde ke snížení výpočetní
složitosti problému a ke zvýšení SNR. Často aplikovanými metodami pro extrakci
features jsou Principal Component Analysis (PCA), Independent Component
Analysis či Linear Discriminant Analysis (LDA) [7]. Po extrakci těchto features je
vypočítána euklidovská vzdálenost mezi vzorovým snímkem a snímkem
s neznámým obličejem. Osoba na snímku je označena, pokud je nalezen takový
vzorový snímek, který má od vstupního snímku vzdálenost menší než stanovený
práh. Pokud je takových snímků více, je vybrán ten s nejmenší vzdáleností. Díky
těmto výpočetně jednoduchým krokům je možné provádět rychlé rozpoznání osob.
Nevýhodou těchto metod je závislost na intenzitě osvětlení, velikosti, rotaci
a afinních transformacích, takže jsou vhodné především na rozpoznání obličejů
orientovaných přímo do kamery.
Rozpoznávání na základě 3D informace
Další třídou algoritmů, které lze využít pro rozpoznání obličeje, je rozpoznávání
na základě 3D informace. Předpokladem je získání trojrozměrných grafických dat
a jejich následné převedení do vhodné zpracovatelné digitální podoby. Nejčastěji
se pro tento účel využívá tzv. normálová mapa. Jedná se o barevný obrázek,
kde jednotlivé složky RGB modelu reprezentují ve dvojdimenzionálním (dále jen 2D,
3D) obraze odpovídající obraz ve 3D. Zjednodušeně řečeno se jedná o 2D reprezentaci
povrchu tváře ve 3D. Jednotlivé barevné pixely RGB modelu pak představují
odpovídající normály.
Samotný převod obrazu obličeje na normálovou mapu probíhá v několika krocích.
Nejprve je nutné z originálního obrazu tváře získat pomocí aproximace její přibližný
12
tvar. V tomto kroku je s využitím normál vytvořena rekonstrukce obličeje pomocí
polygonů a vznikne síť reprezentující tvar obličeje ve 3D (viz Obr. 3b.). Následně je
vytvořena sférická projekce (promítnutí) 3D sítě na 2D plátno (Obr. 3c.). Posledním
krokem je převedení normál ze získané sítě (Obr. 3d.) na dvourozměrné pole,
kde každý obrazový bod představuje normálu pomocí hodnoty barevného spektra
RGB [5].
Obr. 3: Princip převodu grafických dat na normálovou mapu
(a) 3D model, (b) aproximovaná síť, (c) 2D projekce sítě, (d) normálová mapa
Hlavním důvodem procesu převodu na normálovou mapu je snadnější manipulace
s daty v této podobě. Při použití této reprezentace grafických dat lze provádět celá
řada akcí, jako jsou rozpoznání výrazu obličeje nebo vzájemné porovnávání dvou
obličejů.
Porovnání grafických dat obličejů
Ve chvíli, kdy jsou grafická data převedena do podoby normálové mapy, lze přejít
k samotnému procesu porovnávání obličejů. Ve výše uvedeném postupu jsou
grafická data převedena pomocí RGB modelu na normálovou mapu. Tato
reprezentace je vhodná pro porovnání dvou obličejů a následnému určení jejich
shody. Podle [2] se pro porovnání normálové mapy NA a NB použije následující
rovnice, kde jsou obsaženy jednotlivé normály zastoupeny složkami RGB modelu.
ar cos(rN A rN B
g N A g NB
bN A bN B )
Kde ϴ je úhlová vzdálenost mezi obrazovými body (xNA, yNA) a (xNB, yNB)
normálové mapy NA a NB. Následně je vytvořena diferenční mapa, kde jsou
jednotlivé rozdíly zaznamenány pomocí stupnice šedivé barvy. Pomocí této mapy
diferencí lze sestavit histogram (obr. č. 2), z kterého je patrné jako velká je
vzájemná podobnost obou tváří.
Obr. 4: Histogram diferencí, zdroj [8]
13
Obr. 4 zobrazuje dva histogramy, které zachycují úhlové vzdálenosti. V prvním
případě (a) byla rozdílnost obou porovnávaných tváři velmi malá (shodné tváře,
podobná normálová mapa). V druhém případě (b) jsou normálové mapy odlišné
(odlišné obličeje) [8].
3. Návrh demonstrační aplikace
Navrhovaná aplikace funguje na mobilním zařízení a k identifikaci obličejů využívá
služby pro on-line rozpoznávání obličejů Face.com. Jako softwarová platforma byl
zvolen operační systém Google Android.
Pro implementaci byl vybrán algoritmus detekce obličejů Viola-Jones především
kvůli vysoké rychlosti a existující implementaci v podobě OpenCV [3] a JViolaJones
[2]. V aplikaci jsou pro porovnání použity obě implementace, přičemž z rychlosti
zpracování je zřejmá výhoda nativního kódu v podobě OpenCV.
Protože je z paměťových a výpočetních důvodů nevhodné udržovat na mobilním
zařízení kompletní databázi známých obličejů pro rozpoznání, byla část pro
rozpoznání obličejů přesunuta na server. Na server jsou odesílány pouze výřezy
s detekovanými obličeji, aby byl minimalizován datový přenos.
3.1. Způsob použití aplikace
Základním účelem demonstrační aplikace (z uživatelského úhlu pohledu) je využití
možnosti mobilního zařízení pracovat s fotografiemi a následně využití dat
umístěných na sociální síti. Uživatel bude pak během krátkého okamžiku schopen
zjistit informace o vyfotografované osobě. Mezi základní dostupné funkce ze strany
uživatele patří:
identifikace obličeje s využitím vestavěného fotoaparátu vlastního zařízení,
identifikace obličeje s využitím fotografie uložené v galerii.
4. Závěr
Mezi základní požadavky na rozpoznání obličejů na mobilních zařízeních patří
výpočetní nenáročnost a rychlost zpracování. V příspěvku bylo prozkoumáno
několik způsobů rozpoznání obličeje.
Přístup, který využívá snímání 3D obrazu celého obličeje a porovnává rozdíly
normálových vektorů dvou obličejů, je velmi přesný, není však vhodný pro mobilní
zařízení. Důvodem je vysoká výpočetní náročnost a absence 3D informace v datech
z vestavěné kamery.
V demonstrační aplikaci byl využit postup rozpoznání založený na detekci obličejů
na zařízení a následné rozpoznání těchto obličejů na serveru. Metoda detekce
obličejů je založena na algoritmu Viola-Jones, který pomocí adaptivního přístupu
redukuje dimenzionalitu úlohy. V kombinaci s implementací v nativním kódu je
tento postup dostatečně výkonný i pro mobilní zařízení, přičemž úspěšnost
detekce dosahuje 50–80 % v závislosti na světelných podmínkách a vzdálenosti
obličejů od kamery.
14
Literatura
[1] ALBIOL, A., TORRES, L. & DELP, E.J. Optimum Color Spaces for Skin Detection. ,
2001.
[2] ANON. Jviolajones - Java face detection - Google Project Hosting [online]. [Cit.
18. 4. 2011]. Dostupné z WWW: <http://code.google.com/p/jviolajones/>.
[3]
ANON. OpenCV Homepage [online]. [Cit. 18.4.2011]. Dostupné z WWW:
<http://opencv.willowgarage.com/wiki/>.
[4]
CROW, F.C. Summed-area tables for texture mapping. ACM SIGGRAPH
Computer Graphics, 1984, vol. 18, s 207–212.
[5]
DELAC, K. & GRGIC, M. Face Recognition. InTech 2007, ISBN 9783902613035.
[6]
FREUND, Y. & SCHAPIRE, R.E. A Decision-Theoretic Generalization of on-Line
Learning and an Application to Boosting. 1995.
[7]
GRGIC, M. & DELAC, K. Face Recognition Homepage [online]. [Cit. 18. 4. 2011].
Dostupné z WWW: <http://www.face-rec.org/>.
[8]
Oliveira. Skin Detection Using HSV Color Space [online]. [Cit. 18. 4. 2011].
Dostupné z WWW:
<www.matmidia.mat.puc-rio.br/sibgrapi2009/media/posters/59928.pdf>.
[9]
VIOLA, P. & JONES, M. Robust Real-time Object Detection. INTERNATIONAL
JOURNAL OF COMPUTER VISION, 2001.
[10] ZHAO, W., CHELLAPPA, R., PHILLIPS, P.J. & ROSENFELD, A. Face recognition:
A literature survey. ACM Computing Surveys (CSUR), 2003, vol. 35, s 399–458.
Lukáš Beran
Univerzita Hradec Králové, Fakulta informatiky a managementu
Rokitanského 62, 500 03 Hradec Králové, Česká republika
e-mail: [email protected]
Karel Petránek
Univerzita Hradec Králové, Fakulta informatiky a managementu
Rokitanského 62, 500 03 Hradec Králové, Česká republika
e-mail: [email protected]
15
PROBLEMATIKA PROTOKOLU IPV6
ISSUES IPV6
Josef Horálek, Martin Hátaš, Tomáš Cink
Abstrakt
Příspěvek představuje problematiku protokolu IPv6. Nejprve představuje základní
principy fungování tohoto protokolu. Vysvětluje základní principy adresování IPv6,
přidělování adres a problematiku DNS záznamů pro IPv6. V další části pak seznamuje s nejrozšířenějšími problémy a jejich možným řešením při přechodu od IP4
k IPv6. Na závěr jsou pak uvedeny aktuální data ohledně využívání protokolu IPv6.
Klíčová slova
IPv4, IPv6, tunelování, adresování, datagram
Abstract
The paper presents the issue of IPv6. At first it presents the basic principles of this
protocol. It explains the basic principles of IPv6 addressing, address allocation and
the issue of DNS records for IPv6. Next section introduces the most widespread
problems and possible solutions in the transition from IP4 to IPv6. In conclusion there
are presented current data of use of IPv6.
Keywords
IPv4, IPv6, tunnelling, addressing, datagram
1. Úvod
Internet Protocol verze 6 (IPv6) se má v nejbližší době stát následníkem protokolu
současného Internetu, kterým je Internet Protocol verze 4 (IPv4). Ve starší
literatuře bývá označován též jako IP Next Generation (IPng). Tento článek
představuje základní strukturu protokolu IPv6, systém adresace a možnosti
přidělování adres. Dále představuje problematiku DNS záznamů pro protokol IPv6
a na závěr pak předkládá několik vybraných problémů, které doprovází přechod
adresace od IPv4 k IPv6. Na tyto problémy nejen poukazuje, ale také představuje
možnosti jejich řešení. V samotném závěru jsou uvedena nejaktuálnější data
týkající využívání IPv6 adresace.
16
2. Vlastnosti a vývoj
Jeho kořeny sahají do začátků devadesátých let, kdy začalo být zřejmé, že se
adresní prostor dostupný v rámci IPv4 rychle tenčí. Rozsah adres IPv4 je omezen
velikostí jejich adresy. Tehdy vypracované studie ukazovaly, že s perspektivou
přibližně deseti let dojde k jeho úplnému vyčerpání. Jelikož na řešení problému
bylo k dispozici poměrně dost času, rozhodlo se IETF (Internet Engineering Task
Force) navrhnout významné změny, která by kromě rozšířeného adresního
prostoru přinesly i další nové vlastnosti.
Na počátku IPv6 stály tedy následující požadavky:
rozsáhlý adresní prostor, který vystačí pokud možno navždy,
tři druhy adres: individuální (unicast), skupinové (multicast) a výběrové,
(anycast),
jednotné adresní schéma pro Internet i vnitřní sítě,
hierarchické směrování v souladu s hierarchickou adresací,
zvýšení bezpečnosti (zahrnout do IPv6 mechanismy pro šifrování,
autentizaci a sledování cesty k odesilateli),
podpora pro služby se zajištěnou kvalitou,
optimalizace pro vysokorychlostní směrování,
automatická konfigurace (pokud možno plug and play),
podpora mobility (přenosné počítače apod.),
hladký a plynulý přechod z IPv4 na IPv6.
Jak je vidět, cíle nebyly vůbec skromné. Chopili se jich především Steven Deering
a Robert Hinden, kteří mají největší podíl na vzniku nového protokolu. Jejich snaha
tak vyústila koncem roku 1995 ve vydání sady RFC definujících IPv6. Jedná se
o RFC 1883: Internet Protocol, Version 6 (IPv6) Specification [1] a jeho příbuzné.
3. Jak IPv6 funguje
Základním kamenem IPv6 je dokument RFC 2460: Internet Protocol, Version 6
(IPv6) Specification [2, 3], který obsahuje především formát datagramu. Tedy toho,
co na síťové vrstvě modelu TCP/IP zajišťuje přenos paketů po síti, aby dorazili od
zdroje do požadovaného cíle. Ostatním mechanismům a datovým formátům, které
souvisejí s IPv6, jsou věnovány další RFC specifikace, který je velké množství.
Datagram
Paket IPv6 má stejný formát jako paket IPv4. To znamená, že obsahuje hlavičku,
za kterou následují nesená data. V protokolu IPv6 má hlavička konstantní velikost
40 B. Obsahuje pouze základní údaje a veškerá nepovinná a doplňková data se pak
zapisují do dalších hlaviček (next header).
17
8 bitů
8 bitů
8 bitů
8 bitů
Verze Třída provozu
Identifikace toku dat
Délka dat
Další hlavička Max. skoků
Adresa odesílatele
Adresa příjemce
Obr. 1: Hlavička datagramu IPv6
Popis jednotlivých položek hlavičky datagramu IPv6:
Verze (Version) – obsahuje informaci, zda se jedná o paket IPv4, nebo IPv6.
Třída provozu (Trafic class) – určuje prioritu datagramu, nebo jeho zařazení do
určité přepravní skupiny. Díky této položce může být paket odbaven
přednostně, nebo může být pozdržen – implementace služeb se zaručenou
kvalitou (QoS).
Identifikace toku dat (Flow label) – umožňuje paket identifikovat jako součást
určitého toku mezi odesílatelem a příjemcem. Díky tomu se výrazně zrychlí tok
dat, protože router řeší směrování pouze u prvního paketu toku a další odesílá
podle něj. Tato položka je podle RFC 2460: Internet Protocol, Version 6 (IPv6)
Specification stále ve fázi experimentu.
Délka dat (Payload length) – Určuje počet bajtů datagramu bez úvodní hlavičky.
Protože tato položka má 2 B, může být největší délka IPv6 datagramu 64 kB.
Další hlavička (Next header) – Protože hlavička IPv6 byla oproti IPv4 značně
redukována, mnoho údajů se přesunulo do zřetězených hlaviček. Tato položka
určuje typ další hlavičky, nebo následujících dat.
Maximální počet skoků (Hop limit) – jedná se o ekvivalent položky TTL
v hlavičce IPv4. Každý datagram může absolvovat omezený počet průchodů
routerem (jeden průchod je jeden hop). Při každém hopu je toto číslo
dekrementováno. Pokud se bude rovnat nule, tak paket bude zahozen. Slouží
jako ochrana před zacyklením směrování a nekonečným oběhem paketů po síti.
Adresy (Source address, Destination address) – zabírají 80 % datového objemu
hlavičky a jsou uváděny v hexadecimální soustavě.
Další hlavičky
Při popisu hlavičky diagramu IPv6, jsme zmínili, že obsahuje položku nazývanou
další hlavičky. Nyní si krátce popíšeme, o co se jedná.
Protokol IPv6 přináší oproti IPv4 možnost zřetězení hlaviček. Každá hlavička je
však samostatná. Pokud paket obsahuje více hlaviček, jsou spojeny právě přes pole
Další hlavička. Tímto způsobem je možné zřetězit za sebou tolik hlaviček, kolik
považujeme za nutné. Poslední z hlaviček obsahuje v tomto poli typ dat, které daný
18
datagram nese. V následujícím jsou uvedeny nejčastější hodnoty, které je možné
nalézt v položce Další hlavička.
Rozšiřující hlavičky
0
volby pro všechny
43
směrování
44
fragmentace
50
šifrování obsahu
51
autentizace
59
poslední hlavička
60
volby pro cíl
135 mobilita
Typ nesených dat
6
TCP
8
EGP
9
IGP
17
UDP
46
RSVP
47
GRE
58
ICMP
Tab. 1: Nejdůležitější položky dalších hlaviček [8]
Pořadí jednotlivých hlaviček teoreticky může být libovolné, ale je vývojáři
protokolu IPv6 doporučují držet se pořadí popsaného v dokumentu RFC 2460:
Internet Protocol, Version 6 (IPv6) Specification [2], které je následující:
základní hlavička IPv6,
volby pro všechny (hop-by-hop options),
volby pro cíl (destination options),
směrování (routing),
fragmentace (fragment),
autentizace (authentication),
šifrování obsahu (encapsulating security payload),
volby pro cíl (destination options),
mobilita (mobility).
Každá z výše uvedených hlaviček se může vyskytnout maximálně jednou, s jedinou
výjimkou, a to hlavičky Volby pro cíl. Ta se může vyskytnout nejvýše dvakrát.
Jednou před hlavičkou Směrování a podruhé před samotnými daty. Průchozí router
čerpá informace jen hlavičky Volby pro všechny, která se vždy nachází za základní
hlavičkou IPv6. Pokud tedy router v základní hlavičce v poli Další hlavička vidí
jinou hodnotu než 0, může skončit s analýzou datagramu, protože všechny ostatní
hlavičky jsou určené pro adresáta paketu.
4. Adresy v IPv6
Nyní je načase představit, jak vlastně vypadají. Adresy jsou stejně jako
u předchůdců IPv6 přidělovány jednotlivým síťovým rozhraním, nikoliv
jednotlivým uzlům [3].
Individuální (unicast) – jednoznačná adresa jednoho síťového rozhraní.
Skupinové (multicast) – adresa skupiny uzlů a paket je doručen všem.
Výběrové (anycast) – adresa skupiny uzlů, ale paket se doručí jenom jednomu
ze skupiny – obvykle tomu nejbližšímu.
19
Oproti IPv4 nejsou definovány oznamovací (broadcast) adresy. Tyto jsou
nahrazeny skupinovými adresami. Jak již bylo řečeno adresa IPv6 se zapisuje
pomocí 32 hexadecimálních čísel rozdělených do osmi čtveřic, které jsou navzájem
odděleny dvojtečkou hhhh: hhhh: hhhh: hhhh: hhhh: hhhh: hhhh: hhhh. Protože
IPv6 se skládá ze 128 binárních číslic, je počet jedinečných kombinací roven číslo
2128. Pro lepší představu o mohutnosti adresného prostoru je možné říci, že na
každý milimetr čtvereční zemského povrchu (jedno zda suchozemského, či
mořského) připadá 667 × 1015 (miliónů miliard) adres [4, 5].
Jelikož zápis takto velké adresy je a bude mírně nepřehledný, je možno použít
několik zjednodušených forem zápisu. Ty nejpoužívanější si nyní ukážeme.
Plné vyjádření IP adresy
Příkladem může být adresa A38C:0000:0000:0000:00B6:0000:0000:03F8.
Počáteční nuly v každé čtveřici se nemusejí uvádět, proto lze výše uvedenou
adresu také přepsat takto: A38C:0:0:0:B6:0:0:3F8.
Zkrácený zápis pomocí zdvojené dvojtečky
Zdvojená dvojtečka může v zápisu nahradit libovolné množství čtveřic nul, avšak
se může v zápisu objevit jenom jednou. Důvodem je, že při vícerém použití by
nebylo jasné, kolik čtveřic nul kde nahrazuje. Proto naši vzorovou adresu je možné
zkráceně zapsat jako A38C::B6:0:0:3F8, nebo také jako A38C:0:0:0:B6::3F8. Není
však množné ji zkrátit tímto způsobem A38C::B6::3F8.
Zápis prefixu
Všechny zařízení ve stejné síti, resp. podsíti musí mít stejný začátek svojí IP adresy
(tzv. prefix) někdy nazývané jako maska. Délka prefixu může být různá. Tento
princip vychází z mechanismu CIDR (Classless Inter-Domain Routing) a obdobný je
i způsob zápisu adresy s prefixem, který je následující:
A38C:92E4:F52A:0000:00B6:0000:0000:03F8/40.
Z takto zapsané adresy se nejen, že dá poznat unikátní adresa síťového rozhraní,
ale i prefix sítě, který má v tomto případě 40 bitů. Jenom tento prefix lze například
zapsat takto: A38C:92E4:F500::/40.
V tomto případě je nutné zdůraznit, že do prefixu již nepatří poslední dvě nuly ze
skupiny F500. Při délce 40 bitů do prefixu patří jenom první dvě číslice z této skupiny. Ovšem poslední dvě nuly je nutné do prefixu uvést, protože kdyby se uvedl
pouze tvar A38C:92E4:F5/40, znamenalo by to, že tato skupina by ve skutečnosti
vypadala A38C:92E4:00F5/40, čím bychom vyjádřili naprosto jiný prefix.
Rozdělení adres
Podobně jako IPv4, tak i IPv6 implementuje různé typy adres pro různé účely.
Jednotlivé typy pod sebe zastřešují adresy se stejnými vlastnostmi a každý má jiný
prefix. Specifický význam mají adresy ::0 a ::1. První značí, že zařízení nemá
přidělenou žádnou IPv6 adresu a druhá je adresa pro loopback – obdoba IPv4
adresy 127.0.0.1. Stručný přehled IPv6 adres je uveden v následujícím seznamu.
20
::/128
Nedefinovaná adresa
::1/128
Loopback
FC00::/7
Unikátní individuální lokální adresa
FE08::/10 Individuální lokální linkové adresy
FF00::/8
Skupinové (multicast) adresy
ostatní
Individuální globální
5. Automatické přidělování adres
Významnou změnou protokolu IPv6 je, že může být adresa automaticky přidělena
a to dvěma způsoby:
Stavová konfigurace – funguje na stejném principu jako DHCP v IPv4.
Bezstavová konfigurace – pomocí zpráv zvaných ohlášení routeru.
Stavová konfigurace
Základem je DHCP z IPv4. Identifikace ale již neprobíhá pomocí MAC adresy, ale za
použití DHCP Unique Identifier (DUID). Každý uzel má přiřazené tři DUID:
Vytvořen výrobcem (sériové číslo).
Kombinace linkové adresy a času vytvoření.
Samotná linková adresa.
Uzel, který chce přidělit adresu, rozešle na implicitní adresu všech serverů
(FF02::1:2) výzvu (solicit). Server na ni zareaguje ohlášením serveru (advertise).
Na základě odpovědí na výzvu, které uzel obdržel, si sestaví seznam dostupných
DHCP serverů. Z nich si jeden zvolí a znovu na adresu FF02::1:2 odešle oznámení s
DUID serveru, který si zvolil. Vybraný server klientovi pošle navrženou adresu
(reply). Adresy jsou přidělovány na určitý časový horizont. Po jeho uplynutí musí
uzel požádat o prodloužení platnosti adresy (renew). Pokud vybraný DHCP server
neodpovídá, může se uzel obrátit na jiný (rebind) [5, 8].
Bezstavová konfigurace
Tato konfigurace je postavena na údajích posílaných routery v rámci zpráv
zvaných ohlášení routerů. Tyto zprávy jsou posílány do všech sítí připojených
k routeru v náhodných časových intervalech.
Uzel, který chce požádat o přidělení adresy, si nejprve vygeneruje lokální linkovou
adresu a ověří její unikátnost pomocí objevování sousedů [6]. Pak počká na
ohlášení routeru, ze kterého získá prefix místní sítě. Ten připojí před
vygenerovanou část svojí linkové adresy a získá tak unikátní adresu.
6. DNS (Domain Name System)
DNS slouží k překladu uživatelsky snadno zapamatovatelných názvů stránek (např.
www.uhk.cz) na číselné IP adresy, které si drtivá většina uživatelů nepamatuje. Pro
IPv6 se systém DNS stává naprostou nutností, protože IPv6 adresy jsou naprosto
nezapamatovatelné.
21
Největším problémem DNS systému je ukládání IPv6 informací. Tento problém řeší
RFC 3596: DNS Extensions to Support IP Version 6 [5]. Pro správnou funkci DNS
systému je nutné, aby servery podporovaly obě verze IP protokolu.
Dopředné dotazy
Jejich úkolem je přeložit symbolické jméno na příslušnou IP adresu. Principielně
vycházejí z DNS IPv4, které pro tento účel zavádějí tzv. záznamy A. Protože je délka
IPv6 adresy oproti adrese IPv4 čtyřnásobná, zavádějí se AAAA záznamy. Příkladem
budiž následující záznam:
nejake.jmeno.cz
AAAA 2001:6CC0:F:9802:A3E5:DA85:6BC4:11A7
Pokud bude mít počítač nejake.jmeno přiděleno více adres v dané síti, budou
všechny tyto adresy uvedeny v AAAA záznamech a záznam může vypadat
například takto:
nejake.jmeno.cz
AAAA 2001:6CC0:F:9802:A3E5:DA85:6BC4:11A7
AAAA 2001:34BE:666:9802:A3E5:DA85:6BC4:11A7
Zpětné dotazy
Tyto dotazy převádějí příslušnou IP adresu na symbolické jméno. Postup je takový,
že se vezme celá adresa (včetně všech nul), zrcadlově se obrátí a na konec se přidá
.ip6.arpa. Pro výše uvedenou adresu by zpětný dotaz vypadal následovně:
7.A.1.1.4.C.B.6.5.8.A.D.5.E.3.A.2.0.8.9.F.0.0.0.0.C.C.6.1.0.0.2.ip6.arpa
V tomto okamžiku je možné provést distribuovanou správu reverzních domén,
protože prefix adresy se díky zrcadlovému otočení dostal na konec. Pokud by
doména měla prefix 2001:6CC0:F::/48, tak by jí odpovídala reverzní doména
F.0.0.0.0.C.C.6.1.0.0.2.ip6.arpa.
Obsah záznamů DNS
Jak již bylo zmíněno, může mít jedno síťové rozhraní více adres. A právě zde
vyvstává dilema, které z nich zařadit do systému DNS.
Do systému DNS se zařazují globální individuální adresy a adresy přechodových
mechanismů. Naopak se nezařazují lokální linkové a náhodně generované
krátkodobé adresy.
7. Přechod od IPv4 k IPv6
Protože na IPv6 nelze přejít najednou, musí se obecně zajistit, aby obě verze
Internet Protokolu mohly fungovat vedle sebe a následně postupně přecházet k
IPv6. Systémy, které umožňují současné fungování obou verzí, můžeme rozdělit do
následujících skupin:
Dvojí zásobník – zařízení pracuje jak s IPv4, tak s IPv6. Může komunikovat
pomocí obou verzí Internet Protokolu.
Tunelování – paket IPv6 se zabalí jako data k paketu IPv4 a pošle se skrz IPv4 síť.
Překladače – překládají pakety z IPv4 do IPv6 a obráceně. Rozšíření brání
jejich nedořešená implementace.
22
Dvojí zásobník
Ač by se z názvu mohlo zdát, že zařízení pracuje s oddělenými zásobníky pro IPv4 a
IPv6, velice často tomu tak není a zařízení má pouze jeden zásobník, který dokáže
uchovat oba typy adres. Tato zařízení musí mít jak IPv4, tak IPv6 adresu. Proto se
jim také říká IPv4/IPv6 uzly. K získání obou adres se použijí standardní metody
(buď manuální konfigurace, nebo DHCP). Ke komunikaci mezi protokoly dochází
až na vyšší vrstvě TCP/IP modelu (většinou až na aplikační). Zásadní nevýhodou
těchto zařízení je nutnost mít i IPv4 adresu, což je trochu v rozporu s plánem
postupně přejít na adresy IPv6 [5].
Tunelování
Při tunelování se IPv6 pakety přenášejí jako data IPv4 paketů skrze IPv4 síť. Tunel
je obvykle tvořen dvěma krajními IPv4/IPv6 zařízeními a libovolným počtem IPv4
zařízeními mezi nimi. Obě krajní zařízení mají jak IPv4, tak IPv6 adresu. Pokud se
IPv6 paket musí přepravit tunelem, router jej zabalí jako data do IPv4 paketu,
který pošle na IPv4 adresu druhé strany tunelu. Skutečnost, že paket nese
tunelovaný IPv6 datagram, značí hodnota 41 v položce Protokol v hlavičce
obalujícího IPv4 datagramu [5, 8]. Když takový paket dorazí na konec tunelu,
router z něj vybalí IPv6 paket, se kterým naloží podle údajů v jeho hlavičce. Při
průchodu tunelem je IPv6 paket v roli nesených dat, takže zařízení po cestě k němu
nepřistupují. Proto je také průchod celým tunelem považován za jeden skok.
6to4
Hlavním cílem 6to4 bylo omezit nutnou konfiguraci na minimum. Je definováno
v RFC 3056: Connection of IPv6 Domains via IPv4 Clouds. Aby bylo možné tento
protokol využívat, musí mít síť nejméně jednu veřejnou IPv4 adresu. Ta je většinou
přidělena 6to4 routeru, který je připojen jak i IPv4 Internetu, tak k IPv6 síti.
Na základě IPv4 adresy se vytvoří 6to4 prefix. Ten má standardní délku 48 bitů.
Jeho prvních 16 bitů tvoří prefix 2002::/16 a zbylých 32 bitů je IPv4 adresa
převedená do hexadecimálního formátu. Pokud bude IPv4 adresa 77.236.208.70
bude 6to4 prefix mít hodnotu 2002:4DEC:D046::/48.
Pro chod 6to4 není potřeba nastavit žádné tunely. Jedinou podmínkou je pouze
router podporující 6to4. Pro umožnění komunikace musí mít router přiřazenou
také minimálně jednu IPv6 adresu.
6over4
Hlavním účelem 6over4 spojení jednotlivých počítačů podporujících IPv6, které se
nalézají v IPv4 síti. Byl definován v RFC 2529: Transmission of IPv6 over IPv4 Domains without Explicit Tunnels [5, 8]. Počítač, který chce použít 6over4 musí podporovat obě verze Internet Protokolu, protože svoje IPv6 pakety posílají tunelem
6over4 routeru, který je předává dále. Počítač využívající 6over4 může využívat
všechny běžné mechanismy IPv6 jako automatickou konfiguraci, objevování sousedů, apod. Pro funkčnost 6over4 musí IPv4 síť podporovat skupinově adresované
datagramy (IPv4 multicast), což je jedna z hlavních nevýhod 6over4.
23
Teredo
Většina tunelovacích mechanismů si nedokáže poradit s NAT. Proto byl vyvinut
mechanismus Teredo, jehož definice je v RFC 4380: Teredo: Tunneling IPv6 over
UDP through Network Address Translations (NATs). Teredo je možné použít
s trychtýřovým i omezeným NATem. Neporadí si ovšem se symetrickým NATem.
Pro přenos zpráv je využit protokol UDP, který je používán i v NAT.
Teredo adresa začíná Teredo prefixem 2001::/32, za kterým následuje IPv4 adresa
serveru, který adresu udělil. Tato část adresy pochází od serveru, zbytek si uzel
generuje sám. Prvních 16 bitů obsahuje příznaky, které mj. určují verzi NATu.
Dalších 16 bitů obsahuje číslo UDP portu a posledních 32 bitů je IPv4 adresa NATu.
Struktura adresy je popsána na obrázku 10.
16 bitů
2001
Příznaky
16 bitů
0000
UDP port
16 bitů
16 bitů
IPv4 adresa serveru
IPv4 adresa NATu
Obr. 2: Struktura adresy Teredo
Pokud chce počítač přidělit Teredo adresu, musí kontaktovat Teredo server. Tento
kontakt proběhne formou UDP paketu, který odešle routeru a ten ji přes IPv4
doručí na adresu Teredo serveru. Server klientovi odpoví formou ohlášení routeru,
ze kterého klient získá svoji Teredo adresu.
Komunikace dvou uzlů přes Teredo se děje přímo, bez jakéhokoliv prostředníka.
Pokud ale chce uzel s Teredo adresou komunikovat s jiným uzlem, který má IPv6
adresu, musí komunikovat přes překladač, jež překládá pakety z Teredo do IPv6 a
naopak [8].
8. IPv6 aktuálně
Jak již bylo výše zmíněno, k nové verzi protokolu nelze přejít najednou. Je však
nutné si uvědomit, že migrace k IPv6 již započala a stále probíhá. Je však obtížné
měřit aktuální stav, kvůli rozdělení zodpovědnosti za alokování IPv6 adresních
prostorů z globální organizace IANA na kontinentální registrátory a z nich pak dále
k lokálním poskytovatelům těchto služeb. Lokálních poskytovatelů je tolik, že je
prakticky nemožné získat od všech aktuální statistiky o přidělených adresách.
Současný stav je však možné vyjádřit pomocí následujících ukazatelů.
Počet autonomních systémů (AS), které podporují IPv6.
Počet /32 bloků, které kontinentální registrátor přidělil lokálním.
Počet AAAA jmenných záznamů pro IPv6.
Přechod autonomních systémů
Celkový počet autonomních systémů je 38082. Tyto systémy používají protokol
IPv4 nebo IPv6. Z tohoto počtu jich 33986 používá pouze protokol IPv4 a 99 pouze
protokol IPv6. Systému, které využívají obou protokolů je 3997. Čili AS, které IPv6
využívají je 4096, což je 10,75% z celkového počtu [7].
24
Bloky přidělené lokálním registrátorům
Kontinentální registrátor zpravidla přiděluje lokálním registrátorům a velkým
poskytovatelům internetových služeb bloky adres s délkou /32. Kontinentálních
registrátorů je 5 (RIPE NCC pro Evropu, ARIN pro Severní Ameriku, APNIC pro Asii,
LANIC pro Jižní Ameriku a AFRINIC pro Afriku). Podle počtu bloků přidělených
těmito společnostmi můžeme usuzovat rozšířenost IPv6 i v kontinentálním
měřítku. Následující graf zobrazuje absolutní počty /32 adresních bloků
přidělených jednotlivými kontinentálními registrátory [9,10].
RIPE NCC; 38 404
APNIC; 31 095
ARIN; 16 845
LACNIC; 909
AfriNIC; 249
Obr. 3: Počet /32 IPv6 prefixů alokovaných kontinentálními registrátory ke květnu 2011 [9]
Jmenné záznamy pro IPv6
Jak již bylo zmíněno, jmenné záznamy jsou udržovány jmennými servery DNS.
Systém serverů DNS je hierarchický a z hlediska podpory pro IPv6 jsou zajímavé
top level domain (TDL) servery, protože se nacházejí téměř na špici celé
hierarchie. K tomu, aby se dalo prohlásit, že daný server podporuje IPv6, musí
splňovat tato kritéria:
Mít vlastní IPv6 adresu a nativní konektivitu, tak aby byl skrz protokol IPv6
dostupný.
Musí mít vlastní AAAA záznam v kořenových (jemu nadřazených) DNS serverech.
Musí být schopen vrátit žadateli AAAA záznam.
Domén prvního řádu (.cz, .com, …) je 310. 260 z nich má IPv6 jmenné servery, což
je 83,9 %. [4]
V současné době je registrovaných 1594439 IPv6 domén. V tabulce níže jsou
uvedeny počty registrovaných AAAA záznamů Ipv6 nejmohutnějších domén
prvního řádu.
25
Top level domain
.com
.net
.info
.org
.cz
Počet AAAA záznamů
1148366
147203
94739
88535
62931
Tab. 2: Počet AAAA záznamů [4,7]
Všimněte si, že Česká republika se do top 5 vešla jako jediná národní doména [4,7].
Všechny ostatní v této tabulce jsou generické. Další nejmohutnější národní doména
je .us s 32755 záznamy.
Literatura
[1] DEERING , S. E. Deering ; HINDEN, R. M. Hinden. Internet Protocol, Version 6
(IPv6) Specification [online]. 1995 [cit. 2011-06-04]. RFC 1883.
Dostupné z WWW: <http://www.faqs.org/rfcs/rfc1883.html>.
[2] DEERING , S. E. Deering ; HINDEN, R. M. Hinden. Internet Protocol, Version 6
(IPv6) [online]. 1998 [cit. 2011-06-04]. RFC 2460. Dostupné z WWW:
<http://tools.ietf.org/html/rfc2460>.
[3] DEERING, S., HINDEN, R., NORDMARK, E. RFC 3587 - IPv6 Global Unicast
Address Format [online]. August 2003 [cit. 2011-06-04].]. Dostupný z WWW:
<http://www.rfc-archive.org/getrfc.php?rfc=3587>.
[4]
[5]
[6]
[7]
[8]
[9]
Hurricane Electric IPv6 [online]. 2011 [cit. 2011-06-05]. Dostupné z WWW:
<http://ipv6.he.net/>.
MÍČA, O. Internet Protokol verze 6. DFJP, UPCE, vedoucí práce: J. Horálek,
2010. 59 s. Bakalářská práce. Univerzita Pardubice, Dopravní fakulta Jana
Pernera.
NARTEN, T., et al. RFC 4861 - Neighbor Discovery for IP version 6 (IPv6)
[online]. September 2007 [cit. 2009-05-12]. Dostupný z WWW:
<http://www.rfc-archive.org/getrfc.php?rfc=4861>.
NIC.CZ : Správce domény CZ [online]. 2011 [cit. 2011-06-05]. IPv6 statistiky.
Dostupné z WWW: <https://labs.nic.cz/ipv6-statistics/>.
SATRAPA, P. Internetový protokol IPv6. Praha : Cesnet, 2008. 359 s.
Dostupné z WWW: <http://www.root.cz/knihy/internetovy-protokolipv6/>.
ISBN 978-80-904248-0-7.
The Internet Assigned Numbers Authority [online]. 2008-08-27 [cit. 2011-0605]. IPv6 Global Unicast Address Assignments. Dostupné z WWW:
<http://www.iana.org/assignments/ipv6-unicast-addressassignments/ipv6-unicast-address-assignments.xml>.
[10] The Number Resource Organization [online]. 2011 [cit. 2011-06-05].
Dostupné z WWW: <http://www.nro.net/>.
26
Mgr. Josef Horálek
Univerzita Hradec Králové, Fakulta informatiky a managementu
Rokitanského 62, 500 03 Hradec Králové, Česká republika
e-mail: [email protected]
Bc. MartinHátaš
Univerzita Hradec Králové, Fakulta informatiky a managementu
Rokitanského 62, 500 03 Hradec Králové, Česká republika
e-mail: [email protected]
Bc. Tomáš Cink
Univerzita Hradec Králové, Fakulta informatiky a managementu
Rokitanského 62, 500 03 Hradec Králové, Česká republika
e-mail: [email protected]
27
TÝMOVÁ KOMUNIKACE A ZÁZNAMNÍK POZNÁMEK Z TERÉNU
TEAM COMMUNICATION AND NOTES RECORDING
Bc. Kinc Lukáš, Bc. Neuman Jiří
Abstrakt
Tato práce pojednává o problematice týmové komunikace, rychlém záznamu
informací a sdílení dokumentů. Identifikuje typické problémy a potřeby členů týmu
pracujících v různorodých podmínkách, kde může být omezený pracovní prostor či
čas. Na tyto problémy se pokouší nalézt dostatečně vhodné řešení. Řešení, které by
značnou měrou přispělo k vyšší efektivitě, produktivitě a komfortu při každodenní
práci v terénu i mimo něj. Toto řešení se snaží aplikovat vývojem informačního
systému, který je v této práci navrhnut a následně také implementován. Systém
využívá moderních, ale zároveň široce rozšířených, technologií a možnosti svého
využití zvyšuje volnou dostupností zdrojových kódů a podporou implementace
uživatelských rozšíření.
Klíčová slova
Týmová komunikace, správa dokumentů, mobilní aplikace, vývoj software,
informační systémy.
Abstract
This work deals with the topic of team communication, instant notes recording and
document sharing. It identifies typical problems and needs of team members working
under varied conditions where workspace and time can be very limited. It attempts to
find a solution good enough to eliminate these problems. The work proposes a
solution which highly increases productivity, efficiency and comfort of a worker both
outdoors and indoors. This solution is applied in development of a new information
system which is designed and implemented as a part of this work. The information
system is built upon modern and widely spread technologies. Usability of this system
is increased by a free availability of its source codes and support for user interface
implementation.
Keywords
Team communication, document management, mobile application, software
development, information systems.
28
Úvod
V dnešní době je závislost na informačních systémech zřejmá a stále více je nutné
řešit otázku mobility. Přístup k informačnímu systému přímo z terénu velkou
měrou zefektivňuje práci uživatelů. Pro některé profese či zájmové skupiny je
práce v terénu jejich hlavní činností a v terénu tráví většinu svého času. Pro tyto
uživatele je velmi důležité, aby mohli k systému přistupovat bez těžkého
notebooku, jehož start vyžaduje určitý čas. Tyto problémy zejména nastávají tam,
kde je nutný pohyb z místa na místo v krátkém čase, jako je kupříkladu značení
tras či vyměřování pozemkových ploch, anebo tam, kde jsou podmínky pro práci
nějakým způsobem omezeny, například při výstupu na horskou plošinu. Pro tyto
situace je nutné sáhnout ještě po menších zařízeních, jako jsou PDA nebo dnešní
mobilní telefony, částečně uzpůsobené pro office-like aplikace. S těmi je možné
relativně pohodlně zpracovávat i některé lehce složitější úlohy, jako je vyplnění
formulářů, komunikace v kratších zprávách anebo ukládání rychlých poznámek
nebo souborů, přístrojem pořízených.
Některé z výše zmíněných situací pomáhá řešit náš malý informační systém
AirBird Colibri. Ten nabízí prostředí pro týmovou komunikaci, záznamník
poznámek včetně poznámek v multimediální podobě, správce dokumentů
pořízených v terénu i jinde. Veškeré tyto funkce systém zpřístupňuje přes webové
rozhraní a rozhraní mobilního klienta. Tento systém je určen právě pro osoby,
které si potřebují zaznamenávat důležité poznámky, informace či myšlenky při
pohybu v terénu nebo časové tísni a potřebují data zaznamenat co nejrychleji bez
čekání.
Problém týmové komunikace
Týmová komunikace je důležitou součástí práce v kolektivu spolupracovníků.
Každý pracovní tým se potýká s problémem zvládnutí efektivní komunikace,
vhodnou dostupností společných dokumentů nebo například s omezenými zdroji,
ze kterých musí načerpat maximum pro svou práci.
Jedním z druhů komunikace mohou být i porady v reálném čase, na což
mohou být lepší hlasové konferenční aplikace, než diskuze psanou formou. Dalším
druhem je naopak stálejší diskuze, která se může týkat například vývoje aktuálních
problémů, popřípadě diskuze, která nemusí být řešena v reálném čase anebo u
které je vhodné persistentní uložení s rychlou možností vyhledávání.
Při práci mají spolupracovníci často potřebu sdílet společné dokumenty a to
ať již společně vytvářené, tak výsledky práce jednotlivých členů skupiny. Jako
příklad si lze snadno představit různé odborné články, postupy a manuály,
směrnice, zákony, reporty, zvukové či obrazové záznamy a další. Řešením pak bývá
nějaký společný prostor dostupný po síti anebo přes informační systém, kam mají
spolupracovníci přístup. Při práci více lidí na jednom souboru nebo na
souvisejících datech je vhodné řešit i logování úprav se záznamem kdo kterou věc
v jaký čas upravil a v nejlepším případě umožnit i verzování dat, kdy každá uložená
úprava vytvoří další verzi souborů a je možné se vracet i ke starším verzím. Tuto
29
funkčnost uživatelé ocení především ve chvíli, kdy byla například uložena nějaká
nežádaná změna.
Systém AirBird Colibri se zaměřuje na podporu stálé a persistentní
komunikace v týmu a poskytuje uživatelům službu podobnou klasickým diskusním
fórům. Funkčnosti a parametry, které mohou uživatelé systému ocenit, zahrnují
možnost vytvoření a udržování více diskusních vláken s různými tématy. Založené
téma není již obvykle potřeba dále větvit. Takové větvení má za následek typicky
sníženou přehlednost, a to především na mobilních zařízeních, které mívají menší
zobrazovací plochu. V rámci komentářů v tématech diskuze je možné ukládat i
přílohy, což mohou mít například fotografie anebo pracovní dokumenty
v elektronické podobě. Tyto dokumenty jsou spravovány systémem pro správu
dokumentů a je tak možné jejich verzování a snadné stažení.
Problém zaznamenávání poznámek v terénu
Často se stává, že pracovníci v terénu si potřebují zaznamenat nějaké poznámky či
například fotografie při své práci. Někdy se jedná například o akutní situaci nebo
myšlenku, která nesmí být zapomenuta a je nutné ji rychle zaznamenat. Médium,
na které může být taková důležitá informace zaznamenána, zahrnuje prostý papír,
diktafon, ale především i elektronické zařízení, které má dnes každý u sebe. Je jím
mobilní telefon.
Naše aplikace je schopna poskytnout právě efektivní, přehledné a pohotové
rozhraní pro záznam informací s využitím elektroniky. Umožňuje rychlou
poznámku s instantním uložením na serveru. Tím se stává ihned dostupnou
odkudkoliv. Ve chvíli, kdy se autor vrátí domů, ke svému počítači, může ji dále
zpracovávat na výkonnějším systému s větší zobrazovací plochou.
Rychlé poznámky mohou být využity i opačně. Pokud si uživatel cokoli
poznamená do svých poznámek z pohodlí domova, v terénu se potom stačí připojit
na stejný server, ovšem za pomoci mobilního klienta, a k daným poznámkám se
dostat během několika sekund.
Problém omezených zdrojů
Valná většina pracovních týmů se musí při pořizování softwarových řešení řídit
především omezeným rozpočtem. Obzvláště to platí pro různé zájmové skupiny,
neziskové organizace nebo vzdělávací instituce. Při řešení unikátních problémů
může nastat problém, kdy nelze v rámci daného rozpočtu pořídit nový systém šitý
na míru potřebám organizace. Pak může být vhodné zvolit univerzálnější, již
dostupné, řešení. Při výběru jsou důležitými kritérii podpora požadovaných funkcí,
cena, hardwarové nároky, licenční podmínky a cena na pořízení podpůrného
software (OS, databáze,…). Problémy s nevhodně zvoleným systémem se mohou
projevit až po nějaké době provozu. Například pokud se organizace rozhodne
přejít na nová hardwarová zařízení, naroste počet klientů a výkon se stane
nedostatečným nebo poskytované funkce přestanou být dostatečné a je potřeba je
rozšířit o nové. Částečným řešením těchto situací může být predikce budoucího
30
vývoje situace v týmu anebo snaha o nezávislost, tedy pořízení produktů, které je
možné provozovat téměř za všech podmínek.
Systém Airbird Colibri je vyvíjen jako open source projekt, což umožní
komukoli nahlížet do kódu a upravovat jej podle svých potřeb. Systém je zároveň
díky tomu nabízen zcela zdarma k nekomerčním i komerčním účelům. Je tedy
možné ho bez problémů vyzkoušet a v případě osvědčení jej bez problémů nasadit
do provozu. Serverový systém je schopen komunikovat s různými klientskými
aplikacemi za pomoci webových služeb, což z něj dělá nezávislým vůči technologii
zpracování klientských aplikací. Základním klientem je aplikace vyvíjená nad
platformou Java ME. Díky široké rozšířenosti běhového prostředí Javy na mobilní
zařízení, by měla tato klientská aplikace bez problémů běžet na všech moderních
zařízeních.
Informační systém AirBird Colibri
Cílem informačního systému AirBird Colibri je zavézt jednoduchý centralizovaný
komunikační kanál pro spolupráci v týmu. Hlavním přínosem systému je umožnění
komunikace všech členů týmu (projektového, vědeckého, zájmové skupiny atd.),
která je centralizovaná, jednoduchá, efektivní a dostupná i v terénu. Aby bylo
možné dostát potřebné úrovně bezpečnosti, poskytuje systém rozhraní pro správu
uživatelů. Funkce pro správu uživatelů jsou dostupné přes webové rozhraní a jsou
přístupné pouze uživatelům s patřičnými právy. Systém slouží také jako
centralizované úložiště relevantních dokumentů.
Základní mobilní klientská aplikace je dostupná pro platformu Java ME. Její
výhodou je dostupnost na většině moderních mobilních zařízení bez potřeby
instalace dodatečných aplikací. Výhodou je také její nezávislost na konkrétní
mobilní platformě z hlediska hardware, i z hlediska operačního systému.
Předpoklady pro správné fungování aplikace jsou dány pouze jejím charakterem a
jsou uvedeny v požadavcích na systém.
Díky dostupné integrační vrstvě serverové aplikace AirBird Colibri je možné
vytvořit novou aplikaci, která bude se systémem spolupracovat a bude využívat
jeho hotové služby. Tyto aplikace mohou být díky integraci přes webové služby
implementovány v jakémkoliv moderním jazyce. Jejich složitost se může značně
lišit – od jednoduchých aplikací poskytujících pouze optimalizované grafické
rozhraní k serverové části až po aplikace, které umožní zpracování, editaci a
vytváření dokumentů spravovaných systémem AirBird Colibri.
Co systém AirBird Colibri nabízí?
Diskuze ve vláknech s možností připojení přílohy k příspěvkům
Ukládání rychlých poznámek včetně dat v multimediální podobě
Otevřené zdrojové kódy s možností rozšíření funkčnosti
Hotovou mobilní aplikaci založenou na technologii Java ME
Integraci s exitujícími, nebo nově vyvíjenými systémy
Přístup přes webové rozhraní
31
Spolehlivost, škálovatelnost a vysokou dostupnost díky možnosti nasazení
na cluster.
Pro koho je systém určen?
Pro spolupracující tým lidí, který je často roztroušen v terénu
Pro zájmovou skupinu lidí zabývající se sportem v přírodě nebo přírodními
vědami
Pro tvůrčí osoby, potřebující rychle si zaznamenávat své nápady
Jak IS AirBird Colibri funguje v praxi?
Představme si skupinu turistů se zájmem o pohoří Krkonoš. Tato skupina ráda
diskutuje o svých zážitcích a turistických výletech po všemožných trasách, kde
naráží na různé zážitky a krásná místa. Každá navržená trasa a místo v Krkonoších
zde mají svou vlastní diskusi plnou názorů, rad a fotografií z těchto míst. Turisté
často plánují své trasy na základě této diskuse, avšak na cestě mohou znejistit nebo
jim něco zabrání pokračovat v naplánované trase. Najednou musí pečlivě
naplánovanou trasu operativně změnit. Díky diskusi k této trase mohou rychle
najít alternativní cestu anebo se ujistit, že je vše v pořádku, pokud si nejsou jisti
místem.
Díky početné skupině osob v tomto týmu je i pravděpodobné, že se potkají
na nějakém místě, popřípadě že se právě nachází více osob z tohoto týmu na stejné
trase. Systém diskuse jim umožní operativně si naplánovat setkání v nějakém bodě,
který domluví doslova za pochodu. Zde se přímo vybízí služba, která by sledovala
za pomoci GPS přihlášené uživatele a mohla je upozornit na blízkost kolegy z týmu;
tato služba by mohla být obratem rychle implementována do systému na žádost
komunity a to jak autory systému, tak i programátory z řad turistické skupiny, díky
volně dostupným zdrojovým kódům.
Turisté na svých cestách zažívají různé zážitky a navštěvují různá místa
v různou dobu. O každém zážitku se dá napsat poutavý příběh, místa se dají
vyfotografovat a každá fotka může být nějak unikátní, stačí stejné místo
vyfotografovat v jinou hodinu či jiný měsíc v roce. Na cestě však není čas dlouze
popisovat své zážitky, ovšem je vhodné psát si poznámky, aby nic nebylo po
návratu domů zapomenuto. K tomu tito uživatelé používají naši službu ukládání
poznámek. Díky ní si ukládají textové poznámky, fotografie a nahrávky pořízené
přímo na cestě. Své poznámky pak mohou v klidu domova utřídit, multimediální
záznamy upravit a vše ve strukturované podobě zpřístupnit ostatním uživatelů, a
podělit se s nimi tak o své zážitky a zkušenosti.
Typická omezení mobilní platformy a jejich řešení
Mobilní platformy disponují typicky značně omezenými zdroji, které je při vývoji
aplikačního řešení třeba brát v úvahu. Mezi omezení, se kterými se jak uživatelé,
tak vývojáři systému běžně potýkají, patří především omezená konektivita
(dostupnost a cena připojení, přenosová rychlost, stabilita připojení,…), méně
32
výkonný hardware, malá zobrazovací plocha nebo velké rozdíly mezi různými
druhy a modely mobilních zařízení. Informační systém AirBird Colibri byl vyvíjen
takovým způsobem, aby koncový uživatel systému pocítil daná omezení co
nejméně.
Omezená konektivita mobilních zařízení patří pravděpodobně mezi největší
problémy. IS AirBird se snaží minimalizovat dopad tohoto problému na uživatele
použitím hned několika metod. Předně je to kompresí dat přenášených mezi
serverem a klientem. Tím lze dosáhnout rychlejšího přenosu dat mezi mobilním
zařízením a serverem, ale také úspory financí v případě, kdy uživatel platí za
přenesená data. V případě, kdy konektivita není dostupná vůbec, systém lze stále
používat v offline režimu. V tomto režimu jsou dostupné pouze funkce
zaznamenávání poznámek včetně multimediálních příloh. Jelikož veškerá diskusní
vlákna jsou uložena na serveru, přístup k nim není v offline režimu možný. Pro
ukládání příloh poznámek ovšem systém vyžaduje dostatek volného místa
v souborovém systému mobilního telefonu. Ve chvíli, kdy přejde systém do online
režimu, budou veškeré poznámky zaznamenané offline přeneseny na server.
Nižší výkonnost hardware řeší systém velmi efektivně použitím
architektury klient-server. Díky tomu veškeré zpracování dat, transformace
formátů, validace a další aplikační logika probíhá na výkonném serveru. Klient již
získá data ve finální podobě a jeho úkolem je již jen vhodnou formou data
prezentovat uživateli. S tímto si již hravě poradí jakékoliv moderní mobilní
zařízení.
Vzhledem k tomu, že systém AirBird Colibri se snaží být dostupný i pro
uživatele mobilních telefonů, je grafické uživatelské rozhraní jeho mobilního
klienta přizpůsobeno velmi malým rozměrům displejů. Pro zařízení s většími
displeji, jako jsou třeba tablety, je vhodnější využít možnosti implementace
vlastního klienta. V případě stále konektivity lze také pohodlně přistupovat
k systému přes webový prohlížeč.
Poslední problém s velkými rozdíly mezi konfigurací a hardware je již
částečně překonán zvolenou platformou výchozího mobilního klienta. Klientská
aplikace je navíc navržena tak, aby vyžadovala co nejmenší množinu knihoven.
Technologie
Server
Technologie informačního systému použité na serveru jsou již zčásti dány
vývojovou platformou. Serverová část je vyvinuta nad platformou .NET od
společnosti Microsoft. Již samotná platforma poskytuje dostatek knihoven pro
vývoj aplikací (Unity Framework, Entity Framework, ASP.NET). Kromě knihoven
od společnosti Microsoft byl použit také framework pro logování Log4net.
Mobilní klient
Výchozí mobilní klient je dostupný pro platformu Java ME. Tato technologie
umožní provozovat mobilního klienta na téměř všech moderních mobilních
zařízení a dokáže nabídnout dostačující prostředí pro práci se systémem.
33
Návrh
Uživatelské role
Systém bude pracovat s následujícími rolemi uživatelů:
Anonymní uživatel
o Má velmi omezená práva, která lze rozšířit registrací, po jejíž přijetí
správcem se stane uživatel členem týmu.
o Může prohlížet veřejná témata a zprávy a přidávat příspěvky
k veřejným tématům. Nemůže však k příspěvkům přikládat
dokumenty.
Člen týmu
o Může prohlížet veškerá témata a zprávy v systému.
o Smí vkládat příspěvky k tématům a k těmto příspěvkům přikládat
dokumenty.
o Může stahovat dokumenty a dokumenty také nahrávat. Vybrané typy
dokumentů je možno přímo upravovat.
o Má k dispozici soukromé poznámky, které jsou ideální pro
zaznamenání aktuálních poznatků z terénu, výzkumu atd.
o K poznámkám může přikládat také dokumenty, které je později
možné přiložit například také ke zprávě nebo je zpřístupnit ostatním
uživatelům přímo.
Vedoucí týmu
o Může využívat všech funkcí, které má k dispozici člen týmu.
o Může do aplikace registrovat vlastní zásuvné moduly, které umožní
dále zvýšit produktivitu a efektivitu práce v týmu. Tyto moduly lze
následně zpřístupnit vybraným rolím.
o Navíc mu systém poskytuje jednoduché rozhraní pro správu všech
uživatelů. Toto rozhraní obsahuje funkce pro přidávání,
odstraňování a zobrazení uživatelů a dále možnost potvrzování /
zamítnutí registrací.
Výše uvedený seznam obsahuje pouze výchozí role systému. Díky integrovanému
správci uživatelů, rolí a práv je možné seznam rozšířit nebo zcela změnit.
Případy užití
Create registration
Jediným případem užití pro neregistrovaného uživatele je v současné verzi
vytvoření registrace. Uživatel vyplní vstupní pole formuláře grafického rozhraní a
potvrdí žádost o registraci.
Confirm registration
Dává vedoucímu týmu možnost potvrzení žádosti o registraci, kterou dříve vyplnil
neregistrovaný uživatel prostřednictvím UC Create registration. Veškerá funkčnost
je obsažena v tabulce, která zobrazuje všechny žádosti o registraci s připnutými
tlačítky pro zamítnutí nebo potvrzení žádosti.
34
User list
Obsahuje seznam všech registrovaných uživatelů, tj. v současné verzi všech členů
týmu. Kromě přehledu základních informací o členech týmu neposkytuje žádné
další funkčnosti.
Notes list
Umožňuje členovi týmu evidovat vlastní poznámky, které nejsou veřejné a jsou
přístupné pouze jemu. Může tak vkládat poznatky, postřehy či nápady přímo
v terénu a zpracovat je později. Každá poznámka může obsahovat textovou část a /
nebo přílohu ve formě dokumentu libovolného typu. Člen týmu může zobrazit
seznam a detail svých poznámek a poznámky také vytvářet prostřednictvím
jednoduchého formuláře se vstupem pro text a přílohu.
Topic list
Poskytuje členům týmu pohled na seznam řešených, diskutovaných témat. Formou
přehledného seznamu poskytuje informace o zakladateli tématu a datech jeho
vytvoření a poslední modifikace. Vybráním požadovaného tématu ze seznamu je
uživatel přesměrován na Message list.
Message list
Umožňuje členovi týmu prohlížet si zprávy přiřazené k jednotlivým tématům. Na
tyto zprávy může také reagovat zasláním nové zprávy pod svým jménem
vyplněním textové pole umístěného pod seznamem zpráv. K zasílané zprávě může
připojit také libovolný dokument, který bude zobrazen jako příloha zprávy.
V případě, že je ke zprávě připojena příloha, může si ji člen týmu prostřednictvím
ikonky sponky stáhnout.
Obr. 1: Use Case model
35
Datový model
Tabulka Tab. 1 shrnuje entity, které informační systém obsahuje.
Název
Popis
Topic
obsahuje záznamy o tématech jednotlivých diskuzí.
Eviduje především název daného tématu a jeho autora
Message
ukládá zprávy náležící do některého z témat. Ke zprávě
je vždy přiřazen její autor a čas vzniku
Note
tabulka obsahující osobní poznámky uživatele.
V případě, že poznámka obsahuje také dokument jako
přílohu, záznam obsahuje odkaz na přiložený dokument
Document
obsahuje dokumenty vložené do systému buď
samostatně anebo jako přílohy k týmovým zprávám a
osobním poznámkám
User
tabulka obsahující seznam uživatelů systému.
V současné verzi obsahuje především jejich autentizační
údaje a jméno
Authentication_Token
tabulka autentizačních tokenů, které byly přiděleny
uživateli. Obsahuje historii tokenů za poslední týden
Tab. 1: Popis datového modelu
Pohled na systém
Systém je navržen tak, aby usnadňoval komunitě uživatelů jeho snadnou integraci.
Z tohoto důvodu jsou jeho hlavní funkce dostupné přes webové služby. Současně
zpřístupňuje veškeré své funkce přes webové rozhraní přístupné přímo
z webového prohlížeče bez nutnosti další instalace či konfigurace. Spolu se
serverovou aplikací je dodáván také mobilní klient napsaný v jazyce Java. Tento
klient přistupuje k serverové aplikaci právě přes webové služby.
Mobilní klient
Architektura mobilního klienta je založena na důkladném oddělení všech vrstev
tak, aby byla možnost v případě potřeby vrstvu vyměnit za jinou. Skládá se ze tří
základních vrstev, vrstvy pro grafické uživatelské prostředí, vrstvy komunikační se
stuby webových služeb a vrstvy integrační oddělující předchozí dvě vrstvy.
Grafické prostředí je reprezentované jedním midletem. Tato třída v sobě
obsahuje veškeré uživatelské obrazovky a informace o přechodech mezi nimi.
Důvodem k jedné třídě je možnost pohodlné editace v grafickém prostředí
vývojového IDE; přehlednost komponent je udržována v tomto editoru, nikoli
v rozdělení do tříd. Z grafického prostředí jsou volány potřebné metody na
fasádách webových služeb.
Fasády mají za úkol odstínit uživatelské rozhraní od komunikační vrstvy.
Samotné fasády primárně pouze přesměrovávají z midletu na konkrétní stub.
Stuby webových služeb jsou generovány vývojovým prostředím na základě wsdl
souboru, který definuje danou webovou službu.
36
Komponenty serveru
Funkčnost a zodpovědnost jednotlivých komponent je popsána v tabulce Tab. 2.
V případě některých komponent může být funkčnost z důvodu složitosti
delegována dále na dílčí komponenty. Toto rozdělení však již není z high-level
pohledu důležité.
Název
Popis
ExternalFacade
Fasáda, která zajišťuje jednotný přístup k funkcím systému
všem externím rozhraním systému, tj. webovým službám i
webovému rozhraní.
DocumentManager
Správce
dokumentů.
Zprostředkovává
přístup
k dokumentům, jejich verzování a bezpečné ukládání.
DocumentStorage
Úložiště dokumentů. Tato vrstva umožňuje snadno vyměnit
úložiště dokumentů (např. databáze, souborový systém, FTP
server, …)
MessagingService
Služba zajišťující operace nad diskusními vlákny, zasílání
zpráv a jejich správu.
NotesManager
Správce osobních poznámek. Zajišťuje přístup k vlastním
poznámkám a operace nad nimi.
SecurityManager
Správce zabezpečení má na starost autentizaci a autorizaci
uživatelů, správu práv a uživatelských rolí.
Tab. 2: Popis komponent serveru
Závěr
IS AirBird Colibri se snaží vyřešit některé problémy týmové komunikace a
zaznamenávání poznámek při práci v terénu. Nabízí multiplatformní,
nízkonákladové a snadno dostupné prostředí pro základní potřeby práce
v omezených podmínkách a dává možnost k implementaci další funkcionality
podle přání konkrétních uživatelů.
Bc. Lukáš Kinc
Univerzita Hradec Králové, Fakulta informatiky a managementu
Rokitanského 62, 500 03 Hradec Králové, Česká republika
e‐mail: [email protected]
Bc. Jiří Neuman
Univerzita Hradec Králové, Fakulta informatiky a managementu
Rokitanského 62, 500 03 Hradec Králové, Česká republika
e‐mail: [email protected]
37
VYUŽITÍ METODY PARTICLE SWARM OPTIMIZATION PŘI VZÁJEMNÉM ZAROVNÁVÁNÍ 2D OBRÁZKŮ APPLICATION OF PARTICLE SWARM OPTIMIZATION IN 2D IMAGE ALIGNMENT Tomáš Machálek Abstrakt Problematika zarovnávání (registrace) 2D obrazových dat zasahuje do mnoha praktických oblastí, počínaje tvorbou panoramatických fotografií, přes registraci multimodálních medicínských snímků až například po kompresi videa. Tato práce se zabývá nasazením algoritmu Particle Swarm Optimization při hledání optimálních translačních transformací pro dva související obrázky s použitím metod založených na přímém porovnávání jejich obrazových bodů. Ty lze formulovat jako úlohy hledání globálního extrému funkce kvantifikující v závislosti na použité metrice odlišnost překrývajících se oblastí. Klíčová slova inteligence hejna, optimalizace hejnem částic, stochastická optimalizace, registrace obrazových dat, zarovnávání obrázků Abstract The problem of 2D image alignment has many practical applications starting from panorama image stitching, multi­modal image registration to video compression. This work deals with application of the Particle Swarm Optimization algorithm in finding optimal translation transformations when aligning two related images using methods based on direct pixel data comparison. Such model can be interpreted as a global optimization problem searching optima of some concrete image overlapping evaluation metrics.
Keywords Swarm inteligence, Particle Swarm Optimization, stochastic optimization, image registration, image alignment 1. Úvod Particle Swarm Optimization (dále jen PSO) je globální stochastická optimalizační metoda publikovaná v roce 1995 J. Kennedym a R. Eberhartem. Její princip je inspirován modely založenými na kooperativním řešení problémů, které lze 38
pozorovat u řady živočišných druhů včetně člověka. Algoritmus PSO je založen na iterativním vývoji skupiny částic, které se pohybují v n‐rozměrném prostoru představujícím definiční obor účelové funkce optimalizačního problému. Částice v každé iteraci korigují svůj směr pohybu v závislosti na vlastním průběžně aktualizovaném nejlepším nalezeném řešení a současně na základě polohy doposud nejlepšího řešení nalezeného okolními částicemi. Okolí v tomto kontextu nechápeme v souvislosti s metrikou definičního oboru funkce, nýbrž jako graf určující komunikační strukturu částic, jehož konkrétní podoba má též vliv na průběh a výsledek hledání. Mezi citované aplikační oblasti algoritmu PSO patří například (viz. [1][3]): výroba a regulace elektrické energie, design a řízení neuronových sítí, řídící aplikace, robotika, plánování (scheduling), data mining, ekonomické a finanční aplikace. 2. Specifikace problému Tento článek shrnuje výsledky diplomové práce [1][2], jejímž cílem bylo: •
navrhnout a implementovat konkrétní řešení problému zarovnávání 2D obrázků s využitím algoritmu PSO při omezení na translační transformace, •
řešení implementovat ve formě, která by umožňovala testovat, parametrizovat či modifikovat předložené algoritmy prostřednictvím skriptovacího jazyka přímo v realizované aplikaci, •
ověřit korektnost implementace PSO pomocí benchmarkových testů, •
porovnat výsledky PSO v navrženém řešení s některými dalšími optimalizačními metodami a testovat vliv parametrů PSO na chování algoritmu při řešení popsané úlohy. 3. Algoritmus PSO O hejnu budeme uvažovat jako o uspořádané n‐tici, kdy i‐té částici v čase t přisoudíme polohu i(t) a rychlost i(t). Budeme‐li se odkazovat na k‐tou složku vektoru i‐té částice, použijeme označení pro složku polohového vektoru resp. pro složku rychlosti. Dále pro každou částici definujeme její okolí 1, … , \ . Vyjdeme‐li z [1][1], pak lze klíčový vztah pro výpočet složky vektoru rychlosti v diskrétním časovém okamžiku t formulovat takto: 1
1
Rovnice 1: Výpočet složky vektoru rychlosti částice Po výpočtu všech složek vektoru lze již částici aktualizovat polohu: 1
Rovnice 2: Aktualizace polohy částice 39
1 Interpretace jednotlivých symbolů je následující: •
je d‐tá složka polohového vektoru dosavadního nejlepšího řešení, které i‐tá částice sama nalezla, •
je d‐tá složka polohového vektoru dosavadního nejlepšího řešení, které dosáhlo okolí částice, •
•
je konstanta pro korekci velikosti rychlosti částice, a jsou v každém kroku náhodně volené hodnoty z intervalu 0,
při rovnoměrném rozdělení pravděpodobnosti. Zdůrazněme (viz. [1][1]), že tyto hodnoty se generují náhodně pro každou složku vektoru zvlášť. 4. Metriky pro vyhodnocení překryvu obrázků Rastrovým obrazem zde rozumíme funkci , :
. Pro kvantifikaci odlišnosti překrývajících se částí zarovnávaných obrazů existuje řada metrik, které se liší výpočetní náročností i použitelností v závislosti na typu porovnávaných obrazových dat. Tato práce se zaměřila na tři často používané metriky – součet absolutních hodnot rozdílů (SAD), normalizovanou vzájemnou korelaci (NCC) a vzájemnou informaci (MI). ,
,
,
,
Rovnice 3: Součet absolutních hodnot rozdílů (SAD) ,
∑,
,
∑,
,
∑,
,
,
Rovnice 4: Normalizovaná vzájemná korelace (NCC) kde 1
,
,
Rovnice 5: Průměrná hodnota jasu pixelu obrázku 1 a 1
,
,
Rovnice 6: Průměrná hodnota jasu pixelu obrázku 2 ,
,
,
log
,
,
,
Rovnice 7: Vzájemná informace (MI) 40
kde resp. jsou marginální pravděpodobnosti výskytu pixelu s jasem v obrázku resp. s jasem v obrázku a , je pak sdružená ,
pravděpodobnost výskytu pixelu s jasem v obrázku a současně pixelu s jasem v obrázku . 5. Realizované řešení Základní myšlenku testovaného řešení je možno vidět na obrázku 1. Pro oba zarovnávané obrázky jsou nejdříve vytvořeny postupně více a více podvzorkované varianty, a to tak, že v každém kroku je jejich výška a šířka snížena na polovinu. Tyto kroky pro každý obrázek proběhnou tolikrát, aby kratší ze stran žádného obrázku neměla délku menší než 150 pixelů. Hodnota byla zvolena empiricky s ohledem na testovanou sadu dat a rozhodně ji nelze považovat za univerzální. Jak uvádí [1][5], při nevhodně zvolené míře zmenšení může dojít k přílišnému úbytku detailů a následné ztrátě hledaného optima. Při zmenšování obrázků je z důvodu potlačení vyšších frekvencí v obrazových datech použita konvoluce obrazové funkce s Gaussovou funkcí. Obr. 1: Princip řešení využívá obrazové pyramidy postupně více a více podvzorkovaných variant původních obrázků. Globální optimalizace probíhá jen na nejmenší variantě a na dalších úrovních se řešení pouze koriguje za použití jednodušších, lokálních metod. Na nejmenších variantách vstupních obrázků proběhne hledání požadované transformace pomocí vybraných globálních optimalizačních metod a při přechodu na vyšší rozlišení je pak provedena lokální optimalizace na omezené obdélníkové oblasti 11x11 pixelů se středem v optimu nalezeném v úrovni předchozí. Je též třeba brát v potaz skutečnost, že se zmenšující se plochou překryvu obou obrázků klesá možný počet vzájemně odlišných hodnot jasu pixelů na této spo‐
lečné ploše a hrozí tak nalezení numericky sice optimálního, avšak vizuálně zcela chybného řešení. Implementovaná aplikace tento problém omezuje tak, že do vý‐
počtu metrik popsaných výrazy (3), (4) a (7) doplňuje váhovou funkci, která příliš malé společné plochy penalizuje [1][5]. Stejně tak byly vhodně nastaveny omezující podmínky pro prohledávaný prostor transformací v závislosti na míře očekávaného překryvu (předpokládáme‐li např., že obrázky se mají v ideálním případě zcela překrývat, nemá smysl uvažovat rozsah transformací s extrémy vedoucími na překryvy velikosti v řádu pouhých jednotek procent plochy těchto obrázků). 41
6. Experimenty V první části byla ověřena implementace PSO v rámci realizované aplikace. Výsledky jsou k dispozici v tabulkách 1 a 2. Hledanou hodnotou účelové funkce byla vždy 0. Informace o použitých benchmarkových funkcích a podrobnostech konfigurace všech testů je možno získat v [1][1]. funkce Parabola Alpine Rosenbrock Griewank doba výpočtu Swarmint Jswarm­PSO prům. čas s. odchylka prům. čas s. odchylka [s] [s] [s] [s] 26,60
0,52
13,90
0,57 13,90
0,32
8,80
0,42 12,00
0,47
5,80
1,75 4,20
0,42
5,20
0,42 Tab. 1: Výsledky implementované aplikace (označena jako Swarmint) na benchmarkových funkcích z hlediska doby výpočtu ve srovnání s jinou existující implementací PSO nalezené řešení Swarmint Jswarm­PSO funkce hodnota f­ce s. odchylka hodnota f­ce s. odchylka Parabola 0,04
0,03
3,02
1,45 Alpine 0,13
0,16
1,01
0,60 Rosenbrock 3,00
1,00
75,83
116,17 Griewank 0,53
0,24
0,71
0,16 Tab. 2: Výsledky implementované aplikace (označena jako Swarmint) na benchmarkových funkcích z hlediska kvality řešení (optimum je 0) ve srovnání s jinou existující implementací PSO Další série testů měla porovnat několik optimalizačních algoritmů a metrik pro kvantifikaci překryvu obrázků při řešení úlohy jejich vzájemného zarovnávání. Optimalizace byla realizována metodami •
PSO, •
Nelder‐Meadovou metodou pohyblivého simplexu (byla použita hotová implementace z projektu Apache Commons), •
simulovaným žíháním (implementace podle [1][4]), •
metodou hrubé síly. Nelder‐Meadův algoritmus se nachází na pomezí mezi lokálními a globálními optimalizačními metodami, avšak předběžné experimenty na testovacích datech ukázaly, že několik opakování z náhodně vybraných bodů definičního oboru účelové funkce je schopno problém řešit v čase a kvalitě srovnatelnými s ostatními vybranými postupy. Pro další měření byl počet těchto opakování empiricky stanoven na 5. Algoritmus PSO byl oproti výrazu (1) implementován v mírně modifikované variantě, která do výpočtu vždy vnáší i informaci o dosavadním nejlepším globálním řešení. Takový přístup lze chápat jako existenci dvou paralelních 42
komunikačních
h topologií částic, kdy
y jedna je ffixně tvořen
na úplným
m grafem, ov
všem s tím
m rozdílem,, že řešeníí sledovanéé v této strruktuře uv
važuje každ
dou částici jako svéh
ho vlastního
o souseda. Upravený v
vztah pro v
výpočet rycchlosti vypaadá takto: Rovnicee 8: Modifika
ace výpočtu rrychlosti částice PSO kde bi je dopo
osud nejleepší globální řešení a hodnotaa c4 je gen
nerována podle p
stejn
ných pravidel jako c2 a c3, avššak obecněě z jiného rozsahu h
hodnot (zdee <0, 0,43>). Srov
vnávací testty proběhly
y na čtyřecch dvojicícch obrázků,, a to všem
mi kombinaacemi uved
dených optimalizačnícch algoritm
mů a metrik
k. Kompletn
ní výsledkyy je možné najít v [1]][2]; zde uv
vádíme pou
uze výsledk
ky dvou vyb
braných dv
vojic. testovací d
dvojice č. 1 1
2
2 optimum (x, y) (‐816, ‐36)
(0, 0)
celke
em pixelů 5402
2727
10077
7696
Tab
b. 3: Správná
á řešení zarovnání testovvaných dvojicc a celkové p
počty pixelů, k
které bylo nu
utno při vý
výpočtu zpracovat Kvalita jednotllivých testo
ovaných vaariant bylaa vyhodnoccována pod
dle euklido
ovské z
od správn
ných hodnot (viz. taab. 3). Uveedené vzdáálenosti naalezených zarovnání testo
ované dvojice obrázzků vznikly
y uměle (rozdělení
(
na dvě ččásti, vytvo
oření vizuáálně modiifikované varianty v
o
originálu)
vždy z jed
dnoho obrrázku za jasně j
defin
novaných p
podmínek ttak, aby byllo možné přesně určitt správná zarovnání. O
Obr. 2: Testo
vací dvojice č. 1(použito se svolením držitele auttorských právv, firmy Intel) 600
pxx
400
S
SAD
200
N
NCC
M
MI
0
PSO
N
NM
S
SA
43
B
BF
Obr. 1: Vzdálenosst výsledků jeednotlivých op
ptimalizačníích metod od správného řeešení u dvojicce č. 1 30
se
ec.
20
S
SAD
10
N
NCC
M
MI
0
PSO
NM
SA
S
B
BF
Obr. 4
4:Doba výpočtu u jednotllivých optimalizačních m
metod u dvojiice č. 1 Obr. 5: T
Testovací dv
vojice č. 2 2000
1500
px 1000
500
0
SAD
NCC
MI
PSO
NM
SA
BF
ptimalizačníích metod od správného řeešení u dvojicce č. 2 Obr. 6: Vzdálenosst výsledků jeednotlivých op
150
100
SAD
secc.
NCC
50
MI
0
PSO
NM
SA
BF
Obr. 7
7: Doba výpo
očtu u jednottlivých optim
malizačních m
metod u dvojiice č. 2 Posleední série testů se týkala t
zkou
umání vliv
vu některýcch parameetrů na cho
ování algorritmu PSO
O z hledisk
ka řešenéého probléému. V náásledujících
h grafech jsou zaneeseny výsledky měřeení vlivu počtu iterrací, param
metru a komunik
kační struk
ktury částiic. Tabulkaa 3 znázorrňuje zrych
hlení aplik
kace dosažené paraleelním zpraacováním na více proccesorových jádrech. 44
vzdálenost od nej. řešení
směrodat. odch.
20
15
px 10
5
0
10
20
30
40
50
60
70
počet iterací
Obr. 8: Vliv počtu iterací na kvalitu řešení (30 částic, bez využití obrazové pyramidy) vzdálenost od nej. řešení
směrodat. odch.
15
10
px
5
0
10
20
30
40
50
60
70
počet iterací
Obr. 9: Vliv počtu iterací na kvalitu řešení (30 částic, s využitím obrazové pyramidy) i‐best
směrodat. odch.
60
40
iterace
20
0
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9
hodnota c1
1
Obr. 10: Závislost iterace, ve které bylo nalezeno nejlepší (v rámci daného běhu, nikoliv nutně optimální) řešení na parametru c1 45
vzdálenost od nej. řešení
směrodat. odch.
10
8
6
px
4
2
0
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
hodnota c1
Obr. 11: Kvalita řešení v závislosti na parametru c1 i‐best
směrodat. odch.
20
15
10
5
0
kruhová
wheel
úplná
von Neumann
Obr. 12: Vliv topologie částic na iteraci, ve které došlo k nalezení nejlepšího (v daném běhu, nikoliv nutně optimálního) řešení čas [s] sm. odch. [s] Core i7 2600 Core 2 Duo 1 4 faktor 1 2 faktor vlákno vlákna zrychlení vlákno vlákna zrychlení 50,15 18,61
2,69
91,01
63,17 1,44
0,14 0,31
0,04
0,46
0,73 0,02
Tab. 3: Škálování výkonu při použití vícevláknového výpočtu 7. Závěr Realizovaná aplikace ukázala, že PSO, byť v jedné z nejobecnějších konfigurací, dosahuje výsledků plně srovnatelných s jinými metodami používanými v oblasti zarovnávání 2D obrázků. Zajímavé je zejména srovnání se simulovaným žíháním, jehož výsledky byly téměř ve všech testech horší. Zkoumaný vliv parametrů PSO odpovídal popisu v dostupné literatuře. Z hlediska zkoumaných metrik překryvu obrázků se potvrdilo, že jejich volba je závislá především na typu zpracovávaných dat s tím, že metrika NCC se v tomto směru prezentovala jako nejvíce univerzální, zatímco metriky SAD a vzájemná informace z testů vyšly jako specializovanější vždy pro určitý typ obrazových dat. I zde tedy výsledky odpovídaly dostupným informacím o jejich využitelnosti pro specifické problémy. 46
V dosažení univerzálnosti realizovaného řešení brání zejména nutnost hledat před použitím algoritmu řadu parametrů manuálním testováním cílové sady obrázků. Pokud by se podařilo najít vhodné parametry (zejména u obrazové pyramidy, penalizace malých překryvů obrázků a PSO) automatizovaně, použitelnost celého řešení by se nepochybně zvýšila. Literatura [1]
CLERC, Maurice. Particle Swarm Optimization. ISTE, London, 2006. [2]
MACHÁLEK, Tomáš. Využití metody Particle Swarm Optimization při vzájemném zarovnávání 2D obrázků. 2011. 87 s. Diplomová práce na Fakultě informatiky a managementu Univerzity Hradec Králové. Vedoucí diplomové práce doc. RNDr. Kamila Olševičová, PhD. [3]
SEDIGHIZADEH, D., MASEHIAN, E. Particle Swarm Optimization Methods, Taxonomy and Applications. International Journal of Computer Theory and Engineering, 1, No. 5, December 2009 1793‐8201, 2009. [4]
SEGARAN, T. Programming Collective Intelligence. O'Reilly, 2007. [5]
SZELISKI, Richard. Computer Vision: Algorithms and Applications. Springer, 2010. Bc. Tomáš Machálek Univerzita Hradec Králové, Fakulta informatiky a managementu Rokitanského 62, 500 03 Hradec Králové, Česká republika e‐mail: [email protected] 47
AMBIENTNÍ INTELIGENCE – JEDNA Z CEST KE KOMPLEXNÍ
PODPOŘE LIDSKÝCH AKTIVIT
AMBIENT INTELLIGENCE – A WAY TO COMPLEX HUMAN
ACTIVITIES SUPPORT
Peter Mikulecký
Abstrakt
Příspěvek je zaměřen na úvahy o v současnosti intenzivně zkoumané oblasti s velkým
aplikačním potenciálem – ambientní inteligenci. Ambientní inteligence je představa o
informační společnosti budoucnosti, v níž se člověk nachází v inteligentním prostředí,
jehož prvky jsou schopny vzájemné inteligentní komunikace a spolupráce za účelem
vhodné podpory různých aktivit uživatele. Inteligentní prostředí tohoto typu lze
modelovat jako multi-agentní systém, jehož prvky lze považovat za vzájemně
komunikující a spolupracující entity, „žijící“ svým vlastním životem ve vztahu
k reálnému životu paralelně probíhajícím v tomtéž prostředí. Příspěvek se zabývá
několika důležitými aspekty ambientní inteligence a rozebírá možnosti jejího využití
pro co nejširší, ne-li komplexní podporu lidských aktivit.
Klíčová slova
ambientní inteligence, pomáhající technologie, lidské aktivity, informační a komunikační technologie
Abstract
This contribution brings contemplation about ambient intelligence, a recently very
intensively investigated area with a great application potential. Ambient intelligence
is a vision of future information society, where a human user will appear in an
intelligent environment, which elements would be capable of ubiquitous mutual
communication and collaboration aiming of intelligent support of various user’s
activities. Intelligent environments of this type can be modelled as a multi-agent
system, elements of which are tractable as mutually communicating and
collaborating entities “living their own lives” related to the real life being in progress
in parallel in the same environment. Some important aspects of ambient intelligence
are discussed and possibilities of its utilisation for a broad, if not complex support of
human activities are analysed.
Keywords
Ambient intelligence, helping technologies, human activities, information and
communication technologies.
48
1. Úvod
Oblast tzv. ambientní inteligence (angl. Ambient Intelligence, což lze volně přeložit
jako všudypřítomná inteligence nebo i inteligence prostředí), je v období posledních cca 10 let předmětem intenzivního výzkumu zejména v zemích Evropské unie,
jejíž nedávný 6. i současný 7. rámcový program výzkumu považuje tuto oblast za
jednu ze stěžejných pro další rozvoj znalostní společnosti. Představa o ambientní
inteligenci vychází z původní vize Marka Weisera [15] o počítačích pro 21. století.
Předpokládá posun ve využívání informačních technologií od obvyklých osobních
počítačů k různým typům informačních zařízení, které budou integrovány do běžného životního prostředí lidí a budou jim tak napomáhat při řešení běžných i méně
běžných životních či pracovních situací. V souvislosti s tím se rovněž předpokládá
potlačení dnes převažujících technologických aspektů výpočetních a informačních
technologií do pozadí, přičemž do popředí zájmu se přesunou inteligentní rozhraní
konkrétních uživatelských prostředí. Detailnější informace k celé problematice lze
nalézt např. v [4].
Hlavním účelem ambientní inteligence je naplnit poslání tzv. pomáhajících technologií, tedy technologií, které jsou určeny zejména k tomu, aby byly nápomocné
lidem při jejich běžných každodenních aktivitách, i při některých specifických činnostech. Jak už jsme výše uvedli, představa o použití ambientní inteligence vede
k představě o inteligentních prostředích, které vzniknou z pro nás doposud velice
obvyklých a každodenně využívaných prostředí jejich obohacením o vyspělé „všudypřítomné“ informační a komunikační technologie schopné inteligentní podpory
lidských aktivit v tomto prostředí. Výzkumy v tomto směru rezultují do prototypů
inteligentních domů, domácností, kanceláří, učeben, domovů pro seniory, apod.
Při nadšených ale i celkem střízlivých informacích o prvních výsledcích v oblasti
všudypřítomné inteligence je nicméně zatím málo upozorňováno na případná nebezpečí, které tato technologie a zejména pak její možné budoucí rozsáhlé nasazení
v sobě skrývá.
Současná, více méně konzumní společnost nepochybně uvítá (pokud tak už částečně neudělala) pohodlí a nezpochybnitelné přínosy, které z nasazení technologií
ambientní inteligence plynou či mohou vyplývat. V tomto článku bychom rádi popsali několik možností aplikací této technologie, chceme ale i upozornit na některá
nebezpečí a protiřečení daného přístupu.
2. Představa o ambientní inteligenci
Ambientní inteligence (Ambient Intelligence) je vizí informační společnosti
budoucnosti, ve které je největší důraz kladen na
uživatelskou přívětivost;
efektivní a distribuovanou podporu služeb;
posílení možností efektivního využívání relevantních zdrojů ze strany uživatelů;
podporu interaktivní činnosti.
Tato vize předpokládá, že lidé budou působit v prostředí inteligentních a intuitivně
využitelných rozhraní k procesorům, umístěným do všech typů objektů. Pod
49
objekty zde rozumíme zcela běžné předměty, které nás obklopují a které tvoří
prostředí, v němž působíme. Takovéto prostředí bude pak schopné rozpoznat
přítomnost konkrétních individuí a reagovat na jejich přítomnost nevyrušujícím
a často neviditelným způsobem, který bude obvykle plně integrován do dané
situace. Tato reakce prostředí by měla zásadně působit ve prospěch daného
uživatele, měla by mu pomoci řešit zcela běžné ale i zřídka se vyskytující problémy.
Cílem využití ambientní inteligence je podstatně rozšířit interakci lidí a digitální
informační technologií zejména využitím všudypřítomných (ubiquitous)
výpočetních zařízení. Jádrem představy o ambientní inteligenci jsou tři
v současnosti se značně rozvíjející technologie:
všudypřítomné počítače (ubiquitous computing),
všudypřítomná komunikace (ubiquitous communication),
inteligentní uživatelská rozhraní (intelligent user interfaces).
Všudypřítomné počítače znamenají zejména integraci mikroprocesorů do
běžných objektů denní potřeby, jako je nábytek, oděv, kuchyňská zařízení, hračky,
apod. V podstatě se jedná o použití počítačů doslovně všude. Počítače jsou zde
dostupné pomocí prostředků fyzického prostředí, jsou nicméně obvykle skryty
očím uživatele.
Všudypřítomná komunikace umožňuje kromě jiného třeba to, že různé objekty
s integrovanými procesory budou schopny komunikovat mezi sebou či
s uživatelem především prostředky bezdrátové komunikace, která se postupně
stane dominantní technologií.
Inteligentní uživatelská rozhraní umožňují obyvatelům prostředí s ambientní
inteligencí interakci s prostředím a jeho ovládání přirozenou cestou (hlas,
gestikulace) s vysokým stupněm personalizace (zohlednění preferencí uživatele či
kontextu s danou situací nebo činností). Toto všechno umožní silné zjednodušení
používání různých zařízení, která budou využitelná velice přirozeně a intuitivně.
Pro ilustraci představy o ambientní inteligenci byla vytvořena celá řada tzv.
scénářů, osvětlujících možné přínosy této technologie pro společnost. Scénáře jsou
více méně příklady možného budoucího využití přístupů ambientní inteligence
v rozmanitých oblastech každodenního lidského života [4].
3. Scénáře pro využití ambientní inteligence
Pro ilustraci představy o ambientní inteligenci byla vytvořena celá řada tzv.
scénářů, osvětlujících možné přínosy této technologie pro společnost. Scénáře jsou
více méně příklady možného budoucího využití přístupů inteligence prostředí
v rozmanitých oblastech každodenního lidského života [4]. Zajímavé je, že scénáře
měly být rozvojem příslušných technologií naplněné v roce 2010, tedy v loňském
roce a skutečně byl ve směru jejich naplnění zaznamenán mohutný pokrok.
První představa EU pro další rozvoj v jejích rámcových programech byla
promítnutá do následujících čtyř scénářů:
Maria – The Road Warrior,
Dimitrios and Digital Me,
50
Carmen – Traffic, Sustainability, and Commerce,
Annette and Solomon in the Ambient for Social Learning,
V následujících odstavcích tyto scénáře stručně přiblížíme.
Scénář Maria, The Road Warrior popisuje reprezentantku nejmenované firmy, která
vyjíždí na služební cestu do vzdáleného města, kde ji čeká obchodní jednání spojené
s prezentací a diskusí se zákazníky. Vše, co Maria potřebuje, je zařízeno předem
a prostředí, ve kterém se pak Maria pohybuje, s ní komunikuje skrze P-Com, což je
inteligentní osobní komunikační zařízení (v dnešních poměrech pravděpodobně
chytrý telefon). Mezi možné výsledky její komunikace s prostředím mohou patřit
následující automatizované činnosti:
vypůjčené auto předem připravené, je zajištěn přístup do centra města,
parkoviště;
je zajištěný pokoj v jejím oblíbeném hotelu, přičemž prostředí pokoje předem
personalizováno dle Mariiných zvyklostí a preferencí;
je zařízená pomoc při prezentaci na obchodním setkání, informační i znalostní
podpora jejího jednání, bude-li potřeba;
relaxace večer po setkání dle jejích požadavků či preferencí.
Scénář Dimitrios and Digital Me je zaměřen na popis řešení, ve kterém
digitální avatar pomáhá vytíženému manažerovi Dimitriosovi zvládat
telefonickou i jinou komunikaci.
Digital-Me (D-Me) je digitální zařízení reprezentující Dimitriosova avatara, jenž
je schopen v zastoupení Dimitriose přebírat všechny pokusy o kontakt
s Dimitriosem (zejména telefon) a vyřizovat je místo Dimitriose, po
vyhodnocení jejich naléhavosti. Hovory, které vyhodnotí jako zásadně důležité,
pak přesune na samotného Dimitriose, zejména pokud se D-Me nepovede
vyřídit vše potřebné s D-Me volající osoby.
Dalším scénářem byla Carmen – Traffic, Sustainability, and Commerce. Tento
scénář je zaměřen na podporu běžných aktivit zaměstnané ženy, která se
potřebuje v nějakou dobu dostat na několik míst, nakoupit pár věcí a dostat se včas
domů. Prostředí jí najde a zařídí možnosti přepravy, vyhodnotí potřeby týkající se
nákupu, upozorní na případné slevy, ochraňuje ji před možnými nehodami
a naplánuje celou její misi tak, aby se dostala v plánovanou dobu domů.
Posledním scénářem byl scénář Annette and Solomon in the Ambient for Social
Learning. Scénář popisuje možnosti inteligentního prostředí (učebny) pro
podporu výuky či diskusí studijních skupin.
Inteligentní učebna si „pamatuje“ každého studujícího, jeho dosavadní postup
v učení, připravuje mu vhodně zvolené studijní materiály, organizuje individuální
program učení, apod. Učebna rovněž organizuje i sdílené vyučování několika osob
dle jejich mentálního stavu a progresu ve studiu. Učebna je také schopna probírat
s odpovědným pedagogem progres skupiny i individuálních studujících
a přizpůsobovat jim celý program výuky.
51
4. Inteligentní prostředí jako multi-agentový systém
Možnosti realizace ambientní inteligence v různých typech prostředí jsou
zkoumány v mnoha směrech:
vzájemné rozpoznávání a přizpůsobování zařízení, která utvářejí prostředí,
personalizace a adaptace systémů s ohledem na potřeby a preference uživatelů,
porozumění dynamice okolního prostředí, na základě čehož pak systém
upravuje svou další činnost,
podpora vzájemné součinnosti a spolupráce jednotlivých komponent a systémů
ve sdíleném prostředí,
autonomie, samoregulace a samoopravitelnost komponent.
Agent je, jak známo schopný autonomně a flexibilně jednat v dynamickém
prostředí [11], případně dle [16] je to umělá výpočetní entita, která může
realizovat jisté úlohy s jistým stupněm autonomie či iniciativy, přičemž se
inteligentně přizpůsobuje svému okolí. Z hlediska těchto definic člověk není
považován za agenta, z pohledu ambientní inteligence je ovšem mnohdy užitečné
člověka mezi agenty zahrnout.
Prostředí, protkané technologiemi, lze modelovat jako multi-agentový systém, tedy
distribuovaný, decentralizovaný systém autonomních, heterogenních a navzájem
interagujících entit (agentů). Síla multi-agentových systémů spočívá v možnosti
propojit různé druhy agentů, disponující rozdílnými možnostmi a schopnostmi
zpracovávat nejrůznější druhy vstupů.
Při snaze budovat ambientní inteligenci mohou být agentové systémy inspirativní
ve třech směrech, a sice jako [2]:
metafora, na základě které lze uvažovat o komplexních, distribuovaných
výpočetních systémech,
zdroj technologií pro takové systémy,
inteligentní uživatelská rozhraní.
V agentovém prostředí lze uvažovat skupiny agentů, které spolupracují a/nebo
sdílejí nějaký účel, např.:
agent poskytující informace a agent přiřazený displeji,
osobní agenty skupiny jednotlivých uživatelů,
množina agentů reprezentující osobní zařízení (počítač) jednoho uživatele.
V rámci určené skupiny mohou agenty komunikovat na základě role, kterou v této
skupině zastávají. Lze očekávat, že takto vymezený pojem skupiny pomůže
uživateli získat lepší možnost ovládat interaktivní prostředí, nebo v něm explicitně
vidět kombinace zařízení, služeb či relevantního obsahu. Úlohy a aktivity právě
zapojeného uživatele jsou každá reprezentovány jinou skupinou agentů.
Asociaci agentů s jednotlivými zařízeními, službami či obsahem v rámci daného
prostředí řešil Misker [7] vytvořením tzv. ad hoc agentového prostředí. Propojení
mezi agenty vzniká v průběhu řešení nějakého úkolu a nutnou podmínkou přitom
52
je sdílení jistých objemů znalostí mezi agenty a rovněž i sdílení komunikačních
protokolů. Namísto interakce s individuálními zařízeními pak uživatel interaguje
s inteligentním prostředím jako s celkem. Zařízení a služby je nutno chápat jako
více méně nezávislé, aby byla naplněna představa o autonomii agentů – tím však
dochází k jistému pnutí mezi snahou uživatele mít plnou kontrolu nad prostředím
a autonomií agentů. Možným řešením je zde právě zavedení již zmíněného
konceptu spolupracujících skupin lidí a agentů jako způsobu, jak uživateli
poskytnout plnou kontrolu nad spolupracujícími agenty.
Současné agentové technologie, realizované jako architektury, relevantní techniky
a algoritmy jsou dobře aplikovatelné při vytváření různých typů inteligentních
prostředí. Příklady těchto aplikací jsou uvedeny např. v [3], [7], [8], [9], [10], [12],
[13] či [14].
Jak jsme již uvedli dříve, vize inteligentního prostředí s ambientní inteligencí je
představou prostředí založeném na nenápadných, mnohdy až neviditelných
interakcích mezi lidmi a počítačovými službami v globálním výpočetním prostředí.
Služby v takovémto inteligentním prostředí se chápou jako všudypřítomné v tom
smyslu, že je nezprostředkuje nějaký speciální poskytovatel, ale místo toho jsou
přidružené všem druhům objektů či zařízení v prostředí, přičemž tato zařízení
v ničem nepřipomínají dnešní počítače. Lidé budou interagovat s těmito službami
prostřednictvím inteligentních a intuitivních rozhraní, začleněných do těchto
objektů a zařízení, které budou vstřícné lidským potřebám.
Veliká třída předpokládaných aplikací v inteligentních prostředích by měla
přinášet užitek obyčejným lidem v běžném sociálním kontextu. Tento požadavek
implikuje potřebu takových technologií, které jsou transparentní. V tomto kontextu
lze transparentnost chápat jako vlastnost, která uživateli pomůže pochopit, je-li to
potřeba, funkcionální chování objektu či zařízení v prostředí. Jednoduše řečeno,
transparentnost by měla posunout interakce v inteligentním prostředí blíže
způsobu, jakým uvažují lidé, než ke způsobu, jakým pracují počítače.
Další výzvou, kterou dle [14] představa inteligentních prostředí navozuje je, že
elektronická infrastruktura prostředí by měla působit inteligentně ve prospěch
lidí. Inteligentní prostředí těžko může vystačit s představou jednoho přímo
ovládaného rozhraní, skrze které uživatel požaduje výsledky od nějakého
monolitického systému. Nabízí se spíše představa, dle které musí být konceptuální
složky takovéhoto prostředí často nejenom schopné jednoduché spontaneity, ale
musí být i proaktivní, tedy chovající se tak, jakoby to byly agenty jednající v zájmu
lidí. Pro pochopení složek inteligentních prostředí se tedy ukazuje být přirozené
využít agentové metafory. Agent v tomto kontextu může být softwarová (ale
i hardwarová) entita, která vnímá či ovlivňuje prostředí, má znalost prostředí
a svých vlastních cílů, a umí proaktivně plánovat dosažení svých cílů nebo cílů
svých uživatelů, čímž lze pomocí složené interakce elektronického a fyzického
prostředí dosáhnout užitečného výstupu pro lidské uživatele.
Nejdůležitějším technologickým aspektem každého složitého softwarového systému je jeho architektura. V případě ambientní inteligence architektura inteligentních prostředí musí zohlednit strukturu složek systému, jejich vzájemné
53
vztahy, jejich konstrukci a vývoj v čase. Zvláštností systémové architektury inteligentních prostředí je, že se musí přizpůsobovat dynamickým požadavkům nových
uživatelů. Z tohoto aspektu je nutno uživatele považovat za stále mobilnější. Předpokládá se totiž jejich dynamicky se měnící interakce se stále jinými inteligentními
prostředími – domov, auto, pracovní prostředí, letiště, restaurace, atd. V každém
takovém prostředí je nutné, vzhledem k pohybu uživatele, zabezpečit jeho přístup
ke zdrojům prostředí (ke službám, prostředkům, atd.). Zde je důležitým předpokladem funkčnosti prostředí to, že jsou jeho jednotlivé komponenty navrženy tak,
aby byly schopné vzájemné komunikace, ne-li přímo „dohovoru“ o společném postupu, kterého účelem by za všech okolností měla být podpora aktivit uživatele,
pomoc při řešení jeho problémů, apod. Uživatel totiž celkem právem očekává, že
přechodem do nového prostředí neztratí nic na možnostech plynule pokračovat ve
své, již započaté činnosti, ať už pracovní, nebo jiné. Od inteligentního prostředí se
pak očekává, že se požadavkům uživatele přizpůsobí a adaptuje se na ně.
Pokud se jedná o požadavky na použití agentových architektur, empirická zjištění
z mnoha dosavadních výsledků výzkumu inteligentních prostředí ukazují, že
uživatelé vždy potřebují mít (resp. rozhodně by měli mít) kontrolu nad
prostředím, ve kterém se pohybují;
problematika zabezpečení osobních údajů, resp. důvěryhodnosti inteligentních
prostředí se jeví být velice zásadní pro další rozvoj této oblasti;
uživatelé nesmějí být technologiemi rušení či obtěžováni; tj. podpůrné
inteligentní systémy jim nesmějí komplikovat stávající způsoby řešení
problémů;
učení systému musí být pokud možno implicitní, nesmí uživatele žádným
způsobem zatěžovat;
podstatným požadavkem je potřeba personalizace služeb prostředím
poskytovaných.
5. Aplikační oblasti
Mezi další aplikační oblasti pro použití přístupů ambientní inteligence k vytvoření
inteligentního prostředí patří, kromě již zmíněných v podobě scénářů ISTAG,
především tyto:
inteligentní prostředí pro domácnosti či celé rodinné domy, zahrnující kromě
zajišťování běžných potřeb (jako je topení, či zalévání zahrad) i méně běžné,
jako je inteligentní provoz domácího kina;
inteligentní kanceláře, zde jako příklad lze uvést koncept Smart Office [1], i náš
výzkum zaměřený na vytvoření prostředí podporujícího vysokou kvalitu
rozhodování manažerů [5];
inteligentní zdravotnická zařízení [13];
inteligentní vozidla či dokonce inteligentní provoz mnoha vozidel v nějakém
prostředí.
54
Na základě již řečeného lze konstatovat, že dvě základní kritéria pro posouzení
úspěšnosti inteligentního prostředí mohou být vymezeny jako
kvalita rozhodování inteligentních entit, tvořících toto prostředí
a schopnost učení se skupin těchto entit (agentů) při snaze zlepšovat úroveň
a personalizaci služeb tímto prostředím poskytovaných.
Zaměříme-li se na možné scénáře využití ambientní inteligence v univerzitním
prostředí, perspektiva všudypřítomných počítačů a z toho plynoucí možnosti pro
využití ambientní inteligence nám dává širší perspektivu pro vytváření studijních
skupin tak, abychom brali v úvahu i širší kontext týkající se studujících, např. místo
vzdělávání, čas a dostupnost různých zdrojů (či už technických, jako jsou počítače,
nebo vzdělávacích a dalších). Tato perspektiva může mít značný dopad na
efektivnost univerzitního vzdělávání, zejména v případě kombinované či distanční
formy vzdělávání. Navíc může ovlivnit i složitost různých administrativních procesů
v rámci univerzity. To vše však vyžaduje takové změny odpovídajícího univerzitního
prostředí, které umožní zavedení principů a přístupů ambientní inteligence.
Je přirozené, že různé studijní skupiny, ne-li každý jednotlivý student optimálně
vyžaduje diferencovaný přístup ze strany pedagogů a administrativy. Tento přístup
silně souvisí s kontextem různých situací jejich vzdělávacího procesu a mnohdy také
s různými docela komplikovanými situacemi administrativní povahy.
Na ilustraci možností využití ambientní inteligence v univerzitním prostředí
uveďme dva scénáře, volně převzaté z [6], které nám způsobem analogickým k [4]
ozřejmí, o co v daném přístupu může jít.
Scénář 1. Studentka Andrea byla přijata ke studiu a chce začít studovat v prvním
ročníku. Nemá žádnou nebo téměř žádnou znalost studijních předpisů, pravidel,
zvyků, zkrátka neví, jak to na univerzitě chodí. V prvních dnech pobytu na škole
najednou čelí celé řadě pro ni obtížných problémů, spojených se zápisem do studia,
s výběrem předmětů, přizpůsobením svého rozvrhu, seznámením se s pedagogy,
budovami, místnostmi, knihovnou, apod. Pravděpodobně i částečná automatická
znalostní či informační podpora v uvedeném směru by se jí zřejmě hodila. Skvělé
by bylo, dostalo-li by se jí této podpory v kontextu s místem, kde se právě nachází
a se situací či problémem, který právě řeší.
Scénář 2. Docent Bedřich vchází do své místnosti, inteligentní dveře se mu po jeho
identifikaci automaticky otevřou a aktivizuje se komplexní audiovizuální systém
v jeho místnosti, který ho příjemným ženským hlasem uvítá a podá automaticky
první informace o tom, co bude Bedřichův nejbližší program. Na obrazovce jeho
počítače se objeví menu pokrývající potřebné informační či znalostní zdroje
související s Bedřichovým programem pro daný den. Objeví se informace či
znalosti relevantní Bedřichovu profilu, jeho odborným zájmům a situacím, které jej
zanedlouho čekají. V průběhu dne se v kontextu s časem, plánem činnosti
a probíhající situací celá informační a znalostní podpora Bedřicha od jeho
inteligentní pracovny průběžně mění.
Je zřejmé, že od scénářů, podobných uvedeným, je ke skutečné inteligenci
univerzitního prostředí ještě docela dlouhá cesta. Technologicky je nicméně většina
55
z naznačených scénářů docela reálná, větším problémem je obsahová stránka
relevantní znalostní či informační podpory. I zde existuje celá řada postupů, metod
a nástrojů, ale jako každá změna, i tato záleží také na změně celkové kultury
organizace (v tomto případě univerzity), aby aplikace relevantních nástrojů či
přístupů byla pracovníky i studenty univerzity přijímána a akceptována.
A samozřejmě, aby se na ní sami aktivně podíleli.
6. Závěr
Oblast ambientní inteligence přechází v současnosti intenzivním rozvojem, lze
zaznamenat přímo explozi různých zajímavých aplikací i teoretických výsledků.
Z výzkumného hlediska jde o oblast, kde je stále celá řada otevřených problémů,
mimo jiné plynoucí z absence nějakého pevného teoretického základu. Jako každá
nová technologie i tato přináší celou řadu problémů etických, bezpečnostních,
společenských, atd. Vše čeká na řešení a stále silnější zájem o ambientní inteligenci
nasvědčuje tomu, že její rozvoj a široké využití jejího potenciálu je ještě před námi.
Pak se možná přiblížíme k jakémusi ideálu komplexní podpory každodenních
lidských aktivit a lze předpokládat, že si na tuto podporu v krátké době
přivykneme. Lidská lenost je přece stále velikým hybatelem pokroku.
Literatura
[1]
Gal, C.L., Martin, J., Lux, A., Crowley, J.L. Smart Office: An Intelligent
Interactive Environment. IEEE Intelligent Systems, July/August, 2001.
[2]
Grill, T., Khalil, I., Kotsis, G. Agents for Ambient Intelligence – Support or
Nuisance. ÖGAI Journal 23/1, 2004.
Hu, J., Feijs, L. An Agent-based Architecture for Distributed Interfaces and
Timed Media in a Storytelling Application. In Proc. ACM AAMAS 2003, New
York: ACM Press, 2003, s. 1012-1013.
ISTAG: Scenarios for Ambient Intelligence in 2010. Luxembourg: European
Commission, 2001.
Mikulecký, P. Remarks on Ubiquitous Intelligent Supportive Spaces. In Recent
Advances in Applied Mathematics and Computational and Information
Sciences, Proc. of the 15th American Conference on Applied Mathematics and
Proc. of the International Conference on Comp. and Information Sciences.
Editoři K. Jegdic, P. Simeonov, V. Zafiris), Vols. I and II, Athens: WSEAS Press,
2009. s. 523-528.
[3]
[4]
[5]
[6]
Mikulecký, P., Olševičová, K. University Education as an Ambient Intelligence
Scenario. In ECEL 2005, 4rd European Conference on e-Learning. Editor Dan
Remenyi, Reading, England: ACL, 2005. s. 275-280.
[7]
Misker, J.M.V., Veenman, C.J., Rothkrantz, L.J.M. Groups of Collaborating Users
and Agents in Ambient Intelligent Environments. In Proc. ACM AAMAS 2004,
New York: ACM, 2004. s. 1318-1319.
[8]
O´Hare, G.M.P., O´Grady, M.J., Collier, R., Keegan, S., O´Kane, D., Tynan, R.,
Marsh, D. Ambient Intelligence Through Agile Agents. In Ambient Intelligence
56
for Scientific Discovery. Editor Yang Cai, LNAI 3345, Berlin: Springer Verlag,
2005. s. 286-310.
[9]
Obermair, Ch., Ploderer, B., Reitberger, W., Tscheligi, M. Cues in the
Environment: A Design Principle for Ambient Intelligence. In Proc. of CHI
2006, New York: ACM Press, 2006. s. 1157-1162.
[10]
Ramdane-Cherif, A., Benarif, S., Levy, N. Agent Technologies For Pervasive
Computing and Communications. In Proceedings of the Third IEEE
International Conference on Cognitive Informatics (ICCI’04), 2004.
[11]
Russell, S., Norvig, P. Artificial Intelligence: A Modern Approach. 2nd ed.,
Prentice-Hall, 2002.
[12]
Sashima, A., Izumi, N., Kurumatani, K. CONSORTS: A Multiagent Architecture
for Service Coordination in Ubiquitous Computing. In Proc. Multi-agent for
Mass User Support - MAMUS 2003. Editor K. Kurumatani, LNCS 3012, Berlin:
Springer Verlag, 2004. s. 190-216.
[13]
Spanoudakis, N., Moraitis, P. Agent-based Architecture in an Ambient
Intelligence Context. In Proc. 4th European Workshop on Multi-Agent Systems
(EUMAS'06), Lisbon, Portugal, 2006.
[14]
Stathis, K., Toni, F. Ambient Intelligence Using KGP Agents. In EUSAI 2004.
Editor P. Markopoulos, LNCS 3295, Berlin: Springer Verlag, 2004. s. 351-362.
[15]
Weiser, M. The Computer for the 21st Century. Scientific American 265
(1991), s. 94-104.
[16]
Wooldridge, M. Introduction to MultiAgent Systems. J. Wiley & Sons, 2002.
prof. RNDr. Peter Mikulecký, PhD.
Univerzita Hradec Králové, Fakulta informatiky a managementu
Rokitanského 62, 500 03 Hradec Králové, Česká republika
e-mail: [email protected]
57
2z
-
2z
‡–‡”‹«žǡž”‹ƒ‹”«À‘˜ž, Marcel Hric
‡–”—’”‡‹–‡Ž‹‰‡–±–‡…Š‘Ž×‰‹‡ǡǡǡ
‘æ‹…‡Slovensko
www.ai-cit.sk
Abstrakt
ˆ‘”ƒ«± •›•–±› †‡• ’”‡‹ƒŒï †‘ ˜æ‡–ý…Š ‘„Žƒ•–À –‡…Š‹…‡Œ ƒŒ ‡–‡…Š‹…‡Œ
’”ƒš‡Ǥ ‡• „‡œ ‹ˆ‘”ƒ–‹œž…‹‡ ƒ ƒ•ƒ†‡‹ƒ ‹ˆ‘”ƒ«ý…Š •›•–±‘˜ ˜ podstate
‡‡š‹•–—Œï ā‹ƒ†‡ –‡…Š‘Ž×‰‹‡Ǥ …Š ˜‡Ò •ƒ ‡—•–žŽ‡ œ˜›æ—Œ‡ • …‹‡Í‘ ˜›–˜‘”‡‹ƒ
—āÀ˜ƒ–‡Í•›’”ÀŒ‡ý…Š•›•–±‘˜ǡ–‘”±œ˜Žž†ƒŒï‘Š±•‹–—ž…‹‡„‡œœž•ƒŠ—«Ž‘˜‡ƒ
resp. tak ƒ‘„›‹…Š”‹‡æ‹Ž«Ž‘˜‡• —”«‹–ý‹˜‡†‘‘•ëƒ‹ zo svojej „žœ‡œƒŽ‘•–Àǡ–‘”ž
sa ‡—•–žŽ‡œ˜¡«æ—Œ‡Ǥˆ‘”ƒ«ý•›•–±ƒ‘„›dz†‘•’‹‡˜ƒŽdzƒ’‘•›–—Œ‡’”‡«Ž‘˜‡ƒ
‹–‡Ž‹‰‡–ï ’‘†’‘”— ˜ Œ‡Š‘ ’”ž…‹ ƒ ”‘œŠ‘†‘˜ƒ…À…Š ’”‘…‡•‘…ŠǤ ƒ±–‘ •›•–±›
ƒœý˜ƒ‡–œ˜Ǥ—«‹ƒ…‡•ƒ•›•–±›resp. –œ˜Ǥ•›•–±›•‘•–”‘Œ‘˜‘—/umelou inteligenciou
ƒŽ‡„‘ –œ˜Ǥ –‡Ž‹‰‡–± –‡…Š‘Ž×‰‹‡Ǥ ‘˜± –‡…Š‘Ž×‰‹‡ •ï ‘«ƒž˜ƒ± ŠŽƒ˜‡ ˜ oblasti
•›‡”‰‹‡ ͺ ‘„Žƒ•–À ƒ –‘ ǣ ƒ‘–‡…Š‘Ž×‰‹Àǡ ˆ‘”ƒ«ý…Š –‡…Š‘Ž×‰‹‹ ǡ ‹‘–‡…Š‘Ž×‰‹‹
a ‘‰‹–À˜›…Š–‡…Š‘Ž×‰‹ÀǤ
Í𣏕˜±•Ž‘˜ƒ
–”‘Œ‘˜ž ‹–‡Ž‹‰‡…‹ƒǡ „‹‘-nano-cogno-‹ˆ‘ –‡…Š‘Ž×‰‹‡ǡ ‡—”א‘˜± •‹‡–‡ǡ ˆ—œœ›
•›•–±›ǡ‡˜‘Ž—«±•›•–±›ǡ‹”‡‡–žŽ‡—«‡‹‡ǡ†‹•–”‹„—‘˜ƒž—‡Žž‹–‡Ž‹‰‡…‹ƒǡ
˜ý’‘«–‘˜ž‹–‡Ž‹‰‡…‹ƒǡa‰‡–ǡ—Ž–‹-ƒ‰‡–‘˜ý•›•–±
1. l˜‘†
–‡Ž‹‰‡–± •›•–±› •ï ’”‡†‡–‘ ˜ý•—u —ā †ŽŠ± ‘„†‘„‹‡ ƒ —‡Žž
‹–‡Ž‹‰‡…‹ƒ œ‘Š”ž˜ƒ ˜‘ ˜ý˜‘Œ‹ –‡Ž‹‰‡–ý…Š •›•–±‘˜ Í𣏕˜ï Š—Ǥ ‹•–×”‹ƒ
‘†„‘”——‡Žž‹–‡Ž‹‰‡…‹ƒ•ƒ†ƒ–—Œ‡”‘—ͳͻͷ͸ǡ‡®•ƒƒ•‡‹ž”‹˜ƒ”–‘—–Š‡
(MA, Ȍ˜‡†…‹†‘Š‘†Ž‹ƒžœ˜‡ƒœžŽƒ†‡Œ–‡”‹‘Ž×‰‹‹–‘Š–‘‘†„‘”—Ǥ„†obie
v rokoch 1956-ͳͻͺͲ„‘Ž‘’‘œƒ«‡±”ý…ŠŽ›”‘œ˜‘Œ‘˜ý’‘«–‘˜‡Œ–‡…Š‹›ǡ–‘”ž
ž Í𣏕˜ý ˜ýœƒ ’”‡ ”‘œ˜‘Œ —‡Ž‡Œ ‹–‡Ž‹‰‡…‹ƒǡ ƒ –ý ƒŒ ‹–‡Ž‹‰‡–ý…Š
•›•–±‘˜Ǥ ”‡Ž‘‘˜ý „‘Ž ”‘ ͳͻ͸ͷ ‡® ’”‘ˆǤ ƒ†‡Š ’”‹æ‹‡Ž • ‘…‡’…‹‘— ˆ—œœ›
‘āÀ ƒ ’‘†’‘”— ‘Šý…Š ’”‡†‘æŽý…Š ƒ–‹˜À–ǡ ®ƒŽ‡Œ ’”‘ˆǤ ‡”„‘• ‘„ŠžŒ‹Ž •˜‘Œ‹
Š ’”ž…— ˜ ”‘— ͳͻ͹͵ ƒ ƒ”˜ƒ”†‡ǡ †‡ ’‘Ž‘ā‹Ž œžŽƒ†› ‡—”א‘˜ý…Š •‹‡–À ƒ ˜
‡’‘•Ž‡†‡Œ ”ƒ†‡ ’”‘ˆǤ ‘ŽŽƒ† ƒ ’”‘ˆ‡•‘”‹ ‘œƒ ƒ ‘Ž†„‡”‰ ȋͳͻ͹ͷȌ ’”‹æŽ‹ •
‡˜‘Ž—«ý‹ ˜ý’‘«–ƒ‹ ƒ‘ ’”‘•–”‹‡†‘ ’”‡ ˜ý‘ï ˜ý’‘«–‘˜ï –‡…Š‹—Ǥ ”‡
58
’”À’ƒ†›ǡ†‡‡˜‹‡‡’”‡‡˜‘Ž—«ý’”‘…‡•†‡ˆ‹‘˜ƒëˆ—…‹—˜Š‘†‘•–‹ǡ•ƒœƒ«ÀƒŒï
˜›—āÀ˜ƒë ‡˜‘Ž—«± ‹–‡”ƒ–À˜‡ •›•–±› œ‘•—ƒ”‹œ‘˜ƒ± ’”‘ˆǤ ƒƒ‰‹ ˜ ”‘—
ʹͲͲͳǤ ‘ƒŽÀ…‹ƒ –ý…Š–‘ –”‘…Š ’”‘•–”‹‡†‘˜ ‡—”‘ǡ ˆ—œœ›ǡ ‡˜‘Ž—«ý…Š ȋ˜”ž–ƒe
‹–‡”ƒ–À˜›…ŠȌ •›•–±‘˜ ˜›–˜‘”‹Žƒ ‘„Žƒ•ëǡ –‘”ž •ƒ ˜‘Žž ý’‘«–‘˜ž –‡Ž‹‰‡…‹ƒ
ȋœžƒƒŒƒ‘•—„•›„‘Ž‹…ž—‡Žž‹–‡Ž‹‰‡…‹ƒȌƒŒ‡’‘•–ƒ˜‡žƒœžŽƒ†‘…Š–œ˜Ǥ
•’žŒƒ‹ƒœ†‘ŽƒŠ‘”‡ƒ„‹‘Ž‘‰‹…‡Œ‹æ’‹”ž…‹‹Ǥý•›„‘Ž‹…ž—‡Žž‹–‡Ž‹‰‡…‹ƒŒ‡
œƒŽ‘ā‡ž ƒ ˆ‘”žŽ‡Œ Ž‘‰‹‡ ƒ •’žŒƒ‹ƒ œŠ‘”ƒ †‘Ž‡Ǥ žŽƒ†‘— ˜Àœ‹‘— —‡Ž‡Œ
‹–‡Ž‹‰‡…‹‡Œ‡’”‘…‡•Ƿƒ—–‘ƒ–‹œž…‹‡Dz”Øœ›…Š’”‘…‡•‘˜ǡ–‘”±”‘„À«Ž‘˜‡Ǥƒý
’”‘…‡•‘Œ‡ƒŒ’”‘‰”ƒ‘˜ƒ‹‡ƒŒ‡Š‘ƒ—–‘ƒ–‹œž…‹ƒǤ‹”ƒ‹…”‘•‘ˆ–˜’‘•Ž‡†‘
‘„†‘„À ˜ý”ƒœ‡ ’‘”‘«‹Žƒ ˜ –‡Œ–‘ ‘„Žƒ•–‹ ƒ ƒ’‘žŠƒ ƒ’Ž‹ž…‹‹ ƒ—–‘ƒ–‹œž…‹‡
’”‘‰”ƒ‘˜ƒ‹ƒǤ ”‘†—–› ‹•—ƒŽ –—†‹‘ ͳͲǡ ‹Ž˜‡”Ž‹‰Š– Ͷ ƒŒï ’”˜› —‡Ž‡Œ
‹–‡Ž‹‰‡…‹‡ ƒ •‡”—Œï  ˜ý”ƒœ‡Œ œ‡‡ ’”‘‰”ƒ‘˜ƒ…À…Š –‡…ŠÀǤ ‡’‘•Ž‡†‡Œ
”ƒ†‡ —‡Žž ‹–‡Ž‹‰‡…‹ƒ ’”‡‹ž ƒŒ †‘ œž„ƒ˜±Š‘ ’”‹‡›•Ž—, kde Microsoft
’”‹…Šž†œƒ•’”‘Œ‡–‘ʹͲͲͻƒŒ‡Š‘‘‡”«±•’—•–‡‹‡Œ‡˜›ŠŽž•‡±
ƒ”‘ʹͲͳͲǤ‡Š‘’‘•–—’±œ†‘‘ƒÍ‘˜ƒ‹‡’”‹‡•‹‡”‡˜‘Ž—«±œ‡›˜‹–‡”ƒ…‹‹
«Ž‘˜‡ Ȃ •–”‘ŒǤ ƒ—ŒÀƒ˜‘•ë‘— –‡”ƒ–À˜›…Š •›•–±‘˜ Œ‡ ƒŒ –‘ǡ ā‡ „—†ï ’”‡’žŒƒë
režŽ‡ƒ˜‹”–—žŽ‡•˜‡–›Ǥ”ÀŽƒ†‘–ƒý…Š–‘æ–ƒ†ƒ”†‹œ‘˜ƒý…Š’Žƒ–ˆ‘”‹‡Œ‡ƒ’”Ǥ
‹††Ž‡™ƒ”‡ ’”‡ ”Øœ‡ ”‘„‘–‹…± ’Žƒ–ˆ‘”› ˜›–˜‘”‡± ’‘† ’‘†’‘”‘— •›•–±—
’”‡ ‘ā‘•ë ˜›—āÀ˜ƒ‹ƒ ”Øœ›…Š ’”‘‰”ƒ‘˜ƒ…À…Š Œƒœ›‘˜Ǥ ‹†Ž‡™ƒ”‡
vznikol v Japonsku v Tsukubeǡ †‡ •ƒ •ƒā‹Ž‹ 斃†ƒ”†‹œ‘˜ƒë ƒ œ‡ˆ‡–À˜‹ë ˜ý˜‘Œ
–‡…Š‘Ž‘‰‹…±Š‘ ˜ý•—— ˜ ‘„Žƒ•–‹ ‘„‹Ž‡Œ ”‘„‘–‹›Ǥ ‡†‡…ý •˜‡– ˜Àƒ ‘˜±
–‡…Š‘Ž×‰‹‡ ƒ‘ •›‡”‰‹— ƒ ž•Ž‡†ï ‘˜‡”‰‡…‹— Ͷ «ƒ•–‹ †‘ Œ‡†±Š‘
‘˜‡”‰‡–±Š‘ …‡Ž— ƒ‘ ƒœƒ«—Œ‡ ‘„”žœ‘ 1. Tieto technol׉‹‡ „› ƒŽ‹ †‘
œƒ«‡Œ‹‡”‹‘˜’Ž›˜‹ë˜ƒŽ‹–—ā‹˜‘–ƒǤ
„”žœ‘ ͳ ǣ ƒŒ†ØŽ‡ā‹–‡Œæ‹‡ •‡”› ˜ý•——ǡ –‘”± „—†ï ƒë †‘’ƒ† ƒ ˜ƒŽ‹–—
ā‹˜‘–ƒÍ—†À
59
ʹǤ–‡Ž‹‰‡–±•›•–±›ƒ Šƒ•–”‘Œ‘˜‡Œ‹–‡Ž‹‰‡…‹‡
‡ˆ‹À…‹ƒ‹–‡Ž‹‰‡–ý…Š•›•–±‘˜Œ‡‡Œ‡†‘–žƒ˜‘˜‡†‡…‘•˜‡–‡˜‡Í‹
”Øœ‘”‘†žǤ ”‘ˆǤ ƒ•ƒ„‘˜ †‡ˆ‹‘˜ƒŽ ͵ œžŽƒ†± ƒ ’‘†•–ƒ–± ˜Žƒ•–‘•–‹
‹–‡Ž‹‰‡–ý…Š•›•–±‘˜ǡƒ–‘ǣ—«‡‹‡ǡƒ”…Š‹˜ž…‹ƒ—Žƒ†ƒ‹ƒœƒŽ‘•–Àǡ˜›—āÀ˜ƒ‹‡
œƒŽ‘•–À ’”‹ ”‹‡æ‡À ’”‘„Ž±—. O’¡ë Œ‡ –— –”‡„ƒ ’‘–˜”†‹ëǡ ā‡ žœ‘”› ƒ
‹–‡Ž‹‰‡–ý•›•–±ž‹ýƒ’”Ǥ‡š’‡”–ƒ‹–‡Ž‹‰‡–±†‘›ƒ‘‡š’‡”–ƒ—‡Žï
inteligenciu. ‘Œ‡•–”‘Œ‘˜ž”‡•’Ǥ—‡Žž‹–‡Ž‹‰‡…‹ƒ„—†‡‡„”ƒëƒ‘•›‘›—
ƒŒ ‡® ’ؘ‘† –ý…Š–‘ ’‘Œ‘˜ Œ‡ ”‘œ†‹‡Ž›Ǥ Í𣏕˜ý ’‘Œ‘ v ‘„‘…Š ’‘†‘„ý…Š
‘„Žƒ•–‹ƒ…Š Œ‡ ’‘Œ‡ —«‡‹ƒǤ «‡‹‡ Œ‡ ‹ƒ‡–ý ƒ †ØŽ‡ā‹–ý ’”˜‘ ‹–‡Ž‹‰‡–±Š‘
•›•–±—Ǥ ’”‹…À’‡ –‡Ž‹‰‡–ý •›•–± ƒ Œ‡Š‘ ˜ý˜‘Œ •ƒ Øā‡ —„‡”ƒë –œ˜Ǥ
ƒ”™‹‘˜•ý ”‡•’Ǥ ƒƒ”…‘˜•ý ’”À•–—’‘Ǥ ý ˜ý˜‘Œ „‹‘Ž‘‰‹…ý…Š
•›•–±‘˜ •ƒ —„‡”ž ƒ”™‹‘˜•ý ’”À•–—’‘ǡ ƒ‘’ƒ –‡…Š‘Ž‘‰‹…± •›•–±› •ƒ
˜›˜ÀŒƒŒïƒƒ”…‘˜•ý˜ý˜‘Œ‘ǡ†‡ ®ƒŽæ‹ƒ‰‡‡”ž…‹ƒ”‡’Ž‹—Œ‡œƒŽ‘•–‹ ’”‹ƒ‘
‘† ’”‡†‘掇Œ ‰‡‡”ž…‹‡ǡ «‘ ‹‡ Œ‡ ‘ā‡ — ƒ”™‹‘˜•±Š‘ ’”À•–—’—Ǥ ‡Í‹
†ØŽ‡ā‹–ý ˆ‡‘±‘ Œ‡ –‡”‡– ƒ tzv. zo•‹‡ë‘˜ƒ± •›•–±› ˜‡†ï…‡  —”«‹–‡Œ
‡‡”‰‡–‡Œ ˆ‘”‡ †‹•–”‹„—‘˜ƒý…Š —Ž–‹ƒ‰‡–‘˜ý…Š •›•–±‘˜Ǥ †‡æ‡Œ †‘„‡
‡’‘–”‡„—Œ‡‡ ˜›˜‹ïë •–”‘Œǡ –‘”ý „—†‡ ˜‡†‹‡ë Ƿ˜æ‡–‘Dz ƒŽ‡ •–”‘Œǡ –‘”ý ‘ā‘
†‹•’‘—Œ‡ • —”«‹–ý ˜ƒ–‘ ‹ˆ‘”ž…‹Àǡ ƒŽ‡ „—†‡ ˜‡†‹‡ë Ƿ˜æ‡–‘Dz žŒ•ë ƒŒ na
–‡”‡–‡Ǥ ’”‹…À’‡ ‹†‡ ‘ •‹—Žž…‹— «‹‘•–‹ «Ž‘˜‡ƒǤ ‡• —ā Œ‡ †ØŽ‡ā‹–± ‘”‡
—”«‹–±Š‘˜ƒ–ƒ˜‡†‘‘•–ÀŠŽƒ˜‡˜‡†‹‡ëǡ†‡‹ˆ‘”ž…‹—žŒ•ëƒŠÍƒ†ƒë•ï˜‹•Ž‘•–‹
ƒ ˜œžŒ‘‘•–‹ ‡†œ‹ œƒŽ‘•ëƒ‹Ǥ ‘ …‹‡Ž‡ —˜ž†œƒ±Š‘ ’”‡†‡–— æ–ƒ „—†ï
’”‘•–”‹‡†› ˜ý’‘«–‘˜‡Œ ‹–‡Ž‹‰‡…‹‡ †‡‘æ–”‘˜ƒ± ƒ ‡š’‡”‹‡–žŽ›…Š
•›•–±‘…Š ǡ ƒ‘ ƒŒ ‹ý…Š •›•–±‘…ŠǤ ‹‡–‘ ‡š’‡”‹‡–žŽ‡ •›•–±› •ï
’”‡ ž• ‹„ƒ „‡…Šƒ”‘˜•± ’”‘•–”‹‡†›ǡ †‡ …Š…‡‡ †‡‘æ–”‘˜ƒë ˜ýŠ‘†‘•ë
‡—”‘ǡˆ—œœ›ǡ‡˜‘Ž—«ý…Šƒ‹–‡”ƒ–À˜›…Š•›•–±‘˜.
–”‘Œ‘˜žȀ—‡Žž ‹–‡Ž‹‰‡…‹ƒ Œ‡ ƒ ”‘œ‡†œÀ ‡†œ‹ ǡ ‘‰‹–À˜›‹
–‡…Š‘Ž×‰‹ƒ‹ ƒ „‹‘Ž‘‰‹…› ‹æ’‹”‘˜ƒý‹ –‡…Š‘Ž×‰‹ƒ‹Ǥ ‡Œ ˜ýœƒ Œ‡ ˜‡Í‹
˜‡Íý ƒ‘͍‘ Œ‡ •…Š‘’ž ’”‹žæƒë ”‡žŽ‡ ”‹‡æ‡‹ƒ ƒ ‡‘‘‹…ý œ‹•Ǥ ± •ï
œžŽƒ†± –‡”‹‘Ž‘‰‹…± ’‘Œ›ǡ –‘”± „› ƒƒā±” ’”‹ ˜ý„‡”‡ –‡…Š‘Ž×‰‹‹ ƒŽ
’‘œƒëǫ ‘„Žƒ•–‹•–”‘Œ‘˜‡Œ‹–‡Ž‹‰‡…‹‡Œ‡˜Š‘†±ƒëœžŽƒ†ï’”‡†•–ƒ˜—ƒ•’‘Ò‘
ƒ•Ž‡†‘˜ý…Š’”‘•–”‹‡†‘…Š•–”‘Œ‘˜‡Œ‹–‡Ž‹‰‡…‹‡ǣ
2.1. Žƒ•‹…ž—‡Žž‹–‡Ž‹‰‡…‹ƒ
Žƒ•‹…ž —‡Žž‹–‡Ž‹‰‡…‹ƒ˜œ‹Žƒ˜ roku 1957 na •‡‹ž”‹ v Dartmouthe
v ǡ †‡ •ƒ †‘Š‘†Ž‹ ƒ žœ˜‡ ‘†„‘”— —‡Žž ‹–‡Ž‹‰‡…‹ƒǤ ‡†œ‹ œžŽƒ†±
prostriedky vtedy ako aj teraz hlavne patria :
‰
”‹‡æ‡‹‡ Š s ‘Š”ƒ‹«‡À : ”‹‡æ‡‹‡ Šǡ œ˜¡«æƒ œƒŽ‘ā‡± a
’”‡ŠÍƒ†ž˜ƒÀǡ œƒŠá҃ ’‘‡”‡ ˜‡Íý ’”‘„Ž±‘˜ý ‘”—Šǣ ’Žž‘˜ƒ‹‡ǡ
—˜ƒā‘˜ƒ‹‡ǡ ”‘œ˜”Š‘˜ƒ‹‡ǡ †‡†—…‹ƒǡ ‹ˆ‡”‡…‹ƒǡ †‘ƒœ‘˜ƒ‹‡ –‡‘”± ƒ’‘†Ǥ
›•–±›’”‡”‹‡æ‡‹‡ïŽ‘Šœ˜›«ƒŒ‡‘„•ƒŠ—Œï–”‹ŠŽƒ˜±‘’‘‡–›ǣ
o †ƒ–ƒ„žœƒǡ –‘”ž ‘„•ƒŠ—Œ‡ †‘•ƒŠ‘˜ƒý …‹‡Í ƒ •ï«ƒ•ý •–ƒ˜ ”‹‡æ‡‹ƒ
Š›
60
o ‘ā‹ƒ‘’‡”ž–‘”‘˜ǡ–‘”±•ƒ’‘—āÀ˜ƒŒïƒƒ‹’—Žž…‹—•†ƒ–ƒ„žœ‘—
ȋƒ’”Ǥ ˜ 情Š— –‘ Øā‡ „›ë ‘ā‹ƒ ’”ƒ˜‹†‹‡Ž ’”‡ 냊ƒ‹‡ •
ˆ‹‰ï”ƒ‹Ȍ
o •–”ƒ–±‰‹ƒ”‹ƒ†‡‹ƒǣ”‘œŠ‘†—Œ‡ǡ–‘”ý‘’‡”ž–‘”’‘—ā‹ëǡ‡†›ƒ†‡
”‹†‘•ƒŠ‘˜ƒÀ•–ƒ‘˜‡±Š‘…‹‡Íƒ •ƒœ˜›«ƒŒ‡’‘•–—’—Œ‡†˜‘ƒœžŽƒ†ý‹
•’Ø•‘„‹ǣ
o ’”‹ƒ‡ —˜ƒā‘˜ƒ‹‡ ȋ†ž–ƒ‹ ”‹ƒ†‡± •›•–±›Ȍǣ ƒ’Ž‹ž…‹ƒ ‘’‡”ž–‘”‘˜
ƒ Œ‘˜± 斔—–ï”›ǡ –‘”± ”‡’”‡œ‡–—Œï ƒ–—žŽ— •‹–—ž…‹— ȋ•–ƒ˜
Š›Ȍǡ ‡†› Œ‡ Š‘— ’”‡–”ƒ•ˆ‘”‘˜ƒë ’‘«‹ƒ–‘«ï •‹–—ž…‹— ƒ
’‘āƒ†‘˜ƒï…‹‡Í‘˜ï
o •’¡–± —˜ƒā‘˜ƒ‹‡ ȋ…‹‡Í‘ ”‹ƒ†‡± •›•–±›Ȍǣ ƒ’Ž‹ž…‹ƒ ‘’‡”ž–‘”‘˜
ƒ ’‘āƒ†‘˜ƒï …‹‡Í‘˜ï •‹–—ž…‹—ǡ ‡†› •ƒ …‹‡Í ’”‡–”ƒ•ˆ‘”—Œ‡ ƒ
jeden alebo viac ’‘† …‹‡Í‘˜ǡ –‘”± Œ‡ Œ‡†‘†—…Šæ‹‡ ”‹‡æ‹ë ƒ –‘”ý…Š
”‹‡æ‡‹‡Œ‡’‘•–ƒ«—Œï…‡’”‡˜›”‹‡æ‡‹‡†ƒ‡ŒïŽ‘Š›Ǥ Tieto pod ciele •ï
’‘–‘®ƒŽ‡Œ”‡†—‘˜ƒ±ǡƒāý‹‡•ï†‘•‹ƒŠ—–±–”‹˜‹žŽ‡ïŽ‘Š›Ǥ
š‹•–—Œï •ƒ‘œ”‡Œ‡ ƒŒ •’Ø•‘„› ˜›—āÀ˜ƒŒï…‡ ‘„‹ž…‹— —˜‡†‡ý…Š
’”À•–—’‘˜Ǥ ý•Ž‡†› –‡Œ–‘ ‘„Žƒ•–‹ •‹ ƒæŽ‹ 拔‘± —’Žƒ–‡‹‡ ƒ’”Ǥ ˜
•›•–±‘…Š ’”‡ ˜ý„‡” ƒ •’”ƒ…‘˜ƒ‹‡ ‹ˆ‘”ž…‹‹ ȋ‹ˆ‘”ƒ–‹‘ ”‡–”‹‡˜ƒŽȌǡ
’‘”‘œ—‡‹‡’”‹”‘†œ‡±Š‘Œƒœ›ƒǡ†‘ƒœ‘˜ƒ‹‡ƒ–‡ƒ–‹…ý…Š–‡‘”±ǡƒŽ‡
ƒŒ˜‘„Žƒ•–‹”‘„‘–‹›ƒ˜‡š’‡”–ý…Š•›•–±‘…ŠǤ
‰
‡š’‡”–± •›•–±›ǣ •ï ’”‘‰”ƒ› ’”‡ ”‹‡æ‡‹‡ Šǡ –‘”± •ï ƒ–‘͍‘
‘’Ž‡š±ƒæ’‡…‹ˆ‹…±ǡā‡‹…ŠŒ‡•…Š‘’ý—•’‘‘Œ‹˜‘”‹‡æ‹ë‹„ƒæ’‡…‹ƒŽ‹•–ƒ˜
danom odbore - ‡š’‡”–Ǥš’‡”–±•›•–±›•ïœƒŽ‘ā‡±ƒ›æŽ‹‡‡˜›—ā‹ë
œƒŽ‘•–‹ǡ ’”‡˜œƒ–± ‘† «Ž‘˜‡ƒǡ ’”‹ ”‹‡æ‡À ”‡Žƒ–À˜‡ ‘ 撇…‹ƒŽ‹œ‘˜ƒ±Š‘
‘”—Š— Šǡ ˜›āƒ†—Œï…‹…Š Œ‡Š‘ ‡š’‡”–± •…Š‘’‘•–‹Ǥ ”‹–‘ •ƒ ’‘āƒduje,
ƒ„› ”‹‡æ‡‹‡ǡ –‘”± ’”‘†——Œ‡ ‡š’‡”–ý •›•–±ǡ „‘Ž‘ ˜‡Í‹ ’‘†‘„±
”‹‡æ‡‹—ǡ — –‘”±— „› ˜ †ƒ‘ ’”À’ƒ†‡ †‘•’‡Ž ‡š’‡”– ƒ ƒ„› ‡š’‡”–ý
•›•–± ˜‡†‡Ž ‘†Ø˜‘†‹ë •˜‘Œ‡ ”‘œŠ‘†—–‹‡Ǥ ‘ ˜æ‡‘„‡…‘•–‹ ‘ā‘
‡š’‡”–ý•›•–±’‘’À•ƒëƒ‘•›•–±œŽ‘ā‡ýœƒ•Ž‡†—Œï…‹…Š‘’‘‡–‘˜ǣ
o ‹ˆ‡”‡«ý ‡…Šƒ‹œ—•ǣ –˜‘”À Œƒ†”‘ ‡š’‡”–±Š‘ •›•–±— ƒ •
˜›—ā‹–À „žœ› ˜‡†‘‘•–À ’‘ ƒā†‡Œ ‘†’‘˜‡†‹ œ „žœ› Œ‘˜
—’”‡•Ò—Œ‡ƒ–—žŽ›‘†‡Ž‘”±–‡Š‘‘œ—Ž–‘˜ƒ±Š‘’”À’ƒ†—ƒ˜
œž˜‹•Ž‘•–‹ ‘† •–ƒ˜— tohto ‘†‡Ž— Žƒ†‹‡ ®ƒŽæ‹— ‘–žœ—Ǥ †‹ƒŽ×‰— •
’‘—āÀ˜ƒ–‡Í‘ Œ‡ ‹‹…‹ƒ–À˜ƒ ƒ •–”ƒ‡ •›•–±— ƒ •Ž‡† ‘–žœ‘ ‹‡ Œ‡
’‡˜‡ ƒ’”‘‰”ƒ‘˜ƒý - •›•–± ˜›„‡”ž ƒ œžŽƒ†‡ †‘–‡”ƒŒæÀ…Š
‘†’‘˜‡†À’‘—āÀ˜ƒ–‡Íƒ˜ā†›ƒŒ”‡Ž‡˜ƒ–‡Œæ‹—‘–žœ—Ǥ
o „žœƒï†ƒŒ‘˜ǣŒ‡–˜‘”‡ž‘†’‘˜‡®ƒ‹’‘—āÀ˜ƒ–‡ÍƒǡœÀ•ƒý‹‘„˜›Ž‡
˜ ’”‹‡„‡Š— †‹ƒŽ×‰—Ǥ ‹‡–‘”ý…Š ƒ’Ž‹ž…‹ž…Š •ƒ «ƒ•ë „žœ› Œ‘˜
œÀ•ƒ˜ƒ ’”‹ƒ‘ •ÀƒÀ Œ‘˜ œ ‘„Œ‡–—ǡ –‘”ý Œ‡ ’”‡†‡–‘
‡š’‡”–Àœ›Ǥ
61
o ˜›•˜‡–Í‘˜ƒ…À ‡…Šƒ‹œ—•ǣ ’‘—āÀ˜ƒ–‡Í ž ‘ā‘•ë ‡†›‘͘‡
’”‡˜œ‹ƒë ˜ †‹ƒŽ×‰— ‹‹…‹ƒ–À˜— ƒ ˜›ā‹ƒ†ƒë •‹ ˜›•˜‡–Ž‡‹‡ ̶—˜ƒā‘˜ƒ‹ƒ̶
•›•–±—ȋ’”‡«‘„‘Žƒ’‘Ž‘ā‡ž’”ž˜‡–ž–‘‘–žœƒǡƒ‘†‘•’‡Ž•›•–±
‹‡–‘”±— œž˜‡”—ǡ ƒý Œ‡ ‘‡–žŽ› •–ƒ˜ ”‹‡æ‡‹ƒ ‘”±–‡Š‘
’”‘„Ž±—ƒ–®ǤȌ
o „žœƒ˜‡†‘‘•–Àǣ˜›–˜ž”ƒŒ—œƒŽ‘•–ý‹ā‹‹‡”ƒœžŽƒ†‡‹ˆ‘”ž…‹Àǡ
œÀ•ƒý…Š ‘† ‡š’‡”–ƒ ƒ ’”‡†•–ƒ˜—Œ‡ ˆ‘”ƒŽ‹œ‘˜ƒ± ƒ œƒ×†‘˜ƒ±
˜‡†‘‘•–‹Í—†•±Š‘æ’‡…‹ƒŽ‹•–—œ†ƒ‡Œ’”‘„Ž±‘˜‡Œ‘„Žƒ•–‹Ǥ
š’‡”–± •›•–±› •‹ ƒæŽ‹ 拔‘± —’Žƒ–‡‹‡ ’”‹ ”‹‡æ‡À †‹ƒ‰‘•–‹…ý…Šǡ
Žƒ•‹ˆ‹ƒ«ý…Šǡ ”‘œ˜”Š‘˜ƒ…À…Š ƒ ’Žž‘˜ƒ…À…Š Šǡ «ƒ•–‘ •ï ”‘œŠ‘†‘˜ƒ…‘—
•ï«ƒ•ë‘—œŽ‘ā‹–ý…Š”‹adiacich komplexov.
2.2. ý’‘«–‘˜ž‹–‡Ž‹‰‡…‹ƒ
ý’‘«–‘˜ž ‹–‡Ž‹‰‡…‹ƒ •ƒ œƒ«ƒŽƒ ”‘œ˜ÀŒƒë ŠŽƒ˜‡ ˜ ‘„†‘„À ”‘œ˜‘Œƒ ˜ý’‘«–‘˜‡Œ
–‡…Š‹› ƒ‘͍‘ ž”‘› ƒ ˜ý’‘«–‘˜± ƒ’ƒ…‹–› •‹ ‹‘”‹ƒ†‡ ˜‡Í±Ǥ ‡†œ‹
œžŽƒ†±’”‘•–”‹‡†›˜ý’‘«–‘˜‡Œ‹–‡Ž‹‰‡…‹‡œƒ”ƒ®—Œ‡‡:
‰
‡—”א‘˜± •‹‡–‡ǣ ’”‡†•–ƒ˜—Œï œŒ‡†‘†—懐ý ˆ‘”žŽ› ‘†‡Ž „‹‘Ž‘‰‹…ý…Š
‡—”א‘˜ ƒ ‹…Š •‹‡–ÀǤ ,‹‘•ë ‡—”א‘˜ý…Š •‹‡–À ‘ā‘ ”‘œ†‡Ž‹ë †‘ †˜‘…Š
œžŽƒ†ý…Šˆžœǣ
o ˆžœƒ —«‡‹ƒǡ ‡†› •ƒ †‘ •‹‡–‡ —Žƒ†ƒŒï œƒŽ‘•–‹ ‘†‹ˆ‹ž…‹‘—
•›ƒ’–‹…ý…Š˜žŠȋ‡—”א‘˜ý…Š•’‘Œ‡ÀȌ
o ˆžœƒ ā‹˜‘–ƒǡ ‡†› •ƒ œÀ•ƒ± œƒŽ‘•–‹ ˜›—āÀ˜ƒŒï ˜ ’”‘•’‡…Š ”‹‡æ‡‹ƒ
’”‘„Ž±—ǡ’”‡–‘”ýŒ‡•‹‡ë—”«‡ž
‘†•–ƒ–‘— ˜Žƒ•–‘•ë‘— ‡—”א‘˜ý…Š •‹‡–À Œ‡ ’”ž˜‡ —«‡‹‡ǡ –‘”± ‘ā‘ ˜‘
˜æ‡‘„‡…‘•–‹”‘œ†‡Ž‹ëƒ†˜ƒœžŽƒ†±–›’›ǣ
o ‘–”‘Ž‘˜ƒ± —«‡‹‡ǣ —«‡‹‡•—«‹–‡Í‘ȋ•—’‡”˜‹•‡†Ž‡ƒ”‹‰Ȍǡ ‡†›
— ƒā†‡Œ ˜•–—’‡Œ —«‹ƒ…‡Œ ȋ–”±‘˜ƒ…‡ŒȌ ‹ˆ‘”ž…‹‹ —«‹–‡Í —”«À
’”À•Ž—æï ˜ý•–—’ï ‹ˆ‘”ž…‹—Ǥ ‡—”א‘˜ž •‹‡ë •ƒ –‡†ƒ •ƒāÀ
”‘œ’‘œž˜ƒë ˜•–—’› ƒ œƒ–”‹‡®‘˜ƒë ‹…Š –ƒǡ ƒ‘ –‘ „‘Ž‘ ’‘˜‡†ƒ±
—«‹–‡Í‘
o ‡‘–”‘Ž‘˜ƒ±—«‡‹‡ǣ—«‡‹‡•„‡œ—«‹–‡Íƒȋ—•—’‡”˜‹•‡†Ž‡ƒ”‹‰Ȍǡ
‡†›‘ā‘•‹‡–‹˜’”‘…‡•‡—«‡‹ƒ’‘ï—ë‹„ƒ˜•–—’±‹ˆ‘”ž…‹‡
ƒ•ƒ‘–ž•‹‡ë—”«—Œ‡˜ý•–—’Ǥ”ƒ–‹…›‹†‡‘•’”ƒ…‘˜ƒ‹‡˜•–—’ý…Š
‹ˆ‘”ž…‹À’‘†Íƒ—”«‹–ý…Šœž‘‹–‘•–ÀǤ
62
’Ž‹‘˜ƒ–‡Í‘•ë ‡—”א‘˜ý…Š •‹‡–À ˜›…Šž†œƒ œ ‹…Š œžŽƒ†ý…Š ˜Žƒ•–‘•–ÀǤ
‡†‘— œ ƒŒ˜ýœƒ‡ŒæÀ…Š Œ‡ ˆƒ–ǡ ā‡ ‡—”א‘˜ž •‹‡ë Œ‡ —‹˜‡”œžŽ›
ƒ’”‘š‹ž–‘”‘ ˆ—…‹‡ ȋ‘ā•–˜‘ ’”‘„Ž±‘˜ Œ‡ ‘ā± ’”‡ˆ‘”—Ž‘˜ƒë ƒ‘
‡œž‡ ˆ—…‹‡ •‘ œž›‹ ˜ý•–—’‹ǡ ’”À’Ǥ ƒŒ ˜•–—’‹Ǣ ‡—”א‘˜ï •‹‡ë
’‘–‘ ‘ā‘ …Šž’ƒë ƒ‘ ‘Š‘ ’ƒ”ƒ‡–”‹…ý •›•–±ǡ –‘”ý •ƒ •ƒāÀ
‹†‡–‹ˆ‹‘˜ƒë ˆ—…‹— ”‡’”‡œ‡–—Œï…— ”‹‡æ‡ý ’”‘„Ž± ƒ•–ƒ˜‡À ƒ
ƒ†ƒ’–ž…‹‘— •˜‘Œ‹…Š ’ƒ”ƒ‡–”‘˜ȌǤ ‡—”א‘˜± •‹‡–‡ •ƒ ‡ˆ‡–À˜‡ ˜›—āÀ˜ƒŒï ’”‹
”‹‡æ‡‹‡ ’”‘„Ž±‘˜ ˜ ‘„Žƒ•–‹ƒ…Š Žƒ•‹ˆ‹ž…‹‡ǡ ”‹ƒ†‡‹ƒ ’”‘…‡•‘˜ǡ predikcie,
ƒ’”‘š‹ž…‹‡ǡ•’”ƒ…‘˜ƒ‹ƒ•‹‰žŽ‘˜ƒ’‘†Ǥ
‰
ˆ—œœ› •›•–±›ǣ •ï •›•–±› ’‘•–ƒ˜‡± ƒ „žœ‡ ˆ—œœ› Ž‘‰‹› ƒ† –œ˜Ǥ ˆ—œœ›
‘ā‹ƒ‹ ƒ —‘āҗŒï ̶’”‡•‡ ƒ”ž„ƒë • ‡’”‡•‘— ‹ˆ‘”ž…‹‘—̶Ǥ —œœ›
‘ā‹ƒǡ ƒ ”‘œ†‹‡Ž ‘† Žƒ•‹…ý…Š ‘āÀǡ –‘”± ’”‡†•–ƒ˜—Œï ’”‡•±
˜›‡†œ‡‹‡ǡ ‡’”ƒ…—Œ‡ • ‘•–”ý ˜›‡†œ‡ÀǤ ý”ƒœ› ’ƒ–”‹ëȀ‡’ƒ–”‹ë †‘
‘ā‹› •ï ”‡’”‡œ‡–‘˜ƒ± ˆ—…‹‘— ’”À•Ž—搑•–‹ǡ –‘”ž †ž˜ƒ ˆ—œœ›
‘ā‹‡ˆŽ‡š‹„‹Ž‹–—˜‘†‡Ž‘˜ƒÀ„‡āý…Š–œ˜ǤŽ‹‰˜‹•–‹…ý…Š˜ý”ƒœ‘˜ȋƒ’”Ǥ
ƒŒ‡–‡’Ž‘–ƒÀœƒǡ‹œ„‘˜žǡ˜›•‘žƒ’‘†Ǥǡ ˆ—…‹ƒ’”À•Ž—搑•–‹’”‡‘”±–—
Š‘†‘–—’”‡‡‡Œ–‡’Ž‘–›—”«Àǡdo akej miery Œ‡Àœƒǡ‹œ„‘˜žǡ˜›•‘žƒ’‘†Ǥ
ȌǤ —œœ› •›•–±› ˜‘ ˜æ‡‘„‡…‘•–‹ ’”ƒ…—Œï • ”Øœ›‹ –›’‹ ˆ—…‹À
’”À•Ž—搑•–‹ ȋ–”‘Œ—Š‘ŽÀ‘˜žǡ Ž‹…Š‘„‡āÀ‘˜žǡ 3-ˆ—…‹ƒǡ ǤǤǤȌ ƒ ’‘—āÀ˜ƒŒï
撇…‹žŽ‡ ‘’‡”ž…‹‡ ȋ”Øœ‡ –›’› -noriem a T-…‘‘”‹‡Ȍ ’”‡ ’”ž…— • ˆ—œœ›
‘ā‹ƒ‹Ǥ ’”ƒš‹ •ƒ „‘Šƒ–‘ —’Žƒ–‹Ž‹ ˜ØŽ‹ ‘ā‘•–‹ ’”ž…‡ • ’”ƒ˜‹†Žƒ‹
typu if-–Š‡ǡ • „žœƒ‹ œƒŽ‘•–À ƒ †ž–ǡ ŠŽƒ˜‡ ˜ ’‘†‘„‡ ˆ—œœ› ”‡‰—Žž–‘”‘˜ ƒ
fuzzy exp‡”–ý…Š•›•–±‘˜Ǥ
‰
•›•–±› œƒŽ‘ā‡± ƒ ‡˜‘Žï…‹‹ǣ ‡š‹•–—Œ‡ ‘ā•–˜‘ ”Øœ›…Š –›’‘˜ ’”À•–—’‘˜
˜›—āÀ˜ƒŒï…‹…Š ‡˜‘Žï…‹—ǡ ’”‡–‘ ˜ ƒ•Ž‡†—Œï…‘ –‡š–‡ •ƒ ˜ØŽ‹ Œ‡†‘†—…Š‘•–‹
„—†ï —˜‡†‡± –›’› ‘œƒ«‘˜ƒë –‡”À‘ ‡˜‘Ž—«± ƒŽ‰‘”‹–›Ǥ ˜‘Ž—«±
algoritmy teda patria medz‹ ’”‡ŠÍƒ†ž˜ƒ…‹‡ ƒŽ‰‘”‹–›ǡ –‘”± -bodovo
’”‡ŠÍƒ†ž˜ƒŒï ’”‹‡•–‘” ”‹‡æ‡À œƒ 難Ž‘ žŒ†‡‹ƒ Œ‡†±Š‘ǡ ”‡•’Ǥ ˜‹ƒ…‡”ý…Š
”‹‡æ‡Àǡ ˜›—āÀ˜ƒŒï… –œ˜Ǥ ’‘’—Žž…‹— ”‹‡æ‡À ȋ „‘†‘˜ǡ • –‘”ý…Š ƒā†ý
’”‡†•–ƒ˜—Œ‡”‹‡æ‡‹‡ȌǤ‡†‘”‹‡æ‡‹‡Œ‡”‡’”‡œ‡–‘˜ƒ±Œ‡†ýŒ‡†‹…‘ v
’‘’—Žž…‹‹ƒ•ïƒ‡Š‘Žƒ†‡±†˜‡œžŽƒ†±’‘ā‹ƒ†ƒ˜›ǣ
o ”‹‡æ‡‹‡ ‡˜‘Ž—«±Š‘ ƒŽ‰‘”‹–— Ȃ jedinec Ȃ —•À ’‘œ‘•–ž˜ƒë œ‘
œŽ‘ā‹‡ǣ ƒā†ý Œ‡†‹‡… ”‡’”‡œ‡–—Œ‡ Œ‡†‘ ”‹‡æ‡‹‡ ’”‘„Ž±—
pomocou gene–‹…±Š‘×†—ǡ–‘”ý’”‡†•–ƒ˜—Œ‡’ƒ”ƒ‡–”‡”‹‡æ‡‹ƒƒ
‹…Š‘”±–ne hodnoty
†”—Š‘— ’‘ā‹ƒ†ƒ˜‘— Œ‡ ’‘–”‡„ƒ —”«‘˜ƒ‹ƒ ˜ƒŽ‹–› ƒā†±Š‘ ”‹‡æ‡‹ƒǡ «‘
•ƒ ˜›‘ž˜ƒ ˜ ƒā†‘ …›Ž‡ ”‹‡æ‡‹ƒ Š›ǡ –‡†ƒ ˜ ƒā†‡Œ ‰‡‡”ž…‹‹
‡˜‘Ž—«±Š‘ ’”‘…‡•—Ǥ ƒā†‡Œ ‰‡‡”ž…‹‹ ‡˜‘Ž—«±Š‘ ƒŽ‰‘”‹–— •ƒ
ƒ’Ž‹—Œï ƒ Œ‡†‘–Ž‹˜ý…Š Œ‡†‹…‘˜ –œ˜Ǥ ‰‡‡–‹…± ‘’‡”ž–‘”› ȋ”Øœ‡ –›’›
—–ž…‹‡ ƒ ”Àā‡‹ƒǢ —–ž…‹ƒǣ œ‡ƒ Œ‡†±Š‘ ’ƒ”ƒ‡–”ƒ ‰‡‡–‹…±Š‘
×†—Ǣ ”Àā‡‹‡ǣ ˜ý‡ƒ …‡Žý…Š «ƒ•–À ‰‡‡–‹…±Š‘ ×†—Ȍǡ –‘”± •’Ø•‘„‹ƒ
œ‡— Œ‡†‘–Ž‹˜ý…Š ”‹‡æ‡À ƒ œž”‘˜‡Ò œ‡— ‹…Š ˜ƒŽ‹–›Ǥ ‘‘…‘— –œ˜Ǥ
•‡Ž‡«±Š‘‡…Šƒ‹œ—•ƒ˜›„‡”‹‡ƒŒŽ‡’æÀ…Š”‹‡æ‡Àǡ–‘”±’‘•–—’—Œï
†‘ƒ•Ž‡†—Œï…‡Œ‰‡‡”ž…‹‡Ǥ
63
”‡…Š‘† ‘† •–ƒ”‡Œ ‘ā‹› „‘†‘˜ ˜ ’”‡ŠÍƒ†ž˜ƒ‘ ’”‹‡•–‘”‡ •ƒ †‡Œ‡
’•‡—†‘žŠ‘†‡ǡ žŠ‘†‘•ë ‹‡ Œ‡ ’‘‡…Šƒž ̶„‡œ †‘œ‘”—̶Ǥ ‘’À”—Œï…
‡˜‘Ž—«ý ’”‹…À’ ˜ ’”À”‘†‡ǡ žŠ‘†± œ‡› ȋœ˜¡«æƒ ƒŽ±Ȍǡ –‘”± ˜›ƒœ—Œï
̶†‘„”ý ˜’Ž›˜̶ ƒ ”‹‡æ‡‹‡ ‘•–ž˜ƒŒïǡ ‹± Š‘”拇 œƒ‹ƒŒïǤ ”˜ƒŽ± ’Ø•‘„‡‹‡
’”‹”‘†œ‡±Š‘ ˜ý„‡”— ƒ ˜ý„‡”— ‘†…ŠýŽ‘ •’Ø•‘„—Œ‡ ‡š‹•–‡…‹— ‡˜‘Ž—«±Š‘
–Žƒ— ƒ —‘āҗŒ‡ žŒ†‡‹‡ ƒŒŽ‡’拇Š‘ǡ ’”À’ƒ†‡ ˜‹ƒ…‡”ý…Š ˜›Š‘˜—Œï…‹…Š
”‹‡æ‡ÀǤ ›•–±› œƒŽ‘ā‡± ƒ ‡˜‘Žï…‹‹ ƒŒï 拔‘± —’Žƒ–‡‹‡ ŠŽƒ˜‡ ˜
‘„Žƒ•–‹‘’–‹ƒŽ‹œƒ«ý…ŠïŽ‘ŠǤ
‰
•›•–±› ƒ „žœ‡ —‡Ž±Š‘ ā‹˜‘–ƒǣ —‡Žý ā‹˜‘– ‘ā‘ †‡ˆ‹‘˜ƒë ƒ‘
˜æ‡‘„‡…ï‡–׆—ǡ–‘”‡Œ’‘†•–ƒ–‘—Œ‡‰‡‡”‘˜ƒëœ…Š‘˜ƒ‹ƒŒ‡†‘†—…Šý…Š
‹”‘•‘’‹…ý…Š •’‘Ž—’”ƒ…—Œï…‹…Š ’”˜‘˜
–ƒ± …Š‘˜ƒ‹‡ ƒ
ƒ”‘•‘’‹…‡Œ ˜‹ǡ –‘”± Œ‡ ‘ā± ‹–‡”’”‡–‘˜ƒë ƒ‘ ’”‡Œƒ˜ ā‹˜‘–ƒǤ
‡Žýā‹˜‘–’”ƒ–‹…›’‘•›–—Œ‡‘ā‘•ë˜›—ā‹–‹ƒæ‹”‘‡ŒæžŽ›‡˜‘Ž—«ý…Š
–‡×”‹Àǡ’”À’ƒ†‡‹…Š‘„‹ž…‹À’”‹•‹—Žž…‹‹œŽ‘ā‹–ý…Š•›•–±‘˜Ǥ‹”–—žŽ‡
prostredie simulƒ«ý…Š’”‘•–”‹‡†‘˜—‡Ž±Š‘ā‹˜‘–ƒ—‘āҗŒ‡ƒœžŽƒ†‡
‡š’‡”‹‡–‘˜•Ž‡†‘˜ƒë†ŽŠý’”‘…‡•‡˜‘Žï…‹‡œƒ˜‡Í‹”ž–›«ƒ•Ǥ’Ž‹ž…‹‡
•›•–±‘˜ ƒ „žœ‡ —‡Ž±Š‘ ā‹˜‘–ƒ ˜›—āÀ˜ƒ ƒ ”‹‡æ‡‹‡ •‹—Žƒ«ý…Š ƒ
’”‡†‹«ý…ŠïŽ‘Š‘ā•–˜‘†‹•…‹’ŽÀǡƒ’”Ǥ„‹‘Ž×‰‹ƒǡ‡‘Ž×‰‹ƒǡƒ–”‘’‘Ž×‰‹ƒǡ
‡‘×‹ƒǡ‰‡‘‰”ƒˆ‹ƒǡƒŽ‡ƒŒ’”‹‡›•‡ŽǤ
ʹǤ͵Ǥ‹•–”‹„—‘˜ƒž—‡Žž‹–‡Ž‹‰‡…‹ƒ
ƒ œžŽƒ†‡ ”ý…ŠŽ‡Š‘ ˜ý˜‘Œƒ ˜ ‘„Žƒ•–‹ •–”‘Œ‘˜‡Œ ‹–‡Ž‹‰‡…‹‡ •ƒ Œƒ˜À „›ë †ØŽ‡ā‹–ý
†‡Ž‡‹‡ •›•–±‘˜ ƒ œžŽƒ†‡ •–—’Òƒ …‡–”ƒŽ‹œž…‹‡ǡ ”‡•’Ǥ †‡…‡–”ƒŽ‹œž…‹‡ǡ • «Àm
•ï˜‹•À ƒŒ ˜œ‹ distribuovanej umelej inteligencie. ž–‘ –˜‘”À ’”‹‡‹ ‡†œ‹
†‹•–”‹„—‘˜ƒý‹˜ý’‘«–ƒ‹ƒ—‡Ž‘—‹–‡Ž‹‰‡…‹‘—Ǥ‹•–”‹„—‘˜ƒ±˜ý’‘«–›‡š‹•–—Œï
–ƒ†ŽŠ‘ǡƒ‘Œ‡‘ā±”‘œ†‡Ž‹ë”‹‡æ‡‹‡Œ‡†±Š‘˜ý’‘«–‘˜±Š‘’”‘„Ž±—ƒ˜‹ƒ…‡”‘
procesorov, pri«‘ ŠŽƒ˜‘— Š‘— „‘Ž‘ ”‹‡æ‡‹‡ ’ƒ”ƒŽ‡Ž‹œž…‹‡ ƒ •›…Š”‘‹œž…‹‡
–ý…Š–‘ ˜ý’‘«–‘˜Ǥ ‹•–”‹„—‘˜ƒž —‡Žž ‹–‡Ž‹‰‡…‹ƒ ˜œ‹Žƒ ƒ’Ž‹ž…‹‘—
†‹•–”‹„—‘˜ƒý…Š ˜ý’‘«–‘˜ ˜ ’”‘•–”‹‡†‘…Š —‡Ž‡Œ ‹–‡Ž‹‰‡…‹‡Ǥ ƒ ”‘œ†‹‡Ž ‘†
†‹•–”‹„—‘˜ƒý…Š ˜ý’‘«–‘˜ „‘Žƒ †‹•–”‹„—‘˜ƒž —‡Žž ‹–‡Ž‹‰‡…‹ƒ œƒ‡”ƒž ƒ
”‹‡æ‡‹‡ ’”‘„Ž±‘˜ǡ ‘‘”†‹ž…‹— ƒ ‘—‹ž…‹— ‘’”‘–‹ Àœ‘˜Ò‘˜‡Œ
’ƒ”ƒŽ‡Ž‹œž…‹‹ ƒ •›…Š”‘‹œž…‹‹Ǥ ‘œ˜‘Œ ˜ ‘„Žƒ•–‹ ƒƒā‡–— ‹ˆ‘”ž…‹À •’Ø•‘„‹Ž
”‘œ†‡Ž‡‹‡ †‹•–”‹„—‘˜ƒ‡Œ —‡Ž‡Œ ‹–‡Ž‹‰‡…‹‡ ƒ ’ƒ”ƒŽ‡Žï —‡Žï ‹–‡Ž‹‰‡…‹—ǡ
†‹•–”‹„—‘˜ƒ± ‡š’‡”–± •›•–±›ǡ ‡•Ø” †‹•–”‹„—‘˜ƒ± „žœ› œƒŽ‘•–Àǡ
†‹•–”‹„—‘˜ƒ± ”‹‡æ‡‹‡ ’”‘„Ž±‘˜ ƒ’‘†Ǥ •ï«ƒ•‘•–‹ •ƒ ˜æƒ ƒŒ«ƒ•–‡Œæ‹‡ ‘ā‘
•–”‡–ï땆‡Ž‡À†‹•–”‹„—‘˜ƒ‡Œ—‡Ž‡Œ‹–‡Ž‹‰‡…‹‡ƒ†˜‡–”‹‡†›ǣ
‰
†‹•–”‹„—‘˜ƒ± ”‹‡æ‡‹‡ ’”‘„Ž±‘˜ǣ •ï˜‹•À • ƒƒā‡–‘ ‹ˆ‘”ž…‹Àǡ
†‡‘’‘œÀ…‹‘— ƒ †‹•–”‹„—‘˜ƒÀ Š ƒȀƒŽ‡„‘ •›–±œ‘— ”‹‡æ‡À ȋ˜ –‘–‘
–›’‡ •›•–±‘˜ •ƒ Žƒ†ï ’‘‡”‡ ˜›•‘± ž”‘› ƒ ‘’ƒ–‹„‹Ž‹–—
Œ‡†‘–Ž‹˜ý…Š”‹‡æ‹ƒ…‹…Š‡–À–ǡ–‘”ý•ƒ«‹ƒ•–‘˜±ïŽ‘Š›†‹•–”‹„——ŒïȌ
64
‰
—Ž–‹ƒ‰‡–‘˜±•›•–±›ǣ•ï˜‹•‹ƒ•‘‘”†‹ž…‹‘—ƒƒƒā‡–‘•’”ž˜ƒ‹ƒǡ˜
•ï˜‹•Ž‘•–‹ • –ý–‘ –›’‘ •›•–±‘˜ ˜œ‹ž ’‘–”‡„ƒ œƒ˜‡†‡‹ƒ ‘˜±Š‘
pojmu: agentǡ –‘”ý ‘ā‘ ˜‘ ˜æ‡‘„‡…‘•–‹ ’‘’À•ƒë ƒ‘ ƒ—–‘×—
‹–‡Ž‹‰‡–ï ”‹‡æ‹ƒ…— Œ‡†‘–— •›•–±—Ǥ ƒ ”‘œ†‹‡Ž ‘† •›•–±‘˜
†‹•–”‹„—‘˜ƒ±Š‘”‹‡æ‡‹ƒïŽ‘Šǡ˜—Ž–‹ƒ‰‡–‘˜ý…Š•›•–±‘…Š‹‡•ïŽƒ†‡±
˜›•‘± ’‘ā‹ƒ†ƒ˜› ƒ Œ‡†‘–Ž‹˜± ”‹‡æ‹ƒ…‡ ‡–‹–›-ƒ‰‡–‘˜ǡ ƒ‰‡–‹ ƒŒï
–‡†‡…‹—˜œžŒ‘‡‘—‹‘˜ƒëƒ‘‘’‡”‘˜ƒëǡ•’”ž˜ƒ‹‡Œ‡†±Š‘ƒ‰‡–ƒ
Œ‡ œ˜›«ƒŒ‡ ‘‘Š‘ Œ‡†‘†—…Šæ‹‡ ƒ‘ ‘’Ž‡š ˜œžŒ‘ý…Š ‹–‡”ƒ…‹À
ƒ‰‡–‘˜ ƒ ‰Ž‘„žŽ‡ •’”ž˜ƒ‹‡ •ƒ …‡Ž±Š‘ •›•–±— ȋ•—’‹› ‹–‡”ƒ‰—Œï…‹…Š
agentov).
‡–”ƒŽ‹œž…‹ƒǡ ”‡•’Ǥ •–—’‡Ò †‡…‡–”ƒŽ‹œž…‹‡ •ƒ ˜ •ï«ƒ•‘•–‹ Œƒ˜À „›ë Œ‡†‘— œ
Í𣏕˜ý…Š ˜Žƒ•–‘•–À ’”‹ ž˜”Š— •›•–±— •‘ •–”‘Œ‘˜‘— ‹–‡Ž‹‰‡…‹‘—Ǥ ‘
˜æ‡‘„‡…‘•–‹‘ā‘˜›‡†œ‹ëǣ
‰
…‡–”ƒŽ‹œ‘˜ƒ± •›•–±›ǣ …‡–”žŽ‡ ”‹ƒ†‡± •›•–±› ȋ–‹‡ā •›•–±› ƒ „žœ‡
Œ‡†±Š‘ ƒ‰‡–ƒȌǤ ,‹ƒ•–‘˜ý ”‹‡æ‹ƒ…‹ Œ‡†‘–ž ȋœ˜›«ƒŒ‡
撇…‹ƒŽ‹œ‘˜ƒý
‘†—Ž‘Ȍ
•ƒ
†‹•–”‹„——Œï
«‹ƒ•–‘˜±
Š›
†‡‘’‘‘˜ƒ±Š‘ ‰Ž‘„žŽ‡Š‘ ’”‘„Ž±—ǡ –‘”± •ƒ ’‘ ˜›”‹‡æ‡À
‘†‘˜œ†ž˜ƒŒï ‘’¡ë ˜›ææÀ ˜‹ƒ ”‹ƒ†‡‹ƒǡ †‡ ȋƒ Œ‡ ’‘–”‡„±Ȍ •ï
•›–‡–‹œ‘˜ƒ±Ǥ
‰
†‹•–”‹„—‘˜ƒ± •›•–±› ȋ–‹‡ā —Ž–‹-ƒ‰‡–‘˜± •›•–±›Ȍǣ ”‹ƒ†‡‹‡ •›•–±— Œ‡
†‹•–”‹„—‘˜ƒ±Œ‡†‘–Ž‹˜ýƒ—–‘×›ƒ‰‡–‘ƒŒ‡”‡ƒŽ‹œ‘˜ƒ±ƒ„žœ‡
‹…Š ˜œžŒ‘ý…Š ‹–‡”ƒ…‹Àǡ œƒŠá҃Œï…‹…Š ‘—‹ƒ«± ƒ ‘‘’‡”ƒ–À˜‡ ƒ–›
ȋ•’‘Ž‘«ý’”‘„Ž±Œ‡”‹‡æ‡ý‘‘’‡”ž…‹‘—‡œž˜‹•Žý…Š”‹‡æ‹ƒ…‹…ŠŒ‡†‘–‹‡ǡ
’”‹«‘•ƒ‘–ý’”‹‡„‡Š”‹‡æ‡‹ƒ•’‘Ž‘«‡ŒïŽ‘Š›‹‡Œ‡”‹ƒ†‡ý…‡–”žŽ‡ȌǤ
3. ‘˜±˜ýœ˜›strojovej/umelej inteligencie v –‡Ž‹‰‡–ý…Š•›•–±‘…Š
‹•–”‹„—‘˜ƒ± œƒŽ‘•–± •›•–±› ’”‡†•–ƒ˜—Œï ‘˜± •‡”› ˜ý˜‘Œƒ
”‘œÍƒŠŽý…Š ƒ ‘’Ž‡šý…Š •›•–±‘˜ •‘ 拔‘ý ƒ’Ž‹ƒ«ý ’‘–‡…‹žŽ‘ ‘†
”‘„‘–‹› ƒā ’‘ ‹ˆ‘”ƒ«± •›•–±› ƒ•ƒ†‡± ƒ’”Ǥ ˜‘ ˆ‹ƒ«‘ •‡–‘”‡Ǥ Tento
ˆƒ– ‡À ƒ ’”À•–—’ — •–”‘Œ‘˜‡ŒȀ—‡Ž‡Œ ‹–‡Ž‹‰‡…‹‹ ˜ „—†‘˜ƒÀ ‹–‡Ž‹‰‡–ý…Š
•›•–±‘…ŠǤ ý•— •ƒ —•À ‘”‹‡–‘˜ƒë ƒ –‹‡–‘ ’”À•–—’› • †Ø”ƒœ‘ ƒ –œ˜Ǥ
zo•‹‡ë‘˜ƒ±•›•–±›Ȃ networked systems.
‹‡Í‘ Œ‡ teda 斗†‘˜ƒë ‹–‡Ž‹‰‡–± –‡…Š‘Ž×‰‹‡ • †Ø”ƒœ‘ ƒ ˜ý’‘«–‘˜ï
inteligenciu a ‹…Š’‘–‡…‹žŽ‡ ˜›—ā‹–‹‡’”‹ ˜›–˜ž”ƒÀ ‹–‡‰”žŽ‡Š‘†‹•–”‹„—‘˜ƒ±Š‘
œƒŽ‘•–±Š‘ •›•–±—ǡ –‘”ý „› „‘Ž ˜›–˜ž”ƒý ˜‘ ˜›„”ƒý…Š ’”‘•–”‡†‹ƒ…Š œƒ
撇…‹žŽ›…Š’‘†‹‡‘ƒ ž•Ž‡†‡–‹‡–‘’‘†‹‡›„›•ƒœ‘˜æ‡‘„‡…Ò‘˜ƒŽ‹Ǥ‡Í‹
†ØŽ‡ā‹–ï Š— ˜ ’”‘…‡•‡ ˜›–˜ž”ƒ‹ƒ –ƒ±Š‘–‘ ‘’Ž‡š±Š‘ •›•–±— „—†ï
œ‘Š”ž˜ƒë ‹–‡”ƒ–À˜‡ –‡…Š‘Ž×‰‹‡ ‡†œ‹ •–”‘Œ‘ ƒ ‡š’‡”–‘ǡ –˜‘”„ƒ ˜‹”–—žŽ›…Š
65
‘†‡Ž‘˜ ‡š’‡”–ƒǡ ˆ—œœ› ’”À•–—’—  odhadu a Žƒ•‹ˆ‹ž…‹‹ •–ƒ˜‘˜ǡ ’”‡†‹«±
’”‘„Ž±›ǡ‘’–‹ƒŽ‹œƒ«±’”‘„Ž±›• …‹‡Í‘ŠÍƒ†ƒ‹ƒ•—„-‘’–‹žŽý…Š”‹‡æ‡ÀǤ
‘˜ý•—‡…Š…‡‡˜›—āÀ˜ƒë’”‹ž”‡’”‘•–”‹‡†›˜ý’‘«–‘˜‡Œ‹–‡Ž‹‰‡…‹‡
a z –‘Š–‘’‘ŠÍƒ†—Œ‡˜‘•˜‡–‡‹…Šƒ’Ž‹ž…‹ƒ’”‡–˜‘”„——«‹ƒ…‹…Š•ƒ†‹•–”‹„—‘˜ƒý…Š
œƒŽ‘•–ý…Š•›•–±‘˜‹‡˜‡Í‹«ƒ•–ž”‡•’Ǥ’”‹æ–—Ž‹–‡”ƒ–ï”›’”‹…Šž†œƒ‡ƒ–‘
ā‡ ‘—‹–ƒ œƒŽ‘•–ý…Š •›•–±‘˜ Œ‡ •‹Ž‡ œ˜‹ƒœƒž ƒ •›„‘Ž‹…ï —‡Žï
‹–‡Ž‹‰‡…‹—Ǥ Š…‡Ž‹ „› •‡ 斗†‘˜ƒë ‘ā‘•–‹ ’”À•’‡˜— ˜ý’‘«–‘˜‡Œ ‹–‡Ž‹‰‡…‹‡
—–˜‘”„‡Š›„”‹†±Š‘‘†‡Ž—„—†‘˜ƒ‹ƒ—«‹ƒ…‹…Š•ƒ†‹•–”‹„—‘˜ƒý…ŠœƒŽ‘•–ý…Š
•›•–±‘˜Ǥ ƒ ƒ•Ž‡†—Œï…‡Œ •…Š±‡ Œ‡ ƒœƒ«‡ž œžŽƒ†ž ‘…‡’…‹ƒ –˜‘”„›
–ƒ±Š‘–‘ •›•–±—ǡ –‘”ý Œ‡ ’‘•–ƒ˜‡ý ƒ ǷDz ‰‡–‘…Š ƒ ’”‹…À’ Œ‡ ˜ ž˜”Š—
†‘±‘˜‘‘”‹‡–‘˜ƒ±Š‘•›•–±—ǡ–‘”ýœ„‹‡”ƒ œƒŽ‘•–‹ ƒ ž•Ž‡†‡‹…Š’‘•›–—Œ‡
–˜‘Œ‹ ƒ‰‡–‘Ǥ ý •ƒ ˜›–˜ž”ƒ Ƿ”‘†‹ƒ ‰‡–‘˜Dzǡ –‘”ž ˜Žƒ•–À •˜‘Œ‡ œƒŽ‘•–‹ǡ
‹”‡‡–žŽ‡‹…Š˜›–˜ž”ƒƒ •ï«ƒ•‡œ†‹‡ŽƒǤ˜‘”„ƒ–ƒ±Š‘–‘Ƿā‹Œï…‡Š‘Dz•›•–±—
Œ‡ ‘’Ž‹‘˜ƒž ƒ ˜‘ •˜‡–‡ Œ‡ ˜‡Íƒ ’”ÀŽƒ†‘˜ †‡ •ƒ ’‘ï惎‹ –ƒý–‘ •›•–±
˜›–˜‘”‹ë ƒŽ‡ ’”‹ Œ‡Š‘ –˜‘”„‡ Œ‡ ˜‡Í‹ ˜‡Íƒ ’”‘„Ž±‘˜ ƒ ƒŽÀǤ Žƒ˜‡ ˜ oblasti
•›„‘Ž‹…‡Œ —‡Ž‡Œ ‹–‡Ž‹‰‡…‹‡ „‘Ž‹ ”Øœ‡ ’‘—•› –ƒý–‘ •›•–± ˜›–˜‘”‹ë ƒ ”‹‡æ‹ë
‘ā•–˜‘’”‘„Ž±‘˜• –ý•’‘Œ‡ý…Šƒ‘Œ‡ˆïœ‹ƒœƒŽ‘•–À”‡’”‡œ‡–ž…‹ƒœƒŽ‘•–‹ǡ
‘–‘Ž‘‰‹…±•›•–±›ƒ pod.
Knowledge
Fusion and
Download to
Each Agent
Upload partial
knowledge
Agent #1
Environ #1
Agent #2
Upload partial
knowledge
Environ #2
Upload partial
knowledge
Agent #N
Environ #N
„”žœ‘ ʹ ǣ žŽƒ†ý ’‘’‹• œžŽƒ†±Š‘ ‘…‡’–— †‹•–”‹„—o˜ƒ±Š‘ ’”À•–—’—
k ‹–‡Ž‹‰‡–ý•›•–±‘
66
„”žœ‘͵ǣPopis humanoidnej platformy robota NAO
”‡†‡–ý’”‘„Ž±Œ‡’”‘„Ž±œžŽƒ†±Š‘˜ý•——ƒ „—†‡ƒë†‘’ƒ†ƒ
–˜‘”„— ‹–‡‰”žŽ›…Š †‹•–”‹„—‘˜ƒý…Š œƒŽ‘•–ý…Š •›•–±‘˜ • ’”˜ƒ‹ —«‡‹ƒǡ
inkrementality a ˜‹”–—žŽ‡Š‘ā‹˜‘–ƒ˜›–˜ž”ƒ±Š‘•›•–±—Ǥ—†ï˜›„”ƒ±–‡•–‘˜ƒ…‹‡
‘„Žƒ•–‹ǡ †‡ •ƒ ˜›˜ÀŒƒž ‡–‘†‘Ž×‰‹ƒ „—†‡ –‡•–‘˜ƒë ƒ –‘ ŠŽƒ˜‡ ˜ skupinovej
robotike s †Ø”ƒœ‘ ƒ —‹˜‡”œžŽ‘•ë ’”‘„Ž‡ƒ–‹› ƒ ƒ’Ž‹‘˜ƒ–‡Í‘•ë ƒŒ ˜ ‹ý…Š
‘„Žƒ•–‹ƒ…Š‹ā‹‹‡”•›…Š–‡…Š‘Ž×‰‹ÀǤýœ˜›•ïv •ïŽƒ†‡• ‘†„‘”‘—˜Àœ‹‘—ǡ–‘”ž
˜‘•˜‘Œ‹…Š˜ýœ˜ƒ…ŠŠ‘˜‘”À‘ tvorbe tzv, Ƿ˜‡«ý…Š•›•–±‘˜Dz (eternal systems) v
oblasti ICT
‘’ƒ† ˜ý•—— Œ‡ ˜‡Í‹ †ØŽ‡ā‹–ý ’”‡–‘ā‡ æ–— –‡Œ–‘ ’”‘„Ž‡ƒ–‹›
ƒ’‘Øā‡ –˜‘”„‡ ‹”‡‡–žŽ‡Š‘ —«‹ƒ…‡Š‘ •›•–±—ǡ –‘”ý Øā‡ ƒë ˜›•‘ý
ƒ’Ž‹ƒ«ý ’‘–‡…‹žŽ ‘† ”‘„‘–‹› ƒā ’‘ –˜‘”„— ‹–‡Ž‹‰‡–ý…Š Dzā‹Œï…‹…Šdz
‹ˆ‘”ƒ«ý…Š •›•–±‘˜ ƒ•ƒ†‡ý…Š ˜ „ƒž…Š ƒŽ‡„‘ ƒ’”Ǥ ˜ ’”‹‡›•Ž‡Ǥ ‡Žý
˜ý•— Œ‡ ’‘•–ƒ˜‡ý ƒ –‡•–‘˜ƒ…‡Œ †‘±‡ ‘„‹Ž‡Œ ”‘„‘–‹›ǡ †‡ •ƒ „—†‡‡
•ï•–”‡®‘˜ƒë ƒ –˜‘”„— –ƒý…Š–‘ •›•–±‘˜ ƒ ‘„‹Žž ”‘„‘–‹ƒ „—†‡ ’”‡ ž•
ž•–”‘Œ‘ ’”‡œ‡–ž…‹‡ –‡•–‘˜ƒ…‹‡Š‘ •›•–±— ƒ •…Š‘’‘•–‹ ‹”‡‡–žŽ‡Š‘
•›•–±—Ǥ •ï«ƒ•‘•–‹ ž‡  †‹•’‘œÀ…‹‹ ’Žƒ–ˆ‘”› NAO ’”‡ ˜›—ā‹–‹‡ æ–ƒ
–ƒý…Š–‘•›•–±‘˜Ǥ ‡†‡…± ’”À‘•›‘«ƒž˜ƒ‡˜ ‘„Žƒ•–‹ ˜ý’‘«–‘˜‡Œ‹–‡Ž‹‰‡…‹‡
a Œ‡Œ ’”À•’‡˜— — „—†‘˜ƒ‹— ‹”‡‡–žŽ‡Š‘ ƒ —«‹ƒ…‡Š‘ •›•–±—Ǥ Medzi
ƒŒ†ØŽ‡ā‹–‡Œæ‹‡’”‘„Ž±› v –‡Œ–‘‘„Žƒ•–‹’‘˜ƒā—Œ‡‡ǣ
1.
ý•— ˜ ‘„Žƒ•–‹ ‹–‡”ƒ–À˜›…Š ‡—”‘ •›•–±‘˜ • †Ø”ƒœ‘ ƒ
reinforcement learning a tvorby HCI s …‹‡Í‘ ‘†‡Ž‘˜ƒ‹ƒ ‡š’‡”–ƒ
a ž•Ž‡†±Š‘ prenosu poznatkov z «Ž‘˜‡ƒ†‘•–”‘Œƒ
67
2.
3.
4.
5.
6.
7.
ý•— ˜ ‘„Žƒ•–‹ †ƒ’–À˜›…Š ˆ—œœ› •›•–±‘˜ ƒ ‹…Š ‘ā‘•–À ˜›—ā‹–‹ƒ
v œÀ•ƒ˜ƒÀœƒŽ‘•–À
ý•—˜ ‘„Žƒ•–‹ Žƒ•‹ˆ‹ƒ«ý…Š”‡•’Ǥ”‘œŠ‘†‘˜ƒ…À…Š•›•–±‘˜œƒŽ‘ā‡ý…Š
ƒ œŠŽ—‘˜ƒ…À…Š ’”‘…‡†ï”ƒ…Š ˜ ”Øœ›…Š •–ƒ–‹…ý…Š ƒ‘ ƒŒ †›ƒ‹…ý…Š
’”Àœƒ‘˜ý…Š ’”‹‡•–‘”‘…ŠǤ –‡Œ–‘ ‘„Žƒ•–‹ …Š…‡‡ ˜›—ā‹ë ˆ—œœ› ‹‡”‹ ƒ
•–ƒ‘˜‘˜ƒ‹‡˜œëƒŠ‘˜‡†œ‹ŠÍƒ†ƒý‹–”‹‡†ƒ‹”‡•’Ǥ”‘œŠ‘†—–‹ƒ‹
ý•— ˜ ‘„Žƒ•–‹ ŠÍƒ†ƒ‹ƒ ‘˜ý…Š ‡–׆ —«‡‹ƒ ‡—”א‘˜ý…Š •‹‡–À
s …‹‡Í‘ ‹–‡‰”ž…‹‡ œƒŽ‘•–À ‡š’‡”–‘˜ ƒ –˜‘”„› —«‹ƒ…‡Š‘ •›•–±—ǡ –‘”ý
žŒ†‡ ƒŒ˜Š‘†‡ŒæÀ •›•–± —«‡‹ƒ ‡—”א‘˜ý…Š •‹‡–À –›’— ƒ œžŽƒ†‡
œƒŽ‘•–À ‡š’‡”–‘˜Ǥ –‘–‘ …‹‡Ž‹ „—†‡‡ ”‹‡æ‹ë ƒŒ ’”‘„Ž± ˜‹œ—ƒŽ‹œž…‹‡
œƒŽ‘•–À ”‡•’Ǥ ’ƒ”…‹žŽ›…Š œƒŽ‘•–‹ œ ‡—”א‘˜‡Œ •‹‡–‡Ǥ ý•— ˜ oblasti
‡˜‘Ž—«ý…Š •›•–±‘˜ ƒ ‹…Š ‘ā‘•–À ’”‹ ‡‹ƒ…‹…Š •ƒ ˆ‹–‡•• ˆ—…‹ž…Š
ƒŽ‡„‘ ’”‹ ‡‡š‹•–‡…‹‹ ˆ‹–‡•• ˆ—…‹‡ǡ –‘”ž Œ‡ ƒŠ”ƒ†‡ž ͗†•ý
遲•–À‘‡š’‡”‹‡–—Ǥ—†‡ •ƒŠƒ‘ identifiž…‹—•’”ž˜ƒ‹ƒ •ƒ ‡š’‡”–ƒ
a Œ‡Š‘ •‹—Žž…‹— ƒ –ýǡ ā‡ œ ‹–‡”ƒ–À˜›…Š ‡˜‘Ž—«ý…Š •›•–±‘˜ •ƒ ’”‘…‡•
„—†‡ ƒ– •ƒŠ— Ƿ’‘•–—’‡Dz ˜”ž–‹ë — Žƒ•‹…ý ‡˜‘Ž—«ý ˜ý’‘«–‘
a –ƒý–‘•’Ø•‘„‘˜›”‹‡æ‹ë’”‘„Ž±‡‡š‹•–‡…‹‡ˆ‹–‡••ˆ—…‹‡Ǥ
ý•— ˜ ‘„Žƒ•–‹ ˜›—ā‹–‹ƒ ˜ý’‘«–‘˜‡Œ ‹–‡Ž‹‰‡…‹‡ ˜ •’”ƒ…‘˜ƒÀ ‘„”ƒœ‘˜‡Œ
‹ˆ‘”ž…‹‡• †Ø”ƒœ‘ƒ’”‘„Ž±›’”‹˜‹ƒ…œ†”‘Œ‘˜‡Œ‘„”ƒœ‘˜‡Œ‹ˆ‘”ž…‹‹Ǥ
ý•— ˜ ‘„Žƒ•–‹ ”‡’”‡œ‡–ž…‹‡ œƒŽ‘•–Àǡ æ–— ‘ā‘•–À ˜›—ā‹–‹ƒ
‘–‘Ž‘‰‹…ý…Š ‡—”א‘˜ý…Š •‹‡–À ’”‹ ”‡’”‡œ‡–ž…‹‹ œƒŽ‘•–ÀǤ roblematika
ˆïœ‹‡œƒŽ‘•–Àœ ”Øœ›…Š‹ˆ‘”ƒ«ý…Šœ†”‘Œ‘˜
ý•— ˜ ‘„Žƒ•–‹ –œ˜Ǥ ǡ –‘”ý ’”‹ƒ‘ •ï˜‹•À • ‹”‡‡–ƒŽ‹–‘— œƒŽ‘•–À
a •…Š‘’‘•–‹”‹‡æ‹ë•‹–—ž…‹‡ǤŒ‡†ØŽ‡ā‹–ýƒŒ’”‡–‘ƒ„›•‡˜‡†‡Ž‹—”«‹–ý
•’Ø•‘„‘‡”ƒë”‡•’Ǥ˜ƒ–‹ˆ‹‘˜ƒë•…Š‘’‘•–‹—«‹ƒ…‡Š‘•ƒ•›•–±—ƒ jeho
„ƒœ— œƒŽ‘•–ÀǤ 遲•‡ ‹†‡ ‘ ’”‘„Ž± ƒ—–‘‘‹–› •›•–±— ˜ ‰Ž‘„žŽ‘
meradle teda o •›•–±ǡ –‘”ý œ˜›æ‘˜ƒÀ æ‹ •ž œ˜›æ—Œ‡ ƒ—–‘‘‹–—
a œ‹ā—Œ‡‘’‡”ž–‘”•±”‡•’Ǥ‡š’‡”–±œž•ƒŠ›Ǥ
5Ǥž˜‡”
Z Š‘”‡ —˜‡†‡±Š‘ •‘ žœ‘”—ǡ ā‡ ˜ý•— ƒ’‘Øā‡ — ’‘•——–‹ƒ Š”ƒÀ…
˜‡†‡…±Š‘’‘œƒ‹ƒ˜ ‘„Žƒ•–‹—‡Ž‡Œ‹–‡Ž‹‰‡…‹‡ǡ˜ý’‘«–‘˜‡Œ‹–‡Ž‹‰‡…‹‡ƒ tvorby
‹–‡Ž‹‰‡–ý…Š •›•–±‘˜Ǥ ƒ •’Ž‡‹‡ …‹‡Í‘˜ „—†‡ •ï•–”‡†‡ž «‹‘•ë ‡–”ƒ ’”‡
‹–‡Ž‹‰‡–±–‡…Š‘Ž×‰‹‡ȋȌǡ–‘”±’‘œ‘•–ž˜ƒœ dvocŠŽƒ„‘”ƒ–×”‹Àƒ –‘Žƒ„‘”ƒ–×”‹ƒ
ƒ—–‘×›…Š •›•–±‘˜ ȋ-LAS) a Žƒ„‘”ƒ–×”‹ƒ —ƒ‘‹†ý…Š •›•–±‘˜ ȋȌǤ ý - Œ‡ •ï•–”‡†‡± ƒ æ–— ’”˜‘˜ ’”‡ —ƒ‘‹†± •›•–±›ǡ
CIT-Œ‡˜‹ƒ…‘–˜‘”‡ý’”‡’”‹‡›•‡Ž±ƒ’Ž‹ž…‹‡ƒ tvorbu a prepojenie na prax.
68
‘®ƒ‘˜ƒ‹ƒǣ
ž–‘ ’”ž…ƒ „‘Žƒ ˜›–˜‘”‡ž ”‡ƒŽ‹œž…‹‘— ’”‘Œ‡–— ‘œ˜‘Œ ‡–”ƒ ‹ˆ‘”ƒ«ý…Š ƒ
‘—‹ƒ«ý…Š –‡…Š‘Ž×‰‹À ’”‡ œƒŽ‘•–± •›•–±› ȋ×† ’”‘Œ‡–—ǣ
ʹ͸ʹʹͲͳʹͲͲ͵ͲȌ ƒ œžŽƒ†‡ ’‘†’‘”› ‘’‡”ƒ«±Š‘ ’”‘‰”ƒ— ý•— ƒ ˜ý˜‘Œ
ˆ‹ƒ…‘˜ƒ±Š‘œ—”×’•‡Š‘ˆ‘†—”‡‰‹‘žŽ‡Š‘”‘œ˜‘ŒƒǤ
‹–‡”ƒ–ǣ
[1] ,ǡ ‡–‡”Ǣ e,ǡ ž ȋ†•Ȍ Quo Vadis Computational Intelligence .
Heidelberg : Physica-Verlag, 2000. 498 s. ISBN 3790813249, ISSN 14349922
ȏʹȐ,ǡ‡–‡”ƒ–ƒŽŽǡȋ†•Ȍ Intelligent Technologies Ȃ Theory and Applications .
Amsterdam, IOS Press, 2002, 347 s., ISBN 1586032569
ȏ͵Ȑ,ǡ‡–‡”ƒ–ƒŽŽǡȋ†•ȌMachine Intelligence Ȃ Quo Vadis, Singapur, Word Scientific, 2004, ISBN10: 981238751X, ISBN13: 9789812387516
[4] ,ǡ ‡–‡” ƒ– ƒŽŽǡ ȋ†•Ȍ The State of the Art in Computational Intelligence ,
Heidelberg : Physica-Verlag, 2000, 401s., ISBN 3790813222, ISSN 16153871
ȏͷȐ ,ǡ ‡–‡” ƒ– ƒŽŽǡ ȋ†•Ȍ Quo Vadis Intelligent Systemsǡ ‘æ‹…‡ǡ Žˆƒ ”‡••ǡ
116s, ISBN 9788080861735
[6] Žƒ–‘ǡ ,ǡ ‡–‡”: AIBO talking procedure based on incremental
learning approach, 2008. In: Acta Technica Jaurinensis. Vol. 1, no. 3 (2008), p. 413421. - ISSN 1789-6932
[7] ,ǡ ‡–‡” ‘–”‡„—Œ‡‡ ƒŒ — ž• ‹‘˜ž…‹‡ ƒ „žœ‡ –‡…Š‘Ž×‰‹À —‡Ž‡Œ
inteligencie ? - 2008. In: SOFTECON , SOFTEC, 2008 28 s.
ȏͺȐ ,ǡ ‡–‡”ǡ ‘ƒæǡ Incremental building of intelligent systems In:
Kybernetika a informatika. - Bratislava : STU, 2008 5 s. - ISBN 9788022728287
69
UMELÁ INTELIGENCIA V METÓDACH NAVIGÁCIE ROBOTOV ARTIFICIAL INTELLIGENCE IN METHODS OF ROBOT NAVIGATION Ján Vaščák Abstrakt Tento príspevok sa zaoberá problematikou vzťahu navigácie a prostriedkov umelej inteligencie (UI), predovšetkým časti známej ako výpočtová inteligencia. Samotný pojem navigácie je možné rozdeliť jednak na plánovanie cesty a jednak na vlastnú navigáciu, ktorá rieši najmä otázky reagovania na zmeny situácie prostredia, napr. obchádzanie prekážok a sledovania predpísanej (naplánovanej) cesty. Keďže je zrejmé, že uvedené úlohy sú odlišnej povahy, budú tieto najsamprv ozrejmené a následne budú definované všeobecné vlastnosti prístupov vhodných na ich riešenie. Napokon budú uvedené niektoré prostriedky patriace aspoň čiastočne do oblasti UI, ktoré riešia problémy navigácie hlavne pre mobilné roboty, ako sú napr. fuzzy logika, potenciálové polia a siete Neural Gas s na to nadväzujúcou ukážkou niektorých experimentov. Kľúčové slová Navigácia, plánovanie cesty, fuzzy logika, fuzzy kognitívne mapy, potenciálové polia, siete Neural Gas. Abstract This paper deals with the relation between navigation and means of artificial intelligence (AI), first of all a part known as computational intelligence. The notion navigation can be divided to the path planning and the own navigation, which solves problems of situation changes, e.g. obstacle avoidance and path tracking. It is evident the mentioned tasks are of diverse nature. Therefore, they will be at first explained and then general properties of convenient methods will be defined. Finally, some means belonging to the area of AI will be mentioned, which solve navigation problems mainly for mobile robots as e.g. fuzzy logic, potential fields and networks Neural Gas with some shown experiments.
Keywords Navigation, path planning, fuzzy logic, fuzzy cognitive maps, potential fields, networks Neural Gas.
70
1. Úvod Vo všeobecnosti pojem navigácia predstavuje monitorovanie a riadenie pohybu vozidla (loď, lietadlo, robot a pod.) z jedného bodu v priestore do druhého. Implicitne sa teda predpokladá, že existuje nejaký plán, na základe ktorého sa vozidlo presúva po jednotlivých bodoch, ktorý je vytvorený, buď človekom, alebo nejakým systémom na základe istých cieľov a obmedzení. Pre potreby robotiky je však vhodnejšie rozdeliť širšie koncipovanú úlohu všeobecnej navigácie na plánovanie cesty a vlastnú navigáciu, ktorá zabezpečuje dodržiavanie predpísaného plánu cesty. Jedná sa tu hlavne o spracovanie údajov zo senzorov a spôsob minimalizácie vzniknutej odchýlky. Do tejto úlohy môžeme zaradiť napr. aj riešenie nepredvídateľných udalostí ako obchádzanie pohybujúcich sa prekážok, či iné havarijné stavy. Obidve časti všeobecnej navigácie sú samozrejme navzájom prepojené a v celej rade, najmä jednoduchších, metód splývajú. Ak nebude hroziť nedorozumenie, tak v ďalšom budeme všeobecnú navigáciu označovať iba ako navigáciu. Úlohou tohto príspevku je poukázať na niektoré vybrané metódy UI, ktoré sa využívajú v obidvoch typoch úloh a sa javia ako najperspektívnejšie. Vychádzame pritom z premisy, že základnou formou reprezentácie znalosti v UI je produkčné pravidlo, či už ako dvojhodnotové alebo vo forme fuzzy pravidla, ktoré umožňuje okrem iného aj priame využitie prostriedkov výpočtovej inteligencie. Práve tieto metódy niekedy vyvolávajú otázky, či daná metóda ešte zodpovedá základnej paradigme UI, t.j. že zvolená metóda má odrážať spôsob ľudského riešenia problému alebo aspoň nejaký jav živej prírody. Načrtnúť v tomto nejakú jasnú hranicu je ale častokrát nemožné a skôr sa stretávame s faktom, že málokedy má zmysel aplikovať „čistokrvnú“ UI. Skôr sa bude v budúcnosti jednať o syntézu UI a konvenčných prístupov známych napr. z teórie riadenia. Po stručnom úvode do problematiky plánovania cesty sa budeme zaoberať možnosťami využitia fuzzy logiky v riadení pohybu. Ďalej si ukážeme možnosť využitia konceptu fuzzy kognitívnych máp (FKM) v úlohách tohto typu. Na to nadviažeme konkrétnymi metódami plánovania cesty ako potenciálové polia a siete typu Neural Gas. Jednotlivé príklady budú prezentované experimentmi, ktoré sme vykonávali na našom pracovisku Centra pre inteligentné technológie na Technickej univerzite v Košiciach. 2. Základné prístupy plánovania cesty v robotike V súčasnosti jestvujú tri základné skupiny metód pre plánovanie cesty mobilných robotov [1]1, 6]: 1. heuristické, 2. exaktné, 3. mriežkové (grid) algoritmy. Typickým reprezentantom prvej skupiny sú tzv. Bug algoritmy, ktoré sú jednoduché, ale vhodné väčšinou iba pre tzv. statické prostredie, t.j. s nepohyblivými a nemennými prekážkami. Exaktné algoritmy ako grafy viditeľnosti, Voronoiove diagramy, či A* umožňujú matematicky korektným spôsobom nájsť 71
najlepšiu (v tomto zmysle najkratšiu) trajektóriu. V prípade nemožnosti nájsť riešenie sú dokonca schopné výpočtový proces ukončiť, a tak predísť zacykleniu algoritmu. Problémom je však to, že vyžadujú veľmi presné údaje o prekážkach, čo v praktických aplikáciách môže byť vážny problém. Preto sa tiež väčšinou využívajú pre statické prostredie, t.j. scéna rozloženia jednotlivých objektov sa nemení. Z tohto uhla pohľadu sa mriežkové algoritmy zdajú byť vhodnejšie pre reálne prevádzkové podmienky, nakoľko v závislosti na chybe snímania je možné definovať presnosť mriežky, alebo navrhnúť viacvrstvové mriežky, ktoré najprv umožnia hrubú navigáciu a po priblížení sa robota k cieľu prepnú na presnejšiu mriežku, kde iba v tomto úseku vyžadujú presné snímanie. Takto je možné okrem iného aj skrátiť dobu výpočtu. 3. Fuzzy regulátory pri riadení pohybu Veľkou výhodou fuzzy regulátorov (FR) je nielen schopnosť spracovávať neurčité znalosti o danom prostredí ako aj nepresné dáta zo snímačov, ale aj fakt, že primárne boli navrhnuté ako pravidlové systémy (ich rozšírením sú napr. fuzzy kognitívne mapy), čiže je možné na nich priamo modelovať ľudský prístup riešenia daného problému. Ich veľkou nevýhodou je neschopnosť sa učiť. Preto bola navrhnutá celá rada postupov a adaptačných algoritmov na automatickú tvorbu bázy znalostí. V ďalšom si ukážeme tzv. Procyk­Mamdaniho samo­organizačný FR, pôvodne navrhnutý v [8]8] a modifikovaný vo viacerých prácach ako napr. [2]5, 9], ktorého základná bloková schéma sa nachádza na obr. 1. Činnosť tohto systému je založená na bloku merania výkonnosti, ktorý vyhodnocuje na základe prepísaných kritérií kvalitu regulátora. Výstupom je pre daný krok vzorkovania k hodnota výkonnosť p(k), ktorá určuje mieru, do akej majú byť vykonané zmeny v báze znalostí. Pre tento účel je ale potrebné zadefinovať tzv. inkrementálny model M­1(k), ktorý je obdobou lineárnej aproximácie prvého rádu riadenej sústavy a určuje sa z matice dynamiky jej stavového popisu. Keďže medzi vstupmi a výstupmi regulátora a sústavy existuje inverzný vzťah, tento vyjadrujeme symbolom inverznej funkcie, nakoľko potrebujeme poznať v konečnom dôsledku model regulátora M­1(k) a nie sústavy M(k). Výstupom z bloku modelu je tzv. oprava r(k), ktorá priamo predpisuje hodnotu, o ktorú sa má zmeniť báza znalostí. V tomto prípade predpokladáme, že poznáme vhodné rozdelenie premenných vstupov a výstupov na jazykové hodnoty. Kombináciou všetkých možných vstupov dostaneme úplný súbor vzájomne neprotirečivých pravidiel, pomocou ktorých sú vlastne popísané všetky možné situácie. Úloha sa nám tak zjednoduší iba na nájdenie správnej výstupnej hodnoty a tá bude práve modifikovaná hodnotou r(k), kde bude upravovaný hlavne vrchol funkcií príslušnosti výstupov. Pre úplnosť je vhodné dodať, že Procyk­Mamdaniho samo­organizačný FR je možné implementovať pre bázu znalostí vo forme jednak fuzzy produkčných pravidiel a jednak fuzzy relácií. Bližšie informácie o tomto type regulátora sú napr. v [9]. Okrem uvedeného prístupu je možné využiť na modifikáciu bázy znalostí aj tradičné gradientové prístupy, keď sa definuje vzťah výstup – vstup daného regulátora ako funkcia závislá od n parametrov bázy znalostí a následne sa táto 72
parciálne derivuje podľa týchto parametrov. Takto dostaneme sústavu n rovníc o n neznámych. Obr. 1. Bloková schéma Procyk­Mamdaniho samo­organizačného FR. Kombinovaním Procyk‐Mamdaniho prístupu a gradientových metód dostávame systém, ktorý sa napr. vie učiť jednoduché úlohy plánovania pohybu z bodu A do bodu B, či už bez alebo s obchádzaním prekážky (bližšie viď [9]), ako je vidieť na obr. 2, kde je ukázané porovnanie s ručne nastaveným a adaptívnym FR. Je možné vidieť evidentný rozdiel medzi správaním sa bez a s prekážkou. Adaptívny FR vykazuje kratšiu trajektóriu v prípade bez prekážky, zatiaľ čo v prípade s prekážkou je tomu naopak. Navyše je možné pozorovať istú opatrnosť voči prekážke. Trajektória si ju najprv opatrne obchádza a v jednom bode sa začne od nej vzďaľovať najrýchlejším možným spôsobom. Toto správanie je obdobné človeku, ktorý by prekážku vnímal ako aktívne nebezpečenstvo. To je však kvalitatívne nová informácia, ktorú adaptívny FR implicitne obsahuje vo svojich pravidlách, ale ktorú mu nikto nevložil. Tento prípad je typickým príkladom emergencie nových vlastností, ktoré sa vopred nepredpokladali. Uvedieme si ešte jednu jednoduchú a pritom efektívnu možnosť využitia fuzzy logiky, kde sa práve využije ich vlastnosť, že využívajú pravdivostné hodnoty z celého rozsahu intervalu [0; 1]. Využíva sa pritom princíp tzv. sonarovej percepcie, kde získavame jednak uhol natočenia nejakej prekážky od robota a jednak jej vzdialenosť. Na základe toho sa okolo robota skonštruuje kruhový sonarový signál (viď obr. 3), ktorý je v tomto prípade reprezentovaný ako lichobežníková funkcia príslušnosti, kde jej jadro predstavuje šírku prekážky. Veľkosť nosiča je súčtom jadra a šírky samotného robota (robot je tiež istou 73
formou prekážky, najmä keď potrebuje prejsť pomedzi dve prekážky). Výška hgt takejto funkcie príslušnosti je závislá od dosahu sonara a sa vypočítava ako: hgt =
dosah − vzdialenosť
. dosah
(1) Obr. 2. Ukážka tvorby trajektórií ručne navrhnutým FR (a, c) a adaptívnym FR (b, d) pre prípady bez prekážky (a, b) a s prekážkou (c, d). Takýto sonarový signál predstavuje vlastne pravidlo indikujúce nevhodnosť voľby príslušného smeru. Čím je vyššia hodnota stupňa príslušnosti pre uhol natočenia robota, tým je tento smer menej vhodný, lebo prekážka je bližšie. Voľné smery pohybu majú nulový stupeň príslušnosti. Preto je logické takýto výrok znegovať a použiť nejaký operátor doplnku, napr. 1 – hgt, k pretransformovaniu sonarového signálu na informáciu vhodnosti daného smeru. Predpokladajme, že poznáme polohu cieľa. V takomto prípade je možné skonštruovať ďalšiu funkciu príslušnosti (napr. trojuholníkovú) nad celým univerzom s vrcholom v danom cieli. Prienikom, čiže realizovaním nejakej t‐normy (napr. minimum) medzi týmito funkciami príslušnosti bude výsledná funkcia vyjadrovať kompromis medzi polohou cieľa a priestorom bez prekážok. Defuzzifikovaním takto získanej výslednej funkcie príslušnosti získame výstupnú hodnotu S, ktorá predstavuje požadovaný smer natočenia robota v danom čase. Celý proces je potrebné si predstaviť v čase, kde pohyb a jeho prípadná zmena sa vykonávajú v jednotlivých krokoch. Využijúc viachodnotovú logiku, akou je aj fuzzy logika, kde sa rozlišuje medzi bližšími a vzdialenejšími prekážkami, sa realizuje implicitná zásada: „Najprv rieš bližšie prekážky a až potom vzdialenejšie!“ Takto 74
robot získava schopnosť ich obchádzať. V neposlednom rade je takýto prístup aj všeobecný vzhľadom na počet a do istej miery aj tvar prekážok. Obr. 3. „Negovaný“ kruhový sonarový signál (plná čiara), trojuholníková funkcia príslušnosti cieľa (prerušovaná čiara) a smer natočenia S po vykonaní defuzzifikácie prieniku funkcií príslušnosti. 4. Fuzzy kognitívne mapy ako podpora rozhodovania FKM predstavujú isté zovšeobecnenie konvenčných fuzzy pravidlových systémov a môžu byť použité jednak na rovnaké úlohy pri priamom riadení pohybu robota, ako bolo ukázané v predošlej stati a jednak na podporu rozhodovania pri výbere niektorej z variant riešenia. Bližšie informácie o základoch FKM, ich využití a adaptácii je možné nájsť napr. v [2]. Prvou možnou aplikáciou je priame použitie FKM ako istého fuzzy regulátora, kde s využitím adaptačných mechanizmov si definuje funkcie príslušnosti jednotlivých uzlov ako aj váhy spojení. Vzhľadom na to, že sa jedná o v princípe zložité štruktúry, predpokladá sa, že uzly a ich významy sa zadefinujú ručne. Na obr. 4 je možné vidieť jeden príklad FKM riešiacej úlohu prechodu vozidla do cieľa so známou polohou s ohľadom na prekážky. Pomocou senzorov S1 – S5 sa zisťuje poloha a blízkosť prekážok, čo sa vyhodnocuje v uzloch C8 – C15, či prekážka je blízko (b) alebo kriticky blízko (kb). Ďalej pre rozhodnutie o akcii je potrebné poznať polohu cieľa, či je naľavo (CL), napravo (CP) alebo priamo vpredu pred vozidlom (CV) – uzly C4 – C6. Taktiež je potrebné vziať do úvahy blízkosť cieľa (Cb), čo predstavuje uzol C7, ktorý je priamo napojený na výstupný uzol C3 predstavujúci podmienku zastavenia (S), ak je táto splnená na hodnotu aspoň 0,95. Zvyšné výstupné uzly C0 – C2 sú pre akčné zásahy, či sa vozidlo má natočiť doľava (L), doprava (P), alebo ísť rovno vpred (V). Bližšie informácie o tomto type úlohy a typoch adaptačných metód pre FKM viď napr. [13]. Ďalší príklad využitia FKM ukazuje na možnosť hybridizácie, t.j. vzájomného prepojenia viacerých prostriedkov za účelom riadenia premávky robotických vozidiel, napr. v automatizovanom závode alebo pri pomoci s vyhľadávaním vhodného parkovacieho miesta pri hypermarketoch. Ak máme presne zadefinovanú komunikačnú sieť, ako je napr. parkovisko obkolesené obchodmi (obr. 5), tak na požiadavku čo najvhodnejšie zaparkovať k nejakému obchodu 75
môžeme využiť niektorý z grafových prehľadávacích algoritmov ako je A* [6], ktorý je schopný brať do úvahy tzv. cenu cesty, keďže na výber parkovacieho miesta nevplýva iba jeho minimálna vzdialenosť k danému obchodu, ale napr. jej zložitosť vyjadrená počtom odbočení, či doba čakania, ak by niekde vznikla zápcha. Takto sa môže stať, že najbližšie parkovacie miesto nemusí byť najvhodnejšie a že sa oplatí radšej zastaviť o niečo ďalej. Obr. 4. Príklad fuzzy kognitívnej mapy pre navigáciu vozidla k známej polohe cieľa v prostredí s prekážkami. Obr. 5. Príklad parkoviska so simulovanou premávkou vozidiel v nákupnom stredisku a tvorba ciest pre prichádzajúce vozidlá. 76
Pre výber vhodnej cesty je preto najvýhodnejšie vykonať výber pre viacero voľných parkovacích miest v blízkosti vybraného cieľa, nielen to najbližšie. Pre tieto miesta sa pomocou A* algoritmu vytvoria optimálne cesty a ich výhodnosť sa bude navzájom porovnávať. Samozrejme, každý užívateľ má rôznu prioritu ohľadom hodnotiacich kritérií. Zatiaľ čo pre mladého a zdravého človeka nie je problém prejsť peší niekoľko metrov navyše, tak pre človeka s problémami chôdze bude lepšie radšej trochu počkať v zápche. Inými slovami, tieto priority je možné popísať váhami wi a pomocou nich hodnotiace kritéria navzájom pospájať. Takto dostaneme nasledujúcu FKM (obr. 6), ktorá vypočítava mieru vhodnosti daného parkovacieho miesta a miesto s najlepšou vhodnosťou je následne vybrané [11]. Obr. 6. Príklad FKM pre výber najvhodnejšieho parkovacieho miesta. 5. Potenciálové polia Potenciálové polia (prvý krát navrhnuté v [4]) patria do skupiny mriežkových algoritmov. Vychádzajú z metafory magnetického poľa. Pomocou nich je tak možné modelovať prostredie s prekážkami ako potenciálové rozdiely a na ich základe určovať akčný zásah. Takáto reprezentácia vlastne predstavuje vytvorenie istej „krajinky“ (obr. 7a), čo je veľmi vhodná forma reprezentácie znalostí pre využitie prostriedkov výpočtovej inteligencie. V ďalšom bude táto možnosť prezentovaná na simulácii problému parkovania. V prostredí pre pohyb robotov sú v podstate dva druhy objektov: ciele a prekážky. Vo vyjadrení pomocou potenciálového poľa by ciele mali robot priťahovať a prekážky ho od seba odpudzovať, t.j. v silovom vyjadrení sa bude jednať o príťažlivé Fc a odpudivé Fp sily. 77
G
G
G
F ( x , y ) = FC ( x , y ) + ∑ FPi ( x , y ). (2) i
Množina všetkých síl pre všetky body priestoru (x,y) vytvára vektorové pole F (viď obr. 7b). Podobne, potenciálové pole U je zobrazením všetkých potenciálov U(x,y), vypočítaných ako práca vykonaná medzi bodom (x,y) a bodom s nulovým potenciálom (x0,y0) pozdĺž cesty l: ( x, y)
∫
U ( x, y) =
G
F .dl . (3) ( x0 , y0 )
Potenciálové pole predstavuje tak priestor, ktorý pripomína istú krajinku s vrcholkami zodpovedajúcimi prekážkam a údoliami predstavujúcimi ciele. Ak umiestnime mobilný robot do ľubovoľného bodu (x,y), tak pôsobením gravitácie sa tento bude pohybovať po trajektórii s najstrmším zostupom, čo zodpovedá gradientu, a tým získame najrýchlejšiu cestu k cieľu. Okrem toho, nastavením strmosti vrcholkov je možné definovať isté bezpečnostné odstupy, ktoré slúžia ako isté tolerančné pásma pre prípad nepresného snímania alebo akčného zásahu. Takýmto spôsobom vieme modelovať istý súlad medzi rýchlosťou a bezpečnosťou pohybu. Obr. 7. Príklad potenciálového poľa s tromi prekážkami P1, P2, P3 (čierne oblasti) a cieľom C s vypočítanou trajektóriou z bodu Š – a) a k nemu prislúchajúce vektorové pole – b). Uvedený prístup je vhodný najmä v prípade, ak prekážky sú statické, t.j. sa nepohybujú. V praxi sa však stretávame s dynamickými prekážkami a rôznymi kolíznymi situáciami. Pre tento účel je preto systém doplnený o regulátor kolíznych stavov. Systém najsamprv zo zosnímanej situácie (napr. snímka z kamery) vypočíta potenciálové pole a určí optimálnu trajektóriu, na ktorej si v jednotlivých odstupoch vytvorí postupnosť sledovacích značiek. Sledovací mechanizmus následne riadi vozidlo od jednej značky po druhú. Meranie odchýlky a vlastná navigácia sa robí iba na základe týchto značiek. Ak do trajektórie vstúpi nejaká dynamická prekážka, tak postupnosť značiek sa naruší, t.j. sledovač nevidí nasledujúcu značku, a tým sa spustí systém na obchádzanie prekážok, ktorý bude 78
v činnosti dovtedy, pokiaľ nenarazíme na ďalšiu značku. Keďže postupnosť značiek je vopred známa, tak systém vie, v ktorej časti priestoru sa nachádza a prepína sa znovu na režim sledovania, viď obr. 8. Bližší popis o uvedenom systéme sa nachádza v [10]. Obr. 8. Ukážka využitia potenciálových polí v prostredí s dynamickými prekážkami. 6. Využitie neurónových sietí typu Neural Gas Neurónové siete predstavujú veľmi rozsiahlu problematiku a iba vytvorenie prehľadu metód v navigácií presahuje možnosti tohto príspevku. Na tomto mieste by sme spomenuli jednu menej známu, ale zaujímavú aplikačnú možnosť, ktorá rieši problémy popisu nesúrodej komunikačnej siete, napr. dopravnej siete nejakého mesta (viď obr. 10), kde využitie potenciálových polí by bolo problematické. Použitie ináč veľmi efektívnych mriežkových algoritmov je v takomto prípade problematické kvôli svojej heterogenite, čo by vyžadovalo konštruovanie veľmi hustej mriežky, a s tým spojenej výpočtovej zložitosti. Siete Neural Gas sú vo svojej podstate grafy, pomocou ktorých je možné modelovať tvar daných obrazcov, podobne ako Kohonenové siete, avšak na rozdiel od nich nemajú pevnú topológiu prepojení výstupnej vrstvy, čo sa ukazuje výhodným práve v nehomogénnych oblastiach. Pri určovaní zmeny polohy výstupných neurónov sa využíva taktiež princíp susednosti. Tá sa však mení v každom adaptačnom kroku v závislosti od daného vstupu [7]. Táto zvýšená miera adaptácie umožňuje, aby sa mohli neuróny navzájom relatívne volne presúvať v prostredí, ktoré majú popísať svojim vhodným rozložením, čo evokuje dojem šírenia plynu v uzatvorenom priestore. Úlohou tejto siete je vhodným spôsobom rozvrstviť svoje neuróny a navzájom ich tak pospájať, aby takáto geometrická štruktúra čo najvernejšie popisovala pôvodný obrazec. Na obr. 9 je zobrazený postup učenia sa siete Neural Gas na medzikruží, kde vhodným kombinovaním Kohonenovho a konkurenčného Hebbovho učenia sa v jednotlivých krokoch učenia postupne 79
pridávajú neuróny na vhodné miesta a tie sa vzájomne prepoja. Dá sa dokázať, že z výslednej štruktúry (obr. 9g) je možné vytvoriť tzv. Voronoiove oblasti, ktoré garantujú grafovým prehľadávacím algoritmom (napr. A*) nájdenie optimálnej cesty. Obr. 9. Postup učenia sa siete Neural Gas na medzikruží. V našom prípade môžeme túto vlastnosť sietí Neural Gas s výhodou použiť práve pri popise cestných sietí miest a obcí, kde po zosnímaní mapovej dokumentácie a spracovaní získanej snímky použitím filtrov môžeme na ne tieto siete priamo aplikovať a následne nasadiť algoritmus A* pre vyhľadávanie ciest, ako je to znázornené na obr. 10. Takto odpadne zložitá (v mnohom ručná) príprava bázy znalostí o daných komunikáciách. Bližší popis učenia sietí Neural Gas ako aj postupu ich využitia v plánovaní ciest v rámci mestských komunikácií je možné nájsť v [12]. Obr. 10. Vytvorenie topológie siete Neural Gas (svetlé čiary) na pozadí výseku cestných komunikácií (tmavá plocha). 80
7. Závěr Uvedený zoznam prístupov k plánovaniu cesty je len malým výberom z celej širokej škály možností, ako je možné využiť prostriedky UI. Z priestorových možností nebolo napr. možné spomenúť evolučné algoritmy, ktoré sa síce na úlohy plánovania priamo málo využívajú, môžu však byť veľmi dobrým prostriedkom pre nastavovanie parametrov plánovacích algoritmov. Z hľadiska všeobecnosti prístupu a napojenia na ďalšie prostriedky sme sa zaoberali jednak veľmi špecifickými prostriedkami ako potenciálové polia a siete typu Neural Gas ako aj fuzzy regulátormi a FKM, ktoré je možné ďalej rozvíjať a napájať na ďalšie prostriedky, v tomto prípade hlavne na pravidlové systémy a symbolickú UI ako takú. Treba si totiž uvedomiť, že plánovanie ako také je strategickou hrou, ktorá má svoje pravidlá. Práve odhaľovanie zákonitostí medzi jednotlivými objektmi a pravidiel, podľa ktorých sa skúsený plánovač riadi, je jadrom tohto typu problému. Napokon ďalším krokom v plánovaní ciest je zostavovanie sady plánov pre vzájomne kooperujúce roboty, čo je napr. aj rozšírenie úlohy riadenia premávky plánovaním ciest pre všetky vozidlá [11], či robotický futbal, alebo úloha prenasledovania koristi predátormi. Korisť predstavuje neustále sa meniaci cieľ, ktorého správanie musia predátori vedieť aspoň čiastočne odhadnúť a prispôsobiť k tomu svoj lov. Pre tento účel je ale potrebné získať pravidlá správania sa koristi a technických možností (obmedzení) predátorov, bližšie napr. [3]. Poďakovanie Táto práca bola vytvorená realizáciou projektu Rozvoj Centra informačných a komunikačných technológií pre znalostné systémy (kód ITMS projektu: 26220120030) na základe podpory operačného programu Výskum a vývoj financovaného z Európskeho fondu regionálneho rozvoja. Literatúra [1]
DUDEK, G.; JENKIN, M. Computational Principles of Mobile Robotics. Cambridge : Cambridge University Press, 2000. 280 s. ISBN 0‐521‐56021‐7. [2]
Fuzzy Cognitive Maps : Advances in Theory, Methodologies, Tools and Applications. Edited by Michael Glykas. Berlin Heidelberg : Springer‐Verlag, 2010. 200 s. Studies in Fuzziness and Soft Computing, ISBN 978‐3‐642‐
03219‐6. [3]
HLÁDEK, Daniel; VAŠČÁK, Ján; SINČÁK, Peter. MULTI–ROBOT CONTROL SYSTEM FOR PURSUIT–EVASION PROBLEM. Journal of Electrical Engineering. 2009, vol. 60, no. 3, s. 143–148. Dostupný také z WWW: <http://iris.elf.stuba.sk/JEEEC/data/pdf/3_109‐4.pdf>. ISSN 1335‐3632. [4]
KHATIB, O. Real‐time obstacle avoidance for manipulators and mobile robots. In Proceedings of IEEE International Conference on Robotics and Automation. [s.l.] : [s.n.], 1982. s. 500‐505. 81
[5]
KIM, Y.T.; BIEN, Z. Robust self‐learning fuzzy controller design for a class of nonlinear MIMO systems. Int. Journal Fuzzy Sets and Systems. 2000, vol. 111, no. 2, s. 17‐135. ISSN 0165‐0114. [6]
LAVALLE, S.M. Planning algorithms. Cambridge : Cambridge University Press, 2006. 842 s. Dostupné z WWW: <http://planning.cs.uiuc.edu/>. ISBN 9780521862059. [7]
MARTINETZ, T.M.; SCHULTEN, K.J. A neural gas network learns topologies. Artificial Neural Networks. 1991, vol. 1, no. 1, s. 397‐402. [8]
PROCYK, T.J.; MAMDANI, E.H. A linguistic self‐organizing process controller. Automatica. 1979, no. 15, s. 15‐30. ISSN 0005‐1098. [9]
VAŠČÁK, J.; MADARÁSZ, L. Automatic adaptation of fuzzy controllers. Acta Polytechnica Hungarica : Journal of Applied Sciences at Budapest Tech Hungary. 2005, vol. 2, no. 2, s. 5‐18. Dostupný také z WWW: <http://www.bmf.hu/journal/Vascak_4.pdf>. ISSN 1785‐8860. [10] VAŠČÁK, J. Navigation of Mobile Robots Using Potential Fields and Computational Intelligence Means. Acta Polytechnica Hungarica : Journal of Applied Sciences at Budapest Tech Hungary. 2007, vol. 4, no. 1, s. 63‐74. Dostupný také z WWW: <http://www.bmf.hu/journal/Vascak_9.pdf>. ISSN 1785‐8860. [11] VAŠČÁK, J. Fuzzy cognitive maps in path planning. Acta Technica Jaurinensis : Series Intelligentia Computatorica. 2008, vol. 1, no. 3, s. 467 ‐ 479. Dostupný také z WWW: <http://acta.maxwell.sze.hu/component/docman/ doc_download/89‐fuzzy‐cognitive‐maps‐in‐path‐planning.html>. ISSN 1789‐
6932. [12] VAŠČÁK, J. Using neural gas networks in traffic navigation. Acta Technica Jaurinensis : Series Intelligentia Computatorica. 2009, vol. 2, no. 2, s. 203‐215. Dostupný také z WWW: <http://acta.maxwell.sze.hu/component/docman/ doc_download/56‐using‐neural‐gas‐networks‐in‐traffic‐navigatin.html>. ISSN 1789‐6932. [13] VAŠČÁK, J.; MADARÁSZ, L. Adaptation of fuzzy cognitive maps : a comparison study. Acta Polytechnica Hungarica : Journal of Applied Sciences at Budapest Tech Hungary. 2010, vol. 7, no. 3, s. 109‐122. ISSN 1785‐8860. Dr. Ing. Ján Vaščák Technická univerzita v Košiciach, Fakulta elektrotechniky a informatiky Letná 9, 042 00 Košice, Slovensko e‐mail: [email protected] 82
HLEDÁNÍ CESTY A GENEROVÁNÍ MAPY
PATHFINDING AND MAP GENERATING
Luboš Běhounek
Abstrakt
Tato práce se zabývá jednoduchým generováním výškové mapy pomocí generování
náhodných hodnot a jejich rozostřením a následným grafickým zobrazením v
ukázkovém programu, dále se zabývá hledáním nejvýhodnější cesty v této
vygenerované výškové mapě za využití algoritmu A* s heuristikou i bez s možností
nastavení různých parametrů – například jestli se lze pohybovat diagonálně, podle
jaké cenové funkce se má cesta hledat apod. To je vše ukázáno v ukázkovém
programu, který nabízí i možnost editace vlastní mapy.
Klíčová slova
hledání cesty, generování mapy
Abstract
This work is about simple generating of heightmap using random values and their
blurring followed by graphic presentation in example application. In this heightmap,
A* algorithm is used to search for the best path both with and without heuristics with
optional parameters – if agent can move on diagonals, what cost function is used etc.
Example application which allows user's customization of map is used for
demonstration.
Keywords
pathfinding, map generating
1. Úvod
Počítačové generování map se dnes často používá pro generování terénu za využití
tzv. heightmapy (výšková mapa), především z toho důvodu, že je to poměrně
jednoduché a efektivní. Takto generované mapy se používají pro různé zobrazení
terénu v simulacích, počítačových hrách, ale i jinde.
Díky diskrétnosti takto generovaných map je pak jednoduché sestavení grafů
reprezentujících tuto mapu a hledání optimálních cest - například pro navigaci
botů (počítačem ovládaných postav).
K tomuto účelu jsem v jazyce C# vytvořil jednoduchý ukázkový program (ze
kterého je většina zde přiložených obrázků), který dokáže generovat
83
pseudonáhodné mapy (nebo nechá uživatele je upravovat) a umožňuje uživateli
nastavovat základní parametry zobrazování výsledků a měnit základní parametry
prohledávacího (i generovacího) algoritmu.
2. Generování mapy
Pro uchovávání výšky trojrozměrného terénu se dnes mimo kompletních modelů
využívá také výše zmíněná výšková mapa, což je dvourozměrné pole, ve kterém
každý záznam určuje výšku nějakého bodu terénu. Mezi jeho výhody patří
především snadná editovatelnost. Výsledná pozice bodu je určena jeho
souřadnicemi v poli a jako třetí souřadnice je použita právě hodnota v poli na této
pozici, například pokud hodnota pole[4,8]=5, pak pozice bodu je (4,8,5). Pro
případné dopočítání pozice bodů, které v poli nejsou, se pak používá interpolace z
pozic bodů okolních. Na obr. 1 je vidět ukázková heightmapa ve stupních šedé (čím
je barva světlejší, tím je vyšší nadmořská výška).
Obr. 1: Příklad výškové mapy - Austrálie [4]
Při generování výškové mapy lze postupovat mnoha způsoby, mezi základní patří
ruční editace, která sice většinou vypadá nejlépe, ale může být pro velké mapy
příliš pracná. Proto se někdy přistupuje k procedurálnímu generování map, které
dokáží vygenerovat více či méně realisticky vypadající mapu, v závislosti na kvalitě
algoritmu a vhodně nastavených parametrech. V dnešní době se pro tvorbu
výškových map často využívají fraktály a Perlinův šum (perlin noise)[1], pro
ukázkovou aplikaci byl z důvodu jednoduchosti vytvořen následující algoritmus,
který je pro účely ukázkové aplikace plně dostačující (dá se říci, že je to vlastně
zjednodušená verze Perlinova šumu).
Pro každý bod v dvourozměrném poli je vygenerováno náhodné číslo v rozsahu 0Vmax, kde Vmax je maximální výška terénu, vznikne terén, který je ale příliš členitý
(zrnitý), viz obr. 2, proto je několikrát aplikováno ještě jednoduché rozostření,
které pro každý záznam spočítá průměr z jeho okolí (obr. 3) a nakonec je ještě celý
84
terén o určitou hodnotu snížen, aby bylo možné určovat množství vody na mapě
(obr. 4), voda je neprůchozí pole, za vodu jsou považována všechna pole, kde je
výška<0.
Obr. 2: Terén vygenerovaný z náhodných čísel
Obr. 3: Terén po pětinásobné aplikaci rozostření
Obr. 4: Terén po pětinásobném rozostření a snížení výšky
3. Hledání cesty
Kvůli jednoduchosti implementace algoritmu a zobrazení výsledků je zde mapa
převedena na graf jako pravidelná mřížka, ale existují i jiné přístupy, například
85
navigation mesh, který mapu průchodnosti ukládá jako množinu mnohoúhelníků,
což je výhodnější především pro rozsáhlé spojité prostory (více viz. [6]).
Pro hledání cesty byl zvolen velmi rozšířený algoritmus A*, který za pomoci
heuristiky kombinuje optimálnost Dijsktrova algoritmu s rychlostí např. algoritmu
Greedy Best-First-Search (který není optimální, ale je rychlejší)[5]. Pokud je u
heuristické funkce dodržena podmínka, že odhad nepřesáhne reálnou vzdálenost,
tak je nalezená cesta vždy optimální, tedy že má nejmenší cenu[2].
Popis algoritmu[3]:
Openset a Closedset jsou množiny polí, openset je množina právě prohledávaných
a closedset je množina již prohledaných. H cena je heuristický odhad ceny z tohoto
pole do cíle, G cena je aktuální cena cesty do daného políčka od startu a F je odhad
výsledné délky cesty přes toto políčko (F=G+H).
1) Přidá se počáteční pole do opensetu.
2) Opakuje se následující:
a) Vyhledá se políčko X s nejnižsí F cenou v opensetu.
b) X se vyřadí z opensetu a přidá do closedsetu.
c) Pro všechny sousední pole Y tohoto políčka X:
• Ignoruje se, pokud není průchodné nebo je v closedsetu, jinak
• Pokud není v opensetu, přidá se do něj. X se nastaví jako jeho rodič.
Nastaví se F, G a H ceny políčka Y.
• Pokud již byl v opensetu, zkontroluje se, jestli je tato cesta k tomuto
políčku lepší (použitím G ceny). Nižší G cena znamená, že je to lepší
cesta, pokud tomu tak je, změní se rodič políčka Y na políčko X a
přepočítá se G a F skóre políčka Y.
3) Algoritmus končí když:
a) Je přidáno cílové políčko do closedsetu – cesta byla nalezena
b) Openset je prázdný – cesta neexistuje
4) Uložit cestu. Začíná se od cíle, najde se jeho rodič, přidá se do výsledné cesty,
nalezne se rodič jeho rodiče (ten se také přidá do výsledné cesty) a toto se
analogicky opakuje, dokud se nedojde k počátku.
Pro heuristickou funkci H(n) políčka n existuje velké množství heuristických
funkcí, mezi běžně používané se řadí například Manhattanská a Chebyshevova
vzálenost[5], v ukázkovém programu byla použita vzdálenost Eukleidovská: H(n) =
dist(n, cíl). Tato funkce dodržuje podmínku nutnou pro nalezení optimální cesty[2]
a hledání je většinou značně urychleno, protože jsou při prohledávání
upřednostňována pole směrem k cíli, takže jich program musí prohledat menší
množství. Jako heuristickou funkci lze použít i H(n)=0, což bude mít za následek, že
žádná heuristika nebude použita. Rozdíl mezi použitím a nepoužitím heuristické
funkce je vidět v množství prohledaných polí na obr. 5 a obr. 6 (lze postřehnout, že
různé heuristické funkce mohou vracet různé cesty, ale celková cena těchto cest je
vždy stejná).
86
Obr. 5: Vyhledávání s H(n) = 0
Obr. 6: Vyhledávání s H(n) = dist(n,cil)
Způsobů výpočtu ceny přechodu mezi sousedními políčky lze použít mnoho, v
ukázkovém programu jsou ukázány tyto tři:
minimální výškový rozdíl – hledá se taková cesta, která bude mít nejmenší
součet převýšení, agent se bude snažit veškeré překážky obejít, pokud je to
možné, i kdyby měl vzdálenostně ujít mnohonásobek nejkratší přímé cesty
(obr. 7)
costheight = abs(height(n1)-height(n2))
•
•
minimální vzdálenost – agent ignoruje převýšení, jde nejkratší vzdušnou
cestou, pouze pokud jsou v cestě neprůchozí místa, tak se jim vyhýbá (obr. 8).
Pokud se lze pohybovat po diagonálách a v daném prostředí cesta po diagonále
má větší cenu (jako v reálném světě), tak pro výpočet vzdálenosti na diagonále
je vhodnější použít vzdálenost spíše než 1.
costdist = sqrt((n1.x-n2.x)2 + (n1.y-n2.y)2)
87
kombinovaná – použije se výškový rozdíl i vzdálenost políček (obr. 9),
každému parametru lze nastavit jinou váhu (v následujícím vzorci jsou váhami
proměnné alpha a beta)
costcomb = alpha*costheight + beta*costdist
•
Obr. 7: Cena - minimální výškový rozdíl
Obr. 8: Cena - minimální vzdálenost
Obr. 9: Kombinovaná cena (obě váhy 1)
4. Závěr
Tento článek se zabýval jednoduchým vytvářením výškových map, včetně jednoho
ukázkového algoritmu využívajícího generování náhodných hodnot a jejich
následním rozostřením pro realističtější vzhled a hledáním nejkratší cesty v této
88
mapě s různým nastavením ohodnocovací funkce (výškový rozdíl, vzdálenost a obě
kritéria zkombinovaná) a různými funkcemi pro heuristickou analýzu, která při
volbě vhodného algoritmu pro daný typ mapy dokáže prohledávání výrazně
urychlit.
Literatura
[1] ELIAS, Hugo. The good-looking textured light-sourced bouncy fun smart and
stretchy page [online]. 2003 [cit. 2011-06-04]. Perlin Noise. Dostupné z WWW:
<http://freespace.virgin.net/hugo.elias/models/m_perlin.htm>.
[2] KORF, Richard. Symposium on Abstraction, Reformulation and
Approximation [online]. 2000 [cit. 2011-06-04]. Recent Progress in the Design
and Analysis of Admissible Heuristic Functions. Dostupné z WWW:
<http://sara2000.unl.edu/Korf-slides.ppt>.
[3] LESTER, Patrick. Almanac of Policy Issues [online]. 2005 [cit. 2011-06-04]. A*
Pathfinding for Beginners. Dostupné z WWW:
<http://www.policyalmanac.org/games/aStarTutorial.htm>.
[4] ModTheSims [online]. 2010 [cit. 2011-06-04]. Issue with self-made
heightmaps in CAW. Dostupné z WWW:
<http://thumbs2.modthesims.info/img/3/9/7/2/8/5/3/MTS2_Zrital_106711
2_heightmap_Australia.JPG>.
[5] PATEL, Amit. Amit's A* Pages [online]. 2009 [cit. 2011-06-04]. Dostupné z
WWW: <http://theory.stanford.edu/~amitp/GameProgramming/>.
[6] TOZOUR, Paul. Game/AI [online]. 2008 [cit. 2011-06-04]. Fixing Pathfinding
Once and For All. Dostupné z WWW: <http://www.aiblog.net/archives/000152.html>.
Luboš Běhounek
Univerzita Hradec Králové, Fakulta informatiky a managementu
Rokitanského 62, 500 03 Hradec Králové, Česká republika
e-mail: [email protected]
89
UŽITÍ SOFTBOTŮ A „UI“ PRO NPC
USING SOFTBOTS AND „AI“ FOR NPC
Stanislav Brandejs
Abstrakt
Tato práce je zaměřena primárně na oblast nehráčských charakterů (NPC) v
počítačových hrách. Po definování podstatných pojmů bude čtenáři představeno
roztřídění žánrů her a příslušných NPC a také odpovídají techniky UI, které jsou
používané pro implementaci požadovaného chování herních elementů. V následující
části následuje detailní popis vlastní funkcionality a architektury botů použitých v
akčních hrách z prvního pohledu (FPS). V závěru jsou uvedeny informace o budoucí
práci a konceptech v této oblasti vývoje.
Klíčová slova
počítačové hry, herní entity, NPC, softwaroví boti, architektura softbotů
Abstract
This paper is focused primarily on area of Non-Player Characters (NPC) in computer
games. After definition of necessary terms, reader will be introduced to classification
of both games and NPCs, according to AI techniques used for implementation of
desired behavior in game elements. In the following part, detailed description of
functionality and architecture of bots used in First Person Shooter (FPS) games will
be provided. Information on future work and concepts in this area is concluding this
paper.
Keywords
Computer games, Game entities, NPC, Software Bots, Architecture of Softbots
1. Úvod
V dnešní době jsou již počítačové hry chápány jako další mediální forma, stejně
jako filmová produkce, nebo knižní tvorba. Na rozdíl od filmů a textu nabízejí
širokou možnost zpětné vazby, značnou dynamičnost děje a vlastního zážitku.
Krom toho, že při hraní hry vnímáme její audiovizuální stránku, jsme zároveň
součástí celého herního prostředí, které reaguje na naše akce.
Tato reaktivnost se s dnešním vývojem stále zdokonaluje a jsou používány nové
mechanismy, které tento zážitek umocňují.
90
Velice důležitým prvkem je implementace Umělé Inteligence (dále jen UI), její
integrace do herního prostředí a její použití pro NPC, které jsou nedílnou součástí
zážitku.
2. Typologie Her
Každá hra má odlišnou hratelnost. Pro přehlednost se používá dělení do kategorií.
Kompletní výčet můžete najít ve článku „Video-herní žánry“ publikovaný na
Wikipedii [8]. Pro přiblížení principů UI a její použití pro NPC jsou nejzajímavější
následující herní žánry:
• arkády,
• strategie,
• RPG.
Pokud obecně hovoříme o arkádových hrách, jsou myšleny takové hry, které mají
hratelnost postavenou na odměňování hráče za adekvátní reflexy a schopnost
účelně vnímat herní prostředí. Jedná se především o akční hry z prvního pohledu
(tzv. FPS, neboli First Person Shooter), akční hry z pohledu třetí osoby
(3rd person), hry závodní, letecké simulátory atd.
Strategické hry se oproti arkádám nesou v pomalejším tempu s důrazem na
bystrost a logiku hráče. Implementace UI je stěžejním prvkem hratelnosti. Hráč
pouze zadává jednoduché příkazy, ale elementární chování NPC jednotek
zaopatřuje počítač.
RPG (Role-Playing Game), neboli hry na hrdiny jsou založené na příběhu a
vlastním vyprávění (to mají společné s adventurami, které však neobsahují systém
pravidel herního světa). Typický je vývoj postav, celého herního světa a také
působení náhody (veškeré dění ovlivňují generátory náhodných čísel).
3. Non-Player Character
Podle článku na Wikipedii [7] je „NPC, neboli „Non Player Character“ (dále jen
NPC) reprezentací jakékoliv živoucí herní entity, která není ovládána hráčem.“
Existují v herním virtuálním světě a představují iluzi určité inteligence. Všechna
NPC obsahují konkrétní naprogramování (statické, nebo implementaci botů), které
zajišťuje odpovídající reakce na podněty (podobně jako čistě reaktivní agent). Při
použití softwarových botů je možno dosáhnout komplexnější autonomie.
Další článek [4] nahlíží na NPC jako na „specifické expertní systémy, v rozsahu od
elementárních, až po skutečně obsáhlé.“ V klasických FPS hrách představují
oponenty/spoluhráče a je u nich kladen důraz na používání schopností, zbraní,
dostupných předmětů, path-finding, reflexní chování a aktuální uvažování obecně.
V těchto případech se již pro tyto entity zažilo označení "boti". Bot je však
mechanismus interního programování, který NPC řídí.
Na rozdíl od arkádových her jsou v RPG hrách používány NPC v mnohem širším
měřítku. Zastupují veškeré bytosti herního světa, počínaje enviromentálními NPC
bez širšího vlivu, až po dějové NPC. U těchto NPC je kladen největší důraz na
věrohodnost entity: tedy jak dobře dokáže zahrát určenou roli.
91
Speciální kategorií NPC jsou UI pro strategické hry. Ty musí zajišťovat souhru
všech jednotek na herní mapě včetně logistiky a path-finding. Stěžejním prvkem je
spočítání adekvátní strategie vzhledem k probíhajícímu dění ale také s ohledem na
budoucí možný vývoj situace. Důležitá je tedy kooperace, ovládání prostředků a
hlavně racionální, logické uvažování.
4. Softwarový bot
Používá se pro každou entitu video-herních NPC, která mají vykazovat známky
autonomního chování. Zaopatřují zpracování vstupních informací dle kognitivní
reprezentace světa a následné vyhodnocení a provedení adekvátní reakce.
Na rozdíl od klasických agentů UI (kteří jsou optimalizovaní na nejvyšší možnou
efektivitu) se schopnosti botů omezují tak, aby se přiblížili jednání lidského hráče.
Vzhledem ke strojové povaze není problém sestrojit bota s nadlidskou přesností. S
takovým botem by se však nedalo soupeřit a pro to herní boti podléhají určitým
omezením.
5. Statický softbot
Podle článku „Computer game bot“ [4] jsou činnosti statického softbota
předdefinované a dokáže pracovat pouze v deterministickém prostředí. Tyto
prostředí jsou konkrétní herní mapy. Pro každou mapu musí mít bot definovanou
soustavu waypointů: tedy bodů na mapě, ke kterým se vážou algoritmy a předem
definované rutiny (skripty). U tohoto typu softbotů jsou mechanismy strojového
učení a získávání poznatků omezené jen na úzkou oblast vlastního rozhodování.
Nevýhoda těchto botů spočívá v tom, že jejich chování je předvídatelné (obzvláště
patrné bez zásahu hráče) a ve znovu opakované situaci takřka identické. Pouze v
případě, že program statického bota obsahuje širokou škálu různorodých reakcí,
tak se tato předvídatelnost ztrácí. Typickým příkladem pro jejich použití jsou
arkádová multiplayerová klání jako Quake 3 Arena (tato hra posloužila jako
příklad principu implementace UI pro jednotlivá NPC.), Unreal tournament,
Counter-Strike apod.
5.1. Historie Statických Softbotů
Vývoj statických botů začal se zavedením FPS žánru a her, jako byl Wolfenstein 3D,
legendární DOOM, Duke-Nukem 3D, apod. Všechny tyto hry využívaly pro NPC
oponenty velice jednoduché skripty, které operovaly jen s minimálním množstvím
FSM modelů (viz Níže).
Velký zlom nastal v roce 1998 s příchodem hry Unreal a technologie Unreal Engine
(jehož nové verze se používají dodnes a jsou základem spousty počítačových her),
ve které se začalo používat instancí statických botů pro každé NPC zvlášť.
Boti byli doplněni o systém waypointů (bodů cesty) a také o modely pro kooperaci
mezi více NPC. To bylo umožněno díky integraci vyšší UI, která řídila základní
vrstvy chování botů a umožnila jejich vzájemnou kooperaci v rámci skupiny a dále
konkrétní a definovatelné chování jednotlivých skupin.
92
Později, v témže roce (1998), byla také vydaná hra Half-Life, ve které stojí za
pozornost její modularita. Hra obsahovala možnost instalace dalších modulů, které
používaly původní herní engine bez návaznosti na originální obsah. Začaly tak
vznikat zcela nové herní módy a vznikla široká komunita hráčů, vývojářů a
programátorů, kteří vytvořili spoustu rozsáhlých projektů.
Z ohledu na vývoj UI a softbotů byl klíčový mód Counter-Strike. Původně
neobsahoval žádnou implementaci UI, což bylo impulzem pro vývojáře. Vznikla
spousta doplňkových programů pro podporu botů (nejznámější: PODBot).
Zajímavé je, že přes značné stáří hry vývoj pokračuje dodnes. Komunita sídlí na
serveru Bots-United.com [3] a dají se zde dohledat zajímavé informace o vývoji.
6. Dynamický softbot
Tito softboti si dokáží vytvořit vlastní systém waypointů. Vytvářejí si kognitivní
model tím, že procházejí herní prostředí. Také počítají s možností změny okolností
a s aktuálností získaných informací. Vyvozené závěry pak ovlivňují chování bota.
V případě kooperace těchto softbotů je lépe ošetřeno předávání informací, jejich
zpracování, následné usuzování a rozhodování.
7. Principy funkce Softbotů
Jak je uvedeno výše, použití a implementace UI se liší podle typu hry. Dále si
ukážeme základní funkčnost softbotů pro použití v akčních hrách.
Tito softboti dokáží simulovat přirozené lidské reflexy, reakční logiku a dokáží
využívat herních mechanismů obdobně jako hráč.
Bot stejně jako člověk dokáže vnímat prostředí kolem sebe a v návaznosti na to
jednat. Na rozdíl od člověka však bot vnímá jen pomocí systému pro reprezentaci
vjemů získaných z virtuálního prostředí. Dle aktuální situace je pak odvozováno
následné chování bota, které je určeno naprogramováním a v případě
dynamických softbotů také znalostní databází, která se postupem existence bota
rozšiřuje a usnadňuje tak vlastní rozhodování.
Všechny tyto principy a vzory chování jsou aplikované pomocí jednotlivých
modulů, ze kterých je sestavena vlastní architektura softbota. Každý tento modul
odpovídá za řešení určité situace a používá k tomu příslušné aritmeticko-logické
operace. Pro váhové rozhodování se využívá fuzzy logiky (v jednodušších
případech) a také neuronových sítí, které dokáží řešit složitější problémy, jako jsou
různý puzzly apod. Řeší se tak hlavní problémy jako je navigace bota (realizovaná
modulem pro path-finding) výběr předmětu, schopnosti a načasování vlastní akce.
7.1. Path-finding
Je základní operací, které musí být bot schopný a slouží k vyhledání optimální
cesty skrz herní prostředí. Jednotlivé úseky, zóny, křižovatky, klíčová místa a
výhodné pozice jsou označeny soustavou bodů (waypointů) a pomocí výpočtu je
zvolena nejoptimálnější trasa ke zvolenému cíli. Momentální cíl je určen dle
váhových proměnných. Pokud se váha dosavadního cíle během cesty změní, je také
přepočítána nová cesta a bot se vydá za novým cílem.
93
Pro vypočítání optimální trasy se většinou používají heuristické algoritmy, v
případě Quake 3 Arena botů konkrétně Floyd-Warshallův, Dijkstra a A* algoritmus.
Ukázalo se však, že už samotné rozmisťování waypointů je problematickou
záležitostí a je s ním potřeba počítat při prvotním návrhu úrovní. To je obzvlášť
důležité, pokud jsou používáni ryze statičtí boti. Ti se totiž řídí pouze předem
definovanou strukturou waypointů. Dynamičtí boti si vytváří waypointy vlastní, ale
i tak je potřeba úroveň vhodně navrhnout, aby toto bylo vůbec možné. Na obrázku
č. 1 je vidět jednoduchá síť pro průchod bludištěm. Waypointy musí být na všech
klíčových místech, jako jsou rohy, křižovatky a cílové oblasti, jinak by bot nebyl
schopen bludištěm vůbec projít a pravděpodobně by se „zasekl“ na první zatáčce
bez příslušného waypointu.
Obr.1: Struktura waypointů pro průchod bludištěm (zdroj [2])
Pro komplexní herní prostředí nestačí ani podrobná soustava waypointů a je třeba
používat techniku pro plánování mezicest. Tato technika se nazývá Routing, a
slouží k počítání všech možných cest od bodu 1 k bodu 2. Zahrnuty jsou všechny
možné situace, které cestou mohou nastat a jejich optimální řešení.
Cesta se určuje dle momentální situace, tedy v závislosti na aktuálním dění.
Pokročilejší principy routingu jsou použity kupříkladu při konfrontaci s dalším
NPC nebo hráčem a umožňují využívat vlastnosti prostředí pro potřeby NPC.
Obr. 2: Ukázka plánovače cesty pro průchod komplexní mapou (zdroj [2])
94
Pokud se jedná o dynamického bota, využívá funkčnost routingu i pro vlastní
označování waypointů dle momentální váhy konkrétního místa. Přesné postupy
pro implementaci takovéto funkčnosti jsou podrobně popsány v tezi botů pro
Quake 3 Arena [2]. Na obrázku č. 2, který je z této teze převzat, je vidět grafická
ukázka plánovače routingu, kdy je každá část prostoru označena obdélníkovou
výsečí, z kterých je nakonec vyselektována optimální cesta.
7.2. Final State Machine Model (FSM Model)
Každý bot obsahuje systém pro určení svého stavu. Z těchto stavů se následně
odvozuje vlastní chování a reaktivnost bota. Změny stavů jsou řízené rozhodovací
logikou pomocí vyšších vrstev UI (viz níže). Každý stav obsahuje různou sestavu
rutin a následně ovlivňuje dílčí váhové priority. Počet těchto stavů je konečný.
Obr. 3: Ukázka jednoduchého FSM modelu bota (zdroj [2])
7.3. Rozhodovací moduly
Používá se Fuzzy logika, neuronové sítě a genetické algoritmy. Pomocí těchto
metod se určují priority bota v ohledu na vstupní proměnné. Tyto prvky zohledňují
zpracování paralelně distribuovaných informací a předchozích instancí
konkrétního rozhodnutí. Používají se také pro práci s informacemi, které bot
zaznamená během vlastní existence a které se dají použít pro efektivnější řešení
složitých váhových operací. Celá tato vrstva UI řeší nejednoznačné problémy
ovlivněné širokým spektrem vstupních proměnných.
8. Architektura softbotů
Bot je soustavou dílčích procesů s různou prioritou, které obstarávají zpracování
informací a odpovídající reakce. Jedná se o poměrně složitý víceúrovňový model,
který odpovídá implementované rozhodovací logice. Tato architektura je
rozdělena na úrovňové vrstvy. Dále bude rozepsána struktura botů použitých ve
hře Quake3 Arena. Všechny poznatky jsou přejaté z oficiální Q3A teze [2].
První vrstva slouží pro interakci s prostředím, tedy vnímání herního prostředí a
následné akce vykonané botem, je to tedy vlastní I/O rozhraní, podobně, jako
skutečný hráč má k dispozici ovládací a audiovizuální zařízení.
Smysly bota jsou vytvořeny pomocí „AAS“ systému povědomí o okolí (Area
Awareness System), který zaopatřuje bota všemi podstatnými vjemy o
95
momentálním stavu herního prostředí. Používají se přímo herní data, která jsou
abstrahována do použitelné formy. Tyto data následně tvoří kognitivní model.
Základní akce jsou dílčí elementy chování bota a jsou obdobou akcí namapovaných
na klávesnici a myš.
Druhá vrstva obstarává nižší inteligenci, která simuluje podvědomé reakční
chování a také určuje dílčí preference bota. Skládá se z fuzzy logiky, báze dílčích
cílů, navigace (path-finding, routing) a dodatečných procesních metod.
Modul charakter obsahuje prvotní nastavení bota a může se lišit pro každou
instanci. Zde je uloženo nastavení preferencí a v podstatě vlastní „osobnost“
softbota (realizováno jako .ini soubor). Tato vrstva také obsahuje komunikační
modul, který slouží ke zpracování příkazů pro koordinaci týmu.
Třetí vrstva je UI síť, která zajišťuje vyšší inteligenci a také řídící a vyhodnocovací
procesy. Jedná se o kombinaci produkčních pravidel (většinou zapsaných jako
podmíněné příkazy) a klíčových uzlů (node) určujících reakci v různých situacích
dle „stavu mysli“ bota.
Principem funkce je velice podobná s Final State Machine a je tedy nejvyšší
rozhodovací vrstvou. Obsahuje implementaci vyšší logiky pro samotný souboj, ale
také UI pro překonávání možných překážek a řešení puzzlů. Navíc umožňuje práci
s externími příkazy.
Čtvrtá vrstva je určená pro kooperaci mezi více boty a určenému botovi přidává
funkci „team leadera,“ který je pak odpovědný za distribuci příkazů mezi ostatními
boty a jejich kooperaci. To je v tomto případě vyřešeno pomocí teamového in-game
chatu a textových zpráv, které mohou číst i lidští hráči. Pokud hráč zná klíčové
slova tohoto textového protokolu, může sám koordinovat NPC týmové spoluhráče.
Je tím zajištěna dodatečná zpětná vazba.
Rozvrstvení rozhodovací logiky je záměrné a to pro to, že nižší vrstvy pouze
zprostředkují informace vrstvám vyšším a nemusí se zabývat vyhodnocováním. Je
tím zvýšena efektivita systému, protože moduly mohou kontinuálně zpracovávat
další příchozí informace bez případných „hluchých míst“.
Na dalším obrázku je zobrazen informační tok mezi jednotlivými moduly softbota.
Všechny datové toky, které míří vzhůru, nesou informace o statusu bota a stavu
jeho okolí. Vyšší rozhodovací vrstvy zpracují tyto informace a udržují aktuální
informace o herním světě a o tom, „co se vlastně děje.“
96
Obr. 4: Model komunikace mezi moduly ve víceúrovňové architektuře softbota. (zdroj [2])
9. Implementace a použití Softbotů
Pokud hovoříme o botech, hovoříme o v podstatě nezávislých programech, které
vnímají hru na podobné úrovni jako samotný hráč. Zajímavé je, že vlastní „myšlení“
botů je vůči hře realizováno asynchronně. Přes to že herní engine zpracovává
jednotlivé herní rámy dle výpočetních možností, boti jsou na těchto výpočtech
nezávislí a reagují v předem definovaných intervalech (Q3A boti operují na 10hz).
10. Další vývoj NPC
Hry, které pro NPC využívají softboty dokážou vytvořit iluzi plného a živoucího
světa. Mnoho moderních her má implementaci umělé inteligence na velice dobré
úrovni a při hraní máte skutečně pocit, že jste součástí herního světa a NPC jsou
skuteční živí tvorové.
Bohužel, poslední dobou je na vzestupu tendence hry zpracovat pouze
audiovizuálně a až tak se nezabývat vlastním obsahem a funkčností prostředí a vše
jednoduše scenáristicky „předskriptovat“. Vznikají tak díla, která sice vypadají
úchvatně, ale více než o dynamickou hru se jedná o statický herní zážitek, který
neposkytuje žádnou výzvu a ani pocit z dobrého hraní. Díky tomuto trendu upadá i
samotná snaha o vývoj dokonalejší a abstraktnější herní UI.
V herním průmyslu se již točí ohromné množství peněz, ale vývoj umělé
inteligence přes to značně stagnuje. Všechny dnešní hry jsou stále jen kopie
dávných herních konceptů, které tu jsou v takřka nezměněné formě od počátku
devadesátých let.
Skutečně obsáhlé a autonomní NPC se zatím používají jen pro úzkou paletu her
(převážně právě FPS). V ostatních hrách jsou implementované jen velice
jednoduché modely. Bylo by dobré nasazení softbotů rozšířit do většího počtu her
a implementovat funkce, které zajistí větší míru abstraktního uvažování.
97
Toho by se také dalo mnohem lépe dosáhnout, kdyby dnešní hry obsahovaly
podrobnou dokumentaci, otevřený zdrojový kód a také byly ve větší míře
editovatelné samotnými hráči. Z historického vývoje je dobře vidět, že
nejrozsáhlejší projekty ohledně softbotů byli právě takové, kolem kterých mohla
vzniknout komunita nadšených nezávislých vývojářů. Herní společnosti přes to
zarputile chrání své „know-how“ a spousta mechanismů, které by se daly snadno
vylepšit, podléhají informační bariéře.
11. NPC pracující s přirozeným jazykem
Na serveru Gamasutra.com nedávno vyšel článek [5] o integrování jazykového
zpracovávání do NPC a použití pro herní dialogy. Takovéto NPC by mohli v určité
míře chápat vlastní herní prostředí a bylo by možné vytvářet složitější relace.
Taková NPC by měla využití kupříkladu pro RPG a adventury.
NPC, které ovládají přirozený jazyk a s kterými můžete přímo komunikovat pomocí
vlastních otázek by bylo dalším krokem k pokročilejší UI. Vlastní funkčnost by byla
podobná mechanismům, které obsahuje například cleverbot.com.
12. Závěr
S rostoucím výpočetním výkonem je již možné simulovat autonomní procesy a
používat dynamická herní prostředí. Je však potřeba popularizovat i jiné aspekty
her, než jejich audiovizuální zpracování a vytvořit prostor pro tvorbu vyzrálejších
děl, které by dokázaly poskytnout mnohem sofistikovanější zážitky doplněné o
další spektrum dynamiky virtuálního realismu.
Literatura
[1]
[2]
[3]
[4]
[5]
[6]
SMED, Jouni; KAUKORANTA, Timo; HAKONEN, Harri. Aspects of Networking
in Multiplayer Computer Games. N/a. 2001, n/a, s. 8.
WAVEREN, J.M.P. van. The Quake III Arena Bot : Thesis. University of
Technology Delft Faculty ITS, 2001. 108 s. University of Technology Delft
Faculty ITS.
Bots United [online]. 2011 [cit. 2011-05-20]. Dostupné z WWW:
<http://www.bots-united.com/>.
En.wikipedia.org [online]. 2011 [cit. 2011-05-20]. Computer_game_bot.
Dostupné z WWW: <http://en.wikipedia.org/wiki/Computer_game_bot>.
NUTT, Christian. Future of Games: Generating Natural Language For Game
Dialogue. Http://www.gamasutra.com [online]. 15. 4. 2011, n/a, [cit. 201105-28]. Dostupný z WWW:
<http://www.gamasutra.com/view/news/34144/Future_of_Games_Generati
ng_Natural_Language_For_Game_Dialogue.php>.
En.wikipedia.org [online]. 2011 [cit. 2011-05-20].
Game_artificial_intelligence. Dostupné z WWW:
<http://en.wikipedia.org/wiki/Game_artificial_intelligence>.
98
[7]
En.wikipedia.org [online]. 2011 [cit. 2011-05-20]. Non-player_character.
Dostupné z WWW: <http://en.wikipedia.org/wiki/Non-player_character>.
[8]
Video game genres. In Wikipedia : the free encyclopedia [online]. St.
Petersburg (Florida) : Wikipedia Foundation, 10. 3. 2004, last modified on
30.4.2004 [cit. 2011-05-27]. Dostupné z WWW:
<http://en.wikipedia.org/wiki/Video_game_genres>.
Stanislav Brandejs
Univerzita Hradec Králové, Fakulta informatiky a managementu
Rokitanského 62, 500 03 Hradec Králové, Česká republika
e-mail: [email protected]
99
MULTIAGENTOVÝ PŘÍSTUP K PROBLÉMŮM LINEÁRNÍHO PROGRAMOVÁNÍ MULTIAGENT APPROACH TO LINEAR PROGRAMMING PROBLEMS Richard Cimler Abstrakt Tento článek se zabývá možnostmi využití multiagenových simulací pro řešení některých problémů lineárního programování (LP). Je zde popsán model pro simulace obslužných linek v teorii hromadné obsluhy a možná rozšíření tohoto modelu díky agentovému přístupu. Další část textu pojednává o speciálním případu toků v síti, kde jsou hrany grafu ohodnoceny nejen maximálním průtokem, ale také kvalitou dané cesty. V závěru jsou zmíněny výhody využívání simulací pro řešení problémů LP. Klíčová slova toky v sítích, multiagentový systém, lineární programování Abstract In this paper multiagent approach to linear programming problems is described. First part of the paper shows simulations used to solving queuing theory problems and possible extending of these simulations. Special case of the flow network is described in the second part of paper. Connections in flow system are evaluated by maximal flow and by quality of this connection. Advantages of multiagent approach are mentioned in the conclusion.
Keywords flow network, multiagent system, linear programming
1. Úvod Pomocí metod lineárního programování můžeme hledat maximum nebo minimum lineární funkce, při splnění určitých podmínek popsaných soustavou lineárních nerovností. Tyto metody se používají pro řešení různých problémů, jako jsou například problémy hromadné obsluhy, toky v sítích, dopravní problémy a další. Některé složité problémy nelze řešit pomocí metod lineárního programování a je potřeba je řešit pomocí simulací. [3] Agentové simulace lze použít pro řešení těchto problémů. V následujícím textu bude popsán multiagentový přístup k problémům teorie hromadné obsluhy a speciálnímu případu maximálního toku v síti. 100
2. Teorie hromadné obsluhy Teorie hromadné obsluhy, neboli také teorie front, se zabývá situacemi, ve kterých do systému složeného z obslužných uzlů, vstupují jednotky, které nesou požadavky na obsluhu. Požadavky jsou postupně obsluhovány v uzlech a jednotky postupují systémem až do výstupního uzlu. Velikost a větvení systému není nijak omezeno, může se jednat například i o systém složený pouze z jednoho uzlu, který je zároveň vstupní, tak i výstupní. 2.1. Model hromadné obsluhy Pro zkoumání možností využití multiagentového přístupu k teorii front, byl navr‐
žen a implementován model sítě obslužných linek v programovacím jazyce Java. Model byl nejdříve vyzkoušen pro jednoduché systémy složené pouze z jedné až třech obslužných linek a výsledky simulací byly porovnány s výsledky výpočtů na základě metod lineárního programování. Pomocí statistických metod byly navr‐
ženy a potvrzeny hypotézy o shodě získaných výsledků a tím zkontrolována funkč‐
nost agentového modelu. Složitější problémy lze řešit pouze pomocí simulací. Jedná se o modely, které jsou složeny z více různorodých linek. V simulacích byly testovány různé strategie odesílání obsloužených jednotek v částech systému, kde docházelo k větvení. Nákladové a časové charakteristiky byly porovnávány pro čtyři různé strategie. Požadavek je odeslán lince s: a) nejkratší frontou, b) nejrychlejší obsluhou, c) nejmenším poměrem současné a průměrné délky fronty, d) nejlevnější obsluhou. Výstupem simulace jsou časové a nákladové charakteristiky systémů využívajících různé strategie. Systém, který by měl takto nastavené linky, by bylo velice složité řešit pomocí metod lineárního programování. Další zkoumanou oblastí teorie hromadné obsluhy byla možnost vytvoření samoorganizujícího systému, který se přizpůsobuje vnějším podmínkám, tedy v tomto případě intenzitě příchodů požadavků do systému. Obslužné linky reagovaly na změnu intenzity příchodů jednotek do systému zrychlením nebo zpomalením své práce. Intenzitu příchodů do systému linky odvozovaly od délek svých front, které kontrolovaly po určitém intervalu. Náklady na chod systému závisely na rychlosti práce uzlů a na ceně za čekání jednotek v systému. Rychlost linek se přizpůsobovala podmínkám tak, aby celkové náklady na chod uzlu byly minimální. Více informací a výsledky simulací v [1]. 3. Toky v sítích Teorie toků v sítích se dá aplikovat na různé problémy. Typickým příkladem je tok v potrubí, kde jsou jednotlivé hrany, spojující uzly, charakterizovány maximálním průtokem. Cílem výpočtů je zjistit maximální možný přítok tak, aby byl systém schopen toto množství pojmout a vytékalo stejné množství, které do systému přitéká. 101
V našem případě jsme aplikovali tuto teorii na problém dopravního toku. Uzly představují křižovatky a hrany cesty. Tyto cesty nejsou ohodnoceny pouze svojí maximální kapacitou, ale i kvalitou. Cesty v síti jsou vždy jednosměrné, aby se předešlo nekonečným smyčkám. 3.1. Model toků v sítích V prostředí NetLogo byla naprogramována simulace, ve které je možné vytvořit systém uzlů a spojení mezi nimi a pozorovat různé charakteristiky takového sys‐
tému. Tyto systémy je možné poté upravovat a zjišťovat, jak se změny projeví na výsledcích měření různých charakteristik. V simulaci lze sledovat charakteristiky systému, jako je současný počet vozidel a komfort řidičů v celém modelu a v jeho částech. Tyto charakteristiky lze sledovat jak na monitorech s číselnou hodnou, tak na grafickém znázornění systému. Vytvořené modely lze snadno upravovat, například přidáním závislosti aktuální kvality cesty, na počtu aut nacházejících se právě na této cestě. V takto upraveném modelu lze zkoumat možnosti regulace příchodů jednotek do systému tak, aby byl vždy zachován určený minimální průměrný komfort všech řidičů. 3.2. Současná práce Jako příklad současného výzkumu je uveden jeden konkrétní model systému. Systém, zobrazený na obr. 1, je rozdělen na tři části, vstupní (C1), střední (C2) a výstupní (C3). Obr. 1: Model systému Účelovou funkcí „z“ je maximalizace komfortu řidičů v jednotlivých částech systému, vycházejícího z kvality cesty, po které se právě pohybuji. Kvalita cesty je označena aij, počet aut na cestě je označen xij. Kde i je počáteční uzel a j konečný. Řešení s pomocí lineárního programování maximalizuje následující funkci: Nyní bude vytvářeno řešení pomocí agentového přístupu, kde budou agenty vybírat nejvhodnější cestu na základě svých informací o dějích v systému. Pozorovat vliv množství informací o systému, na kvalitu jejich rozhodnutí, je cílem další práce. 102
4. Závěr Mnohé úlohy lineárního programování lze řešit pomocí simulací, některé složité úlohy lze řešit pouze pomocí nich. Výhodou využívání simulací je jednoduchost změn v modelovaném systému a možnost přidávání dalších parametrů, které by v klasickém přístupu lineárního programování bylo těžké do modelu implementovat. Nevýhodou agentového přístupu je časová náročnost na vytvoření simulací, tato nevýhoda je kompenzována možností využití vytvořené simulace pro řešení různých modelů situací. Literatura [1]
CIMLER, Richard. Řešení optimalizačních úloh teorie hromadné obsluhy v multiagentových systémech. Hradec Králové, 2010. Diploma thesis. University of Hradec Králové. (in Czech). [2]
JABLONSKÝ, Josef; LAUBER, Josef. Optimalizační a simulační modely operačního výzkumu. Hradec Králové: GAUDEAMUS, 1997. ISBN 80‐7041‐410‐3. (in Czech). [3]
LAWRENCE, John A.; PASTERNACK, Barry A. Applied management science. 2nd ed. New York: Wiley, 2002. ISBN 0‐471‐39190‐5. Ing. Richard Cimler Univerzita Hradec Králové, Fakulta informatiky a managementu Rokitanského 62, 500 03 Hradec Králové, Česká republika e‐mail: [email protected] 103
AGENTOVÝ MODEL DOPRAVY:
POROVNÁNÍ KŘIŽOVATKY A KRUHOVÉHO OBJEZDU
AGENT-BASED TRAFFIC SIMULATION:
ROUNDABOUT COMPARED WITH INTERSECTION
Richard Cimler, Kamila Olševičová
Abstrakt
V příspěvku představujeme agentové modely fungování dopravy na křižovatce a na
zvláštním typu kruhového objezdu. Modely jsou implementovány v prostředí NetLogo
a jsou navržen tak, aby pomocí nich bylo možné provést experimenty a ověřit dvě
hypotézy, a sice že (a) tok dopravy vedený po kruhovém objezdu je plynulejší, než tok
dopravy na světly řízené křižovatce, (b) kombinace dvou kruhových objezdů zrychlí
průjezd sanitky danou lokalitou.
Klíčová slova
agent, agentový model, NetLogo, simulace, dopravní problém
Abstract
The objective of the paper is to present the agent-based models that were developed
for simulation of the traffic flow in the center of Hradec Králové. Two frequented
intersections are planned to be rebuilt into the system of two roundabouts, with the
aim to eliminate traffic jams and to enable faster through passage of ambulances
going from and to the hospital situated along the intersections.
Keywords
Agent, agent-based model, NetLogo, simulation, transport, traffic
1. Úvod
Prostřednictvím agentových modelů a simulací můžeme zkoumat komplexní
systémy a případně i predikovat důsledky zásahů do takových systémů. Jednou
z oblastí, v níž lze přístupy založené na agentech úspěšně uplatnit a na kterou se
zaměřujeme v tomto příspěvku, je modelování dopravních situací.
Představujeme agentové modely fungování dopravy v lokalitě Mileta v Hradci
Králové. V současné době se jedná o jednu z nejzatíženějších křižovatek ve městě.
Dle výsledků celostátního sčítání dopravy, které byly zveřejněny v květnu 2011,
projede po mostě přes Labe (který s křižovatkou těsně sousedí) téměř 30 000
vozidel za den. Vedle křižovatky se navíc nalézá Fakultní nemocnice, takže tudy
104
často projíždějí vozidla záchranné služby. Dopravní provoz není stejně intenzivní
ve všech čtyřech směrech. Po hlavním městském okruhu projíždí tranzitní
doprava, směr do centra je vytížen relativně více, než výjezd ve směru k nemocnici.
Z těchto důvodů je plánováno přebudování dvou světelných křižovatek na systém
dvou mimoúrovňových kruhových objezdů (obr. 1).
Obr. 1: Plánovaný systém dvou kruhových objezdů v lokalitě Mileta
2. Modelování situace v prostředí NetLogo
Rozhodli jsme vytvořit agentovou simulaci v prostředí NetLogo a použít ji
k experimentálnímu porovnání stávajícího řešení dopravní situace v lokalitě Mileta
s řešením navrhovaným. Za účelem tohoto srovnání byly navrženy dva modely se
stejnými vlivnými parametry (hustota dopravy, vytíženost jednotlivých směrů,
rychlost vozidel apod.). Modely jsou vytvořeny za využití reálných údajů (mj.
rozměry křižovatky, rozdělení jízdních pruhů, umístění semaforů a další), resp.
v souladu s návrhem nového řešení křižovatky.
Jednotlivé vozidlo je reprezentováno agentem, který se pohybuje křižovatkou
v souladu s dopravními předpisy a přitom nezávisle na ostatních agentech. Agent
reaguje na nastavení semaforů, popř. na ostatní agenty, pokud dává přednost
protijedoucím vozidlům. Parametry agentů vycházejí také z reálných dat (např.
velikost agenta je volena v měřítku odpovídajícím rozměrům křižovatky). Každý
agent (vozidlo) má definovánu počáteční pozici na některém příjezdu ke
křižovatce, počáteční rychlost, maximální rychlost a zrychlení. Výchozí hodnoty
parametrů jsou náhodně generovány při vytvoření agenta. Tato variabilita
v nastavení parametrů přispívá k podobnosti modelu s modelovanou situací.
Pohyb agenta je usměrňován pomocí značek, umístěných v prostředí. Základní
chování agenta spočívá v postupném zrychlování až do maximální rychlosti
a v pohybu stále stejným směrem. Toto základní chování může přerušit buď jiný
agent (dojde ke zpomalení, aby se zabránilo srážce), nebo značka, nalezená
v prostředí. V simulaci kruhového objezdu je použito 5 typů značek:
Začátek nájezdu na kruhový objezd – při zjištění této značky agent změní
chování: začíná hledat značku „konec nájezdu na kruhový objezd“.
105
•
Konec nájezdu na kruhový objezd – zde agent zhodnotí, zda je možné najet na kruhový objezd, v kladném případě začne hledat značku „křížení s kruhovým objezdem“. •
Křížení s kruhovým objezdem – po nalezení této značky agent změní způsob pohybu: namísto rovné jízdy sleduje tvar kruhového objezdu. •
Výjezd z kruhového objezdu – pokud je tato značka v dohledu agenta a shoduje se s hlavním cílem jízdy (nebo alespoň vede směrem k hlavnímu cíli), agent směřuje k této značce. Po dosažení výjezdu je stanoven nový směr pohybu a agent se navrací k základnímu chování. Před nájezdem na kruhový objezd agent sleduje, zda k místu nájezdu nepřijíždí po objezdu jiný agent a zda tento agent bude objezd opouštět nebo nikoli. Při pohybu po kruhovém objezdu se opět agent řídí základním pravidlem, tedy zjišťuje, zda před ním nejede jiný agent a pokud ano, zpomalí na rychlost agenta před sebou. Opuštění objezdu je řešeno rovněž pomocí značek, představujících směry výjezdů. Obdobně je zaveden systém čtyř značek pro usměrnění pohybu agentů při průjezdu světelnou křižovatkou: •
Semafor je značka, která nese informaci, zda je možné pokračovat v jízdě a hledat značku „výjezd z křižovatky“. •
Výjezd z křižovatky je značka, po jejímž přejetí se agent vrací k základnímu chování. •
Změna pruhu – pokud agent zjistí tuto značku, odpovídajícím způsobem změní směr jízdy a sleduje jiný semafor. •
Přednost v jízdě – řeší případ, kdy směr jízdy není volný, i když barva semaforu je zelená. Obr. 2: Model řešení křižovatky pomocí dvou kruhových objezdů 106
Obr. 2 představuje hlavní okno simulace řešení dopravní situace pomocí dvou
kruhových objezdů. Mezi nastavitelné parametry patří hustoty dopravy
z jednotlivých směrů a vytížení výjezdů. Je zde také možnost vygenerovat
zvláštního agenta-sanitku a simulovat jeho průjezd.
V rámci experimentů budou na obou modelech zkoumány stejné dopravní situace,
jako je ranní špička nebo víkendový provoz. K simulování hustot dopravy
v jednotlivých směrech budou využita data, získaná měřením (počty osobních
a nákladních vozidel a jejich obvyklé rychlosti). Smyslem experimentů bude
prověření hypotézy o plynulosti dopravy.
Druhá hypotéza se týká rychlosti průjezdu sanitky. K experimentu bude použit
zvláštní typ agenta s chování odlišným od ostatních agentů v modelu, tj. s absolutní
předností jízdy. Sanitka ignoruje semafory a ani se neřídí pravidly přednosti na
kruhovém objezdu. Budeme předpokládat, že ostatní řidiči respektují absolutní
přednost sanitky a nedělají chyby. Rychlost sanitky je závislá na počtu vozidel
v okolí. Ostatní vozidla reagují na průjezd sanitky zastavením.
3. Závěr
Představené modely dopravní situace křižovatky Mileta v Hradci Králové a jejího
připravovaného řešení pomocí dvou kruhových objezdů jsou navrženy tak, aby
bylo možné provádět i další experimenty a měření. Po získání a nastavení
potřebných parametrů aut bude možné například zkoumat spotřebu a emise
vypuštěné do ovzduší v souvislosti s časem, potřebným na brzdění a zrychlování
při průjezdu křižovatkou, resp. objezdem.
Logiku modelu křižovatky i kruhového objezdu je možné využit i pro simulaci
dopravy v jiných lokalitách, v modelu stačí pouze upravit umístění jednotlivých
důležitých míst, jako je vjezd na kruhový objezd, umístění a nastavení semaforů,
hustoty dopravy z jednolitých směrů apod.
Poděkování
Příspěvek vznikl v rámci řešení projektu GAČR č.402/09/0662 – Rozhodovací
procesy v autonomních systémech.
Ing. Richard Cimler
Univerzita Hradec Králové, Fakulta informatiky a managementu
Rokitanského 62, 500 03 Hradec Králové, Česká republika
e-mail: [email protected]
doc. RNDr. Kamila Olševičová, Ph.D.
Univerzita Hradec Králové, Fakulta informatiky a managementu
Rokitanského 62, 500 03 Hradec Králové, Česká republika
e-mail: [email protected]
107
VÍCEKRITERIÁLNÍ ROZHODOVÁNÍ U AUTONOMNÍCH AGENTŮ
MULTICRITERIA DECISION MAKING OF AUTONOMOUS AGENTS
Nikola Dostálová
Abstrakt
Práce se zabývá vícekriteriálním rozhodováním v multiagentových systémech a
popisem architektury agentů rozhodujících se na tomto principu. Bude zde uveden
stručný přehled souvisejících pojmů a vývoje v této oblasti. Na příkladu budou
srovnány dvě metody – PRIAM a ORESTE – v teoretické i praktické rovině.
Klíčová slova
Autonomní agent, vícekriteriální rozhodování, kriteriální matice, metoda PRIAM,
metoda ORESTE.
Abstract
Text is focused on multicriterial decision-making in multiagent systems and provides
description of architecture of agents which use this decision-making method as their
control mechanism. Short overview of related terminology and historical
development in this field will be presented. Two methods – PRIAM and ORESTE – will
be applied to comparison.
Keywords
Autonomous agent, multicriteria decision making, criterial matrix, PRIAM method,
ORESTE method.
1. Úvod
V průběhu vývoje lidstva se vyskytly mnohé snahy o vytvoření tzv. umělého
člověka, nebo lépe řečeno stroje, který by nejen vypadal jako člověk, ale i se tak
choval. S těmito snahami se setkáváme nejen v literatuře, kdy se autoři snaží
čtenáři přeložit návrh takového „stroje“, ale i ve vědě, kdy se vědci snaží vytvořit
první robotické systémy (viz [1]). Časem se ukázalo, že snaha o vytvoření umělého
člověka zatím není na dané úrovni poznání realizovatelná.
Tedy, umělé inteligence se nezabývá konstruováním umělého člověka, ale stroje,
který umí řešit problémy v daném prostředí. Takový stroj se nazývá agent.
Tato práce by měla přiblížit, jaké charakteristické vlastnosti by měl mít agent, aby
mohl být označován za agenta autonomního. Dále stručně seznámit s funkčností
autonomního agenta a ukázat důležitost schopnosti rozhodování.
108
V případech, kdy se agent rozhoduje mezi více možnostmi pomocí stanovení
určitých kritérií, se toto rozhodování nazývá vícekriteriální. Dále budou uvedeny
některé základní pojmy z této oblasti a něco málo z historie vícekriteriálního
rozhodování.
V poslední části jsou uvedeny dvě vícekriteriální metody – metoda PRIAM,
založená na aspiračních úrovních volených uživatelem, a metoda ORESTE, která
vyžaduje od uživatele ordinální informaci o kritériích (tzn. jejich uspořádání podle
důležitosti). Srovnání není jen teoretické, ale součástí seminární práce je i
praktická část, kde jsou principy obou metod ukázány na příkladu.
2. Autonomní agent
Dle [3], pod pojmem agent, resp. autonomní agent, rozumíme uzavřený počítačový
systém zasazený do nějakého okolí, který je schopen pružně a autonomně působit
za účelem plnění daného cíle.
Za charakteristické vlastnosti autonomního agenta je považováno (dle[3]):
•
autonomnost – schopnost samostatného fungování, řízení svých výkonů a
kontrolování svého vnitřního stavu (bez vnějšího zasahování),
•
společenské chování – schopnost interakce s jinými agenty (resp.
s člověkem) prostřednictvím jistého komunikačního mechanismu,
•
reaktivita neboli reagování na podněty z okolí,
•
iniciativnost – schopnost cíleného chování vyvíjením vlastní iniciativy,
nejen reagování na podněty z okolí.
Na základě těchto vlastností lze charakterizovat hlavní funkce agenta. Jakmile
agent identifikuje cíl, řídí „svůj“ úsudek v cyklu: rozpoznávání situace –
rozhodování o řešení – výkon řešení. Pro podporu rozhodování mu slouží funkce
návrhu řešení a kooperace s jiným agentem (resp. s člověkem). Podrobněji jsou
schopnosti agenta popsány na obr. 1.
109
Obr.1: Schopnosti agenta
Dle [3]: „Pro funkci kooperace agenta slouží jeho schopnost komunikovat s okolím
(s jinými agenty, resp. s člověkem). Pro podporu rozhodování disponuje
schopností navrhovat jednorázová řešení problémů (typicky volání
optimalizačních algoritmů), jakož i schopnost vytváření dlouhodobějších plánů
řešení problémů. Percepční (senzorickou) funkci agenta zabezpečuje schopnost
jednorázově se dotazovat na stav systému nebo spustit „monitor“, který iniciativně
a samostatně informuje o jistých situacích. A konečně výkonnou funkci naplňuje
buď zahájením akce, která okamžitě změní stav systému anebo spuštěním
samostatného procesu, který potom bez dalších vnějších zásahů mění stav systému
v jistých časových okamžicích.“
Dále se budeme zabývat samotnou schopností rozhodování. Z [2]:„Jak ale
zabezpečíme, aby se agent dokázal rozhodnout, jakou část úkolu bude právě plnit,
jaké prostředky na plnění cílů použije a jakým postupem?“. Jestliže je agent nucen
se rozhodnout, většinou existují nebo je možné vytvořit určitá kritéria, podle
kterých se bude rozhodovat a vybírat z možných variant řešení. Takovému
rozhodování se říká vícekriteriální. Agent jej může využívat ve formě zadaných
algoritmů vytvořených podle některé z metod vícekriteriálního rozhodování.
3. Historie vícekriteriálního rozhodování
Již v nejstarších dochovaných filosofických textech je možné se setkat s potřebou
respektování různých a často i protichůdných kritérií při rozhodování. Tento
problém vystupuje tím více, čím méně je autorem vnímán dogmatismus či
tolerovány ideologie.
110
Poprvé byl problém vícekriteriálního rozhodování formulován v rámci ekonomie, a
to Vilfredem Paretem r. 1896 (odtud vznikl pojem paretovská optimalita nebo
paretovská hranice označující druh optimality ve vícekriteriálních úlohách).
O rozvoj teorie vícekriteriálního rozhodování významně přispěl i T. Ch. Koopmans.
Kolem r. 1960 vzniká tzv. cílové programování, což je disciplína, zabývající se
hledáním výrobních programů, vyhovujících současně několika předem zadaným
cílům. Po pár letech již vychází první knižní díla se samotnou tématikou
vícekriteriálního rozhodování.
Této problematice se začíná věnovat i řada vědeckých časopisů a vzniká i časopis,
Multi-Criteria Decision Analysis, zabývající se výlučně touto problematikou. Od r.
1972 se o vícekriteriálním rozhodování pravidelně pořádají velké mezinárodní
vědecké konference a řada konferencí místního významu. Odborníci pracující
v této oblasti jsou sdruženi v mezinárodní organizaci International Society on
Multiple Criteria Decision Making.
4. Vícekriteriální rozhodování
Rozhodovací úlohy, v nichž se důsledky rozhodnutí posuzují podle více kritérií,
budeme nazývat úlohami vícekriteriálního rozhodování. Do této kategorie patří
velice různorodé úlohy, a proto není možné předložit jakoukoli univerzální teorii a
z ní vyplývající výsledný rozhodující algoritmus, který je vhodný pro všechny typy
úloh. Teorii vícekriteriálního rozhodování je tedy nutné uvést klasifikací úloh
vícekriteriálního rozhodování.
Jedním z nejdůležitějších klasifikačních hledisek je způsob zadání množiny
přípustných variant:
a) pokud je tato množina zadána ve formě konečného seznamu -> mluvíme o
úloze vícekriteriálního hodnocení variant (s tímto úlohami budeme dále
pracovat),
b) pokud je vymezena souborem podmínek, které rozhodovací alternativy
musí splňovat, aby byly přípustné -> mluvíme o úloze vícekriteriálního
programování.
Dalším klasifikačním hlediskem jsou informace, podle nichž můžeme úlohy
vícekriteriálního rozhodování dělit do čtyř skupin (dle [2]):
1. úlohy s informací umožňující skalarizaci optimalizačního kriteria (=
s kardinální informací o kritériích) – jde sice o úlohu jednokriteriální, ale je
nutno ji zařadit, jelikož je původně formulována jako vícekriteriální a je zde
informace umožňující shrnutí více kritérií do jednoho kritéria skalárního. Je
zde nutná teorie vícekriteriálního rozhodování a to proto, aby byla
objasněna uvedená redukce na skalár a nedošlo k případnému zkreslení či
ztrátě původních informací.
2. úlohy bez informace umožňující solarizaci – tyto úlohy jsou jádrem
teorie i praxe vícekriteriálního rozhodování. Je zde zaveden pojem
111
nedominovaného řešení. Většinou je v tomto případě velice obtížné najít
jednoznačné “optimální“ řešení, jelikož nedominovaných řešení je obecně
velice mnoho a informace, kterou máme k dispozici, neumožňuje mezi
nedominovanými řešeními dále rozlišovat.
3. úlohy s informací získaných v průběhu řešení – často je k řešení
vícekriteriální úlohy k dispozici nedostatek informací, jelikož ani aplikace,
ani uživatel předem nemůžou přesně předpovědět, jaké informace budou
potřeba. Proto byly vyvinuty postupy, které během procesu rozhodování
umožňují získávání informací od uživatele skrze dotazovací mechanismus.
Problémem ovšem je, že uživatel občas nedokáže spolehlivě odpovědět na
dotaz počítače a za účelem dostat od počítače řešení úlohy, vkládá do něj
řadu domněnek. Výsledkem počítače potom nemůže být zcela optimální
řešení.
4. parametrická řešení – jelikož jsou si mnozí uživatelé vědomi toho, že je
výsledné řešení závislé na ne vždy spolehlivé počáteční informaci, dávají
přednost širšímu náhledu do problematiky před více či méně jednoznačným
doporučením k akci. Parametrická řešení jsou tedy zobrazení, která udávají
optimální řešení jako funkci vložené informace. Jejich nevýhodou může být
nepřehlednost.
V úlohách, kde dochází k vícekriteriálnímu rozhodování na základě hodnocení
variant, má množina rozhodovacích variant konečný počet prvků. Tuto množinu
budeme značit A. Dále je nezbytné určit hodnotící kriteria a metody, kterými
zjistíme kvantitativní údaje o hodnotách těchto kriterií pro všechny varianty. Z
předešlého, a to z variant a kriterií, můžeme vytvořit tzv. kriteriální matici.
Jak je uvedeno v [2], jestliže není dáno jinak, předpokládá se, že matice je brána
jako maximalizační, což znamená, že varianta je tím lepší, čím je hodnota
kriteria vyšší. Jestliže je matice minimalizační, není problém její hodnoty
přetransformovat na maximalizační – například namísto kritéria „náklady na
pořízení“ zavést kriterium „ušetřené náklady na pořízení oproti stanovenému
standardu“.
Je nutné seznámit s pojmem nedominovaná varianta. Jedná se o variantu, ke
které neexistuje varianta lepší, v tom smyslu, že pokud u ní zlepšíme hodnoty
některých kritérií, nedojde ke zhoršení kriterií jiných. Přesněji podle definice:
Nechť ai ≈ (Yi1, Yi2, …, Yik) a aj ≈ (Yj1, Yj2, …, Yjk) jsou dvě varianty. Jestliže varianta
ai dominuje variantu aj, pak ai ≥ aj. Varianta a se nazývá nedominovaná, jestliže
v množině rozhodovacích variant A neexistuje varianta, která ji dominuje.
112
Dle [3]: „Je-li v množině A jediná nedominovaná varianta, je možné ji beze vší
pochybnosti označit za optimální variantu. Typickým případem však je, že
nedominovaných variant je více. Často se můžeme setkat s případem, že AN = A. Jeli totiž rozhodovací situace jen trochu přehledná a je-li uživatel seznámen
s problematikou, podaří se mu dominované varianty předem vyloučit. Je-li
v množině AN více variant a je-li nutné doporučit k realizaci pouze variantu
jedinou, je nutné aplikovat metody, které vyberou z množiny AN v jistém smyslu
reprezentativní variantu. Varianta, která je vybrána jako reprezentant množiny AN
se nazývá variantou kompromisní (někdy se mluví o nejlepší kompromisní
variantě).
5. Srovnání dvou vícekriteriálních metod
5.1. Metoda PRIAM
Pokud uživatel nedodá žádné dodatečné informace o kritériích, je úplným řešením
úlohy vícekriteriálního hodnocení variant množina všech nedominovaných variant
AN. Ale tato množina nedominovaných variant může být v některých případech
velice obsáhlá. Platí, že čím větší počet kritérií je zadán, tím vzniká více
nedominovaných variant. Proto je nutné nějakým způsobem získat preference
uživatele – např. získat požadovanou aspirační úroveň kritérií, uspořádání kritérií
podle důležitosti, zadání vah kritérií apod. Poté je možné zvolit jednu
kompromisní variantu (nejlepší možnou variantu).
Metoda PRIAM patří mezi metody s informací o aspiračních úrovních kritérií.
Jedná se o přístup, který vychází ze znalosti aspiračních hodnot, které by měly
varianty alespoň dosahovat při hodnocení podle jednotlivých kritérií, aby byly pro
uživatele akceptovatelné.
Metoda PRIAM je založena na heuristickém prohledávání množiny a uživatel
udává směr, ve kterém prohledávání postupuje. Mluvíme-li o heuristické
informaci, jedná se o počet variant, které zůstávají přípustné pro danou aspirační
úroveň. Formální přístupy rozhodovací analýzy vytvářejí model rozhodovací
situace a řeší tento model pomocí formálních technik. Výsledek je prezentován
uživateli.
Konkrétněji, k rozhodování dochází u množiny p variant A = a1, a2, a3, .., ap.
Hodnoty ki(aj); i = 1, 2, 3,…,p; j = 1, 2, 3,…,k reprezentují hodnotu i-tého kritéria pro
j-tou variantu. Nyní navrhne uživatel aspirační úrovně ke každé kriteriální
hodnotě:
()
()
()
() = , , … , .
()
Následně, jestliže platí () ≥ , dostáváme akceptovatelné varianty, jejichž
počet označíme d. Číslo d je heuristická informace pro změny aspiračních úrovní.
Podle [2]: „Jestliže platí :
113
•
d>1, potom může rozhodovatel změnit aspirační úrovně podle počtu
akceptovatelných variant,
•
d=1,
•
d=0, potom neexistuje žádná akceptovatelná varianta a hledá se nejbližší
varianta k zadaným aspiračním úrovním řešením úlohy.
∗
∑ potom je dosažena nedominovaná varianta,
()
= − () → aj ∈ A,
Kde ∗ ; i=1, 2, ..,k jsou ideální kriteriální hodnoty.
Výsledkem metody PRIAM je cesta aspiračních úrovní a kompromisní varianta.
5.2. Metoda ORESTE
Metoda ORESTE se řadí mezi metody s ordinální informací o kritériích. Od
uživatele je požadováno kvaziuspořádání kritérií a kvaziuspořádání variant (tzn.
že připouštíme stejně důležitá kritéria i stejně důležité varianty).
Tato metoda obsahuje dvě části. V první jsou určeny vzdálenosti každé varianty
pode každého kritéria od fiktivního počátku (pořadová čísla fiktivní varianty a
fiktivního čísla jsou 0). Poté jsou varianty podle určitých pravidel uspořádány.
V druhé části dochází k preferenční analýze, kdy pro každou variantu lze provést
test na zjištění preference P, indiference I nebo nesrovnalosti N. Celkem se metoda
ORESTE skládá z šesti dílčích kroků, z [2]:
1) sestavíme vektor q a matici P.
•
•
vektor q = ( , , … , ! ), kde qj je pořadí j-tého kritéria,
matice P = (pij); i = 1, 2, …p; j = 1, 2, …k, kde pij je pořadí varianty ai podle jtého kritéria,
• v případě indiferentních kritérií jsou brána průměrná pořadová čísla.
2) vytvoříme matici D vzdáleností od fiktivního počátku.
•
matice D = (" ); i=1, 2, …p; j=1,2, …k;
•
pro prvky platí " = $
•
obvykle se používá r = 3,
()%
+
)
(')% %
(,
•
pro měření vzdálenosti od fiktivního počátku je použita tzv. Dujmovičova
metrika ([4]].
3) uspořádáme varianty.
•
hodnoty dij seřadíme od nejmenší po největší a ohodnotíme je pořadím,
•
na místo dij napíšeme pořadí (případně průměrné pořadí),
•
vznikne nová matice R = (rij),
114
•
* = ∑ *,
pro každou variantu ai spočítáme
• hodnoty ri seřadíme od nejmenší po největší, čímž získáme uspořádání variant.
4) vypočítáme normalizované preferenční intenzity.
•
Spočítáme hodnoty tzv. preferenčních intenzit podle: + = ∑-∈.(*ℎ − *ℎ);
i,j = 1,2, …p, kde Iij je množina kritérií, pro která je ai preferováno před aj
(ajPaj),
•
vznikne matice C = (cij),
•
spočítáme maximální intenzitu + /01 = (2 − 1),
•
normalizovanou preferenční intenzitou rozumíme hodnotu
•
4
vznikne matice Cn = (+
).
4
+
=
56
789
5
,
5) test indiference.
4
+
≤ ;
4
+
− +4 ≤ <,
•
musí být splněny následující podmínky:
•
parametr ; volíme tak, aby ; ≤
•
parametr < volíme tak, aby < ≤
•
pokud jsou obě podmínky splněny, řekneme, že varianta ai je indiferentní s aj
(ai I aj).
,
(=)
,
(=)
6) test nesrovnatelnosti variant.
•
podmínka nesrovnatelnosti říká, že preferenční intenzity jsou příliš velké
vzhledem k tomu, jak blízko jsou varianty u sebe, ale nejsou indiferentní,
•
pokud platí
•
parametr τ volíme tak, aby
>
56
>
>
56 − 56
≥ ? , pak jsou varianty ai a aj nesrovnatelné (ai N aj),
?≥
−2
4
,
•
pokud předchozí podmínka není splněna, konstatujeme, že varianta ai je
preferována před aj (ai P aj).
Výsledky preferenční analýzy můžeme zachytit jednak v matici, kdy řádky i
sloupce odpovídají variantám (prvky matice potom přinášejí informaci o
vzájemném vztahu pro každou dvojici variant), a jednak graficky.
5.3. Srovnání
Nyní tyto dvě metody vícekriteriálního rozhodování srovnáme na řešení
rozhodovacího problému: Máme vybrat z vybraných studijních oborů na vysokých
školách obor, který by nám nejvíce vyhovoval podle námi zadaných kritérií.
Vybrali jsme 13 oborů a zadali 7 kriterií:
k1) vzdálenost od domova (hodnoty udávány v km).
k2) počet přijímaných na vybraný obor.
115
k3) šance na přijetí na vybraný obor (hodnoty udávány v %; hodnotu dostáváme
z údajů o počtu uchazečů a počtu přijímaných na obor, a úspěšnosti u přijímacích
zkoušek v uplynulých několika letech).
k4) spokojenost a uplatnění absolventů (hodnoty ve škále od 1 (=nízké) do 5
(=vysoké); hodnotu dostáváme z údajů, jak byli studenti spokojeni se studiem,
kolik z absolventů dále po ukončení VŠ pokračuje ve stejném oboru, jaké jsou jejich
platy atd.
k5) úroveň vědecké a výzkumné činnosti školy (hodnoty ve škále od 1 (=nízké)
do 5 (=vysoké)).
k6) možnosti studia v zahraničí a mezinárodní spolupráce (hodnoty ve škále
od 1 (=žádné) do 5 (=mnoho)).
k7) možnost bydlení na kolejích (hodnoty 1 (jestliže ne) nebo 2 (jestliže ano)).
Sestavíme kriteriální matici:
Tab. 1: Kriteriální matice zadaného rozhodovacího problému
i
k1
k2
k3
k4
k5
k6
k7
1
392
68
80
3
4
5
1
2
230
100
85
5
5
5
2
3
392
35
33
5
5
4
2
4
381
80
48
4
4
3
2
5
155
120
95
2
3
2
1
6
381
35
42
1
2
5
2
7
0
50
76
5
3
4
2
8
230
95
78
3
4
3
2
9
381
12
25
4
5
5
2
10
367
20
47
4
4
5
1
11
230
53
50
3
4
4
2
12
281
70
69
2
1
2
2
13
367
38
56
1
2
1
2
6. Závěr
Autonomní agenty se s vývojem nových technologií stále více podobají člověku.
Někteří agenti jsou schopni chovat se, reagovat a rozhodovat se stejně jako člověk,
ale nikdy toho nebudou schopni sami, bez pomoci člověka. Člověk jim tuto
schopnost dává naprogramovanými algoritmy, které sám vytvoří, aby fungovaly
v určitých situacích tak jako člověk sám.
116
Metody vícekriteriálního rozhodování jsou pro člověka užitečné i při
řešení běžných rozhodovacích problémů. Usnadňují mu rozhodování a pomáhají
v hledání optimálních řešení.
Literatura
[1]
[2]
Kubík, A.: Inteligentní agenty – Tvorba aplikačního software na bázi
multiagentových systémů. Computer Press, Brno, 2004. ISBN 80-252-0323-4.
Fiala, P.; Jablonský, J.; Maňas, M.: Vícekriteriální rozhodování. Praha, VŠE,
1994, ISBN 80-7079-748-7.
[3]
Digitální knihovna Univerzity Pardubice: http://dspace.upce.cz. 1.5.2011.
(http://dspace.upce.cz/bitstream/10195/32107/1/CL273.pdf)
[4]
http://www.seas.com/downloadUNReg/ISEE.pdf
Nikola Dostálová
Univerzita Hradec Králové, Fakulta informatiky a managementu
Rokitanského 62, 500 03 Hradec Králové, Česká republika
e-mail: [email protected]
117
ROBOTICKÁ RUKA – KONSTRUKCE A POUŽITÍ
ROBOTIC ARM – CONSTRUCTION AND APPLICATIONS
Michal Gregor, Karel Petránek, Martin Burian
Abstrakt
Robotické ruce a robotická ramena jsou nedílnou součástí moderních výrobních hal,
kde usnadňují obtížnou montáž složitých technických zařízení, snižují chybovost
způsobenou lidským faktorem a šetří náklady. Příspěvek se věnuje konstrukci obecné
robotické ruky, která je schopna uchopovat a manipulovat s předměty. Rovněž jsou
rozebrány možnosti a problémy automatického ovládání ruky. Příspěvek je založen
na zkušenostech z praktické konstrukce a softwarového ovládání stavebnice Merkur,
Robotická ruka Beta.
Klíčová slova
robotika, robotická ruka, hardware, Merkur
Abstract
Robotic arms are a common part of modern assembly halls. They facilitate an often
complicated construction of various technical devices, decrease error rate caused
by human factors and cut down the manufacturing costs. This article describes
a generic robotic arm construction and the options and problems of an automated
artificial control. The generic arm is able to grab and manipulate various objects.
The article is based on a practical robotic arm construction and software control
using a Merkur kit called “Robotic Arm Beta”.
Keywords
robotics, robotic arm, hardware, Merkur
1. Úvod
S rozmachem robotiky v druhé polovině 20. století je úzce spojen vývoj
hardwarových zařízení, která mají za úkol napodobit a nahradit části lidského těla.
Jednou z nejčastěji napodobovaných částí těla jsou ruce – především díky jejich
všestrannému použití při montáži stále složitějších zařízení či manipulaci
s těžkými objekty.
V příspěvku je popsána konstrukce robotické ruky s pěti stupni volnosti, která
vychází z robotické stavebnice Merkur [1]. Je rozebráno konstrukční řešení ruky
a zmíněny technické obtíže při konstrukci ruky ze stavebnice. Druhá část
118
příspěvku se věnuje ovládání ruky pomocí softwaru a možnostmi automatického
ovládání pomocí algoritmů umělé inteligence, především počítačového vidění
a umělých neuronových sítí.
2. Konstrukce robotické ruky
Sestavená robotická ruka je ovládána pomocí šesti krokových servo motorů,
které umožňují volný pohyb ruky s pěti stupni volnosti. První motor je umístěn
v podstavě ruky a zajišťuje otáčení celého ramene ruky v teoretickém rozsahu
0–360°. Prakticky je tento rozsah omezen nastavením motoru a kabely, které
vedou k ostatním součástem ruky. Druhý motor se nachází nad podstavou
a zajišťuje předklon a záklon celého ramene ruky v rozsahu 0–180°. Třetí motor
umístěný v lokti umožňuje vertikální pohyb předloktí, běžně v rozsahu 0–90°.
Čtvrtý motor ovládá pohyb zápěstí ve vertikálním směru v rozsahu 0–180°. Zbylé
dva motory umožňují dlani ruky provádět jemnější motoriku – jeden zajišťuje
otáčení dlaně o 180° a druhý slouží k rozevírání a svírání dvou prstů ruky.
Vyvážení ruky, aby nedošlo k převracení, je vyřešeno širokou podstavou a vysunutím
ovládací desky z podstavy v opačném směru než rameno ruky.
Aby byla snížena zátěž na první motor, který nese a otáčí celou ruku, je ruka umístěna na ocelovém kuličkovém ložisku a motor je připojen pomocí ozubených kol.
Robotická ruka Merkur neobsahuje kamery ani jiné senzory pro snímání okolí
ruky. Aby bylo možné ruku řídit pomocí umělé inteligence, je nutné na ruku
připevnit dodatečné senzory.
Vhodné umístění pro obrazové senzory je na zápěstí ruky, těsně nad robotickými
prsty. Takto umístěný senzor může snímat objekty, které se nacházejí přímo
pod rukou, a není tak nutné softwarově řešit synchronizaci obrazu a pohybu ruky.
Jako obrazový senzor lze využít některou z běžně dostupných webových kamer.
Obr. 1: Robotická ruka Merkur.
1., 3., 4., 5., 6., 7. jsou krokové motory ovládající pohyb ruky, 2. – základní deska
119
3. Konstrukční problémy a jejich řešení
Použitá robotická ruka ze stavebnice Merkur obsahuje několik konstrukčních problémů, které omezují funkčnost ruky a možnosti jejího použití. Většina obtíží pochází z faktu, že celá ruka je sestavena z kovových dílů, což v některých případech
neúměrně zvyšuje hmotnost a vede k rychlému opotřebení určitých součástek.
Nejvíce namáhanou částí je loketní kloub ruky, který musí držet celé kovové
předloktí, dlaň a případný nesený náklad. Protože nejčastější poloha předloktí vůči
podstavě ruky je okolo 90°, musí být motor v loketním kloubu neustále v tahu,
aby vyrovnal působení gravitace. To způsobuje jeho silné zahřívání již po několika
desítkách sekund a může vést až k vyhoření motoru. Řešením je uchycení pružiny
k podstavě a k předloktí ruky, která ulehčí zátěž loketního motoru.
Další silně namáhanou částí je ložisko v podstavě, které drží celou ruku a umožňuje
její volné otáčení. Toto ložisko je namáháno nerovnoměrně, protože těžiště horní části
ruky je vychýleno mimo střed podstavy. Nerovnoměrná zátěž vede k namáhání
vnitřních závitů v ložisku, což může v extrémním případě způsobit jejich stržení a
nefunkčnost ložiska. Tomuto problému lze předejít umístěním ruky po vypnutí do
takového stavu, kdy je těžiště celého systému umístěno na středu podstavy.
4. Softwarové ovládání robotické ruky Merkur
Základní desku robotické ruky je možné propojit s běžným PC a z něj ovládat
jednotlivé krokové motory. V případě ruky Merkur se jedná o sériový port COM.
Ke stavebnici je přiloženo CD s ovládacím softwarem, který umožňuje změnu
pozice motorů a jednoduché nastavování pohybových sekvencí.
Aby bylo možné použít přístupy umělé inteligence k ovládání ruky, je nutné zasílat
základní desce ruky signály z vlastního programu, dodávaný ovládací software
nepodporuje vlastní programování.
V manuálu ke stavebnici není bohužel uvedena specifikace komunikačního
protokolu se základní deskou ruky, bylo proto nutné jeho specifikaci získat
zpětným inženýrstvím. Protokol pro komunikaci s deskou je uveden v tabulce Tab.
1.
Byte
Význam
Možné hodnoty
1
Úvodní sekvence
255 (0xFF)
2
Číslo motoru
0 až 5
3
Pozice motoru
0 až 255
Tab. 1: Protokol pro komunikaci se základní deskou robotické ruky Merkur
5. Robotická ruka a umělá inteligence
Pro ovládání ruky lze využít algoritmy z oblasti strojového učení a automatizovat
tak některé úkony. Jednou z možných aplikací je třídění objektů v dosahu ruky
na dvě různé skupiny.
Rozpoznání jednotlivých objektů je úkolem počítačového vidění. Pro rychlé, avšak
málo robustní rozpoznání druhu objektu lze využít barevného rozlišení rozpoznávaných objektů. Vstupní obraz kamery je pak rozdělen na oblasti s podobnou barvou pomocí některého ze segmentačních algoritmů, jako je K-Means [8], MeanShift
120
[3] či Watershed Segmentation [9]. Jednotlivé oblasti, které jsou výstupem z těchto
algoritmů, lze považovat za objekty k roztřídění.
Robustnější metodou pro rozpoznání objektů je využití algoritmů pro detekci
podobných oblastí. Tyto algoritmy nevyžadují barevné vstupní snímky, je tak
možné ušetřit paměťové a výpočetní prostředky. Mezi tyto algoritmy spadá
algoritmus pro detekci objektů Viola-Jones [11], který je velmi rychlý a invariantní
vůči změně velikosti objektů. SIFT [5], SURF [2] a MSER [6] jsou algoritmy, které
z šablony objektu extrahují významné a unikátní znaky, jež lze použít pro odlišení
objektu od ostatních. Výhodou těchto algoritmů je invariance vůči změně velikosti,
rotaci a perspektivnímu zkreslení objektů.
Aby ruka mohla uchopit objekt, je nutné provést koordinovanou sérii pohybů, která je
řízena podle aktuálního pohledu kamery. Tuto úlohu lze zjednodušit, je-li možné
získat 3D informaci o okolním prostředí. Toho lze dosáhnout například připevněním
hloubkového senzoru ke kameře či přidáním druhé kamery a rekonstrukcí hloubkové
informace pomocí některého z algoritmů uvedených v [10].
Samotný proces uchopení objektu lze řídit pomocí umělých neuronových sítí.
Pro řízení pohybu stačí použití jednoduchého modelu vícevrstvého perceptronu
[7]. Naučení neuronové sítě je možné provést pomocí algoritmu back propagation
[7] či metodou učení posilováním [4].
6. Závěr
V příspěvku byla představena konstrukce robotické ruky s pěti stupni volnosti – byly
popsány jednotlivé konstrukční součásti, identifikovány přetěžované části konstrukce
a navržen přístup pro minimalizaci těchto přetížení.
Byly popsány praktické zkušenosti se sestavením ruky z prefabrikovaných součástí
stavebnice Merkur, Robotická ruka Beta [1] a postup ovládání této stavebnice
pomocí vlastního software.
Na principiálně jednoduchém příkladu třídění objektů na dvě skupiny byly
představeny algoritmy počítačového vidění a umělé inteligence, jež lze využít
pro řízení robotické ruky.
Literatura
[1]
[2]
[3]
ANON. Robotická ruka - BETA | MERKURTOYS s. r. o. [online]. [Cit. 5. 6. 2011].
Dostupné z WWW:
<http://www.merkurtoys.cz/vyrobky/roboticka-ruka-beta%5B1%5D>.
BAY, H., TUYTELAARS, T. & GOOL, L. SURF: Speeded Up Robust Features. In A.
Leonardis, H. Bischof, & A. Pinz, ed.Computer Vision – ECCV 2006. Berlin,
Heidelberg : Springer Berlin Heidelberg, 2006, s 404-417.
ISBN 978-3-540-33832-1.
COMANICIU, D. & MEER, P. Mean Shift: A Robust Approach Toward Feature
Space Analysis. IEEE Transactions on Pattern Analysis and Machine
Intelligence, 2002, vol. 24, no. 5, s 603-619.
121
[4]
KORMUSHEV, P., CALINON, S. & CALDWELL, D.G. Robot motor skill
coordination with EM-based Reinforcement Learning. In 2010 IEEE/RSJ
International Conference on Intelligent Robots and Systems. Taipei, 2010,
s 3232-3237.
[5]
LOWE, D.G. Object Recognition from Local Scale-Invariant Features. In
Computer Vision, IEEE International Conference on. Los Alamitos, CA, USA :
IEEE Computer Society, 1999, s 1150. ISBN 0-7695-0164-8.
[6] NISTÉR, D. & STEWÉNIUS, H. Linear Time Maximally Stable Extremal
Regions. In D. Forsyth, P. Torr, & A. Zisserman, ed.Computer Vision – ECCV
2008. Berlin, Heidelberg : Springer Berlin Heidelberg, 2008, s 183-196.
ISBN 978-3-540-88685-3.
[7] PLEBE, A. & GRASSO, G. Localization of spherical fruits for robotic harvesting.
Machine Vision and Applications, 2001, vol. 13, no. 2, s 70-79.
[8] Ray & Turi. Determination of number of clusters in K-means clustering and
application in colour image segmentation. Proceedings of the 4th
International Conference on Advances in Pattern Recognition and Digital
Techniques (ICAPRDT’99), vol. 99, no. 4.
[9] SHAFARENKO, L., PETROU, M. & KITTLER, J. Automatic watershed
segmentation of randomly textured color images. IEEE Transactions on Image
Processing, 1997, vol. 6, no. 11, s 1530-1544.
[10] SCHARSTEIN, D. & SZELISKI, R. A Taxonomy and Evaluation of Dense TwoFrame Stereo Correspondence Algorithms. International Journal of Computer
Vision, 2002, vol. 47, no. 1-3.
[11] VIOLA, P. & JONES, M. Robust Real-time Object Detection. INTERNATIONAL
JOURNAL OF COMPUTER VISION, 2001.
Bc. Michal Gregor
Univerzita Hradec Králové, Fakulta informatiky a managementu
Rokitanského 62, 500 03 Hradec Králové, Česká republika
e-mail: [email protected]
Karel Petránek
Univerzita Hradec Králové, Fakulta informatiky a managementu
Rokitanského 62, 500 03 Hradec Králové, Česká republika
e-mail: [email protected]
Bc. Martin Burian
Univerzita Hradec Králové, Fakulta informatiky a managementu
Rokitanského 62, 500 03 Hradec Králové, Česká republika
e-mail: [email protected]
122
APLIKACE VÍCEKRITERIÁLNÍHO ROZHODOVÁNÍ
V MULTIAGENTNÍCH SYSTÉMECH
APPLICATION OF MULTI-CRITERIA DECISION-MAKING
IN MULTI-AGENT SYSTEMS
Nela Klusáčková
Abstrakt
Obsah práce je zaměřen na popis a spojení dvou vědních disciplín, konkrétně
vícekriteriálního rozhodování s problematikou multiagentních systémů. Obsahuje
stručné seznámení s principem, pojmy a podstatou každé ze jmenovaných oblastí a
popisuje také příklady, kde se s těmito problematikami setkat jak v běžném životě,
tak v oblasti umělé inteligence, za účelem snadného pochopení principu každé
z uvedených disciplín. Dále zdůrazňuje výhody, které může sloučení těchto dvou
oblastí přinést, jako např. úspora času nebo výběr a současně vykonání optimálního
řešení, což vysvětluje a současně prohlubuje motivaci se této problematice hlouběji
věnovat.
Klíčová slova
agent, vícekriteriální, multiagentní systém, vícekriteriální rozhodování
Abstract
This text is focused on description and combination of two disciplines, specifically
multi-criteria decision-making and area of multi-agent systems. This work brings a
brief introduction to principle, concepts and fundamental understanding of each of
the mentioned areas and also presents demonstrational examples from everyday life
situations, both from real and artificial environments allowing easier understanding
of combination of both areas. This combined approach brings several advantages, for
example time saving or selection and implementation of the optimal solution, which
are motivation for further work in this problem area.
Keywords
agent, multi-criteria, multi-agent system, decision making
1. Úvod
Text se zabývá kombinací dvou vědních disciplín, a to vícekriteriálního
rozhodování a multiagentních systémů.
123
Cílem této práce zaměřit se především na možné přínosy kombinace obou přístupů
a na to, v jakých případech (popř. jakým způsobem) aplikovat vícekriteriální
rozhodování do multiagentních systémů i v praxi. Aby bylo možno si problematiku
obou oblastí lépe představit, bude uveden stručný popis jejich základních principů
v následující části tohoto příspěvku.
2. Podstata vícekriteriálního rozhodování
S vícekriteriálním rozhodováním je možné se setkat v rozmanitých oblastech, ať už
se jedná o jakákoliv přijímací řízení, uvedení nového výrobku na trh, výběr auta,
ale třeba i v kriminalistických metodách, a sami jej denně aplikujeme.
Podstatou vícekriteriálního rozhodování (dále VR) je nalezení optimálního řešení
libovolného problému, závislého na daných kritériích, která nabývají určité
hodnoty důležitosti. Metody VR poté řeší konflikty mezi vzájemně protichůdnými
kritérii, o nichž je možné se dočíst např. v knize Vícekriteriální rozhodování od
autorů Doc. RNDr. Ing. Fialy CSc., Ing. Jablonského CSc. a Prof. RNDr. DrSc. Maňase.
Problém rozhodování, kritéria, varianty i cíle jsou formulovány v systému zvaném
objekt rozhodování, kdy daným problémem se zabývá (a rozhoduje o něm) tzv.
subjekt rozhodování, což může být buď jednotlivec, nebo skupina lidí.
2.1. Cíl
Cílem rozumíme to, čeho chceme hodnocením variant dosáhnout – tedy co je pro
nás optimální, o čem se budeme rozhodovat. Cíle vícekriteriálních úloh mohou být
různé a jsou charakterizovány v následujících větách.
•
Cílem je nalezení jediného optimálního řešení neboli určení nejlepší
varianty z nějakého souboru možností. Zde není vhodné využití nominální
informace o preferencích mezi kritérii, jelikož to může vést k výběru několika
přípustných řešení. Může se stát, že každá metoda určí za optimální jinou
variantu. Takto určené varianty značíme jako „kompromisní“.
•
Cílem je uspořádání variant, kde hledáme jediné optimální řešení a postupně
vylučujeme kompromisní varianty, až zbude jediná - optimální.
•
Cílem je klasifikace variant na dobré a špatné, kde rozdělujeme varianty, jak
již bylo zmíněno, na dobré a špatné (popř. přípustné, nepřípustné) na základě
znalosti aspirační úrovně jednotlivých kritérií.
2.2. Kritéria hodnocení
Hodnotící kritéria mohou nabývat různé povahy, od procentuelních či peněžních
vyjádření, přes fyzikální a technologicky měřitelné vlastnosti až po kritéria
výhradně subjektivní, kam můžeme zahrnout např. krásu nebo zábavu. Díky nim
máme možnost posuzovat jednotlivé varianty a jsou nezbytnou součástí cesty
k nalezení optimálního řešení. Obecně se uvažuje m kritérií, kde m je celé kladné
číslo > 1, tj. m = 1, 2, 3, …, n).
124
Kritéria můžeme rozdělit buď dle povahy na:
•
maximalizační, neboli výnosová, kde jsou preferovány hodnoty vyšší (např.
maximalizace zisku) a
•
minimalizační, tedy nákladová, s upřednostňovanými nižšími hodnotami
(např. spotřeba materiálu),
nebo dle kvantifikovatelnosti na:
•
kvantitativní, umožňující stanovit hodnoty kritérií pro každou variant.
Nevýhodou je, že tato kritéria bývají často nesouměřitelná kvůli vyjádření
v různých jednotkách a někdy je nutné tuto nesouměřitelnost normalizačně
odstranit,
•
kvalitativní kritéria nám dovolují pouze na základě určitého kritéria stanovit
buď rovnocennost srovnávaných variant, nebo určit, zda je některá z variant
lepší, či horší.
2.3 Varianta
Rozhodovací variantou se rozumí nějaký prvek (předmět, služba), který má smysl
porovnávat s jiným, popř. více prvky, přicházející v úvahu pro výběr v procesu
rozhodování. Obecně se uvažuje n variant, kdy ne je celé kladné číslo > 1.
Dle zadání množiny přípustných variant můžeme dělit problémy na:
•
úlohy vícekriteriálního hodnocení variant, kdy jsou přípustné pouze
explicitně (jasně, přímo) vymezené varianty, a
•
úlohy vícekriteriálního programování, kdy jsou přípustné varianty naopak
vymezeny implicitně, soustavou podmínek, kdy jsou všechna kritéria
kvantitativního rázu.
2.4 Důsledky
Důsledky jsou vyjádřeny hodnotami kritérií a mohou být jednoznačné nebo
závisející na stavech světa, které charakterizujeme jako vzájemně se vylučující
stavy rozhodovacího systému, které rozhodovatel nekontroluje (popř. nemá
možnost kontrolovat). Tyto náhodné faktory okolí považujeme buď za diskrétní
náhodné veličiny, které určují stavy světa nebo za fuzzy veličiny (množiny). Více o
metodách, stanovení kritérií i řešené příklady je možno nalézt na webové stránce
www.scss.sk (přesný odkaz je uveden ve zdrojích).
Pokud je subjekt rozhodování jistý, jaké budou důsledky variant a jaký nastane
stav světa, hovoříme o rozhodování za jistoty.
Pokud je subjekt rozhodování znalý alespoň pravděpodobnostních hodnot, ale
současně ne s určitou jistotou, označujeme toto rozhodování jako rozhodování za
rizika.
Pokud subjekt rozhodování není seznámen ani s pravděpodobnostmi důsledků a
vývoje stavu světa, setkáváme se s tzv. rozhodováním za nejistoty.
125
3. Multiagentní systém
Na webovém serveru cs.wikipedia.org je multiagentní systém (dále MAS)
definován jako [1]simulované prostředí se síťovým charakterem, v němž dochází k
interakci určitých typů aktérů (agentů) mezi sebou a/nebo s prostředím, ve
kterém se nacházejí.
MAS jsou charakteristické decentralizovaným pojetím, asynchronními výpočty,
často i neexistencí centrálního prvku. Agenty nemusí být schopny řešit samostatně
univerzální spektrum úloh. V tom případě žádný z agentů není schopen vyřešit
daný problém sám, jelikož k tomu buď nemá schopnosti, anebo není schopen
zkompletovat veškeré dostupné a potřebné informace. Proto je mezi agenty třeba
komunikace a spolupráce.
Umělá inteligence v multiagentních systémech vychází z principu emergentní
funkcionality, což znamená, že racionální chování agenta může být samovolným
impulzem v rámci interakcí s okolním prostředím, dále dekompozice na úrovni
úloh, kdy se jedná o to, že je problém rozdělen na menší části v souladu s cíli a
reaktivity, neboli zásady, že akce je reakcí na aktuální stav prostředí.
Základním podnětem ke vzniku MAS bylo především nalézt účinnější řešení
rozsáhlých a složitých úloh. Základním kamenem byl nástup distribuované umělé
inteligence, nebo také DAI (Distributed Artificial Intelligence), která spočívá
v rozdělení úlohy na konkrétní části, které jsou poté samostatně řešeny. Konkrétně
se jedná o přelom 70. a 80. let 20.století, kdy bylo dosaženo výrazných pokroků
v rámci expertních systémů, a začaly se využívat sítě typu LAN. Dozvědět se více o
DAI je možné např. v knize Distributed Artificial Intelligence : Theory and Praxis od
Nicholase M. Avourise, která je dostupná i na internetu v databázi knih
books.google.cz .
3.1. Agent
Agent je v knize Inteligentní agenty od Aleše Kubíka definován jako [2]entita,
zkonstruovaná za účelem kontinuálně a do jisté míry autonomně plnit své cíle
v adekvátním prostředí na základě vnímání prostřednictvím senzorů a prováděním
akcí prostřednictvím aktuátorů. Agent přitom ovlivňuje podmínky v prostředí tak,
aby se přibližoval k plnění cílů.
Agenty rozdělujeme na několik typů v závislosti na možnostech chování a
uvažování a v následujících řádkách si je stručně představíme.
•
Reaktivní agent má nejjednodušší vnitřní strukturu a disponuje pouze
vyrovnávací pamětí obsahující záznam stavu agenta. Jeho chování je racionální,
když se daný paralelní proces spustí buď vlivem z okolního prostředí, nebo
vnitřního stavu agenta, popř. může být spuštěn také kombinací těchto dvou
podnětů, ale současně je jeho vnímání omezeno danou množinou impulzů
z okolí. Je vhodný pro rychle se měnící prostředí.
•
Deliberativní agent, neboli uvažující agent, se svým chováním již blíží
autonomnosti lidí a dokáže jednoduše reprezentovat prostředí i vnitřní stavy.
Současně dokáže této reprezentace využít k vytvoření plánu, jak dosáhnout
daného cíle. Cíle jsou hodnoceny dle priorit a plány mívají hierarchické
126
uspořádání. Nevýhoda uvažujícího agenta spočívá v tom, že nemá možnost
si svobodně zvolit jak prostředky pro plnění cílů, tak i postupy, jak daného cíle
dosáhnout a zároveň tedy nemá možnost zlepšovat svoji funkcionalitu i
chování.
•
Sociální agent je takový, který komunikuje ve vyšším komunikačním jazyce,
kam řadíme např. KQML. Jeho princip je založen na tzv. sociální inteligenci,
která spočívá v získávání a udržení co největšího množství informací o
ostatních agentech, se kterými přichází do interakcí. Tyto údaje potřebuje znát
z důvodu ad hoc povahy interakcí, tedy z důvodu dočasnosti a krátkého trvání
koalic a současně mají sociální agenti k dispozici také historii interakcí, jako
jsou například jména agentů, negociační strategie, ceny transakcí aj., kterou
dokáže později využít k vyhledání pomoci od ostatních agentů ve snaze zmírnit
negativní důsledky svého jednání z důvodu omezenosti vlastních dispozic.
•
Hybridní agent kombinuje některé, popř. všechny architektury v jeden celek.
Je složen ze dvou hlavních částí – plánovací a reaktivní jednotky. Během akce
vytvoří plán, který se posléze začíná uskutečňovat. Každá akce je kontrolována
reaktivní jednotkou, která dohlíží na to, zda se daná činnost drží plánu a
nedošlo ke změně. Pokud změna v okolí nastane, odešle se plánující jednotce
impuls k přehodnocení plánu.
4. Spojení MAS a VR
Architektury MAS jsou v nemalé míře inspirovány říší hmyzu. Typickým příkladem
je kolonie mravenců, kde je pro optimální život v mraveništi zapotřebí hned
několik cílů – např.:
•
vybudování samotného mraveniště, tedy nalézt vhodné místo a sbírat
vhodný materiál,
•
obstarání potravy, kdy je často potřeba spolupráce při přemístění většího
kusu,
•
nalezení vhodné cesty při přesunu potravy, obsahující co nejméně překážek,
•
překonávání menších překážek (např. větev) a vyhýbání se větším a
obtížnějším (např. kaluž),
•
místo hledání potravy, tedy kde a jak daleko od mraveniště potravu hledat,
•
rozšiřování kolonie a ochrana vajec,
reakce v případě narušení, popř. zničení stanoviště, kdy je nutné stanovit
priority, jako záchrana královny, obnovení mraveniště apod..
K jednomu cíli (resp. optimu) je tedy zapotřebí vykonat řadu menších úkolů, kdy
každý jednotlivec disponuje určitými schopnostmi (má ve skupině danou roli) a ke
splnění úkolu je nezbytné, aby mezi sebou jedinci (popř. soubory jedinců)
komunikovali a kooperovali, i když je v tomto případě kritérií pro rozhodování jen
pomálu. Obdobné chování v populaci je možné pozorovat samozřejmě také v jiných
společenstvích, jako jsou např. včely apod..
•
127
4.1. Umělá inteligence
V souvislosti s umělou inteligencí je možno zmínit oblast robotického fotbalu.
Jedná se o zápas dvou skupin robotů s pravidly podobnými klasickému fotbalu,
avšak pozměněnými pro možnosti robotiky. Cíl je zde zřejmý – dostat míč do
soupeřovy brány, popř. oblasti, která bránu reprezentuje. Rozhodčím je sice
člověk, ale při samotné hře jím nesmí být do hry nijak zasaženo a vše spočívá
pouze v uvažování a akci robotů. Ti musí reagovat na pohyb svých protihráčů,
uvažovat, zda míč přihrát spoluhráči (popř. vybrat, kterému ze spoluhráčů, kteří
jsou v dosahu) nebo rozhodnout, že určitou akci vykoná agent sám, dále se musí
taktéž vyhýbat překážkám, jako je např. pohyb kolem protivníka nebo koordinace
své rychlosti. Toto úsilí je výchozím bodem pro řešení návazných problémů
z oblasti robotiky, autonomních systémů, umělé inteligence a jiných disciplín, kdy
samotný vývoj samozřejmě pokračuje a samotným cílem v této oblasti je vytvoření
dokonalých humanoidních robotů schopných porazit mistry světa. Více informací o
robotickém fotbalu je k dispozici na webové stránce www.fira.net.
4.2. Ekonomie
Z oblasti ekonomie je možné si MAS představit např. na trhu s akciemi, kdy agenty
jsou v tomto případě účastníci prodávající a nakupující určitý objem aktiv. Aplikace
VR by mohla rozhodovat především o tom, zda (popř. kdy) akcie nakoupit či
prodat, do jaké komodity investovat a za jakou cenu, apod..
Hlavním cílem je tedy maximalizace výdělku, popř., vzhledem k riziku a
dynamičnosti akciového trhu, eliminace bankrotu. Kritéria by v tomto případě
mohla být např.:
•
vývoj komodity na trhu v časovém intervalu, popř. v několika časových
intervalech najednou (za poslední týden, měsíc, rok…), a klasifikace důležitosti
růstu/poklesu v posledním týdnu, ale současně zhodnocení, jak si daná
komodita na trhu stála v posledním roce a odhadnutí její (ne)stability,
•
aktuální postavení komodity na trhu,
•
aktuální procentuelní nárůst/pokles,
•
procento zájmu o danou komoditu,
•
procento potenciálního využití komodity v budoucnu,
•
znalost stavu ekonomiky,
•
sledování trendů,
•
ovlivnění názorem,
• postavení firmy, obchodující s komoditou, na trhu (popř. více firem) aj..
Kritéria mohou být aplikována buď na jedno konkrétní aktivum, nebo na více aktiv
a výsledky poté porovnávány mezi sebou. Vzhledem k širokému spektru kritérií a
situací na trhu je nutné, aby v systému fungovalo několik agentů, zaměřujících se
na specifické oblasti, tedy:
•
agent sledující trendy,
128
•
agent shromažďující a vyhodnocující informace o situaci na trhu za určité
období,
•
agent zabývající se aktuálním stavem ekonomiky,
• agent zpracovávající a vyhodnocující informace.
Agenty, zabývající se konkrétní oblastí, posílají shromážděné informace jednotce
zpracovávající a vyhodnocující data. Agent, který sleduje trendy, se zabývá aktuální
situací na trhu, tedy do jaké komodity investovat, popř. kterou službou se zabývat,
aby bylo dosaženo zisku. Jelikož je trh dynamický, je třeba spolupracovat také
s entitou, která shromažďuje a uchovává informace o situaci na trhu za minulé
období a má tak možnost prověřit míru stability, nebo v závislosti na vzrůstajícím
zájmu o danou komoditu, předvídat budoucí vývoj a podpořit, nebo naopak
zavrhnout, investici či prodej. Podobný problém řeší také jednotka, zabývající se
aktuálním stavem ekonomiky. Neřeší tedy produkt jako takový, ale to, zda bude do
něj vůbec investováno a současně musí informace o stavu ekonomiky neustále
obnovovat z důvodu objektivity a o daných aktualizacích informovat agenta,
zpracovávajícího a vyhodnocujícího informace. Ten na základě dat, shromážděných
od ostatních aktérů, vyhodnotí optimální variantu dle zadaného cíle.
4.3. Medicína
Vícekriteriální rozhodování v rámci MAS se dá aplikovat také v medicíně. Jako
příklad může sloužit systém shromažďující informace o pacientovi a současně
vyhodnocující zdravotní stav sestávající z:
•
agentů zabývajících se sběrem informací z konkrétní oblasti,
•
agentů shromažďujících a třídících informace,
•
agenta zpracovávajícího data,
•
agenta kontrolujícího zpracované informace a vyhodnocujícího data,
• agenta doplňujícího informace.
První zmíněná skupina agentů má za úkol sbírat data o konkrétním pacientovi od
lékařů z jednotlivých oborů (praktický lékař, neurologie, alergologie…), jako např.:
•
soupis potíží,
•
věk
•
výška/váha,
•
choroby v rodině,
•
podstoupená vyšetření,
•
výsledky vyšetření,
•
diagnózy,
•
léčba,
•
operativní zákroky,
•
trvalé užívání léků,
129
•
dočasné užívání léků,
•
(ne)užívání omamných látek, cigaret a alkoholu,
• přecitlivělost na látky (alergie, potíže po užití léku…) atd..
Jednotlivé agenty předají data entitě, která bude veškeré informace shromažďovat
a třídit (celkový soupis potíží, léků, diagnóz, ale také vizuální prvky, jako
rentgenové snímky, grafy vyšetření EKG apod.) a posílat je další jednotce, jejíž
úkolem je přijatá data zpracovávat. Ta předá již zpracované informace agentovi,
který je zkontroluje a vyhodnotí (např. stanoví jednu nebo více diagnóz v závislosti
na příznacích a potížích pacienta) a současně bude spolupracovat s entitou
vyhledávající a doplňující informace, např. z internetu, jako je složení léků,
příznaky a průběh chorob aj..
Agent, který vyhodnotí data, poté může určit např. zda smí pacient užívat určité
léky, tedy není přecitlivělý na některou z obsažených látek a současně nebude mít
potíže v kombinaci s jiným medikamentem, zda je schopen podstoupit operativní
zákrok (vzhledem k věku, aktuálnímu zdravotnímu stavu apod.), stanovit jednu
konkrétní nebo více potenciálních diagnóz v závislosti na aktuálních potížích či
výsledcích vyšetření nebo navrhnout účinnou léčbu, jako je aplikace léků a jakých,
rehabilitace nebo operace.
4.5. Vojenství a prozkoumávání vesmírných těles
MAS je možné využít také k prohledávání terénu, popř. hledání nejvhodnější cesty,
což může být využito např. ve vojenství nebo v prozkoumání povrchu
vesmírných těles za pomocí třech druhů agentů:
•
agent provádějící kontrolní činnost,
•
agent shromažďující a vyhodnocující informace a
agent prohledávající terén, tedy takový, co sbírá informace a odesílá je
agentovi, který informace shromažďuje (tento agent může popř. také sbírat
vzorky povrchu).
Agent, provádějící kontrolní činnost, by měl dohlédnout především na anomálie
v terénu (ve vojenství např. podezření na umístění miny) a odeslat informaci o této
odlišnosti agentovi, který má za úkol, kromě shromažďování informací, vyhodnotit
data o potenciálním nebezpečí (zda se jedná skutečně o minu nebo kámen, kaluž…)
a výsledek poslat interagující jednotce, která se v případě nebezpečí nebo
neschopnosti překonání překážky tomuto místu vyhne, čímž může být zabráněno
jejímu poškození.
V rámci prozkoumávání vesmírného tělesa nemusí být odlišnost nutnou hrozbou,
ale naopak impulzem ke sběru vzorku povrchu vhodného k prozkoumání a na
základě složení určit, zda na tělese byl či je život, nebo vyhodnotit, zda by bylo
možné podmínky pro život vytvořit, v závislosti na vyhodnocených vzorcích,
povrchu tělesa a jeho struktuře, okolní teplotě a její proměnlivosti, koncentraci
vzduchu, dopadu světla, přítomnosti plynů apod..
•
Ve vojenství je příkladem cíle nalezení nejkratší (nebo také nejméně náročné,
kryté…) a současně bezpečné cesty a pro, zde potřebnou, časovou úsporu může být
130
do terénu aplikováno několik agentů, prohledávajících terén, kteří si mohou
vzájemně posílat informace o místech s potenciální hrozbou a poté čekat na zprávu
od agenta vyhodnocujícího informace. Cílem ale také může být vymezení bezpečné,
popř. kryté, plochy, vhodné k utáboření.
5. VÝHODY SLOUČENÍ VÍCEKRITERIÁLNÍHO ROZHODOVÁNÍ S MAS
Hlavní důvody, pro které kombinace obou přístupů představuje přínos:
•
Úspora času, kdy v určitých případech může spolupráce většího množství
agentů přinést výsledek ve výrazně kratším časovém úseku, než sběr informací
a vykonávání akcí solitérního agenta.
•
Ekonomické důvody, kde sice výrobní náklady na jednotku nemusí být malé,
ale netřeba opomenout, že multiagentní systém se může skládat pouze ze dvou
entit. Např. první jednotka bude vykonávat akce a druhá kontrolní činnost,
jejímž hlavním účelem bude zaznamenání nežádoucích impulsů (akcí) a
zpětnou reakcí odesláním zprávy první jednotce může zamezit její poruše, jejíž
renovace a opětovný sběr informací, popř. vykonávání akcí by mohl znamenat
vyšší finanční ztrátu (nejen z materiálního, ale i časového hlediska), než výroba
a uvedení do provozu dvou jednotek. Současně může kontrolní agent sbírat a
uchovávat data zjištěná první entitou, popř. může být sběr dat samotným
účelem. Příkladem může být zkoumání terénu.
•
Vyhledání a popř. vykonání optimálního řešení, což je cílem samotného
vícekriteriálního rozhodování a hlavní důvod sloučení s problematikou MAS.
•
Možnost dosažení cíle několika alternativami, jelikož se někdy může stát, že
pro nás bude v rámci stejného problému vhodnější určitá varianta, závislá na
odlišných omezeních. V závislosti na těchto omezeních je třeba také lehce
přizpůsobit chování agentů k dané situaci. I když se teď nebudeme pohybovat
přímo v oblasti MAS, může být dobře pochopitelným příkladem volba cesty
přes GPS.
Naším úkolem bude zvolení trasy Hradec Králové – Brno, kde máme možnost
volby nejrychlejší nebo nejkratší trasy. Omezení budou pro nás důležitá
v závislosti na konkrétní situaci – při malém množství benzínu zvolíme
z úsporných důvodů nekratší cestu, z důvodu časové úspory zase tu
nejrychlejší.
•
Přesnost řešení, díky postupnému shromažďování, vyhodnocování a
možnému doplňování informací, které bylo zmíněno v souvislosti s aplikací
v oblasti medicíny.
•
Možnost práce i s velkým množstvím dat, díky rozdělení funkcí mezi několik
agentů – někteří budou pověřeni sběrem a předáváním informací, kdy má
každý jednotlivec na starosti jinou oblast. Předaná data může vyhodnotit
rovněž několik agentů z důvodu přesnosti v konkrétní oblasti a eliminaci
komplikací z přijímání nadměrného množství dat a zpracované informace
poslat dalšímu agentovi, který je vyhodnotí a vybere optimální variantu.
131
6. Závěr
I přesto, že je spojení vícekriteriálního rozhodování s multiagentními systémy
teprve v začátcích a není běžně aplikováno v praxi, dosažený a nadále pokračující
vývoj v obou disciplínách samostatně, především v oboru multiagentních systémů,
slibuje velkou budoucnost především díky široké škále možností aplikace obou
oblastí.
Vícekriteriální rozhodování a řešení úloh může například výrazně přispět k vývoji
robotů díky spojení samotné naprogramované inteligence s logickým uvažováním
na bázi výpočtů a schopností komunikace i interakce s jinými entitami, popř. i se
samotným člověkem. Zkoumání a spojení obou oborů je tedy do budoucna
minimálně zajímavou výzvou.
Literatura
[1]
Cs.wikipedia.org [online]. 2011. [cit.2011-06-02]. Multiagentní systém.
Dostupné z WWW:
<http://cs.wikipedia.org/wiki/Multiagentn%C3%AD_syst%C3%A9m>.
[2]
KUBÍK, Aleš Inteligentní agenty. Vydání první. Brno : Computer Press,
2004.s.12. ISBN 80-251-0323-4.
RAMÍK, J, PERZINA, J. Moderní metody hodnocení a rozhodování. Vydání
první. Karviná : Slezská Univerzita v Opavě, 2008. ISBN 978-80-7248-497-3.
KUBÍK, Aleš Inteligentní agenty. Vydání první. Brno : Computer Press, 2004.
ISBN 80-251-0323-4.
[3]
[4]
[5]
[6]
[7]
Theses.cz [online]. 2009. Vícekriteriální hodnocení variant a její aplikace
v praxi. Dostupné z WWW:
<http://theses.cz/id/6citbe/downloadPraceContent_adipIdno_11361>.
Advances.uniza.sk [online]. 2011. Možnosti využití multiagentních systému v
medicíně. Dostupné z WWW:
<http://advances.uniza.sk/journal/2005/AEEE_Vol4_No3_2005/161166_lhotska.pdf>.
Eldar.cz [online]. 2010. Reaktivní multiagentní modely v ekonomii.
Dostupné z WWW:
<http://eldar.cz/cognition/complex/articles/burian_rACE.pdf>.
[8]
Scss.sk [online]. 2011. Vícekriteriální rozhodování. Dostupné z WWW :
<http://www.scss.sk/dvd_lpp_0384_09_2010/METODICK%C1%20PODPOR
A%20Z%20INTERNETU/VIACKRITERI%C1LNE%20ROZHODOVANIE/SMEP
%203_1%20%20Skriptum.htm>.
Nela Klusáčková
Univerzita Hradec Králové, Fakulta informatiky a managementu
Rokitanského 62, 500 03 Hradec Králové, Česká republika
e-mail: [email protected]
132
FRONTY V UZAVŘENÉM A OTEVŘENÉM SYSTÉMU
HROMADNÉ OBSLUHY
QUEUES IN THE CLOSED AND OPEN QUEUING SYSTEM
Zuzana Němcová
Abstrakt
Článek shrnuje dosavadní poznatky o vývoji délek front jak v uzavřeném, tak
v otevřeném lineárním systému hromadné obsluhy. Oba systémy se hojně vyskytují ve
výrobních procesech, kde prioritním požadavkem je dodržení sledu několika po sobě
jdoucích operací. Příkladem je pásová výroba. Náklady vyplývající z příliš dlouhých
front v systému tvoří významnou část celkových výrobních nákladů. Znalost vývoje
front je pro manažery systému důležitá zejména z hlediska možnosti efektivně
zasáhnout do výrobního procesu – snížením dob obsluh u určitých obslužných míst
snížit délky front – a tudíž snížit i celkové výrobní náklady.
Klíčová slova
systémy hromadné obsluhy, délky front, výrobní náklady
Abstract
The paper summarizes current knowledge of the development of queue lengths in the
closed and open linear queuing system. Both systems can be found in the
manufacturing processes, where several successive operations have to be observed.
An example of such system is the assembly line. Important part of total production
costs comprises costs resulting from excessively long queues in the system. Knowledge
of the development of the queue lengths is important for the managers of the system,
because they can effectively intervene in the production process and by changing the
service times of several servers the lengths of the queues can be reduced and thus the
total production costs are reduced.
Keywords
queuing systems, lengths of the queues, production costs
1. Introduction
This paper is a summary of knowledge of queuing systems described in [1], [2].
Basics of queuing theory can be found in [3]. To be able to predict the development
of queues in the manufacturing system is beneficial especially due to possibility to
reduce costs, in particular costs resulted from undesirably long queues. The
133
manager of the system can affect the performance of servers to adapt the service
times to the arrival intensities and reach the optimal state, when the queuing costs
are tolerable.
Lengths of the queues for closed queuing system are described using max-plus
algebra. Similar system, but with using stochastic methods, was considered in [5].
The terminology and basic foundation of max-plus algebra can be found in [4]. The
development of queue lengths for open queuing system, vector of number of
waiting requests, is defined as a set of rules.
2. Closed linear queuing system
The closed system is depicted in the Figure 1. We consider a closed system of n
servers. Each server can serve only one customer at a time and every customer has
to pass all servers continuously so the requests are circulating in the system. We
assume for simplicity that at the beginning there is one customer in each server.
Fig. 1: Considered closed system
Systems of this kind occur in manufacturing systems where several successive
operations must be repeated many times, or without repeating operations but with
the outgoing items immediately being substituted by fresh ones.
2.1. Lengths of the queues
The queues in the stable state are forming only in front of the slowest server in the
system. The description of the computation of the lengths of the queues follows.
Let us denote the basic length of the queue as z and the extended length of the
queue as a z+1. The time during which the queue is of length z+1 denote as m and
the time during which the queue is of length z denote as λ-m.
Let us denote  i (k ) as the k-th service time at queue i. If there is only one maximal
value  i in the system, then the characteristics of the queue are computed by
following formula, where k denotes the relevant column of the matrix A - where
the eigenvector is found (the element of matrix A is denoted as a ij ), and the λ
denotes the eigenvalue of A (both in terms of max-plus algebra).
In the system with more than one maximal value  i the basic, extended length can
be computed by following formula, where v is computed as a maximum of all
eigenvectors of matrix A in terms of max-plus algebra.
134
3. Open linear queuing system
Open queuing systems occur in manufacturing systems, where the sequence of
several successive operations has to be done. Naturally there are forming some
queues. The difference between closed and open linear system is, that the lengths
of the queues in the closed system are stable (in stable state), but in the open
queuing system some of the queues can arbitrarily increase (if the service times
stays unchanged). The knowledge of development of the lengths of the queues is
strategically important because of possibility to change the service times at several
servers and influence the total manufacturing costs.
Fig. 2: Considered open system
The incoming requests have to pass through the sequence of n servers and then
they leave the system (Figure 2). Each server can serve only one customer at
a time. At the beginning, there is a queue of arbitrary length in front of each server
in the system. We assume that the arrival intervals and the service times at each
server are constant in each (so called) stage, i.e. the system is deterministic. The
service intensity at first server represents the intensity of arrivals.
3.1. Lengths of the queues
In the stable state four types of queues are distinguished: constant queue,
decreasing queue, increasing queue and empty queue. The letter f in following
Figure 3 indicates the queue, the arrows its tendency. The upward continuous
arrow means that the queue in the long term will increase, the downward
continuous arrow indicates that the queue in the long term will decrease; similarly
the dashed arrows represent the short term tendencies of the queues - temporary
growth. It can be easily deduced, how the system reacts if the service time at say
fourth server will be changed at  4  1 .
Fig. 3: The development of the queues
Each stage is described by the static vector of service times  and the vector of
number of waiting requests in time t denoted as f(t). The elements of the vector f(t)
are decimals, the decimal part of the element denotes still not served part of just
served request. It can be predicted how the system behaves with these starting
135
conditions. The number of waiting requests at server i in time t – fi(t) – is
computed by following rules
There are two reasons for changing the service times of the servers. The first is
that the server is not fully used – when fi(t)=0, the second is that the queue is
longer than some maximal tolerable limit.
Acknowledgment
This article was supported by the project No. CZ.1.07/2.3.00/20.0001 Information,
cognitive, and interdisciplinary research support, financed from EU and Czech
Republic funds.
References
[1] GAVALEC, M., NĚMCOVÁ, Z.: Eigenproblem for queueing systems in max-plus
algebra, Proc. of the 28th Conf. Mathem. Methods in Economics, University of
South Bohemia, České Budějovice (2010), 156-161.
[2]
[3]
[4]
[5]
GAVALEC, M., NĚMCOVÁ, Z.: Queues in linear manufacturing systems, Proc. of
the 29th Conf. Mathem. Methods in Economics, University of South Bohemia,
Jánska Dolina (2011), (to be published).
GROSS, D., HARRIS, C. M.: Fundamentals of Queuing Theory. John Wiley and
Sons, New York, 1974.
HEIDERGOTT, B., OLSDER, G. J., WOUDE, J. W. van der: Max Plus at Work.
Princeton University Press, New Jersey, 2006.
HEIDERGOTT, B.: A characterisation of (max,+)-linear queueing systems. In:
Annual report of the TMR programme ALAPEDES, contract ERB-FMRX-CT960074, European Commission, 1999.
Ing. Zuzana Němcová
Univerzita Hradec Králové, Fakulta informatiky a managementu
Rokitanského 62, 500 03 Hradec Králové, Česká republika
e-mail: [email protected]
136
MONGEOVSKÉ MATICE V MAX­MIN ALGEBŘE MONGE MATRICES IN MAX­MIN ALGEBRA Alena Pozdílková Abstrakt Max­min algebra a její různé aspekty byly studovány mnoha autory kvůli své využi­
telnosti v různých oblastech, jako jsou fuzzy systémy, řízení znalostí a další. Binární operace sčítání a násobení jsou nahrazeny v max­min algebře operacemi maximum a minimum. Poster je zaměřen na speciální typ matic – Mongeovské matice. Tyto ma­
tice byly studovány v max­plus algebře, kde mají mnoho aplikací. Článek popisuje Mongeovské matice v max­min algebře, nejprve speciální typ ­ binární Mongeovské matice a pak Mongeovské matice obecně. Mongeovské matice v max­min algebře lze využít při zjednodušení některých algoritmů. Nejprve budou popsány základní vlast­
nosti Mongeovských matic a uvedeny některé důležité věty. Budou také zkoumány minimální prvky Mongeovské matice a jejich umístění. Na konci článku bude popsána konstrukce Mongeovských matic. Klíčová slova Mongeovská matice, binární Mongeovská matice, max­min algebra Abstract Max­min algebra and its various aspects have been studied by many authors because of its applicability to various areas, such as fuzzy systems, knowledge management and others. Binary operations of addition and multiplication are replaced in max­min algebra by operations of maximum and minimum. The poster is focused on the special type of matrices – Monge matrices. These matrices have been studied in max­
plus algebra, in which they have various applications. Monge matrices in max­min algebra will be described in the article, at first a special type – binary Monge matrices and then general Monge matrices. Monge matrices in max­min algebra can also be useful in simplifying some problems or algorithms. The basic properties of Monge matrices will be described. Minimal elements in a Monge matrix are investigated and their position in the matrix is described for many minimal elements. Also construction of any Monge matrix will be shown. Keywords Monge matrix, binary Monge matrix, max­min algebra 137
1. Max­min algebra Max – min algebra (R ,⊕,⊗) je algebraická struktura s dvěma binárními operacemi ⊕, ⊗ na rozšířené množině reálných čísel R = R ∪ {− ∞, ∞} . Operace minimum a maximum v max – min algebře jsou odvozené z lineárního uspořádání množiny reálných čísel. Operace v max – min algebře jsou definovány následovně: pro x, y ∈ R : x ⊕ y = max (x, y), x ⊗ y = min (x, y). 2. Mongeovské matice v max – min algebře Mongeovské matice in max – min algebře jsou speciální matice, splňující následující podmínku: ,
,
,
(1)
,
pro všechny prvky (A je matice typu (m, n)) a všechny indexy , , ,
, 2,
2, kde i, k jsou řádkové indexy, pro které platí a j, l jsou sloupcové indexy, pro které platí . Tato podmínka je zřejmě splněna pro všechny takové čtveřice prvků z dané matice, které v dané matici tvoří obdélník. Podmínka (1) může být formulována také v následujícím ekvivalentním tvaru: ,
,
,
,
,
,
Z formulace (2) je zřejmé, že minimum každé uvažované čtveřice je , nebo tedy je umístěno v dané čtveřici v levém horním nebo pravém spodním rohu. (2) ,
, Z podmínky (2) vyplývá i následující tvrzení. Věta 1: Matice typu (2, 2) je Mongeovská, pokud její minimální prvek je umístěn v jejím levém horním nebo pravém spodním rohu (pozice (1, 1) nebo (2, 2)). Přímé způsoby ověřování, zda daná matice je či není Mongeovská, jsou velice časově náročné, protože je potřeba Mongeovskou podmínku ověřit pro všechny možné čtveřice prvků. K jednoduššímu určování, zda je daná matice Mongeovská, nám slouží následující věta: Věta 2: Daná matice je Mongeovská, pokud všechny její submatice typu (2, 2), skládající se ze dvou sousedních řádků a sloupců, jsou Mongeovské. Důkaz: Nejprve je potřeba dokázat, že spojením dvou Mongeovských matice typu (2, 2) vznikne opět Mongeovská matice. Mějme matice ,
matici, která vznikne jejich spojením . Lze dokázat, že M je Mongeovská matice (důkaz lze provést přímo ověřením všech možností). Stejným způsobem lze provést konstrukci 138
matice typu (2, n), kterou lze dále ještě rozšířit na matici typu (m, n), skládající se z daných Mongeovským matic typu (2, 2). 3. Minimální prvky v Mongeovské matici a jejich umístění Věta 3: Pokud existuje jediný minimální prvek v dané Mongeovské matici typu (m, n), kde ,
, pak tento prvek je umístěn v levém horním nebo pravém spodním rohu dané matice (na pozici (1, 1) nebo (m, n)). Důkaz: Na základě Mongeovské vlastnosti (2) lze dokázat sporem. Věta 4: Pokud v dané Mongeovské matici typu (m, n), kde ,
, existuje více minimálních prvků, pak tyto prvky jsou umístěny konvexně kolem levého horního a pravého spodního rohu této matice. Minimální prvky mohou být umístěny v obou těchto oblastech či pouze v jedné z nich. Mongeovská matice kromě výše uvedeného může obsahovat jeden či více sloupců a jeden či více řádků, které obsahují pouze minimální prvky. Důkaz: Analogicky jako předchozí věta, důkaz přidání sloupce či řádku, který obsahuje pouze minimální prvky, lze provést přímým ověřením Mongeovské vlastnosti. Věta 5: Všechny submatice dané Mongeovské matice jsou také Mongeovské Důkaz: Přímo vyplývá z Mongeovské vlastnosti (2). Věta 6: Do libovolné Mongeovské matice lze přidat jeden či více řádků a jeden či více sloupců, které obsahují pouze minimální prvky. Důkaz: Vyplývá z Věty 4. Věta 7: Z libovolné Mongeovské matice typu (m, n), kde 2, respektive 2, lze odstanit řádek respektive sloupec, skládající se pouze z minimálních prvků a daní matice po této operaci zůstává Mongeovská. Důkaz: Vyplývá z Věty 5. Věta 8: Průnik libovolných Mongeovských matic je opět Mongeovská matice. Důkaz: Vyplývá z Věty 3. 4. Konstrukce Mongeovských matic v max – min algebře V této kapitole bude popsána konstrukce Mongeovských matic, a to nejprve v binárním případě, který bude dále rozšířen na matice, které obsahují 3 různé hodnoty, i na zcela obecné Mongeovské matice Konstrukce binárních Mongeovských matic Binární Mongeovské matice lze konstruovat na základě Věty 2 tak, že prvky 0 umístíme konvexně kolem levého horního a pravého spodního rohu a zbytek matice doplníme jedničkami. Nakonec můžeme za základě Věty 4 přidat jeden či více řádků a jeden či více sloupců, obsahujících pouze minimální prvky. 139
.
.
.
.
.
.
.
.
.
.
Konstrukce Mongeovských matic, obsahujících prvky 0, 1, 2 Mongeovské matice, obsahující 3 různé prvky (například 0, 1, 2), se konstruují podobně jako binární Mongeovské matice. Nejprve umístíme nuly konvexně kolem levého horního a pravého spodního rohu matice, zbývajícími prvky 1 a 2 je potřeba pokrýt zbytek matice. Zbytek si rozdělíme na obdélníkové matice, které mají neprázdné průniky a tyto matice nyní zaplníme prvky 1 a 2. Začneme například seshora – první matici vyplníme stejným způsobem jako matici binární, čímž máme vyplněn i první průnik. Dále doplníme druhou matici (má předvyplněný průnik) a takto pokračujeme až do úplného pokrytí matice. Nakonec lze přidat jeden či více řádků a jeden či více sloupců, obsahujících pouze minimální prvky. Konstrukce obecných Mongeovských matic Konstrukce obecných Mongeovských matic je pouze rozšířením předchozích případů, lze ji provádět na základě následujícího algoritmu: 1) Umístíme minimální prvek konvexně kolem levého horního a pravého spodního rohu. 2) Dále pokryjeme zbytek matice obdélníkovými submaticemi s neprázdnými průniky. V těchto maticích opět umístíme druhý nejmenší prvek konvexně kolem levého horního a pravého spodního rohu, musíme přitom dodržovat předvyplněné průniky jednotlivých obdélníkových matic. 3) Krok 2 opakujeme do té doby, než zbudou pouze 2 poslední prvky, které vyplníme jako u Mongeovské matice. 4) Nakonec lze přidat řádky či sloupce, obsahující pouze minimální prvky. Literatura [1]
BUTKOVIČ, P., ZIMMERMANN K.: A strongly polynomial alg. for solving two­
sided system of (max, plus)­linear equations. Disc. Appl. Math 154 (2006), 437‐
446. [2]
CUNNINGHAME‐GREEN, R. A.: Minimax Algebra. Lecture Notes in Economics and Mathematical systems 166, Springer‐Verlag, Berlin, 1979. [3]
GAVALEC, M., ZIMMERMANN K., Solving systems of two sided (max,min)­linear equations, Kybernetika 46 (2010), 405‐414. [4]
GAVALEC, M., PLAVKA, J.: Structure and dimension of the eigenspace of a concave Monge matrix, Disc. Appl. Math. 157 (2009), 768‐773. Mgr. Alena Pozdílková Univerzita Hradec Králové, Fakulta informatiky a managementu Rokitanského 62, 500 03 Hradec Králové, Česká republika e‐mail: [email protected] 140
VYUŽITÍ MULTIAGENTOVÉHO SYSTÉMU V SIMULACI AKCIOVÉHO TRHU USING MULTIAGENT SYSTEM IN STOCK MARKET SIMULATION Jiří Štěpánek Abstrakt Text popisuje model a implementovanou simulaci chování obchodníků na trhu s akciemi. Popsán je jak původní výchozí model, tak jeho rozšířená a upravená verze. Text popisuje proces vzniku softwarové simulace, která byla vytvořena pro účel zkoumání vlivu okolí na rozhodování agenta. Simulace je založena na multiagento­
vém systému. Text rozebírá možnosti a omezení jak původního, tak rozšířeného mo­
delu trhu s akciemi. Dále jsou zde popsány možnosti vytvořené aplikace, její přínosy a úlohy, které aplikace dokáže simulovat. Klíčová slova akciový trh, simlulace, multiagentový systém Abstract The text describes the simulation model of stock market traders’ behaviour and its implementation. The original baseline model and its modified and extended versions are described. The text shows the process of creating simulation software, which was created for the purpose of examining the impact of environment to agent’s decision. Simulation is based on multi­agent system. The text discusses the possibilities and limitations of both original and extended mode of stock market. It further describes the possibilities created by the application, the benefits and tasks that the application can simulate. Keywords stock market, simulation, multi­agent system 1. Introduction Multi‐agent systems are used in many types of simulations like biology, economics or tourism. Generally, these simulations are used in cases, when standard analytical methods are not useable or problem is too complex. One of these complex problems is stock market and its processes. We can imagine basic stock market as a set of people who buy or sell their shares. The main goal of participants is to generate profit arising from difference between past‐value and present value of shares. Principle of generating profit is simple – when held shares 141
have higher value than the original value, participant sells it. There is also mechanism forming price of shares. When demand for shares grows up, price of these shares also grows up. Stock market with these properties can be simplified and transformed into the model. Model can be programmed as a simulation that has its parameters and constants. The main advantage of this abstracting and modelling process is development of a simulation that can be launched many times with different parameters. Consequently, results can be compared and some hidden rules or patterns can be revealed. This paper describes the process of development of simple stock market simulation based on existing model extended of new features. 2. Stock market and behaviour of participants Generally, behaviour of stock market participant is very complex. There are few basic strategies, how participant can generate a profit. Each strategy is based on information. In real stock market, participants have incomplete information. They make their decision with information like original stock price, present stock price, probability of stock price growth etc. There is also psychological aspect – participants perceive behaviour of other participants in environment and govern their behaviour. For example, if all other participants start to sell their shares, this fact creates a big tendency to influent one participant. This perception of neighbourhood gives additional information of other participant’s strategy and provides predicting ability of future stock price changes. These basic rules can be used in model. 3. Simulation development Simulation based on aforementioned facts and inspired by original model created by Galimberti has been programmed in C# on Microsoft .net framework. The main reason, why C# and .net was chosen was bigger extensibility and better possibilities for adjusting and reporting. Original Model Original model is created in the NetLogo environment, which is the application for modelling multi‐agent systems. There are few parameters of the model: Fundamental value, lambda, and k. Fundamental value is cost of one share in the beginning of simulation. Lambda is effect of difference between fundamental value of share and its current value. If lambda has higher value, participants are more inclinable to buy shares if their value is higher than its fundamental value. Parameter “k” shows tendency of participant to “herd behaviour”. If k is equal to 1, tendency to buy or sell share is equal to number of neighbours making this action. Participants with higher value of “k” are more influenced by their neighbourhood. The probability, that selected agent will buy or sell his/her shares, is calculated in each iteration of simulation. Formula for counting probability of buying – probability that agent buys share in time t, is Π
·
,
where is probability of buying based on imitation and probability of buying based on fundamentals. 142
is 4. Extended model Original model has been extended in a many ways: The most important improvement is possibility to study size of watched environment and its effect on participant’s profits and losses. Application is able to save each participant fund value. Fund value is a positive or negative number which shows how successful participant was. Bankruptcy resulting in leaving participant from the market is not simulated in this version of the model. Another difference between original model and model created in C# is more elaborated individuality of each agent. In comparison to the original version is that each agent has its own value for parameters: Mi and observable neighbourhood (environment). That should make simulation more realistic because agents are more individual. There is also possibility to examine distribution of profits of all agents and test if this distribution is nearly normal or how big difference is between distribution of results and normal distribution. All results are stored in one table, which makes consequent work with results easier. Result table consists of number of agent, profit, characteristics parameters such is Mi and number of watched neighbours. Fig. 1: Class diagram of simulation application Figure 1 shows main class simulation connected with other application classes. The whole simulation is directed by Simulation class, which uses AgentGrid class to represent two‐dimensional structure filled by agents. DecissionFunction class represents mathematical formula used to make decision for each of agent. Stand‐alone class gives possibility to extend model with new features. StockMarket class represents stock market, which changes price of stock dependently on buyers / sellers ratio. ProfitDistribution class is used to create simulation statistics, provide data for graphs and tables. This class can also perform test for normality of profit distribution. 5. Benefits of extended model and application Created simulation application gives a wide range of options and simulation adjustments. In the simulation it is possible to define number of agents, range of their parameters, or number of iterations. Reporting module that gives 143
information about agents profit distribution in form of chart and table can be considered as another advantage. One of possible objectives is to simulate and observe, how agents observable neighbourhood affects his/her profit. Application is also ready for further development. 6. Conclusion Stock market trading is a complex human activity, where uncertainty plays a significant role. This paper describes the basic and extended model of stock market simulation. The application that was created for simulation based on extended model is also described. Simulations of this type give us the ability to understand certain patterns and these patterns can be used in real world. 7. Acknowledgement This paper is based on specific research project, whose aim is to examine the influence of environment on agent’s decision in above‐described model. Specific research is called „Using multi‐agent systems in economical simulations“. References [1]
FAMA, Eugene. The Journal of Business [online]. 1965 [cit. 2011‐06‐05]. The Behavior of Stock‐Market Prices. Dostupné z WWW: <http://stevereads.com/papers_to_read/the_behavior_of_stock_market_prices.pdf>. [2]
GALIMBERTI, Jaqueson. NetLogo [online]. 2010 [cit. 2011‐06‐05]. NetLogo User Community Models CASM Robot. Dostupné z WWW: <http://ccl.northwestern.edu/netlogo/models/community/CASM_Robot>. [3]
SUHADOLNIK, Nicolas; GALIMBERTI, Jaqueson; DA SILVA, Sergio. Munich Personal RePEc Archive [online]. 2010 [cit. 2011‐06‐05]. Robot traders can prevent extreme events in complex stock markets . Dostupné z WWW: <http://mpra.ub.uni‐muenchen.de/23923/1/ RobotTradersCanPreventExtremeEventsInComplexStockMarkets.pdf>. Ing. Jiří Štěpánek Univerzita Hradec Králové, Fakulta informatiky a managementu Rokitanského 62, 500 03 Hradec Králové, Česká republika e‐mail: [email protected] 144
EIGENPROBLEM CIRKULANTNÍCH MATIC V EXTREMÁLNÍCH ALGEBRÁCH EIGENPROBLEM OF CIRCULANT MATICES IN EXTREMAL ALGEBRAS Hana Tomášková Abstrakt Eigenproblém je úloha, při níž se hledají takové vektory, které se při dané transfor­
maci zobrazí na svůj násobek. Článek se zbývá eigenproblémem v extremálních alge­
brách. V extremálních algebrách se používají podobné postupy jako v lineární alge­
bře, s tím rozdílem, že klasické operace a jsou nahrazeny maximem a minimem, případně jinými binárními operacemi. Cirkulantní matice je speciální tvar matice. Příspěvek obsahuje souhrn znalostí o řešení eigenproblému pro cirkulantní matice v extremálních algebrách. Klíčová slova eigenproblém, cirkulantní maticemi, max­plus algebra, max­min algebra Abstract In this paper eigenproblem of extremal algebras is introduced. Eigenproblem is a problem to find vectors, which are transformed on their multiple. Procedures in extremal algebras are used similarly as in normal linear algebra. Operations and are substitutes for operations maximize and minimize or for other binary operations. Circulant matrices are special form of matrices. In this paper the basic knowledge about eigenproblem of circulant matrices in extremal algebras is summarized. Keywords Eigenproblem, circulant matrices, max­plus algebra, max­min algebra
1. Úvod Extremální algebra se zabývá v první řadě hledáním vlastního čísla lambda, vlast‐
ního vektoru x, což se obecně nazývá eigenproblém, neboli vlastní problém a ná‐
sledné hledání vlastního prostoru, v max‐plus můžeme uvést zdroje [1], [4], [9‐12]. Obecná matice v max‐plus algebře je již popsána, proto je tento článek spíše pře‐
hledem znalostí o speciálním tvaru obecné matice a to o cirkulantní matici. Cirku‐
lantní matice je speciální tvar matice, kdy všechny vstupy zapsané do prvního řádku kompletně popisují celou matici A typu n x n. Max‐min algebra, je druhý typ 145
extremální algebry využívající pro výpočty maxima a minima[2‐3],[5‐8]. Kromě jiných aplikací se max‐min algebra uplatňuje jako jedna ze základních struktur fuzzy logiky a teorie fuzzy množin. 2. Extremální algebry Max‐plus algebrou rozumíme (R,⊕,⊗) , kde R je množina všech reálných čísel a symboly ⊕ a ⊗ reprezentují binární operace na množině reálných čísel R definované následovně: a ⊕ b = max(a, b), a ⊗ b = a + b , pro všechna čísla a, b ∈ R . Max‐min algebra je představována (B,⊕,⊗) , kde B je lineárně řazená množina a ⊕ =max, ⊗ =min jsou binární operace na množině B. Operace ⊕ , ⊗ jsou používány na matice a vektory běžným způsobem. 3. Cirkulantní matice V obecném maticovém zápisu prvků a ij platí, že matice A typu n x n je cirkulantní když aij = ai′j′ , vždycky když i − i ′ = j − j ′ (modn) . Proto matice A je plně určena svými vstupy v prvním řádku matice, které budou v nadcházejícím textu označeny jako a 0 , a1 , a 2 ..., a n −1 . ⎛ a0
⎜
⎜ a n −1
⎜a
⎜ n −2
⎜ M
⎜ a
⎝ 1
a1
a0
a n −1
M
a2
a 2 L a n −1 ⎞
⎟
a1 L a n − 2 ⎟
a 0 L a n −3 ⎟
⎟
M O
M ⎟
a 3 L a 0 ⎟⎠
Obr. 1: Cirkulantní matice 4. Cirkulantní matice v extremálních algebrách Eigenproblém v extremálních algebrách je analogický jako v lineární algebře a v max‐plus algebře je formulovaný následovně. Mějme matici A ∈ R n x n , dále hledáme vektor x ∈ R n a číslo λ ∈ R odpovídající rovnici A ⊗ x = λ ⊗ x. Hodnota čísla λ se nazývá eigenhodnota a vektor x, odpovídající předchozí formuli, je eigenvektor matice A. Lemma 4.1 [2] Pro danou matici A ∈ R n x n platí, že λ (A) je jediná eigenhodnota dané matice A. Lemma 4.2 [9] Když A a B jsou cirkulantní matice stejného velikostního typu n x n potom výsledek operace A ⊗ B je také cirkulantní matice typu n x n. Lemma 4.3 [9] Pro cirkulantní matici A je příslušná eigenhodnota λ (A) rovna maximální hodnotě vstupů a i , pro i od 0 do n‐1. Theorem 4.4 [8] Dimenze eigenprostoru dané cirkulantní max‐plus matice A je rovna největšímu společnému děliteli všech pozic, na kterých se v prvním řádku matice A vyskytuje maximální hodnota λ (A) a velikosti n matice A. V max‐min algebře je při řešení eigenproblému možné eliminovat proměnnou λ . Vzhledem k tomu, je tedy možné rovnici formulovat následovně. Pro danou max‐min matici A∈ B n x n se hledá vektor x ∈ B n odpovídající rovnici A ⊗ x = x. 146
Použijme označení M(A)= max(a0, a1, …, an-1) a m(A)= max(a1, …, an-1), kde řádkový
vektor (a0, a1, …, an-1) je prvním řádkem dané cirkulantní matice A.
Theorem 4.5 [7] Nechť
matice je cirkulantní. Potom vektor x=
(x1,x2, …,xn) je max-min eingenvektorem dané matice A právě tehdy, když jedna z
následujících podmínek je splněna.
1.
2.
Použijeme označení N= {1, 2, …, n} a N0= {0, 1, …, n-1}. Dále definujeme cirkulantní
matici jejími vstupy na prvním řádku
, ostře rostoucí
posloupnost
délky s(A) pomocí rekurze
Jednodušeji, máme m1> m2> … a délka s(A) patřící posloupnosti M(A) je první
s mající vlastnost
Pro zrychlení, můžeme použít
označení S(A)={1, 2, …, s(A)}. Pro jakékoliv
označíme Pr množinu všech
pozic hodnoty mr v prvním řádku matice A, tzn.
a definuje
největšího společného dělitele dr, er následovně
.
Theorem 4.7 [7] Nechť je dána cirkulantní matice
je eigenvektor dané matice A. Potom
je pravdivé pro každé
, nechť x
Theorem 4.8 [7] Nechť je dána cirkulantní matice
, v níž je
vstup na hlavní diagonále a0 větší než všechny další vstupy v dané matici. Když má
vektor odpovídající nerovnosti
pro každé
, potom x je
eigenvektorem dané cirkulantní matice A.
Theorem 4.9 [7] Nechť
je cirkulantní matice. Vektor je
eigenvektor matice A tehdy a jen tehdy, když existuje oddíl , na množině
N takový, že pro každou třídu
existuje a
odpovídající
následujícím podmínkám
1.
2.
3. T je třída ekvivalence v množině N modulo er(T) .
Obr. 2: Eigenvekto cirkulantní max-min matice
147
5. Závěr Závěrem shrneme výhody aplikace cirkulantních matic. Matici je možné zadat (ur‐
čit) vektorem vstupů , ,…,
. Této vlastnosti je využívána při výpočtu n­
té mocniny matice v max‐plus algebře, což vede ke snížení výpočtové složitosti ei‐
genprostoru. Nalezení eigenhodnoty má výpočtovou složitost O(n) oproti nalezení eigenhodnoty v obecné matici O(n2) jak bylo uvedeno již v [2]. Počet fundamentál‐
ních eigenvektorů je možno určit přímo z matice prvního řádu, jak bylo uvedeno v Theorému 4.4. Strukturu eigevektoru max‐min cirkulantní matice je možné po‐
psat podle vektoru vstupů cirkulantní matice a velikosti tohoto vektoru. Literatura [1]
BUTKOVIČ, Peter. Max­linear Systems: Theory and Algorithms. : Springer Monographs in Mathematics, Springer‐Verlag, 2010. 272 s. [2]
CUNINGHAM‐GREEN, R. A. Minimax algebra, Lecture Notes in Econ. and Math. Systems 166. Berlin : Springer‐Verlag, 1979. 258 s. [3]
CUNINGHAM‐GREEN, R. A. Minimax algebra and Application, In: Advances in Imaging and Electron Physics 90. New York : Academic Press, 1995. 122 s. [4]
GAVALEC, Martin. Periodicity in extremal algebras. Hradec Králové : Gaudeamus Univesity of Hradec Králové, 2004. 176 s. [5]
GAVALEC,Martin. Monotone eigenspace structure in max­min algebra. In Lin. Algebra Appl. 345. 2002. [6]
GAVALEC, Martin; PLAVKA, Ján. Monotone interval eigenproblem in max‐min algebra. Kybernetika. 2010, 3, 46, s. 387‐396. [7]
GAVALEC, Martin; TOMÁŠKOVÁ, Hana. Eigenspace of a circulant max‐min matrix. Kybernetika. 2010, 3, 46, s. 397‐404. [8]
GAVALEC, Martin; TOMÁŠKOVÁ, Hana. Eigenproblem for circulant matrices in max‐min algebra. In MME 2009. Kostelec nad Černými lesy. [9]
PLAVKA, Jan. Eigenproblem for circulant matrices in max‐algebra : In Optimization 50. 2001. [10] TOMÁŠKOVÁ, Hana. Eigenproblem for circulant matrices in max‐plus algebra. In MAMECTIS 2010. Port El Kantoi, Tunisia , 2010. [11] TOMÁŠKOVÁ, Hana. Eigenvalue problem for parametrized circulant matrices. In MME 2008. Liberec , 2008. [12] ZIMMERMANN, Karel. Extremal Algebra. Praha : Ekon.ústav ČSAV Praha, 1976. Ing. Hana Tomášková Univerzita Hradec Králové, Fakulta informatiky a managementu Rokitanského 62, 500 03 Hradec Králové, Česká republika e‐mail: [email protected] 148
POZNÁMKY:
149
Název: Sborník příspěvků z letní školy „Mezioborové přístupy informatiky a kognitivní vědy“ Editor: prof. RNDr. Josef Zelenka, CSc. Druh publikace: recenzovaný sborník 1. ročníku letní školy Rok a místo vydání: 2011, Hradec Králové Vydání: první Náklad: 100 výtisků Tisk: Tribun EU s.r.o., Brno Vydalo nakladatelství Gaudeamus, Univerzita Hradec Králové jako svou 1078. publikaci. ISBN 978­80­7435­137­2 

Podobné dokumenty

Vědecké výpočty v biologii a biomedicíně

Vědecké výpočty v biologii a biomedicíně univerzitě v rámci multilicence. Jsou zde popsány některé jeho vlastnosti a na jednoduchém příkladu ukázáno jeho využití pro vědecké výpočty v biologii. V dalších třech kapitolách jsou uvedeny apli...

Více

zde - Univerzita Hradec Králové

zde - Univerzita Hradec Králové přístup k vlastnímu problému v max-min algebře“ – prof. RNDr. Martin Gavalec, CSc. Odpoledne začala posterovými sekcemi studentů a pokračovala praktickými semináři pod vedením pozvaných hostů či čl...

Více

8. References - Lesnická a dřevařská fakulta

8. References  - Lesnická a dřevařská fakulta silviculturae Mendelianae Brunensis, sv. LIV, č. 2, p. 23­30., 2006. Dániel, V., Frekvenční charakteristiky kytary pomocí MKP. In 4th International Symposium Material ­ Acoustic ­ Place   2008. 1. ...

Více

AMBIENTNÍ INTELIGENCE - Fakulta informatiky a managementu

AMBIENTNÍ INTELIGENCE - Fakulta informatiky a managementu AMBIENTNÍ INTELIGENCE – PROČ A KAM? prof. RNDr. Peter Mikulecký, Ph.D.

Více

Říjen 2014

Říjen 2014 středisek a oddílů jako součást prezentace na veřejnosti nebo na skautské křižovatce. Jsou to zprávy, které pochopitelně přinášejí radost. Ale až článek Vojty Homolky – Vlka a práce na něm mi otevř...

Více

Sestava 1 - Aktuálne

Sestava 1 - Aktuálne  ENTERPRISE ARCHITECTURE IN THE CONTEXT OF STRATEGIC MANAGEMENT .. 63

Více

ITA_01_2014cover:Sestava 1

ITA_01_2014cover:Sestava 1 Ing. Michal Grell, PhD. Civil Association EDUCATION–SCIENCE-RESEARCH in Bratislava Redakčná rada (Editorial Board) prof. Mikhail A. Basarab, DSc., Bauman Moscow State Technical University, Moscow, ...

Více

Cvičení z diskrétní matematiky

Cvičení z diskrétní matematiky 1.1.2. Všimněte si paralely Russelova paradoxu s principem elektromagnetického přerušovače (tzv. “zvonku”) a zamyslete se nad tím, jakým způsobem se příroda vyrovnává s tímto paradoxem. 1.1.3. Nyní...

Více

Klasifikace a automatické třídění.

Klasifikace a automatické třídění. Představuje základní klasifikační metodu založenou na rozdělení prostoru příznaků pomocí po částech lineárními úseky. 
 Prostor příznaků je obecně prostor s mnoha dimenzemi proto hovoříme o separac...

Více