Download - Holonický výrobní systém
Holonický výrobní systémMultiagentní systém ve výrobě
Jakub Jura
Co je to „holonický“
Slovo „holon“ navrhl před dvaceti lety maďarský filosof Arthur Koestler a označoval jím:
„základní organizační jednotku biologických a společenských systémů“
Holos = celek On = část, jednotlivec, přesně „jsoucno“ – tedy něco co jest.
Konsorcium HMS
• Holon je autonomní a kooperativní stavební prvek výrobních systémů.
• Holon je určen k transformaci, transportu, ukládání a validizaci informací a fyzických objektů.
• Holon se skládá z části, která zpracovává informace a z části, která zpracovává fyzikální objekty.
• Holon může být složen z holonů a sám být součástí nadřazeného holonu.
(Holonic Manufacturing System consortium)
Distribuovaný systém
Distribuovaný systém je takový systém, který zahrnuje více než jeden procesor a který má svůj program rozdělený na části, které si navzájem předávají data (Janeček 1997).
Proč DCS?
Větší spolehlivost, neboť při vyřazení jednoho prvku systému nedojde k zhroucení celého systému. To naopak nastane v případě, že zkolabuje centrální člen.
Větší efektivita v přípravné fázi, protože na návrhu celého systému se může podílet více vývojových týmů.
Jednodušší a přehlednější řídicí algoritmus. Řídicí algoritmus je rozdělen podle místa působení či funkce a je realizován v místně příslušné řídicí jednotce.
Distribuce
Distribuci je možné chápat jako vlastnost určenou uspořádanou trojicí:
[použité procesory, sdílená data, rozdělené úlohy řízení] (Enslow 1977)
datapr
oces
ory
úlohy
Woldridge a Jennings: Agent je hardwarový nebo softwarový systém, který je:
• Autonomní – pracuje bez přímého zásahu člověka. Do jisté míry řídí své akce a vnitřní stavy
• Sociální – interaguje s ostatními agenty prostřednictvím jazyka pro komunikaci (viz ACL). Sociální agent pracuje s modely chování ostatních agentů.
• Reaktivní – reaguje na změny v okolí systémem produkčních pravidel: {situace S} {akceA}, resp.: rozpoznání situacevykonání akce. Má tak zvané stereotypní plány.
• Proaktivní – reakci agenta na podnět nedeterminuje pouze aktuální stav, ale agentovo chování je řízeno cíli.
Společenství agentů musí zajistit obzvláště:
• koordinaci – patří sem především rozdělování práce a sdělování mezivýsledků. Zásadním termínem je zde:• {závazek} agent přislíbí, že vykoná nějakou činnost • {úmluva} a domluví se za jakých podmínek může od závazku
odstoupit• kooperaci – základní metodou kooperace je
vyjednávání (negotiation).• komunikaci – nutná podmínka pro koordinaci a
kooperaci. Základním typem komunikace je posílání zpráv. Základní architekturou je TABULE.
Sdílená datová struktura typu „tabule“.
TabuleTabule je sdílená datová struktura, do níž jednotlivý agenti zasílají své výsledky, které považují za významné a potřebné. Současně se na tuto adresu agenti obracejí jako často na jediný zdroj informací o výsledcích jiných agentů.
přijaté úlohy(závazky)
opískování05opískování06
splněné úlohy
opískování01vyvrtávání03opískování02zalisování02
ceny úloh
opískování20vyvrtávání15zalisování25
požadované úlohy
opískování05vyvrtávání04opískování06zalisování03
ACLagent communication language - jazyk pro komunikaci mezi agenty
• musí být dostatečně obecný, aby umožňoval komunikaci mezi agenty různé specializace
• musí být otevřený, aby umožňoval postupné rozšiřování a doplňování
• musí umožňovat přenos různých typů a formátů dat• měl by mít možnost přenášet algoritmy zpracování dat mezi
jednotlivými výpočetními platformami.
Některé jazyky:
KQML - Knowledge Query and Manipulation Language
FIPA-ACL - Foundation for Physical Intelligent Agents
performativ X konstantiv
Výpovědi mohou být:• Konstativní (popisné) – poskytují informaci
(např.: “dneska prší“, vlak přijede v 8:00 na hlavní nádraží,…, můj stav je: „čekání na závazek).
V systému se vyskytují jako parametry performativů.• Performativní (uskutečňující jednání) – jsou
činem (např.: „omlouvám se“, „dáš si kafe?“, „už to nedělej“, „jsem připraven přijmout závazek“ atd.).
Austin – Ilokuční (nepromluvový) akt – (speech act theory )
FIPA-ACL (Foundation for Physical Intelligent
Agents)www.fipa.org
Performativů je v FIPA-ACL dvacet a jsou rozděleny do pěti skupin.:sender = agent odesílající zprávu
:receiver = agent přijímající zprávu (adresát)
:from = původní odesilatel performativu specifikovaný v obsahu :content (pouze pokud se používá forward)
:to = konečný příjemce zprávy specifikovaný v obsahu :content (pouze pokud se používá forward)
:in-reply-to = očekávaný identifikátor přiřazený této zprávě (stejný jako hodnota parametru :reply-with v předcházející zprávě)
:reply-with = identifikátor, kterým má být označena odpověď na danou zprávu
:ontology = jméno ontologie, jejíž použití se předpokládá pro pochopení obsahu parametru :content
:content = vlastní obsah zprávy
:language = název jazyka použitého pro vyjádření obsahu zprávy v parametru :content
:envelope = doplňková informace při přenosu zpráv mezi agenty různých platforem
:protocol = je identifikátor, který chce vysílající agent používat
:conversation-id = je identifikátor právě probíhající sekvence zpráv
Parametry (atributy) performativů FIPA-ACL
1) skupina performativů pro přenos informace:
• a. confirm (1) - potvrdit• b. disconfirm (2) - popřít• c. inform (3) - oznámit• d. inform-if (4) – oznámit pouze když (podmínka)• e. inform-ref (5) - oznámit
2) skupina performativů pro vyžádání informace:
• a. query-if (6) - dotaz• b. query-ref (7)• c. subscribe (8) – podporuješ (co)
3) skupina performativů pro vyjednávání:
• a. accept-proposal (9) – přijmout nabídku • b. cfp (10) – call for proposals• c. propose (11) – navrhnout• d. reject-proposal (12) – zamítnout návrh
4) skupina performativů pro vykonání akce:
• a. agree (13) - schválení• b. cancell (14) - zrušit• c. refuse (15) - odmítnout• d. request-when (16) – požadavek když• e. request-whenever (17) – požadavek kdykoliv
5) skupina performativů pro chybová hlášení:
• a. failure (18) - chyba• b. not-understood (19) - neporozuměno
Model holonu podle IEC 61499
Typ holonu
Algoritmy
Vnitřní data
Řízení výběru algoritmů
Jméno holonu
Vstupy událostíTok datTok dat
Tok událostí Tok událostí
Možnosti zdrojů
Výstupy událostí
Datové výstupyDatové vstupy
Modely podle ISO 61499
• System model• Device model• Resource model• Application model
• Function block model• Distribution model• Management model• Operationl state model
Holonický systém
FIPA FIPA
Software Agent
Diverter
61499Software
Agent
Belt
61499
Software Agent
Storage
61499
FIPA
FIPA ...
Obecné schéma komunikace
Dekódování přijatého komuniké
Zakódování sdělované informace
S RKomunikační kanál
Interpretace
Zásoba znaků komunikátora
Zásoba znaků komunikanta
komunikátor komuniké komunikantvysílač sdělení přijímač
Druhy komunikaceKomunikace:
• Přímá• Adresné zasílání zpráv
• Selektivní zasílání zpráv (multicasting)
• Všesměrové zasílání zpráv (broadcasting)
• Nepřímá• Tabule
Schéma komunikace (Gillernová 1997)
Účastník komunikace č. 1
Chování, jednání, činnostAKCE
Prožívání, pocity, dojmySTAVY
Účastník komunikace č. 2
Prožívání, pocity, dojmySTAVY
Chování, jednání, činnostAKCE
Ontologie MAS• soubor významů používaných symbolů• Soubor znalostí na pozadí – popis světa, který agent uznává a
respektuje.• Ontologie multiagentního systému je soubor znalostí na pozadí,
který umožňuje předat sémanticky hodnotné informace pomocí stručných zpráv, čehož je docíleno tím, že si agenti nemusejí sdělovat všechna hlediska obsahu, neboť ty jsou zachyceny v příslušné ontologii.
Energentismus(emergere = latinsky vynořit se, vymanit se)
• Za emergentní můžeme pokládat cokoliv, co je na určité vyšší úrovni zřetelné a svébytné, kauzálně působivé, či jakkoliv jinak pozoruhodné, a na co lze hledět jako na důsledek vlastností a chování prvků nějaké nižší úrovně, přičemž to není snadné, nebo dokonce možné prostředky této nižší úrovně popsat, vymezit, či předpovědět.
• mentální stavy a procesy lze pojmout jako emergentní jevy na některé vyšší úrovni dostatečně složitého dynamického systému“.
Umělý životSamoreprodukující se automat (von Neuman 1948)
• vlastního automatu – řídicí jednotky• manipulátoru – mechanické analogie ruky• oddělovače – mechanismu, který umí rozpojit dva
prvky• spojovače – mechanismu, který umí spojit dva prvky• senzoru – mechanismu, který umí rozpoznat součástky• nosníku – kostry celého systému a zároveň
paměťového média
Kazuistiky
• PROSA – řízení výroby• ExPlanTech• CplanT – humanitární organizace• Rockwell Automation – transport materiálu• Amalthaea – vyhledávání informací
PROSA
• Product (holon výrobku)Reprezentuje výrobek a monitorování výrobního procesu
• Resource (holon výrobníhoprocesu)Výrobní linky, zařízení, procesy
• Order (holon objednávky)Obsluhuje požadavky na výrobní holony
• Staff (holon obsluhy)Podpora pro optimalizaci a koordinaci
ProPlanTMultiagentní plánování
• Project Planning Agent• Project Managing Agent• Production Agent
production agent
project planning agent
project managing agent
meta agent
ExPlanTechPlánování projektově orientované výroby (vychází z ProPlanT)
• Operátor – dekompozice konkrétního výrobního projektu
• Workshop – rozvrhovací agent• DB agent – spojuje ExPlanTech s firemním IS.• Materiálový agent – integruje systém skladového
hospodářství
Nasazeno v modelárně LIAZ, s.r.o., Liberec.
CplanT automatizované plánování koalic v rámci mírových operací • Resource Agents (R-agents) silnice, letiště, …
• In-need Agents (In-agents) místo vyžadující pomoc
• Humanitarian Agents (H-agents) humanitární agentura
Rockwell Automation• Výrobní skladovací jednotka• Spojka• Dopravní pás• Výhybka• Křižovatka
Amalthaeahttp://lcs.www.media.mit.edu/projects/amalthaea/ • filtrační agenti - Information Filtering (IF) agents • vyhledávací agenti - Information Discovery (ID)• Agenti se učí a adaptují na zájmy uživatele pomocí
evoluceAgenti platí "nájemné" a dostávají "kredity". Kdo nemá na nájem,
je ze systému odstraněn. Kredity (kladné nebo i záporné) dostává agent podle hodnocení doporučeného dokumentu uživatelem a podle původního přesvědčení agenta o jeho zajímavosti.
Internetové článkyMařík, V. (2003). Principy architektury holonických a multiagentních
systémů I In: Sdělovací technika 6 / 2003. http://www.stech.cz/rok_2003/06/vyber/06trendy/06trendy.htm. Praha: Sdělovací technika, červen 2003.
Mařík, Vladimír. Principy architektury holonických a multiagentních systémů II In: Sdělovací technika 7 / 2003. http://www.stech.cz/rok_2003/06/vyber/06trendy/06trendy.htm. Praha: Sdělovací technika, červenec 2003.
Bečvář, Petr, Kout, Jan, Pěchouček, Michal. Multiagentní řízení, simulace a plánování výroby In: Sdělovací technika 5 / 2004. http://www.certicon.cz/data/a5_04_s27-28.pdf. Praha: Sdělovací technika, květen 2004.
Denár, Robert. Segmentácia výroby. http://www.ipaslovakia.sk/slovak/ipamagazin/segmentacia/segmentacia.asp.
Holonic Manufacturing System consortium. http://hms.ifw.uni-hannover.de.
Foundation for Intelligent Physical Agents. http://www.fipa.org.
Agentcities. http://www.Agentcities.org.
Agent Faktory. http://www.agentfactory.com.
Michael Wooldridge. An Introduction to MultiAgent Systeme. http://www.csc.liv.ac.uk/~mjw/pubs/imas/
Internetové stránky
Časopisecké zdroje
Vrba, Pavel. Holonické výrobní systémy In: Automatizace 12 / 2002. Praha: Automatizace s. r. o., prosinec 2002.
Stránky věnované holonickým systémům
http://www.holon.ic.cz
Programování systému se provádí ve vývojovém prostředí „Mozaic“ nebo „Xpro“, pomoci IL nebo KOP.
PLC Tecomat s procesorem řady „d“ jsou vybaveny tabulkovými instrukcemi.
Tabulkové instrukce jsou jádrem generátoru maker Tapro, který je použit pro generování programu krokového řadiče.
Tabulka
#table word tabulka=10,20,30,40,50,60,70,80,90
#table byte tabulka= %11111111,
%01111111,
%00000111,
%00000011,
%00000001,
%00000001
#table bit tabulka = 1,0,0,0,1,0,1,1,1,0,0,1,0,1,1
Tabulka je datová struktura připomínající „jednorozměrné pole“, jak jej známe z vyšších programovacích jazyků.
Tabulkové instrukce
Instrukce pro práci s tabulkami. Z tabulek je možné číst, zapisovat do nich, prohledávat je či zařazovat do nich jiné prvky.
• LTB – Load From Table - čtení
• WTB – Write To Table - zápis
• FTB – Find In Table - vyhledávání
• FTM - Find In Table With Masking – vyhledávání relevantního
• FTS – Find In Table With Sorting – zatřídění neznámého prvku
LTB - Load From Table
ld index ;0,1,2,.....,9
ltb tabulka ;Název tabulky
wr rw10
│ tabulka ││ index ┌─────┐ │├─[LD ]───┤ix x├─ ││ │ LTB │ ││ │ │ ││ │ ix├─ ││ │ │ ││ │ │ rw10 ││ │ v├────────────────────────────────────────────────[WR ]─┤│ └─────┘ │
Přečte řádek tabulky „tabulka“ s číslem „index“ a zapíše jej do registru rw10.
WTB – Write To Tableld #9 ;Mez tabulky
ld kam ;Index
ld co ;Hodnota, která se má zapsat na ;pozici kam do tabulky
"tabulka".
wtb tabulka ;název tabulky
Zapíše novou hodnotu „co“ do řádku tabulky „tabulka“ s číslem „kam“.
│ tabulka ││ #9 ┌─────┐ │├─[LD ]───┤s s├─ ││ │ WTB │ ││ kam │ │ │├─[LD ]───┤ix ix├─ ││ │ │ ││ co │ │ │├─[LD ]───┤v v├──────────────────────────────────────────────────────┤│ └─────┘ │
FTB – Find In Tableld co_hledat
FTB tabulka
wr nalezeno_kde
ld s1.0
wr uspesnost
Hledá v tabulce „tabulka“ řádek s hodnotou „co_hledat“ a pokud hledanou hodnotu nalezne vrací číslo řádku a nastavuje systémový registr s1.0 na hodnotu „1“.
│ tabulka ││co_hle» ┌─────┐ │├─[LD ]───┤v s├─ ││ │ FTB │ ││ │ │ naleze»││ │ ix├────────────────────────────────────────────────[WR ]─┤│ └─────┘ ││ ││ s1.0 uspesn»│├──] [───────────────────────────────────────────────────────────[WR ]─┤