Algebra procesów CCS, bisymulacja

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Teoria układów logicznych
Reinhard Kulessa1 Wykład Środek masy Zderzenia w układzie środka masy Sprężyste zderzenie centralne cząstek poruszających się c.d.
Instrukcje - wprowadzenie
II Relacje i relacje równoważności
Język C/C++ Funkcje.
Programowanie obiektowe
Rekurencja 1 Podprogram lub strukturę danych nazywamy rekurencyjną, (recursive subprogram, recursive data structure) jeżeli częściowo składa się z samej.
Równanie różniczkowe zupełne i równania do niego sprowadzalne
RACHUNEK ZDAŃ.
11. Różniczkowanie funkcji złożonej
Grażyna Mirkowska PJWSTK 15 listopad 2000
Literatura podstawowa
Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
Programowanie I Rekurencja.
Przygotowały: Jagoda Pacocha Dominika Ściernicka
Wykład no 11.
ZLICZANIE cz. II.
ZŁOŻONOŚĆ OBLICZENIOWA
WYKŁAD 7. Spójność i rozpięte drzewa
WYKŁAD 3. Kliki i zbiory niezależne
Wykład 2: Upraszczanie, optymalizacja i implikacja
Materiały pomocnicze do wykładu
Tablice jednowymiarowe 1
Matematyka Dyskretna, Struktury algebraiczne G.Mirkowska, PJWSTK
Elementy Rachunku Prawdopodobieństwa c.d.
Semantyki programów współbieżnych " Determinizm programów sekwencyjnych, " Nie-determinizm programów współbieżnych, " prawdziwa równoległość vs.przeploty.
Analiza matematyczna - Funkcje jednej zmiennej wykład II
Problem rozbieżności czasów jednym z wielu problemów pojawiających się w systemach rozproszonych jest rozbieżność wartości zegarów na poszczególnych węzłach-maszynach.
OPORNOŚĆ HYDRAULICZNA, CHARAKTERYSTYKA PRZEPŁYWU
Metody matematyczne w Inżynierii Chemicznej
WYKŁAD 7. Spójność i rozpięte drzewa Graf jest spójny, gdy dla każdego podziału V na dwa rozłączne podzbiory A i B istnieje krawędź z A do B. Definicja.
Matematyka.
Zależności funkcyjne.
Kod Graya.
Podstawy programowania
O relacjach i algorytmach
ANALIZA LEKSYKALNA. Zadaniem analizatora leksykalnego jest przetwarzanie danych pochodzących ze strumienia wejściowego a także rozpoznawanie ciągów znaków.
Podstawy programowania
Wyrażenia algebraiczne
Przegląd podstawowych algorytmów
A. Sumionka. Starodawna gra marynarska; Gra dwu i wieloosobowa; Gracze wykonują ruchy naprzemian; Złożona ze stosów, w których znajduje się pewna ilość
Zadanie programowania liniowego PL dla ograniczeń mniejszościowych
Języki i automaty część 3.
XML – eXtensible Markup Language
Zasady przywiązywania układów współrzędnych do członów.
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Stabilność Stabilność to jedno z najważniejszych pojęć dynamiki systemów i teorii sterowania W większości przypadków, stabilność jest warunkiem koniecznym.
Spis treści W świecie algortmów -Budowa algorytmu
ALGORYTMY Co to jest algorytm ? Cechy algorytmu Budowa algorytmów
Gramatyki Lindenmayera
Programowanie strukturalne i obiektowe C++
Metody matematyczne w Inżynierii Chemicznej
Zagadnienia AI wykład 2.
Zagadnienia AI wykład 5.
I T P W ZPT 1 Kodowanie stanów to przypisanie kolejnym stanom automatu odpowiednich kodów binarnych. b =  log 2 |S|  Problem kodowania w automatach Minimalna.
ANALIZA SKŁADNIOWA.
GRA CHOMP. Czym jest chomp? Jest to gra dla dwóch osób, rozgrywana na prostokątnej tablicy, zwanej „tabliczką czekolady”
Autor: Michał Salewski
Systemy wspomagające dowodzenie twierdzeń
Warstwowe sieci jednokierunkowe – perceptrony wielowarstwowe
Wstęp do programowania Wykład 9
KNW - wykład 3 LOGIKA MODALNA.
Analiza portfeli dwu- oraz trzy-akcyjnych. Portfel dwóch akcji bez możliwości krótkiej sprzedaży W - wartość portfela   W = a P 1 + b P 2   P 1 -
Liczbami naturalnymi nazywamy liczby 0,1,2,3,..., 127,... Liczby naturalne poznaliśmy już wcześniej; służą one do liczenia przedmiotów. Zbiór liczb.
Pojęcia podstawowe Algebra Boole’a … Tadeusz Łuba ZCB 1.
Teoria sterowania Wykład /2016
Wstęp do Informatyki - Wykład 6
Nazwa – pojęcie i podziały
Haskell Składnia funkcji.
Zapis prezentacji:

Algebra procesów CCS, bisymulacja Seminarium - Protokoły komunikacyjne 28 – 10 - 2003 Paweł Kozioł 189411

Spis treści Wprowadzenie do algebry procesów Język CCS Przykłady Bisymulacja

Wprowadzenie Opis systemów współbieżnych Systemy są kompozycjonalne Zachowanie systemu składa się z niepodzielnych zdarzeń Zdarzenie komunikacja z otoczeniem zdarzenie wewnętrzne, nieobserwowalne z zewnątrz

Wprowadzenie – zdarzenia Każde zdarzenie jest komunikacją! Interesują nas zachowania obserwowalne – komunikacja z otoczeniem Założenia: ignorujemy czas nie dopuszczamy jednoczesności zdarzeń (wykonanie zdarzeń w dowolnej kolejności)

Wprowadzenie – komunikacja W każdą komunikację zaangażowane są dokładnie 2 procesy Komunikacja jest: synchroniczna niebuforowana

CCS – (Calculus of Communicating Systems) Przykład: Odbiera wartość x i wysyła ją dalej

X – parametr, oznacza dowolną liczbę: xZ in(x) wiąże x w (1) X – parametr, oznacza dowolną liczbę: xZ .P. oznacza: wykonaj  i kontynuuj wg P - jedyny sposób szeregowania zdarzeń w języku Np. Proces wykonuje in(7) i staje się procesem C’ ze stanu C po wykonaniu in(7) przechodzimy do stanu C’

Język graficzny Odzwierciedla strukturę połączeń komunikacyjnych Porty wyjściowe są oznaczone kreską u góry

Język graficzny c.d Nowy dwuargumentowy operator __ Połączenie dwóch kopii C kanałem komunikacyjnym nazwy portów przyłączonych do tego kanału są pominięte, bo są nieistotne

Operator ‘+’ ‘+’ zapewnia niedeterministyczny wybór E1 + E2 oznacza proces zachowujący się jak E1 albo E2 Zapis choice:

Operator ‘|’ E1 | E2 - złożenie równoległe równoległe wykonanie E1 i E2 Przykład  Uścisk dłoni (handshake) – synchroniczna, niewidoczna akcja między dwoma procesami przesłanie wiadomości synchronizacja – brak wymiany danych

Synchronizacja – przykład ? Jak połączyć Opowiedź Uściski dłoni nie są zaznaczane strzałkami Jednoznaczność połączenia przemienność operatora ‘|’ [ A | B = B | A ] łączność operatora ‘|’ [ A | (B | C) = (A | B) | C ]

Operator ‘\’ Wykluczenie (restriction) Niech L – zbiór etykiet (E | F) \ L to (E | F) z ukrytymi portami  L Konwencja: (E | F) \ c = (E | F ) \ {c} Przykład (E | F) \ c 

Przemianowanie [ a/a` ] Niech A: Wtedy A` =def A [ a`/a, b`/b, c`/c ]

Proces ‘0’ Proces nieaktywny Kiedy obliczenie dotrze do niego następuje zakleszczenie (deadlock)

Zdarzenie  Oznacza „cichą” komunikację między procesami– nieobserwowalną z zewnątrz

Rozważmy na przykład komunikację Mamy: , stąd: oraz , stąd: Ale te tranzycje nie dotyczą komunikacji A z B

A teraz rozważmy komunikację między A i B Wtedy obserwator zewnętrzny zauważy : Opcjonalnie wykluczenie komunikacji przez port z otoczeniem – użycie operatora zakazującego ‘\’: (A|B) \ c

Notacja – drzewo i graf tranzycji Na przykładzie procesów A i B Rozważmy proces (A | B)\c Dla niego graf tranzycji wygląda następująco:

Drzewo tranzycji dla (A|B)\c Wygląda następująco:

Formalizacja CCS

Oznaczenia i założenia Dany jest zbiór nazw zawiera ko-nazwy nazwy komplementarne Zbiór etykiet , gdzie dla każdej etykiety Zbiór zdarzeń , W tym  - ma specjalne znaczenie Tranzycje - proces w stanie P. wykonuje zdarzenie  i przechodzi do stanu Q.

Składnia CCS

A(e1,..., ek) – wyrażenie funkcyjne o arności k Zmienne ek należy odróżnić od zmiennych procesowych xi  X Zmienne ei to zmienne wartości

Reguły semantyczne CCS

Dowodzenie Tranzycja zachodzi wtw da się ją wywieść za pomocą powyższych reguł Np. Dowodzimy tranzycję

Operator punktu stałego Rekurencja pozwala opisać procesy nieskończone np. Zapis alternatywny: zamiast , jest Dodatkowa konstrukcja językowa: Zbiór zawiera równania definiujące rodzinę procesów indeksowaną I

Operator fix – cd Wyrażenie oznacza element tego zbioru odpowiadający indeksowi j  I W skrócie, zamiast piszemy Dodatkowo, niech oznacza P., w którym równolegle podstawiono Ei za zmienną Xi dla wszystkich i  I

Operator fix – reguła semantyczna Reguła pokazuje, że jest to operator najmniejszego punktu stałego

Przykład – algorytm Dekkera

Dekker – zapis procesów

Równoważność procesów silna i słaba bisymulacja silna i słaba równoważność

Intuicje Aby wykazać równoważność A i B, gramy w grę Graczami są Kowalski i Nowak Kowalski dowodzi, że A i B są równoważne Nowak dowodzi, że się różnią Obaj wykonują naprzemiennie ruchy Najpierw Nowak wybiera system i wykonuje dowolne możliwe zdarzenie

Intuicje cd Kowalski musi odpowiedzieć w drugim systemie tym samym zdarzeniem Gracz, który nie ma więcej ruchów, przegrywa Systemy są równoważne, jeśli Kowalski zawsze wygrywa, tzn. gdy ma strategię wygrywającą

Bisymulacja - wprowadzenie Np. Te systemy ‘’rozpoznają’’ identyczne języki (acd)*ab Początkowo mogą wykonać tylko a:

Bisymulacja cd W przypadku systemu A rezultat jest jednoznaczny (deterministyczny) W przypadku B wybór jest niejednoznaczny Eksperyment odróżnia zatem A od B

Definicja równoważności Definiujemy więc relację równoważności ~ P i Q są równoważne wtw. gdy nie można ich odróżnić w jednym kroku eksperymentu oraz otrzymane w tym kroku systemy są równoważne

Silna bisymulacja Relację binarną R pomiędzy procesami nazywamy silną bisymulacją, jeśli dla każdej pary , Określenie silna bisymulacja odróżnia ją od słabej bisymulacji Piszemy krótko: bisymulacja

Silna równoważność Procesy P i Q są silnie równoważne ozn. P ~ Q, jeśli (P,Q)  R, dla pewnej bisymulacji R Innymi słowy, silna równoważność ~ jest sumą wszystkich bisymulacji Relację ~ będziemy też nazywać silną równoważnością bisymulacyjną

Kongruencja Silna równoważność jest kongruencją względem wszystkich operatorów

Słaba równoważność bisymulacyjna Pojęcia słabej bisymulacji i słabej równoważności są analogiczne do poprzednich z dokładnością do relacji tranzycji Zamiast tranzycji będziemy używać oraz zdefiniowanych następująco

Słaba bisymulacja Relację binarną pomiędzy procesami nazywamy słabą bisymulacją, jeśli dla każej pary (P,Q)  R, Analogicznie definicja słabej równoważności

Wykład monograficzny prof. Lasoty: Literatura Wykład monograficzny prof. Lasoty: Wybrane zagadnienia teorii procesów współbieżnych 2002/03 http://www.mimuw.edu.pl/~sl/teaching/02_03/WZTPW/ R. Milner Communication and Concurrency, Prentice Hall, 1989. R. Milner Operational and Algebraic Semantics of Concurrent Processes „Dynamic congruence vs. Progressing bisimulation for CCS*” Ugo Montanari and Vladimiro Sassone