Holonický výrobní systém Multiagentní 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) data procesory ú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í situace vykoná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 “. 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ů. 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 požadované úlohy opískování05 vyvrtávání04 opískování06 zalisování03
ACL agent 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 z pracová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) 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 Typ holonu Algoritmy Vnitřní data Řízení výběru algoritmů Jméno holonu Vstupy událostí Tok dat Tok událostí Možnosti zdrojů Výstupy událostí Datové výstupyDatové vstupy
Modely podle ISO System model Device model Resource model Application model Function block model Distribution model Management model Operationl state model
Holonický systém FIPA Software Agent Diverter Software Agent Belt Software Agent Storage FIPA...
Obecné schéma komunikace Dekódování přijatého komuniké Zakódování sdělované informace SR Komunikační kanál Interpretace Zásoba znaků komunikátora Zásoba znaků komunikanta komunikátor komuniké komunikant vysílač sdělení přijímač
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
Schéma komunikace (Gillernová 1997) Účastník komunikace č. 1 Chování, jednání, činnost AKCE Prožívání, pocity, dojmy STAVY Účastník komunikace č. 2 Prožívání, pocity, dojmy STAVY Chování, jednání, činnost AKCE
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ý život Samoreprodukují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
ProPlanT Multiagentní plánování Project Planning Agent Project Managing Agent Production Agent
ExPlanTech Plá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
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 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ánky Mařík, V. (2003). Principy architektury holonických a multiagentních systémů I In: Sdělovací technika 6 / Praha: Sdělovací technika, červen Mařík, Vladimír. Principy architektury holonických a multiagentních systémů II In: Sdělovací technika 7 / Praha: Sdělovací technika, červenec Bečvář, Petr, Kout, Jan, Pěchouček, Michal. Multiagentní řízení, simulace a plánování výroby In: Sdělovací technika 5 / Praha: Sdělovací technika, květen Denár, Robert. Segmentácia výroby. entacia.asp. entacia.asp
Holonic Manufacturing System consortium. Foundation for Intelligent Physical Agents. Agentcities. Agent Faktory. Michael WooldridgeMichael Wooldridge. An Introduction to MultiAgent Systeme. Internetové stránky
Časopisecké zdroje Vrba, Pavel. Holonické výrobní systémy In: Automatizace 12 / Praha: Automatizace s. r. o., prosinec 2002.
Stránky věnované holonickým systémům
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= % , % , % , % , % , % #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 Table ld #9 ;Mez tabulky ld kam ;Index ld co ;Hodnota, která se má zapsat na ;pozici kam do tabulky "tabulka". wtbtabulka;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 Table ld 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 ]─┤