Teoria śladów.
Cz. II
Dane są:
- Alfabet
A, w którym każda litera oznacza akcję.
- Relacja
niezależności I, oznaczająca które akcje są niezależne
(przemienne, tzn. można je wykonać w dowolnej kolejności i nie zmienia
to wyniku końcowego).
- Słowo
w oznaczające przykładowe wykonanie sekwencji akcji.
Napisz program w dowolnym
języku, który:
- Wyznacza relację
niezależności I
- Wyznacza
ślad [w] względem relacji I
- Wyznacza
postać normalną Foaty FNF([w]) śladu [w]
- Wyznacza
graf zależności dla słowa w
- Wyznacza
postać normalną Foaty na podstawie grafu
Do zadania należy dostarczyć sprawozdanie, które będzie
zawierać:
- Opis programu z
komentarzami
- Wyniki działania dla
przykładowych danych
Sprawozdanie i kod programu proszę przysłać na adres:
funika@agh.edu.pl
Uwagi:
Przykład
Dla danych:
(a) x := x + y
(b) y := y + 2z
(c) x := 3x + z
(d) z := y - z.
A = {a, b, c, d}
I = {(a, d), (d, a), (b, c), (c, b)}
w = baadcb
Wyniki:
- D = {(a, a), (a, b), (a,
c), (b, a), (b, b), (b, d), (c, a), (c, c), (c, d), (d, b), (d, c), (d,
d)}
- FNF([w]) = (b)(ad)(a)(bc)
- Graf w formacie dot:
digraph g{ 1 -> 2 2 -> 3 1 -> 4 3 -> 5 4 -> 5 3 -> 6 4 -> 6 1[label=b] 2[label=a] 3[label=a] 4[label=d] 5[label=b] 6[label=c] }
Dane
testowe 2:
- A = {a, b, c, d, e, f}
- I = {(a, d), (d, a),
(b, e), (e, b), (c, d), (d, c), (c, f), (f, c)}
- w = acdcfbbe
|