Gramatyki grafowe

Transkrypt

Gramatyki grafowe
Gramatyki grafowe
Def. Nieskierowany NL-graf (etykietowane wierzchołki)
jest czwórką g = (V, E, Σ, ϕ), gdzie:
• V – niepusty zbiór wierzchołków,
• E ⊆ V × V – zbiór krawędzi,
• Σ - skończony, niepusty alfabet etykiet
wierzchołkowych,
• ϕ: V → Σ - funkcja etykietowania wierzchołków.
Dla v ∈ V, ϕ(v) – etykieta v. Klasa grafów nad Σ - GΣ.
Dla g = (V, E, Σ, ϕ) – graf nieetykietowany zwany
grafem podstawowym h = (V, E) otrzymujemy przez
usunięcie etykiet wierzchołkowych,
oznaczamy und(h) (underlying graph).
Def. Gramatyka grafowa jest piątką G= (V, Σ, P, C, X),
gdzie:
• V – alfabet ogólny gramatyki,
• Σ – alfabet terminalny,
• P – zbiór produkcji
• C – transformacja osadzenia,
• X ∈ GΣ – graf początkowy zwany aksjomatem.
Def. Produkcja gramatyki grafowej jest uporządkowaną
parą π=(α,β), α- lewa strona π, β- prawa strona π, (α→β)
Przepisanie w grafie g za pomocą produkcji α → β:
1) znaleźć podgraf α’ w g izomorficzny z α (α’ musi być
podgrafem indukowanym przez wierzchołki α’ tzn. jeśli
wierzchołki x, y ∈ α’ i (x,y) jest krawędzią g to (x,y)∈ α’)
α’ – graf matka,
2) ustalić obszar osadzenia (embedding area) –
podzbiór wierzchołków reszty grafu. ZaleŜy on od
rozwaŜanej gramatyki – wierzchołki, które będą
połączone z wstawianym grafem,
3) usunąć α’ z g (wraz krawędziami incydentnymi z
wierzchołkami α’),
4) zastąpić α’ przez β’ izomorficzny z β. β’ – graf córka.
Wierzchołki β’ muszą być rozłączne z wierzchołkami g-α’
(aby uniknąć niewłaściwej identyfikacji),
5) osadzić β’ w g-α’ poprzez dodanie krawędzi pomiędzy
niektórymi wierzchołkami β’ i obszaru osadzenia.
Osadzenie zaleŜy od typu uŜywanej gramatyki grafowej
Def. g bezpośrednio wyprowadza h za pomocą π, g ⇒ h,
jeśli h jest otrzymywane z g w 5 powyŜszych krokach.
Def. P- zbiór produkcji, g wyprowadza h za pomocą P ⇔
albo g=h albo ∃ n ≥ 1 i ciąg grafów g0, g1,…, gn, taki, Ŝe
g0 = g, gn = h i ∀ 1 ≤ i ≤ n, gi-1 bezpośrednio generuje gi
za pomocą πi ∈ P (g ⇒* h).
W takiej gramatyce grafowej nie ma warunków
stosowalności, czyli kaŜdy podgraf g izomorficzny z
lewą stroną produkcji moŜe być grafem matką. Wywód
jest sekwencyjny, w bezpośrednim wyprowadzeniu
przepisywany jest tylko jeden podgraf g.
Np. π1:
Osadzenie: dodajemy krawędź (x,y), x ∈ β’, y ∈ EA ⇔ x
i y są stopnia trzeciego i mają tę samą etykietę.
Gramatyka grafowa NLC (node-label controlled) jest
gramatyką grafową gdzie:
1) lewa strona produkcji jest grafem
jednowierzchołkowym,
2) obszar osadzenia – wszystkie wierzchołki reszty
grafu incydentne z grafem matką,
3) osadzenie określone poprzez binarną relację C na
zbiorze etykiet wierzchołków (connection relation).
Dla kaŜdej pary etykiet (σ , σ ) ∈ C dodawana jest
krawędź (x, y) pomiędzy kaŜdym wierzchołkiem x grafu
wstawianego etykietowanym σ i kaŜdym wierzchołkiem
y obszaru osadzenia etykietowanym przez σ .
Produkcję moŜemy zapisać jako: σ → β, gdzie
σ - etykieta wierzchołka lewej strony (lewa strona ma
tylko jeden wierzchołek).
Gramatyka NLC – wybór grafu matki i ustalenie krawędzi
osadzenia zaleŜy tylko od etykiet wierzchołków.
1
2
1
2
Def. NLC gramatyka grafowa jest systemem
G=(Σ, ∆, P, C, Z), gdzie:
• Σ - skończony niepusty zbiór zwany alfabetem
ogólnym,
• ∆ - niepusty podzbiór Σ zwany alfabetem
terminalnym,
• P – skończony zbiór produkcji będących parami
postaci (σ, α), σ ∈ Σ, α ∈ GΣ,
• C – podzbiór Σ × Σ - relacja połączeń,
• Z ∈ GΣ - aksjomat.
Język generowany przez NLC gramatykę grafową.
Def. G=(Σ, ∆, P, C, Z) – gramatyka grafowa NLC.
1) Język wyczerpujący dla G: S(G) = {g ∈ GΣ| Z ⇒* g}
2) Język terminalny dla G: L(G) = {g ∈ G∆| Z
3) Język spójny dla G:
Lcon(G) = {g ∈ G∆| Z * g i g jest spójny}
4) Nieetykietowany język dla G:
und(L(G)) = {und(g)| g ∈ L(G)}
⇒
⇒* g}
Np. Gramatyka NLC G=(Σ, ∆, P, C, Z), gdzie:
∆ = {a, a’, b, b’, c, c’, d, d’}, Σ = {S, S’} ∪ ∆,
P i C jak w poprzednim przykładzie,
Z = g z poprzedniego przykładu.
Ograniczony przypadek przepisywania wierzchołków:
graf usuwany składa się tylko z jednego wierzchołka.
Jeśli osadzenie wykonane jest takŜe w sposób lokalny
(poprzez połączenie grafu wstawianego z wierzchołkami
pozostałej części, które są blisko usuwanego
wierzchołka) to jest to lokalna transformacja grafowa.
Gramatyki grafowe oparte na przepisywaniu
wierzchołków – iteracja transformacji lokalnych
prowadzi do globalnej transformacji grafu.
Zastępowanie wierzchołków definiuje skończony zbiór
produkcji, a mechanizm osadzenia – skończona liczba
instrukcji połączeń. Produkcje i instrukcje łączone są w
reguły przepisywania. KaŜda taka reguła składa się z
jednej produkcji i skończonej liczby instrukcji połączeń.
Gramatyki NLC – przepisywane są nieskierowane grafy
o etykietowanych wierzchołkach. Proces przepisywania
jest lokalny (w osadzeniu rozwaŜane są tylko
wierzchołki sąsiednie dla usuwanego wierzchołka).
Instrukcje połączeń są uporządkowanymi parami –
relacja połączeń ((δ, µ) – stwórz krawędź między
kaŜdym wierzchołkiem wstawianego grafu o etykiecie δ
i kaŜdym wierzchołkiem o etykiecie µ w sąsiedztwie
usuwanego wierzchołka).
Np. Produkcja:
Osadzenie {(a,c), (b,b), (A, b)}
Niech ciąg α1,...,αn, αi ∈ ∆ (terminalne), n ≥ 1 – oznacza
nieskierowany graf etykietowany wierzchołkowo z
wierzchołkami x1,...,xn i krawędziami {xi, xi+1},
1 ≤ i ≤ n-1, gdzie xi ma etykietę αi ∀1 ≤ i ≤ n.
α ∈ ∆ oznacza graf jednowierzchołkowy z etykietą α.
Np. G=(Σ, ∆, P, C, Z), L(G)= {(abc)+ z krawędziami
między wszystkimi wierzchołkami o etykiecie b}.
Σ = {A, a, b, c}, ∆ = {a, b, c}, C= {(a,c),(b,b),(A,b)},
Z = A, P: produkcja powyŜsza i A → abc.
Pośrednie wyprowadzane grafy mają postać (abc)*A z
dodatkowymi krawędziami między wszystkimi
wierzchołkami A i b.
Gramatyka grafowa NLC jest bezkontekstowa, reguły
działają lokalnie (jeden wierzchołek po lewej stronie) i
nie ma predykatów stosowalności. Ogólnie nie posiada
jednak (w przeciwieństwie do ciągowych gramatyk
bezkontekstowych) własności zapewniającej, Ŝe wynik
wywodu jest niezaleŜny od kolejności stosowania
produkcji (własność ta zapewnia istnienie drzew
wywodu odzwierciedlających rekursywną naturę
gramatyk bezkontekstowych).
Gramatyka grafowa posiadająca tę własność jest
gramatyką „niezaleŜną od kolejności”.
Np. Graf początkowy S, S → AB, A → a, B → b. Jako
gramatyka ciągowa ma 1 drzewo wywodu. L(G)={ab}.
Niech C={(a,B), (b, a)}. L(G) = {ab, g}, g jest grafem
z dwoma wierzchołkami bez krawędzi. g powstaje jeśli
najpierw zastosujemy B → b, a potem A → a, ab – jeśli
zastosujemy produkcje w odwrotnej kolejności.
Jedno drzewo wyprowadzenia, ale dwa sposoby
przechodzenia po nim.
NiezaleŜność od porządku jest własnością
rozstrzygalną. MoŜna nałoŜyć na gramatykę
ograniczenia zapewniające tę niezaleŜność.
Np. ograniczenie „graniczne”
Gramatyka grafowa B-NLC – nie ma dwóch
wierzchołków o etykietach nieterminalnych połączonych
krawędzią (w grafie początkowym i prawych stronach
produkcji). Gramatyka generująca język {(abc)+ z
krawędziami między wszystkimi wierzchołkami o
etykiecie b} jest gramatyką B-NLC a nawet jest liniowa
(tylko jeden nieterminal).
Cecha gramatyki NLC: jeśli w wywodzie dostaniemy
graf pośredni z wierzchołkami x i y nie połączonymi
krawędzią to w dalszym procesie wywodu Ŝaden
wierzchołek pochodzący od x nigdy nie będzie
połączony z Ŝadnym wierzchołkiem pochodzącym od y.
Połączenia mogą być usuwane ale nie ponownie
dodawane. Gramatyka B-NLC zapewnia, Ŝe w kaŜdym
grafie pośrednim wierzchołki o etykietach
nieterminalnych nie są połączone - stąd wywód nie
zaleŜy od kolejności stosowania produkcji.
Rozszerzenia gramatyk grafowych
1) Odwołanie w instrukcji połączeń do poszczególnych
wierzchołków prawych stron produkcji. Instrukcja ma
postać (x, µ), x – wierzchołek prawej strony ma być
połączony z wierzchołkami etykietowanymi przez µ w
sąsiedztwie usuwanego wierzchołka.
Np. Zastępujemy wierzchołek m grafem:
moŜemy mieć (x,b) albo (y,b) (choć x i y mają taką
samą etykietę).
Taka gramatyka to NCE gramatka grafowa
(neighbourhood controlled embedding) – lokalny proces
osadzenia. NCE gramatyka generuje taką samą klasę
języków grafowych jak gramatyka NLC.
Def. NCE gramatyka grafowa jest systemem
G = (Σ, ∆, Z, R), gdzie:
• Σ, ∆, Z – zdefiniowane jak poprzednio,
• R – skończony zbiór reguł postaci (A → d, C), gdzie
A → d – produkcja, C – relacja połączenia dla d, czyli
C ⊆ Vd × Σ, Vd - zbiór wierzchołków d.
2) Rozszerzamy dziedzinę przepisywania grafów na
grafy skierowane i grafy posiadające etykietowane
krawędzie.
Graf skierowany – zamiast relacji połączeń C uŜywamy
dwóch relacji połączeń Cin, Cout dla krawędzi
wchodzących i wychodzących z usuwanego wierzchołka.
Instrukcja (δ, µ) ∈ Cout oznacza, Ŝe osadzenie powinno
wprowadzić krawędź od kaŜdego wierzchołka o
etykiecie δ wstawianego grafu do kaŜdego wierzchołka
o etykiecie µ w sąsiedztwie usuwanego wierzchołka m,
do którego dochodziła krawędź z m.
(δ, µ) ∈ Cin – nowa krawędź od kaŜdego wierzchołka µ
w sąsiedztwie usuwanego wierzchołka m, od którego
dochodziła krawędź do m, do kaŜdego wierzchołka δ w
nowym grafie.
Gramatyka zachowuje skierowanie, krawędzie
wchodzące do wierzchołka m są zastępowane
krawędziami wchodzącymi do grafu d, a wychodzące z
m – wychodzącymi z grafu d.
Skierowanie krawędzi i ich etykietowanie w grafie
pozwala rozróŜniać wierzchołki o takich samych
etykietach naleŜące do sąsiedztwa m.
Np.
Zastępując m, proces osadzenia moŜe róŜnić
wierzchołki x i y gdyŜ prowadzące do nich krawędzie
mają róŜne etykiety (nie moŜna rozróŜniać po nazwach
wierzchołków bo nie wiadomo ile ich będzie). W ten
sposób sąsiedztwo m moŜna podzielić na kilka róŜnych
typów, w zaleŜności od etykiet krawędziowych.
Osadzenie moŜe zmieniać typ tego sąsiedztwa.
Instrukcja połączenia postaci (δ, q, µ, p), gdzie q i p są
etykietami krawędzi a δ i µ etykietami wierzchołków
oznacza, Ŝe osadzenie powinno wprowadzić krawędź
etykietowaną q między kaŜdym wierzchołkiem o
etykiecie δ wstawianego grafu i wierzchołkiem o
etykiecie µ w sąsiedztwie m połączonego z µ krawędzią
etykietowaną p (p-sąsiedztwo).
Mamy gramatyki dNLC, eNLC, edNLC ,
d – oznacza grafy skierowane, e – osadzenie sterowane
przez etykiety krawędziowe.

Podobne dokumenty