Automat liniowo ograniczony

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Automat liniowo ograniczony (ang. linear bounded automaton) to ograniczona wersja maszyny Turinga, która podczas obliczenia na słowie wejściowym długości n może wykorzystać jedynie O(n) komórek taśmy. Innymi słowy, dostępna pamięć jest funkcją liniową od długości wejścia. Można także powiedzieć, że może ona w trakcie działania wykorzystywać tylko te komórki na taśmie, w których zapisane jest słowo wejściowe.

Definicja formalna[edytuj | edytuj kod]

Formalnie automatem liniowo ograniczonym nazywamy jednotaśmową maszynę Turinga z własnością stopu :

M = (Q, Σ, Г, δ, q0, B, F) gdzie:

  • Q – zbiór skończony, którego elementy nazywamy stanami M,
  • Σ – zbiór skończony, zwany alfabetem M,
  • Γ – zbiór skończony, zwany alfabetem taśmy M, taki że Σ ⊂ Γ,
  • δ : D → Q x Γ x {L,R}, gdzie D jest pewnym podzbiorem Q x Г ( δ nazywamy funkcją przejść lub ruchów M),
  • q0 – wyróżniony stan, zwany stanem początkowym M,
  • B – wyróżniony symbol, zwany symbolem pustej komórki,
  • F ⊂ Q – wyróżniony podzbiór stanów, zwanych stanami końcowymi M.

dla której spełnione są poniższe warunki:

  • w alfabecie taśmy Г są dwa dodatkowe symbole specjalne "<", ">” które można nazwać lewym i prawym wartownikiem

Automatlinogr1.jpg

  • początkowe ruchy M to umieszczanie symbolu "<" na początku słowa wejściowego i symbolu ">" na jego końcu. Następnie głowica przesuwa się na początek słowa wejściowego:

Automatlinogr.jpg

  • M nie ma ruchów przesuwających głowicę w lewo od symbolu "<" i w prawo od symbolu ">" (dane wejściowe są zapisane na taśmie maszyny między symbolami – wartownikami).

W opisie automatów liniowo ograniczonych zwykle pomijamy pierwsze formalne ruchy umieszczające symbole "<" i ">" na krańcach słowa. Podajemy tylko dalsze istotne ruchy.

  • symbole „<”, „>” nie mogą zmieniać innych symboli ani być zamienione na inne z wyjątkiem samych siebie, czyli nie można zapisywać ich do innych komórek niż ograniczające odcinek taśmy przeznaczony do obliczeń.

Języki akceptowalne przez automaty liniowo ograniczone[edytuj | edytuj kod]

Automaty liniowo ograniczone są ograniczonymi modelami jednotaśmowych maszyn Turinga, zatem klasa języków akceptowalnych przez automaty liniowo ograniczone zawiera się w klasie maszyn Turinga z własnością stopu.

Równość klas automatów liniowo ograniczonych deterministycznych i niedeterministycznych jest problemem otwartym. Wiadomo, że można znaleźć automat deterministyczny symulujący obliczenie automatu niedeterministycznego taki, że długość taśmy, na której prowadzi obliczenie jest funkcją kwadratową długości taśmy, na której prowadzi obliczenie automat niedeterministyczny.

Klasa języków rozpoznawanych przez automaty liniowo ograniczone to dokładnie języki kontekstowe.

Język formalny L nazywamy ALO – kontekstowym, gdy istnieje automat liniowo ograniczony M taki, że L = L(M).

Język akceptowany przez automat liniowo ograniczony jest jednym z czterech typów pokazanych w tabeli:

Gramatyka Inna nazwa Język Automat
Typu 0 GF JRP MT
Typu 1 GK JK ALO
Typu 2 GBK JBK AZS
Typu 3 GR JR DAS, NAS, NAS-Λ

Bibliografia[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]

  • Wykład – Języki kontekstowe i automat liniowo ograniczony. Maszyna Turinga: [1]