T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Prosessialgebra

Samankaltaiset tiedostot
T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Prosessialgebra

1. Johdanto. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 19. syyskuuta 2016

vaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e)

Chomskyn hierarkia ja yhteysherkät kieliopit

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015

Turingin koneen laajennuksia

Lisää pysähtymisaiheisia ongelmia

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 6. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS. Pinoautomaatit.

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015

Säännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin

(1) refleksiivinen, (2) symmetrinen ja (3) transitiivinen.

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 26. tammikuuta 2012

Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus.

4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi:

Säännöllisten kielten sulkeumaominaisuudet

T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut

Relaation ominaisuuksia. Ominaisuuksia koskevia lauseita Sulkeumat. Joukossa X määritelty relaatio R on. (ir) irrefleksiivinen, jos x Rx kaikilla x X,

811120P Diskreetit rakenteet

Yhteydettömän kieliopin jäsennysongelma

Joukossa X määritelty relaatio R on. (ir) irrefleksiivinen, jos x Rx kaikilla x X,

Taulumenetelmä modaalilogiikalle K

Esko Turunen Luku 9. Logiikan algebralisointi

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013

Rajoittamattomat kieliopit

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Odotusarvoparien vertailu. Vilkkumaa / Kuusinen 1

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012

Rajoittamattomat kieliopit (Unrestricted Grammars)

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

Pinoautomaatit. Pois kontekstittomuudesta

T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Aikalogiikka

Tietojenkäsittelyteorian alkeet, osa 2

S BAB ABA A aas bba B bbs c

uv n, v 1, ja uv i w A kaikilla

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016

M = (Q, Σ, Γ, δ, q 0, q acc, q rej )

1. Universaaleja laskennan malleja

[a] ={b 2 A : a b}. Ekvivalenssiluokkien joukko

5.3 Ratkeavia ongelmia

MS-A0402 Diskreetin matematiikan perusteet

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 22. toukokuuta 2013

Logiikan kertausta. TIE303 Formaalit menetelmät, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos.

π-kalkyyli Luku CCS:n Operaatiot

Ydin-Haskell Tiivismoniste

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Itsestabiloivabysanttilainen yhteisymmärrys. Timo Virkkala

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

Äärellisten automaattien ja säännöllisten kielten ekvivalenssi

Alityypitys. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos

Johdatus lukuteoriaan Harjoitus 11 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 6. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. toukokuuta 2011

Vaihtoehtoinen tapa määritellä funktioita f : N R on

Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on

Yksisuuntainen varianssianalyysi (jatkoa) Heliövaara 1

FORMAALI SYSTEEMI (in Nutshell): aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Yksisuuntainen varianssianalyysi (jatkoa) Kuusinen/Heliövaara 1

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

Turingin koneet. Sisällys. Aluksi. Turingin koneet. Turingin teesi. Aluksi. Turingin koneet. Turingin teesi

Rekursiiviset palautukset [HMU 9.3.1]

Täydentäviä muistiinpanoja laskennan rajoista

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. maaliskuuta 2011

T Syksy 2005 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet )

Demo 7 ( ) Antti-Juhani Kaijanaho. 9. joulukuuta 2005

T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Saavutettavuusanalyysi

T Kevät 2002 Rinnakkaiset ja hajautetut digitaaliset järjestelmät Laskuharjoituksen 5 vastaukset

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

MAT Algebra 1(s)

TIEA341 Funktio-ohjelmointi 1, kevät 2008

δ : (Q {q acc, q rej }) (Γ k {, }) Q (Γ k {, }) {L, R}.

Johdatus diskreettiin matematiikkaan Harjoitus 2, Osoita että A on hyvin määritelty. Tee tämä osoittamalla

Oletetaan, että virhetermit eivät korreloi toistensa eikä faktorin f kanssa. Toisin sanoen

Johdatus matematiikkaan

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 3. lokakuuta 2016

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

UML -mallinnus TILAKAAVIO

Äärellisen mallin ominaisuus filtraation kautta

Nollasummapelit ja bayesilaiset pelit

Reaaliarvoisen yhden muuttujan funktion raja arvo LaMa 1U syksyllä 2011

Algoritmin määritelmä [Sipser luku 3.3]

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 8. syyskuuta 2016

Turingin koneet. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 7. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

Konsensusongelma hajautetuissa järjestelmissä

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 30. marraskuuta 2015

Matriisilaskenta, LH4, 2004, ratkaisut 1. Hae seuraavien R 4 :n aliavaruuksien dimensiot, jotka sisältävät vain

ÄÄRELLISTEN AUTOMAATTIEN MINIMOINTI. 1. Äärelliset automaatit Äärellinen automaatti (DFA = deterministic finite automaton) on

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

Johdatus diskreettiin matematiikkaan Harjoitus 1,

LOGIIKKA johdantoa

Lyhyen aikavälin hintakilpailu 2/2

MS-A0402 Diskreetin matematiikan perusteet Yhteenveto, osa I

Transkriptio:

T-79.179 Rinnakkaiset ja hajautetut digitaaliset järjestelmät Prosessialgebra 24. maaliskuuta 2003

T-79.179: Prosessialgebra 9-1 Taustaa Rinnakkaiset ja hajautetut järjestelmät koostuvat usein melko irrallisista prosesseista, jotka kommunikoivat silloin tällöin keskenään viestien tai jaetun muistin välityksellä. Petri-verkoilla on näppärä esittää jaettua muistia (siirtymien yhteisinä paikkoina), mutta perusmuodossaan ne eivät mahdollista prosessien erottamista toisistaan. Verkon paikoista ja siirtymistä ei suoraan näe, ovatko ne jonkin prosessin sisäisiä (ja jos ovat, niin minkä prosessin) vai liittyvätkö ne kommunikointiin. Osittaisjärjestysmenetelmät pyrkivät hankkimaan tämän tiedon jälkikäteen, mikä ei aina onnistu tehokkaasti. Prosessialgebra keskittyy nimenomaan siirtymien esittämiseen ja kompositionaaliseen mallintamiseen, jossa prosessit mallinnetaan erikseen ja niitä kytketään toisiinsa. Prosessialgebrat perustuvat siirtymäjärjestelmiin ja samankaltaisuus- eli ekvivalenssirelaatioihin, joiden suhteen siirtymäjärjestelmiä voidaan verrata toisiinsa tai kutistaa. Modulaariset verkot ovat eräs vaihtoehto.

T-79.179: Prosessialgebra 9-2 CCS ja CSP Kaksi tunnetuinta prosessialgebraa lienevät Robin Milnerin CCS (Calculus of Communicating Systems) ja Tony Hoaren CSP (Communicating Sequential Processes). CCS erottelee kolmenlaisia tapahtumia: prosessin eli agentin sisäisiä (), vastaanottoa (α) ja lähetystä (α). Kommunikointi on aina kahden agentin välistä. Alun perin (1978) Hoare esitti CSP:n laajentamalla Dijkstran esittämää guarded command -kieltä lähetys- ja vastaanottokäskyillä, mutta nykymuotoinen CSP (1985) ei erottele lähetystä ja vastaanottoa, vaan tapahtumaan voi osallistua monta agenttia. Rinnankytkentäsäännöissä tahdistukset voidaan määritellä monella tavalla. Voidaan määritellä vaikkapa niin, että prosessi voi suorittaa tapahtuman ainoastaan samanaikaisesti kaikkien samannimisen tapahtuman sisältävien prosessien kanssa. Jos osallistuminen tahdistukseen määritellään vapaaehtoiseksi, rinnankytkennän koko kasvaa helposti. Tämä luento keskittyy CCS-prosessialgebraan.

T-79.179: Prosessialgebra 9-3 Prosessialgebran ja siirtymäjärjestelmien vastaavuus P α α Q S P ::= α. Q + α. S Q ::= β. R R ::=. P S ::= γ. T T ::=. P β γ R P ::= α. β.. P + α. γ.. P T U α V U ::= α. V V ::= β. W + γ. X W ::=. U X ::=. U β γ W X U ::= α. (β.. U + γ.. U)

T-79.179: Prosessialgebra 9-4 Prosessialgebrojen perusteita Jokaisella agentilla on nimi. Matemaattisessa tekstissä nimiä merkitään tavallisesti suuraakkosilla P,Q,R,...; työkalut saattavat käyttää esimerkiksi lukuja 0,1,2,... Näkymätön tapahtuma kuvaa agentin sisäistä laskentaa. Niitä muut agentit eivät voi havaita, eikä niiden suoritukseen voi vaikuttaa. Näkyviä tapahtumia merkitään matemaattisessa tekstissä kreikkalaisilla aakkosilla α, β, γ,... Käytetyt rinnankytkentäsäännöt määräävät, miten agentit voivat tahdistua suorittamalla näkyviä tapahtumia samanaikaisesti. Prosessialgebra keskittyy tapahtumiin. Merkintä P käyttäytyy kuten agentti Q suoritettuaan tapahtuman α. α Q tarkoittaa, että agentti P

T-79.179: Prosessialgebra 9-5 CCS:n erityispiirteitä Jokaisella näkyvällä tapahtumalla α on komplementtitapahtuma α. Komplementtitapahtuman komplementtitapahtuma on tapahtuma itse: α = α. Tapahtuman ja sen komplementtitapahtuman voidaan ajatella tarkoittavan saman sanoman vastaanottoa ja lähetystä. Rinnankytkentäsääntö koskee kahta agenttia kerrallaan: jos Q kykenee ottamaan sanoman γ vastaan ja R lähettämään sen tai päinvastoin (Q γ Q,R γ R ), niin (Q R) (Q R) (Q R ). Agentit voivat myös edetä yksitellen: jos Q β (Q R). Rinnankytkentä on symmetrinen: (Q R) = (R Q). β Q, niin Tämä pätee myös, vaikka R voisi edetä β:lla.

T-79.179: Prosessialgebra 9-6 CCS:n kielioppi ja semantiikka (1/2) Seuraavassa esitämme CCS-prosessialgebran kieliopin ja laskusäännöt. Tyhjä agentti (Nil) ei kykene suorittamaan mitään tapahtumaa: α, P : Nil α P. Tapahtuman liittäminen (Action Prefixing) Olkoon Q agentti ja olkoon α (näkymätön tai näkyvä) tapahtuma. Tällöin P ::= α. (Q) on agentti ja P α Q. Agentti P kykenee suorittamaan tapahtuman α ja käyttäytymään sen jälkeen kuten agentti Q. Valinta (Choice) Olkoot Q ja R agentteja ja α ja β tapahtumia. P ::= (Q + R) on agentti. Jos Q α Q, niin P α Q. Jos R β R, niin P β R. Agentti P voi alkutilassaan valita, käyttäytyykö se niin kuin Q vai niin kuin R. Rajoitus (Restriction) Olkoon Q agentti ja Σ joukko näkyviä tapahtumia, Σ. Tällöin P ::= (Q)\Σ on agentti. Jos Q α Q ja α Σ,α Σ, niin ((Q)\Σ) α ((Q )\Σ). Agentti P on muuten kuten agentti Q, mutta se ei kykene suorittamaan joukon Σ tapahtumia eikä niiden komplementtitapahtumia.

T-79.179: Prosessialgebra 9-7 CCS:n kielioppi ja semantiikka (2/2) Uudelleennimeäminen (Relabeling) Olkoon Q agentti ja Σ sen näkyvien tapahtumien joukko, Σ. Olkoon Σ tapahtumien joukko ja m : Σ {} Σ {} siten, että m() = ja α : m(α) = m(α). Tällöin P ::= Q[m] on agentti. Jos Q α Q, niin Q[m] m(α) Q [m]. Agentti P on muuten kuin Q, mutta sen tapahtumat on saatu Q:n tapahtumista kuvauksen m mukaan. Erikoistapaus: piilotus (m(α) = m(α) = ). Rinnankytkentä (Parallel Composition) Olkoot Q ja R agentteja. (Q R) on agentti. 1. Jos Q γ Q ja R γ R, niin (Q R) 2. Jos Q γ Q, niin (Q R) γ (Q R). 3. Jos R γ R, niin (Q R) γ (Q R ). (Q R ).

T-79.179: Prosessialgebra 9-8 Prosessialgebrojen kieliopista ja semantiikasta Eri prosessialgebroissa on määritelty hieman erilaisia rakenteita ja laskentasääntöjä. Niiden sisäistäminen voi viedä aikansa, sillä ne esitetään usein formaalin tiiviisti ja rekursiivisessa muodossa, kuten edellä. Luettavuuden parantamiseksi jätetään usein sulkuja pois. Sulkujen kanssa kirjoitettaisiin esimerkiksi U ::= α. ((β. (. (U)) + γ. (. (U)))). Kysymys: onko määritys U ::= α. (β. + γ. ). U esittämiemme sääntöjen mukainen, jos α,β,γ, ovat tapahtumien nimiä? Entä U ::= α. (β + γ).. U? Usein prosessialgebrassa esitetään erilaisia lyhennysmerkintöjä. Esimerkiksi. Nil voidaan jättää pois. Muuttuvatko äskeiset määritykset sääntöjen mukaisiksi, jos niissä on käytetty tätä lyhennysmerkintää?

T-79.179: Prosessialgebra 9-9 Rinnankytkentäesimerkki Seuraava kuva esittää agentin α. (β. (δ. Nil δ. Nil) + γ. Nil) käyttäytymistä: α. (β. (δ. Nil δ. Nil) + γ. Nil) α β. (δ. Nil δ. Nil) + γ. Nil β γ δ. Nil δ δ Nil δ δ δ. Nil δ. Nil Kuvan siirtymäjärjestelmä on muodostettu soveltamalla äskeisiä laskusääntöjä. Sen kuhunkin tilaan on merkitty siinä mahdollista käyttäytymistä vastaavan agentin lauseke. Agentin δ. Nil δ. Nil käyttäytyminen sisältää tapahtumien δ ja δ lomitetut suoritukset. Monesti rinnankytkentäsäännössä sallitaan vain samanaikainen tahdistuminen: γ Nil α α. (β. (δ. Nil δ. Nil)\{δ, δ} + γ. Nil) β. (δ. Nil δ. Nil)\{δ, δ} + γ. Nil β (δ. Nil δ. Nil)\{δ, δ} Olkoon P Q tällainen rajoitettu rinnankytkentä. Harjoitustehtävä: määrittele se formaalisti. δ. Nil

T-79.179: Prosessialgebra 9-10 Esimerkki: Dekkerin algoritmi (1/6) Kuvataan Dekkerin kahden prosessin keskinäisen poissulkevuuden algoritmi CCS:llä. Koska prosessialgebrat ja siirtymäjärjestelmät eivät tunne muistin käsitettä, se on mallinnettava erikseen. Määritellään aluksi perusprosessit: ohjelmakoodi ja yksibittinen muisti: noncritical D wrb0 F rdko rdki wrb0 H rdki wrb1 rdb1 G rdko E desire wrb1 rdb0 wrk0 exit enter wrk1 Sivulla http://www.tcs.hut.fi/software/maria/tools/tvt/tvt.html on laajempi, CSP-tyylistä rinnankytkentää käyttävä esimerkki, jossa on tarkastettu algoritmin reiluutta. wr1 M N wr0 rd0 rd1

T-79.179: Prosessialgebra 9-11 Esimerkki: Dekkerin algoritmi (2/6) Tekstimuodossa perusprosessit voidaan kirjoittaa muun muassa seuraavasti: M ::= rd0. M + wr1. N N ::= rd1. N + wr0. M D ::= noncritical. D + desire. wrb1. E E ::= rdb0. enter. exit. (wrk0. F + wrk1. F) + rdb1. G F ::= wrb0. D G ::= rdko. E + rdki. wrb0. H H ::= rdko. H + rdki. wrb1. E

T-79.179: Prosessialgebra 9-12 Esimerkki: Dekkerin algoritmi (3/6) Dekkerin algoritmissa on kaksi prosessia ja kolme jaettua muistipaikkaa. Muodostetaan ne perusprosesseista uudelleennimeämisen avulla. CSP-rinnankytkentää sovellettaessa kaksiporttinen muisti K voisi olla kuin yksiporttiset muistit B 1 ja B 2, mutta CCS:ssä se on määriteltävä eri tavalla. Harjoitustehtävä: Miksi? Miten? B 1 ::= M[c({rd0 b 1,rd1 b1,wr0 b1,wr1 b1 })] B 2 ::= M[c({rd0 b 2,rd1 b2,wr0 b2,wr1 b2 })] P 1 ::= D[c({wrb1 b 1,wrb0 b1,wrk0 k1 2 1,wrk1 k1 1 2, rdb0 b 2,rdb1 b2,rdko k1 2,rdki k1 1 })] P 2 ::= D[c({wrb1 b 2,wrb0 b2,wrk0 k2 2 1,wrk1 k2 1 2, rdb0 b 1,rdb1 b1,rdko k2 1,rdki k2 2 })] Yllä kuvaus c(σ) = S α Σ{α,α} selkeyttää uudelleennimeämisjoukkoja, koska komplementtitapahtumia ei tarvitse luetella.

T-79.179: Prosessialgebra 9-13 Esimerkki: Dekkerin algoritmi (4/6) Kokonaiskäyttäytymisen esittää Dekker ::= K B 1 B 2 P 1 P 2. Näiden agenttien rakenteen ja CCS:n rinnankytkennän symmetrisyyden perusteella rinnankytkentäjärjestyksellä ei ole väliä. Lasketaan BP 1 ::= B 1 P 1, josta saadaan BP 2 ::= B 2 P 2 uudelleennimeämisellä, jonka jälkeen voitaisiin laskea Dekker = K BP 1 BP 2. Avataan ensin B 1 ja P 1 : B 1 ::= b 1. B 1 + b 1. B 1 B 1 ::= b1. B 1 + b1. B 1 P 1 ::= noncritical. P 1 + desire. b 1. P 1 P 1 ::= b2. enter. exit. (k1 2 1. P 1 + k1 1 2. P 1 ) + b2. P 1 P 1 ::= b 1. P 1 P 1 ::= k2 1. P 1 + k1 1. b1. P 1 P 1 ::= k2 1. P 1 + k1 1. b1. P 1

T-79.179: Prosessialgebra 9-14 Esimerkki: Dekkerin algoritmi (5/6) Lasketaan BP 1 ::= B 1 P 1. Nyt tapahtumia ei voi liittää kuin yhden kerrallaan, sillä kuhunkin agenttiin johtaa monta tapahtumaa: BP 1 ::= b 1.BP 1 + noncritical. BP 1 BP 4 +desire. BP 1 1 ::= b1.bp4 1 1 +k BP 1 2 1 1. BP 1 + k1 1 2. BP 1 1 ::= b1.bp1 1 +. BP 1 BP BP 1 ::= b 1.BP 1 +. BP 1 1 ::= b1.bp 1 BP +b 2. BP2 1 + b2. 1 ::= b 1.BP 1 + k1 2. BP 1 + k1 1. BP5 1 BP 1 BP 5 BP 2 1 ::= b1.bp2 1 + enter. 1 ::= b1.bp5 1 +. BP 1 BP3 1 BP BP 3 1 ::= b1.bp3 1 + exit. 1 ::= b 1.BP 1 + k1 2. BP 1 + k1 1. BP6 1 BP4 1 BP 6 1 ::= b1.bp6 1 +. BP 1 BP 1 muistuttaa kovasti P 1 :tä, koska B 1 pystyy osallistumaan kaikkiin P 1 :n haluamiin tahdistuksiin. Suurin ero on b 1 - tai b1 -silmukka jokaisessa tilassa. Marko Mäkelä

T-79.179: Prosessialgebra 9-15 Esimerkki: Dekkerin algoritmi (6/6) Agenttia BP 1 vastaavaa siirtymäjärjestelmää on hieman helpompi lukea: BP 6 1 b 1 noncritical BP 1 b 1 BP 1 b 1 k 1 2 k 1 1 BP 1 BP 5 1 b 1 b 1 k1 1 b 1 BP 1 b 2 k 1 2 desire BP 1 1 BP 1 b 1 b 1 b 2 b 1 BP 2 1 b 1 k 1 2 1 enter BP 4 1 exit BP 3 1 k 1 1 2 b 1 K BP 1 käsittää jo 22 tilaa ja 92 siirtymää, BP 1 BP 2 105 ja 289 ja Dekker 193 ja 428. Voisikohan agentteja yksinkertaistaa poistamalla -tapahtumat (ja kätkemällä sitä ennen mielenkiinnottomat tapahtumat, esimerkiksi noncritical )?

T-79.179: Prosessialgebra 9-16 Siirtymäjärjestelmien ekvivalenssit Ekvivalenssin eli samankaltaisuuden käsite mahdollistaa agenttien vertaamisen toisiinsa ja kutistamisen. Ekvivalensseja on määritelty lukuisia erilaisia. Esittelemme tässä kaksi. Jälkiekvivalenssi (Trace Equivalence) Jos agenttien P ja Q äärelliset suoritusjäljet eli näkyvät tapahtumaketjut ovat samat, ne ovat jälkiekvivalentit, P tr Q. Esimerkkejä: α.. R tr α. R ja α. (β. R + γ. R) tr α. β. R + α. γ. R. Olkoon S ::=. S. Pillastuma ei erotu lukkiumasta: S tr Nil. Hylkäysekvivalenssi (Failure Equivalence) Olkoon R agentti, α näkyvä tapahtuma ja Σ joukko näkyviä tapahtumia. Jos R α R ja β Σ : R : R β R, niin α,σ on R:n hylkäys. Agentit P ja Q ovat hylkäysekvivalentit, P f Q, jos niiden hylkäykset ovat samat ja kaikille α,p,q s.e. P α P ja Q α Q pätee, että P f Q. Esimerkki: α. (β. R + γ. R) f α. β. R + α. γ. R.

T-79.179: Prosessialgebra 9-17 Simulaatio, bisimulaatio ja ekvivalenssin valinta Olkoon S kaikkien agenttien joukko ja P S,Q S. Agentti P simuloi agenttia Q, jos on olemassa jokin simulaatiorelaatio R S S siten, että 1. P,Q R ja 2. jos P,Q R ja P α P, niin on Q siten, että Q α Q ja P,Q R. Simulaatio ei ole ekvivalenssi, koska P voi simuloida Q:ta vaikka Q ei simuloisikaan P:tä, mutta bisimulaatio (P simuloi Q:ta ja Q P:tä) on. TVT-työkalu osaa verrata ja kutistaa siirtymäjärjestelmiä vahvan bisimulaatiorelaation mukaan. Sovellettava ekvivalenssi kannattaa valita tarkastettavan ominaisuuden mukaan. Esimerkiksi jälkiekvivalenssi on usein liian voimakas, sillä se ei säilytä LTL-kaavojen totuusarvoja. Jos tarkastetaan -konnektiivia sisältämättömiä LTL-kaavoja, osittaisjärjestysmenetelmien lähisukulaiset CFFD ja NDFD ovat tehokkaita. Ekvivalenssi on refleksiivinen, symmetrinen ja transitiivinen.