Homogenní P kolonie 1 Luděk Cienciala 1, Lucie Ciencialová 1, Alica Kelemenová 1,2 1 Ústav informatiky, Slezská univerzita Opava Bezručovo nám.13, 746 01 Opava 2 Katedra informatiky, Katolická univerzita Ružomberok, Námestie A. Hlinku 56/1, 034 01 Ružomberok, Slovenská republika ludek.cienciala@fpf.slu.cz, lucie.ciencialova@fpf.slu.cz, alica.kelemenova@fpf.slu.cz Abstrakt V příspěvku prezentujeme výsledky získané při výzkumu P kolonií, jedné z variant výpočetních modelů založených na nezávislých membránových agentech, které se vyvíjí a působí ve společném prostředí. Budeme se zabývat především P koloniemi, které jsou homogenní vzhledem k typu pravidel jednotlivých agentů. Počet agentů, stejně jako počet v každém agentu lze omezit i při zachování výpočetní úplnosti homogenních P kolonií. Uvedeme výsledky pro P kolonie s jedním a se dvěma objekty uvnitř každého agenta. 1 Úvod P kolonie byly zavedeny v práci [8] jako jeden z modelů inspirovaných membránovými systémy ([10]) a gramatickými systémy, které nazýváme kolonie ([6]). Daný model je inspirován strukturou a činností živých organismů ve společném prostředí. Autonomní organismy žijící v P kolonii nazýváme agenty. Jako agenty si můžeme klidně představit například mravence nebo včely. Samozřejmě nebudeme zkoumat jejich stavbu nebo životní projevy do detailů a hledat adekvátní popis, formalismus v daném modelu. Agenty i jejich životní projevy jsou definovány velmi jednoduchým způsobem. Každý agent je tvořen jednou membránou ohraňičující oblast s objekty. Počet objektů uvnitř agenta je pevně stanoven a je pro všechny agenty stejný. Počet objektů uvnitř každého agenta určuje tzv. kapacita P kolonie. Objekty P kolonií si můžeme představit v přírodě jako látky, které jsou schopny dané organismy měnit, přijímat, vylučovat do prostředí. I takto jednoduché životní projevy mohou emergovat v mnohem složitější životní projevy celé P kolonie. Nejvíce k tomu přispívá předávání informací mezi agenty, kdy jeden agent vyloučí do prostředí určitou látku odpovídající jeho stavu v dané situaci. Například u mravenců patří mezi nejdůležitejší komunikační prvek mravenčí pachy, tzv. feromony. Mezi výhody využívání pachů patří to, že mravencům stačí i malý mozeček k vytvoření poměrně složité společenské struktury. Existují však parazité, kteří jsou schopni napodobit mravenčí pach a z toho vyplývá snadná napadnutelnost daného systému. Mezi častými parazity mravenců jsou mravenci jiného druhu. Nyní se podívejme na druhý příklad a to včely. Žihadlový aparát včely tvoří několik žláz. V jejich výměšcích je histamin, fosfolipáza a hyaluronidáza vyvolávající nepříjemné pocity svědění a pálení v okolí vpichu. Tyto žlázy také vylučují i feromony, které slouží k vyvolání poplachu u ostatních včel. Do rány vstřikují včely i látku připomínající vůni banánů. Pomocí ní se orientují další včely a vpichují další žihadla do blízkosti prvního, tzn. u každé dávky jedu je i dávka izoamylacetátu. Izoamylacetát je stálá látka informující něco okolo 10 minut další včely, kde se nachází nepřítel. Včely z jednoho úlu se poznájí podle specifické vůně, podobné úlové vůni, která sestává z mnoha složek. Včely jsou schopny se vyznat i ve směsici pachů. Pyl a nektar dvou úlů nevonívá stejně, z důvodu, že bývá sbírán jednak z různých rostlin, ale hlavně v různém poměru těchto rostlin. Povrch těla včely je uzpůsoben tak, že nabírá vůni úlu a udržuje si ji. Ale to ještě není všechno. Včely si značí cestu k nektaru. Jsou to molekuly neralu, citralu a geraniolu, jejichž vůně dohromady připomíná vůni květů meduňky nebo plodů kdoule. Pomáhají včelám najít i cestu zpátky do úlu. Pro orientaci slouží včelám i tance uvnitř úlu a mnoho dalších vůní. Např. terpeny, aldehydy, ketony i další štiplavé a aromatické sloučeniny v různých množstvích ovlivňují dorozumívání včel a umožňují fungování včelstva. Vůni včely používají 1 Poděkování Výzkum byl proveden za podpory grantu GAČR 201/06/0567, výzkumného záměru MSM 4781305903 a grantu OP RLZ CZ 04.1.03/3.2.15.2/0295. 71
jako dorozumívací jazyk. Prostředí P kolonie slouží jako komunikační kanál, právě přes prostředí agenty jsou schopni ovlivňovat chování ostatních agentů. Stejně jako mravenci a včely. V prostředí se nacházejí speciální objekty, které nazýváme enviromentální a označujeme e. Počet objektů e je v prostředí obecně nekonečně mnoho. Činnost agenta je určena pomocí. Každý agent má k dispozici svou množinu. Program je tvořen pravidly a to pravidly přepisujícími, komunikačními a kontrolními. Kontrolní pravidla jsou rozšířením pravidel komunikačních. Každý program obsahuje tolik pravidel, kolik je objektů uvnitř agenta. V každém okamžiku jsou všechny objekt uvnitř agenta změněny a nebo přesunuty. Existují tři základní typy pravidel: (1) Přepisující pravidla mají tvar a b. Aplikací pravidla je objekt a v agentu přepsán na objekt b. (2) Komunikační pravidla mají tvar c d. Pomocí tohoto pravidla je objekt c, který je uvnitř agenta, přesunut ven a objekt d, který je vně, je pak přesunut dovnitř agenta. Schopnosti agentů jsou rozšířeny o (3) kontrolní programy. Dáme jimi agentům možnost výběru mezi dvěma možnostmi. Programy mají tvar a b, c d/c d. Pokud tento program je aplikován, pravidlo c d má vyšší prioritu k provedení než pravidlo c d. To znamená, že agent vybere pravidlo c d (pokouší se najít uvnitř objekt c a objekt d v prostředí). Pokud toto pravidlo může být vykonáno, tak je použito. Když první pravidlo nemůže být provedeno, agent použije druhé pravidlo z dané dvojice pravidel c d. Pro případ dvou objektů uvnitř agenta, můžeme přepsat kontrolní pravidlo do tvaru c d/c d. Pokusme se tato pravidla, alespoň z části interpretovat v přírodě. Přepisující pravidla zabezpečují změnu látky a uvnitř organismu na jinou látku b. Komunikační pravidla, jsou právě ta pravidla, pomocí kterých určité organismy komunikují. Jedná látka c je vyloučena do prostředí a další látka d, je přijata organismem. Látku d můžeme klidně v některých případech chápat jako zpětnou vazbu při vyloučení látky c. U kontrolních pravidel organismus zjišt uje, jestli se v prostředí vyskytuje určitý typ látky, pokud ne, přizpůsobí své chování tomuto nedostatku. To znamená například mravenec pokud nenajde, ztratí feromonovou stopu, bude ji dále hledat a pokud ji najde, bude ji sledovat. Výpočet začíná v počáteční konfiguraci, která je definována následujícím způsobem: prostředí a všechny agenty obsahují pouze kopie objektů e. Aplikováním agenty mohou měnit svůj obsah a pomocí prostředí mohou ovlivňovat chování ostatních agentů v dalším kroku výpočtu. V přírodě se také často prostředí využívá jako komunikační kanál. Některé organismy vylučují jisté látky do prostředí a tím ovlivňují chování ostatních. Výpočet je paralelní. V každém kroku výpočtu každý agent nedeterministicky vybere jeden ze svých a vykoná jej. Výpočet končí zastavením, kdy žádný agent nemůže aplikovat žádný ze svých. Výsledkem výpočtu je počet určitých objektů v prostředí na konci výpočtu. P kolonie jsou výpočetně úplné. Zajimavá je otázka, jaký je nejmenší počet agentů, počet v agentu při zachování výpočetní úplnosti. V tomto příspěvku popisujeme vlastnosti homogenních P kolonií, to znamená P kolonií s programy tvořených stejným typem pravidel (přepisujícími, komunikačními nebo kontrolními) pro všechy objekty uvnitř agenta. Každá P kolonie s kapacitou jedna je homogenní. Homogenní P kolonie byly poprvé studovány v [1]. Budeme se zabývat počtem agentů a počtem v agentech při zachování výpočetní úplnosti homogenních P kolonií s kapacitou jedna a dvě. To znamená, že všechny agenty bude v prvním případě obsahovat jeden objekt a ve druhém případě dva objekty. V následující kapitole uvedeme základní definice, definici P kolonie a definici registrového stroje, který je použit v důkazech výpočetní síly P kolonií. V třetí kapitole se budeme zabývat P koloniemi s jedním objektem uvnitř každého agenta. V [1] jsme ukázali, že v nejlepším případě sedm u každého agenta, stejně tak i pět agentů zabezpečuje výpočetní úplnost P kolonií. V článku ukážeme, že šest v každém agentu bez omezení počtu agentů je výpočetně úplný. Výsledky týkající se homogenních P kolonií se dvěma agenty v každém agentu uvedeme v kapitole 4. Dva objekty v agentech dovolují maximálně snížit počet agentů tak, že výpočetní úplnost může být realizována pouze jedním agentem. Navíc čtyři programy v každém agentu dovolují generovat každou spočitatelnou podmnožinu přirozených čísel (bez omezení počtu agentů). 2 Definice Budeme předpokládat, že čtenáři jsou známy základní definice a poznatky z teorie formálních jazyků a automatů. Více informací o membránových výpočtech je možno získat v [11], o výpočetních strojích a koloniích 72
částečně v [9] a [6, 7, 8]. Počet článků o daném modelu neustále roste, nejlépe se o tom můžeme přesvědčit na webových stránkách [12]. Uvedeme zde označení použité v tomto článku. NRE budeme označovat množiny rekurzívně spočitatelných nezáporných celých čísel a N množinu nezáporných celých čísel. Σ je označení pro abecedu. Necht Σ je množina všech slov nad abecedou Σ (včetně prázdného slova ε). Pro délku slova w Σ budeme používat označení w a pro počet výskytů symbolů a Σ ve w w a. Multimnožina objektů M je dvojice M = (V, f), kde V je libovolná (ne nutně konečná) množina objektů a f je zobrazení f : V N; f přiřazuje každému objektu z V jeho násobnost v M. V je množina všech konečných multimnožin nad konečnou množinou V. Support množiny M je množina supp(m) = {a V f M (a) 0}. Kardinalitu množiny M značíme M a je definována jako M = a V f M (a). Konečná multimnožina M nad V může být reprezenotvána jako řetězec w nad abecedou V s w a = f M (a) pro všechna a V. Budeme tedy psát M = w, tj. operator je asociován s w odpovídající multimnožiny M. Samozřejmě všechna slova obdržená z w permutací znaků jsou reprezentována stejnou multimnožinou M. ε představuje prázdnou multimnožinu. 2.1 P kolonie P kolonie byly zavedeny v práci [8]. P kolonie je tvořena agenty a prostředím. Agenty i prostředí obsahuje objekty. Každý agent má množinu. Nejdříve uvedeme dva typy pravidel v programech. První typ nazýváme přepisující pravidla, mají tvar a b. To znamená, že objekt a uvnitř agenta je přepsán (změněn) na objekt b. Druhý typ pravidel nazýváme komunikační pravidla a mají tvar c d. Pokud je dané pravidlo aplikováno, objekt c uvnitř agenta a objekt d vně agenta si zamění pozice, to znamená, že po vykonání pravidla objekt d se nachází uvnitř agenta a c je obsaheženo v prostředí. V práci [7] byla schopnost agentů rozšířena o kontrolní pravidla. Tímto pravidlem získali agenty schopnost vybrat si mezi dvěma možnostmi. Pravidla mají tvar r 1 /r 2. Pokud je aplikováno kontrolní pravidlo, pravidlo r 1 má vyšší prioritu pro vykonání než pravidlo r 2. To znamená, že agent pokud je to možné aplikuje pravidlo r 1, v opačném případe pravidlo r 2. Pokud programy mají jeden typ pravidel, pak hovoříme o programech přepisujících, komunikačních nebo kontrolních. V případě P kolonií se dvěma objekty uvnitř každého agenta přepisující programy mohou být modifikovány na tvar ab cd. Stejným způsobem můžeme modifikovat komunikační programy na tvar ab cd. Definition 1 P kolonie s kapacitou c je struktura Π = (A, e, f, v E, B 1,..., B n ), kde A je abeceda kolonie, její prvky nazýváme objekty, e je základní objekt kolonie, který nazýváme enviromentální, e A, f je finální objekt kolonie, f A, v E je počáteční obsah prostředí, v E (A {e}), B i, 1 i n, jsou agenty, každý agent je struktura B i = ( o i, P i ), kde o i je multimnožna nad A, která definuje počáteční stav (obsah) agenta B i a o i = c, P i = {p i,1,..., p i,ki } je konečná množina, kde každý program obsahuje právě c pravidel v jednom z následujících tvarů: a b, pravidla v daném tvaru nazýváme přepisující pravidla, c d, pravidla v daném tvaru nazýváme komunikační pravidla, r 1 /r 2, pravidla nazýváme kontrolními pravidly; r 1, r 2 jsou přepisující nebo komunikační pravidla. Počáteční konfigurace P kolonie je (n + 1)-tice ( o 1,..., o n, v E ) multimnožin objektů nacházejících se v P kolonii na začátku výpočtu, kde o i pro 1 i n a pro prostředí v E. Obecně konfigurace P kolonie Π je definovaná jako ( w 1,..., w n, w E ), kde w i = c, 1 i n, w i a reprezentuje všechny objekty i-tého agenta a w E (A {e}) je souhrn všech objektů obsažených v prostředí a různých od e. Výpočet P kolonií studovaných v tomto článku probíhá paralelně. V každém kroku paralelního výpočtu pracuje maximální počet agentů. Každý agent, který může použít nějaký ze svých, tak ho použije. Jestliže najde více než jeden program, pak nedeterministicky vybere právě jeden a použije ho. Pro programy z každé množiny P i zavedeme označení z množiny lab (P i ) takové, že lab (P i ) lab (P j ) = pro i j, 1 i, j n. Pro formální vyjádření kroku výpočtu zavedeme čtyři funkce: Pro pravidlo r ve tvaru a b, c d 73
a c d/c d, resp., pro multimnožinu w A definujeme: left (a b, w) = a right (a b, w) = b export (a b, w) = ε import (a b, w) = ε left (c d, w) = ε right (c d, w) = ε export (c d, w) = c import (c d, w) = d left (c d/c d, w) = ε right (c d/c d, w) = ε } export (c d/c d, w) = c import (c d/c d pro, w) = d w d 1 } export (c d/c d, w) = c import (c d/c d, w) = d pro w d = 0 a w d 1 Pro program p a α {lef t, right, export, import}, necht α (p, w) = r p α (r, w). Změna konfigurace je definována jako ( w 1,..., w n, w E ) ( w 1,..., w n, w E), kde jsou splněny následující podmínky: Množina označení P s P n taková, že p, p P, p p, p lab (P j ), p lab (P i ), i j, pro každé p P, p lab (P j ), left (p, w E ) export (p, w E ) = w j, a import (p, w E ) w E. p P Kromě toho, vybraná množina P je maximální, to znamená, že žádný další program r 1 i n lab (P i), r / P, nemůže být přidán do množiny P tak, aby splňoval podmínky dříve uvedené Obecně pro každé j, 1 j n, pro které existuje a p P s p lab (P j ), necht w j = right (p, w E ) import (p, w E ). Pokud neexistuje p P s p lab (P j ) pro nějaké j, 1 j n, necht w j = w j a dále necht w E = w E import (p, w E ) export (p, w E ). p P p P Sjednocení a - zde představují operace nad multimnožinami. Konfigurace je koncová, pokud množina označení P splňující podmínky výše, nemůže být vybrána, jinak než jako prázdná množina. Množinu koncových konfigurací označíme jako H. Pokud se výpočet zastaví, můžeme s ním asociovat výsledek výpočtu. Výsledkem výpočtu je počet kopií speciálního symbolu f v prostředí. Množina čísel počítaných P kolonií Π je definována jako N (Π) = { w E f ( o 1,..., o n, v E ) ( w 1,..., w n, w E ) H}, kde ( o 1,..., o n, v E ) je počáteční konfigurace, ( w 1,..., w n, w E ) je koncová konfigurace, a označuje reflexivní a tranzitivní uzávěr. Mějme P kolonii Π = (A, e, f, v E, B 1,..., B n ). Maximální počet asociovaných s agenty nazýváme výškou, počet agentů, n, pak stupněm a počet objektů uvnitř každého agenta kapacitou P kolonie. Označme NP COL par (c, n, h) třídu množin čísel počítáných P koloniemi pracujícími paralelně bez použítí kontrolních pravidel a s: - kapacitou nejvýše c, - stupněm nejvýše n a - výškou nejvýše h. Pokud použijeme kontrolní pravidla, pak třídu množin čísel počítaných P kolonií označíme NP COL par K. Pokud jsou omezeny použijeme označení NP COL par R respektive NP COL par KR. Jesltliže P kolonie jsou homogenní použijeme označení NP COL par H respektive NP COL par KH. 2.2 Registrový stroj V našem příspěvku porovnáváme třídy NP COL par (c, n, h) s rekuzivně spočetnými množinami čísel. Pro důkaz výpočetní síly použijeme registrový stroj. Definition 2 [9] Registrový stroj je struktura M = (m, H, l 0, l h, P ) kde: - m je počet registrů, - H je množina označení instrukcí, - l 0 je označení pro počáteční / startovní instrukci, - l h je označení pro koncovou instrukci, - P je konečná množina instrukcí mající své označení určené pomocí množiny H. Instrukce registrového stroje mají následující tvary: 74
l 1 : (ADD(r), l 2, l 3 ) K obsahu registru r přičte 1 a výpočet pokračuje instrukcí (označenou) l 2 nebo l 3. l 1 : (SUB(r), l 2, l 3 ) Pokud registr r není prázdný, tak odečte z jeho obsahu 1 a pokračuje instrukcí l 2, jinak (registr r obsahuje 0) pokračuje instrukcí l 3. l h : HALT Stroj zastaví. Pro tuto instrukci je přiřazeno pouze jediné koncové označení l h. Bez ztráty na obecnosti můžeme předpokládat, že v každé ADD-instrukci l 1 : (ADD(r), l 2, l 3 ) a v každé SUB-instrukci l 1 : (SUB(r), l 2, l 3 ) je označení l 1, l 2, l 3 navzájem různé. Registrový stroj M počítá množinu N(M) čísel následujícím způsobem: na začátku jsou všechny registry prázdné (je v nich uloženo číslo nula) s instrukcí označenou l 0 a přejdeme k aplikování instrukcí určených pomocí označení (docílíme pomocí obsahu registrů). Pokud dojdeme ke koncové instrukci, pak číslo uložené v daném okamžiku v registru 1 představuje výsledek získaný registrovým strojem M a od této chvíle představuje N(M). (Kvůli nedeterminismu ve vybírání pokračování výpočtu v případě ADD-instrukcí N(M) může být nekonečná.) Tímto způsobem výpočtu můžeme vypočíta všechny množiny čísel, které jsou vypočitatelné Turingovým strojem. [9] 3 P kolonie s jedním objektem uvnitř agenta V této části se budeme zabývat vlastnostmi P kolonie pouze s jedním objektem uvnitř každého agenta P kolonie. To znamená, že každý program agenta je tvořen pouze jedním pravidlem a to přepřepisujícím, komunikačním nebo kontrolním. Theorem 1 NP COL par K(1,, 6) = NRE. Důkaz: Uvažujme registrový stroj M = (m, H, l 0, l h, P ). Všechna označení z množiny H budou objekty z P kolonie. Obsah registru i bude reprezentován počtem kopií objektů a i v prostředí. Zkonstruujeme P kolonii Π = (A, f, e, B 1,..., B n ) s: abecedou A = H {a i 1 i m} {F i 1 i H } {e, d, D} koncovým objektem f = a 1 agenty B i = ( e, P i ), 1 i H + 3, a jejich programy jsou následující: 1. Mějme strartovací agenty B 1, B 2 s množinami : P 1 : P 2 : 1 : e l 0 1 : e D 2 : l 0 D/l 0 e 2 : D l 0 Agent B 1 generuje a posílá kopie označení pro startovací instrukci l 0 registrového stroje M a zastaví se příjmutím jedné kopie objektu D. Druhý agent B 2 generuje jednu kopii objektu D a další výpočet agenta je zastaven pomocí symbolu l 0. Simulace výpočtu může začít druhou kopií objektu l 0 v prostředí. 2. Potřebujeme jednoho agenta generujícího speciální objekt d. P 3 : 1 : e d 2 : d H/d e V každém druhém kroku agent B 3 umístí jeden objekt d do prostředí. 3. Pro každou instrukci l 1 : (ADD(r), l 2, l 3 ) je zde agent P kolonie Π. Daný agent přidává jeden objekt a r a objekt l 2 nebo l 3 do prostředí. P l1 : 1 : e l 1 4 : d l 2 2 : l 1 a r 5 : d l 3 3 : a r d 6 : l 2 e/l 3 e Jakmile je objekt l 1 přítomný v prostředí, agent B l1 může začít pracovat, odebírá z prostředí objekt l 1 a generuje místo něj objekt a r, nakonec vymění objekt l 2 nebo l 3 za e. Na závěr této části výpočtu je objekt s označením další instrukce stroje M umístěn do prostředí a další agent začíná pracovat. 4. Pro každou instrukci l 1 : (SUB(r), l 2, l 3 ) z množiny P uvažujme agenta B l1 s množinou : P l1 : 1 : e l 1 4 : a r l 2 /d l 3 2 : l 1 F 1 5 : l 2 e/l 3 e 3 : F 1 a r / F 1 d 75
Agent znovu přivádí dovnitř objekt l 1 a mění ho za objekt F 1. V dalším kroku agent zkontroluje zda-li je v prostředí nejméně jeden objekt a r. Jestliže ano, agent vezme dovnitř a r a přepíše ho na objekt l 2. Pokud se objekt a r v prostředí nevyskytuje, agent vezme objekt d a přepíše ho na objekt l 3. V posledním kroku agent vždy znovu zamění objekt l 2 nebo l 3 za e. 5. Pro koncovou instrukci označenou l h budeme mít agenta B lh s programy: P lh : 1 : e l h 3 : H d 2 : l h H Agent zpotřebovává objekt l h a v prostředí není další objekt l m. Tento agent umístí jednu kopii objektu H do prostředí a zastaví svou činnost. Objekt H je v dalším kroku zpotřebován agentem B 3. Neexistuje agent, který by mohl začít pracovat a výpočet končí. Ukázali jsme, že P kolonie Π simuluje výpočet registrového stroje M. Výpočet P kolonie Π začíná bez objektů a r v prostředí, stejným způsobem začíná výpočet registrového stroje M s nulami ve všech registrech. Výpočet Π končí pokud symbol l h je umístěn dovnitř odpovídajícího agenta, stejným způsobem registrový stroj M končí činnost po vykonání koncové instrukce označené l h. Platí tedy N(M) = N(Π), a protože každý agent má nejvýše 6, důkaz je kompletní. Další otázkou je, jaký počet agentů je nutný pro simulování registrového stroje. V práci [2] je dokázáno: Theorem 2 NP COL par K(1, 4, ) = NRE 4 P kolonie se dvěma objekty uvnitř agentů Agenty se dvěma objekty mají v každém programu dvě pravidla. Pokud pravidla v programech jsou stejného typu, P kolonii nazýváme homogenní. Theorem 3 NP COL par HK(2, 1, ) = NRE. Důkaz: Mějme registrový stroj M s m registry. Zkonstruujeme P kolonii Π = (A, f, e, B) simulující výpočet registrového stroje M s: A = {d, a, s, f, h, v} {l, l l H} {a r 1 r m}, f = a 1, B = ( ee, P ) Na začátku výpočtu agent generuje objekt l 0 (označení startovací instrukce registrového stroje M) a dvě kopie objektů a. Agent začíná simulaci instrukce označené l 0 a generuje označení následující instrukce. Množina obsahuje: 1. Pro innicializaci simulace: P : 1 : ee dd 7 : se fg 2 : dd ee 8 : fg ae 3 : dd sa 9 : ae al 0 4 : sa ed 10 : al 0 ge 5 : ed ha 11 : ge hl 0 6 : ha se 12 : hl 0 aa 13. sa sa Agent s dvěma kopiemi objektu a uvnitř je připraven pro simulování instrukce označené l i (s objektem l i umístěném v prostředí). Toho je dosaženo n následujícími kroky: Agent začíná výpočet generováním objektu d. Pro další kroky výpočtu musí generovat čtyři objekty d. Druhá dvojice objektů d může být přepsána na pomocné objekty s a a. Program 13 zajišt uje zacyklení výpočtu, pokud počet kopí objketu d není dostatečný. V dalších krocích agent generuje druhý objekt a, objekt h a další pomocné symboly (z důvodu dodržení posloupnosti kroků výpočtu) a konečně označení l 0. Pokud jsou uvnitř agenta dvě kopie objektu a, agent je připraven pro simulaci instrukce označené l i (Pokud objekt l i je umístěn v prostředí). Inicializace je vykonána pomocí následující posloupností kroků: konfigurace Π označení krok B Env P 1. ee 1 2. dd 2 nebo 3 3. ee dd 1 4. dd dd 2 nebo 3 5. sa dd 4 nebo 13 6. ed sad 5 7. ha sad 6 8. se haad 7 9. f g haad 8 10. ae f ghad 9 76
konfigurace Π označení krok B Env P 11. al 0 fghad 10 12. ge l 0 fhaad 11 13. hl 0 gfaad 12 14. aa l 0 gfd? Pokud agent použije program 3 ve druhém kroku musí v dalších krocích použít program 13 a výpočet nikdy neskončí. Pokud je více než jeden aplikovatelný program, agent vybere napsaný tučně a vykoná jej. 2. Pro každou ADD-instrukci l 1 : (ADD(r), l 2, l 3 ) přidáme do množiny P : P : 14 : aa l 1 e 20 : 15 : el 1 l 2a r 21 : ef el 3 el 2 l 2 v 16 : el 1 l 3a r 22 : el 3 l 3 v 17 : l 2a r ef 23 : l 2 v aa 18 : l 3a r ef 24 : l 3 v aa 19 : ef el 2 Když agent vezme objekty l 1 a e dovnitř, přepíše je na a r a l 2 nebo l 3. Další kroky končí generováním l 2 nebo l 3. Tento objekt musí být poslán ven do prostředí s objektem v. konfigurace Π označení krok B Env P 1. aa l 1 fghd 14 2. l 1 e fghdaa 15 nebo 16 3. l 2a r fghdaa 17 4. ef l 2ghdaaa r 19 5. l 2e fghdaaa r 21 6. l 2 v fghdaaa r 23 7. aa l 2 vfghdaaa r? 3. Pro každou SUB-instrukci l 1 : (SUB(r), l 2, l 3 ) je podmnožina : P : 25 : a l 1 / a l 1 ; a a r / a e 26 : l 1 a r l 2 v 28 : l 2 v aa 27 : l 1 e l 3 v 29 : l 3 v aa V prvním korku agent kontroluje, zda-li se a r nevyskytuje v prostředí (pokud registr r není prázdný). V případě, že ano, přídá l 1 s a r dovnitř, v případě, že ne, l 1 vstoupí do agenta se symbolem e. V závislosti na obsahu agenta generuje objekt l 2 nebo l 3. V případě kdy registr r je prázdný: konfigurace Π označení krok B Env P 1. aa l 1 fghd 25 2. l 1 e fghdaa 27 3. l 3 v fghdaa 29 4. aa l 3 vfghd? Výpočet v případe, kdy registr r není prázdný: konfigurace Π označení krok B Env P 1. aa l 1 fghda n r 25 2. l 1 a r fghdaaa n 1 r 26 3. l 2 v fghdaaa n 1 r 28 4. aa l 2 vfghda n 1 r? 4. Pro koncovou instrukci l h je v množině program: P : aa hl h Po proběhnutí tohoto programu P kolonie ukončí výpočet, stjně jako registrový stroj zastaví svůj výpočet. Ukázali jsme, že P kolonie Π simuluje činnost registrového stroje M a číslo získané v prvním registru registrového stroje M odpovídá počtu kopií objektů a 1 v prostředí P kolonie Π. Theorem 4 NP COL par HK(2,, 4) = NRE. Důkaz: Mějme registrový stroj M = (m, H, l 0, l h, P ). Všechna Označení z množiny H budou objekty P kolonie, prvky množiny uvedeme dále. Obsah registru i bude reprezentován počtem kopií určitých objketů a i prostředí. Zkonstruujeme P kolonii Π = (A, f, e, B 1,..., B n ) s: abecedou A = H {a i 1 i m} {F i 1 i H } {e, d, D} koncovým objektem f = a 1 77
agent B i = ( ee, P i ), 1 i H + 2, a jeho programy: 1. Uvažujme startovací agenty B 1, B 2 s množinou : P 1 : 1 : ee el 0 2 : e e/e e; l 0 D/l 0 e P 2 : 1 : ee De 2 : De el 0 Agent B 1 generuje dvě počáteční označení registrového stroje M a zastaví se přijetím jedné kopie objektu D. Druhý agent B 2 generuje jednu kopii objektu D a čeká na objekt l 0. Pokud je objekt přesunu dovnitř agenta, ukončí agent svou činnost. Simulace výpočtu může začít s druhou kopií objektu l 0 v prostředí. Začátek výpočtu může probíhat následovně: konfigurace Π označení krok B l1 Env P l1 1. ee l 1 1 2. el 1 2 nebo 3 3. a r l 2 4 4. ee a r l 2? 3. Pro každou instrukci l 1 : (SUB(r), l 2, l 3 ) z množiny P použijeme agenta B l1 s následující množinou : P l1 : 1 : e l 1 /e l 1 ; e a r /e e 2 : a r l 2 /e l 3 ; l 1 v/l 1 v 3 : l 2 e/l 3 e; v e/v e Agent vždy přivádí dovnitř objekt l 1 a jednu kopii a r (pokud je nějaká kopie a r v prostředí). Jestliže ano, agent generuje objekt l 2. Jestliže ne, agent generuje objekt l 3. V dalším kroku agent vždy zamění objekt l 2 nebo l 3 za e. konfigurace Π označení krok B 1 B 2 Env P 1 P 2 1. ee ee 1 1 2. el 0 De 2 3. ee De el 0 1 2 4. el 0 el 0 De 2 5. De el 0 el 0 2. Pro každou instrukci l 1 : (ADD(r), l 2, l 3 ) je v P kolonii Π jeden agent. Daný agent musí přidat do prostředí jednu kopii objektu a r a objekt l 2 nebo l 3. P l1 : 1 : ee el 1 3 : el 1 a r l 3 2 : el 1 a r l 2 4 : a r e/a r e; l 2 e/l 3 e Pokud objekt l 1 je obsažen v prostředí, agent B l1 může začít pracovat, odebírat objekt l 1, generovat a r a l 2 nebo l 3. Na závěr této části výpočtu objekt s označením další instrukce registrového stroje M je umístěn do prostředí a další agent může začít pracovat. Výpočet pro případ, kdy registr r není prázdný: konfigurace Π označení krok B l1 Env P l1 1. ee l 1 a r 1 2. a r l 1 2 3. l 2 v 3 4. ee l 2 v? Výpočet pro případ, kdy registr r je prázdný: konfigurace Π označení krok B l1 Env P l1 1. ee l 1 1 2. el 1 2 3. el 3 3 4. ee l 3 v? 4. Pro koncovou instrukci l h není zde program ani žádný agent P kolonie. 5. Druhá možná posloupnosti kroků na žačátku je tato: 78
konfigurace Π označení krok B 1 B 2 B l0 Env P 1 P 2 P l0 1. ee ee ee 1 1 2. el 0 De ee 2 3. ee De ee el 0 1 1 4. el 0 De el 0 2 2 5. ee De??? el 0 1 2 6. De el 0??? Ukázali jsme, že P kolonie Π simuluje činnost registrového stroje M. Výpočet Π začíná s žádným objektem a r umístěným v prostředí, stejně jako registrový stroj M začíná s nulou na všech registrech. Výpočet Π se zastaví pokud symbol l h je umístěn dovnitř odpovídajícího agenta, stejně jako registrový stroj M se zastaví vykonáním koncové instrukce označené l h. Platí tedy, N(M) = N(Π), a protože každý agent obsahuje nejvýše pět, důkaz je hotov. 5 Závěr Homogenní P kolonie jsou výpočetně úplné pro: 1. c = 1, h = 6 a neomezené n (P kolonie s jedním objektem uvnitř každého agenta, s použitím nejvýše šest ) 2. c = 1, n = 4 a neomezené h (P kolonie sestavená ze čtyř agentů, každý z ních má uvnitř pouze jeden objekt) 3. c = 2, h = 4 a neomezené n (P kolonie se dvěma objekty uvnitř každého agenta, s použitím nejvýše čtyř ) 4. c = 2, n = 1 a neomezenéh (P kolonie s jedním agentem, který zpracovává dva symboly). Pro dané výsledky byla použita simulace registrového stroje. Výzkum simulace operace ADD určuje obdržené výsledky. Literatura [1] Ciencialová, L. Cienciala, L.: Variations on the theme: P colonies, Proceedings of the 1 st International workshop WFM 06 (Kolář, D., Meduna, A., eds.), Ostrava, 2006, pp. 27 34. [2] Cienciala, L. Ciencialová, L. Kelemenová, A.: On the Number of Agents in P colonies, Membrane Computing. Proc. Intern. Workshop, WMC 2007, Thessaloniki, Greece, June 2007 (G. Eleftherakis et al., eds.), LNCS 4860, Springer, Berlin, 2007, pp. 193 208. [3] Csuhaj-Varjú, E. Kelemen, J. Kelemenová, A. Păun, Gh. Vaszil, G.: Cells in environment: P colonies, Journal of Multiple-valued Logic and Soft Computing 12, 3-4, 2006, pp. 201 215. [4] Csuhaj-Varjú, E. Margenstern, M. Vaszil, G.: P colonies with a bounded number of cells and programs. Pre-Proceedings of the 7 th Workshop on Membrane Computing (H. J. Hoogeboom, Gh. Păun, G. Rozenberg, eds.), Leiden, The Netherlands, 2006, pp. 311 322. [5] Freund, R. Oswald, M.: P colonies working in the maximally parallel and in the sequential mode. Pre-Proceedings of the 1 st International Workshop on Theory and Application of P Systems (G. Ciobanu, Gh. Păun, eds.), Timisoara, Romania, 2005, pp. 49 56. [6] Kelemen, J. Kelemenová, A.: A grammartheoretic treatment of multi-agent systems. Cybernetics and Systems 23, 1992, pp. 621 633. [7] Kelemen, J. Kelemenová, A.: On P colonies, a biochemically inspired model of computation. Proc. of the 6 th International Symposium of Hungarian Researchers on Computational Intelligence, Budapest TECH, Hungary, 2005, pp. 40 56. [8] Kelemen, J. Kelemenová, A. Păun, Gh.: Preview of P colonies: A biochemically inspired computing model. Workshop and Tutorial Proceedings, Ninth International Conference on the Simulation and Synthesis of Living Systems, ALIFE IX (M. Bedau at al., eds.) Boston, Mass., 2004, pp. 82 86. [9] Minsky, M. L.: Computation: Finite and Infinite Machines. Prentice Hall, Engle-wood Cliffs, NJ, 1967. [10] Păun, Gh.: Computing with membranes. Journal of Computer and System Sciences 61, 2000, pp. 108 143. [11] Păun, Gh.: Membrane computing: An introduction. Springer-Verlag, Berlin, 2002. [12] P systems web page. 15. leden 2001. 27. února 2008 <http://psystems.disco.unimib.it> 79
80