430 likes | 539 Views
Holonický výrobní systém. Multiagentní systém ve výrobě. Jakub Jura juraj@mail.muni.cz jura@student.fsid.cvut.cz. Co je to „holonický“. Slovo „holon“ navrhl před dvaceti lety maďarský filosof Arthur Koestler a označoval jím:
E N D
Holonický výrobní systém Multiagentní systém ve výrobě Jakub Jura juraj@mail.muni.cz jura@student.fsid.cvut.cz
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 (Holonic Manufacturing System consortium) • 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.
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) procesory data ú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.
Tabule Tabule 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ů. Sdílená datová struktura typu „tabule“. požadované úlohy opískování05 vyvrtávání04 opískování06 zalisování03 přijaté úlohy (závazky) opískování05 opískování06 splněné úlohy opískování01 vyvrtávání03 opískování02 zalisování02 ceny úloh opískování20 vyvrtávání15 zalisování25
ACLagent communication language - jazyk pro komunikaci mezi agenty • musí být dostatečněobecný, aby umožňovalkomunikaci 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ýmivýpočetními platformami. • Některé jazyky: • KQML - Knowledge Query and Manipulation Language • FIPA-ACL - Foundation for Physical Intelligent Agents
performativ X konstantiv Austin – Ilokuční (nepromluvový) akt – (speech act theory) 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.).
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 Jméno holonu Tokudálostí Tok událostí Výstupy událostí Vstupy událostí Řízení výběru algoritmů Typ holonu Algoritmy Tok dat Tok dat Datové vstupy Datové výstupy Vnitřní data Možnosti zdrojů
Modely podle ISO 61499 • System model • Device model • Resource model • Application model • Function block model • Distribution model • Management model • Operationl state model
Diverter Belt Storage Software Agent Software Agent Software Agent 61499 61499 61499 Holonický systém FIPA FIPA FIPA FIPA ...
komunikátor komuniké komunikant vysílač sdělení přijímač Zakódování sdělované informace Dekódování přijatého komuniké Komunikační kanál Interpretace S R Zásoba znaků komunikátora Zásoba znaků komunikanta Obecné schéma komunikace
Druhy komunikace • Komunikace: • 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
Účastník komunikace č. 1 Účastník komunikace č. 2 Chování, jednání, činnost AKCE Prožívání, pocity, dojmy STAVY Prožívání, pocity, dojmy STAVY Chování, jednání, činnost AKCE Schéma komunikace (Gillernová 1997)
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
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.
CplanTautomatizované 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í evoluce Agenti platí "nájemné" a dostávají "kredity". Kdo nemá na nájem, je zesysté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ánky Maří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.
Internetové stránky 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/
Č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 Tabulka je datová struktura připomínající „jednorozměrné pole“, jak jej známe z vyšších programovacích jazyků. #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
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 Table ld #9 ;Mez tabulky ld kam ;Index ld co ;Hodnota, která se má zapsat na ;pozici kamdo tabulky "tabulka". wtb tabulka ;název tabulky │ tabulka │ │ #9 ┌─────┐ │ ├─[LD ]───┤s s├─ │ │ │ WTB │ │ │ kam │ │ │ ├─[LD ]───┤ix ix├─ │ │ │ │ │ │ co │ │ │ ├─[LD ]───┤v v├──────────────────────────────────────────────────────┤ │ └─────┘ │ Zapíše novou hodnotu „co“ do řádku tabulky „tabulka“ s číslem „kam“.
FTB – Find In Table ld co_hledat FTB tabulka wr nalezeno_kde ld s1.0 wr uspesnost │ tabulka │ │co_hle» ┌─────┐ │ ├─[LD ]───┤v s├─ │ │ │ FTB │ │ │ │ │ naleze»│ │ │ ix├────────────────────────────────────────────────[WR ]─┤ │ └─────┘ │ │ │ │ s1.0 uspesn»│ ├──] [───────────────────────────────────────────────────────────[WR ]─┤ 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“.