Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по ТА.docx
Скачиваний:
11
Добавлен:
24.09.2019
Размер:
355.83 Кб
Скачать

19. Автоматы с магазинной памятью и их работа. Конфигурация мп-автомата и его язык, вычисление.

МП-автомат – один из способов задания КС - грамматики

Опр. МП – автомат - недетерминированный конечный автомат, дополненный магазином (с переходом по пустому слову – ε-НКА), в котором хранятся цепочки магазинных символов.

М П - автомат может хранить потенциальное бесконечное число информации, но по своему устройству МП - автомат имеет доступ к информации только с одного конца. Last-in-first-out. (снимается та информация, которая пришла последней). Схема автомата:

Конечное управление читает входящий символ по одному. МП - автомат может обозревать символы на вершине магазина. Мп-автомат может обозревать символы замещения и совершать переход на основе текущего состояния автомата, входного символа и символа замещения магазина. Если в магазине ничего нет, то автомат может использовать пустую цепочку в качестве входа.

За один переход автомат совершает следующее:

- прочитывает и пропускает входящий символ, использованный при переходе.

– вход = ε (пустая цепочка), то входные символы не допускаются.

- переходим в новое состояние, которое может не отличаться от предыдущего.

- заменяет символ на вершине магазина некоторой цепочки (цепочка может быть и пустой), это означает, что символ снят с вершины магазина (что было, то и осталось).

- автомат может заменить символ на вершине магазина без снятия предыдущего символа.

- символ может быть заменён несколькими символами – может быть изменились символы на вершине и в магазин поместились ещё символы.

Опр. МП - автомат – это семерка P = (Q,Σ, Г, δ, q0, z0, F), где

Q - конечное множество состояний автомата,

Σ - конечное множество входящих символов (алфавитное множество),

Г- конечное множество магазинных символов, не имеющие конечного автоматного аналога.

δ – функция переходов. δ (q,a,X) = {p,γ} – в состоянии q автомат прочитал символ а.

Где p,q - состояния автомата, а- читаемый входной символ или пустая цепочка, Х - символ магазинного автомата (символ на вершине), γ - цепочка магазинных символов (может быть и пустой).

Если γ = ε, то магазинный символ Х снимается: γ=yz, Х↔у – символ х замещается на у, сверху помещается z.

q0 - начальное состояние,

z0 – мартёр, показывает, когда магазин опустел (в начале работы автомата в магазине находится только z0),

F – множество допускаемых цепочек.

Пример. МП-автомат, язык которого – язык палиндромов чётной длины, т.е. число символов в нём чётное.

w и wR – обращение цепочки.

wwR – конкатенация (чётный палиндром).

w = AB, то wwR = АВВА

L(wwR) = {wwR | w }

P = ({q0, q1, q2}, {0, 1}, {z0, 0, 1}, δ. q0, z0, {q0})

1). δ(q0, 0, z0) = {(q0, 0z0)}

δ(q0, 1, z0) = {(q0, 1z0)}

2). δ(q0, 0, 0) = {(q0, 00)}

δ(q0, 0, 1) = {(q0, 01)}

δ(q0, 1, 0) = {(q0,10)}

δ(q0, 1, 1) = {(q0, 11)}

3). δ(q0, ε, z0) = {(q1, z0)}

δ(q0, ε, 0) = {(q1, 0)}

δ(q0, ε, 1) = {(q1, 1)}

переходы по пустому слову.

4). δ(q1, 0, 0) = {(q1, ε)}

δ(q1, 1, 1) = {(q1, ε)}

5). δ(q1, ε, z0) = {(q1, z0)}

Автоматы, которые реализуют палиндром чётной длины.

Опр. Конфигурацией или мгновенным описанием МП-автомата называется тройка (q,w, γ), где q - начальное состояние, w-цепочка, которую осталось прочитать, γ- то, что собралось в магазине.

Пусть в данный момент автомат P = (Q,Σ, Г, δ, q0, z0, F) читает символ а и видит в вершине магазина Х: δ(q,a,X). Из того состояния автомат переходит в несколько другое: δ(q,a,X) (p,α).

Из этого состояния q автомат перешел в состояние p и на вершине магазина появляется α. Тогда для всех цепочек w из Σ*, для всех β из T* полагают (q, aw, Xβ)├(p, w, αβ), т.е. прочитав в состоянии q символ а и прочитав символ Х, автомат может перейти в состояние р и заменить Х цепочкой α.

Опр. Последовательность конфигураций, которая возникает при чтении цепочек, называется вычислением.

1). Если автомат допускает свой вход, прочитывая его и допуская заключительные состояния, то эта цепочка допускается по заключительному состоянию.

2). Если прочитав цепочку, автомат опустошает магазин, то эта цепочка допускается автоматом по пустому магазину.

Возникает 2 языка:

1) по заключительному состоянию р: L(p) = {w T* | (q, w, z0) (q0, ε, α)}, т.е.

терминалы цепочки, которые воспринимаются этим автоматом в начальном состоянии и перерабатываются этим автоматом.

2) по пустому магазину N(p) = {w T* | (q, w, z0) (q, ε, ε)}, т.е. терминалы цепочки, которые прочитываются из начального состояния, при этом опустошается магазин.

Теорема: если L - язык автомата по пустому магазину (L=N(P)) для некоторого автомата N, то существует МП - автомат PF, язык которого по заключительному состоянию будет язык L. L(PF) = L

Т.е. можно считать, что L(p) и N(p) один и тот же язык.

20. МП-автоматы (с магазинной памятью) и КС-грамматики

Опр. МП – автомат – P = (Q, Σ,Г, δ, q0, z0,F)

Q – некоторое конечное множество состояний автомата

Σ – некоторое конечное множество терминальных(то есть элементов алфавита, из которых составляются цепочки) символов

Г – некоторое конечное множество магазинных сисмволов, не имеющих конечного автоматного аналога

δ – функция переходов (q состояние, а прочитал, на вершине магазина Х). Регулирует, куда перейдет автомат и что будет автомат делать

δ(q, a,X) = (p,γ). p,q – состояния автомата, а – читаемый входной символ ил пустая цепочка, Х – символ магазинного автомата, γ – цепочка магазинных символов, в том числе она может быть и пустой; если пустая – магазинный символ снимается. Если γ=уz, то Х заменяется на у, z – на верх магазина

q0 – начальное состояние

z0 – маркер дна, показывает,когда магазин пуст. В начале работы автомата в магазине ничего нет, только z0

F – множество допускающих состояний.

Опр. КС – грамматика – G = (V,T,P,S)

V – множество переменных (переменные определяют язык - нетерминалы, синтаксические категории)

Т – множество терминалов (элементы алфавита, из которого составляются цепочки определяемого данной грамматикой языка)

Р – множество правил вывода, конечное (продукции, каждая из них представляет рекурсивное определение языка. Продукция состоит из переменной, определяющей продукцию – головы продукции; символа продукции «→»; конечной цепочки, состоящей из терминалов и переменных – тело продукции = способ образования цепочек языка, определяемого переменной в голове)

S – стартовый символ

Пусть дана КСГ и МП-автомат. Функция перехода этого автомата обладает следующими свойствами: 1). δ(q, ε, A) = {(q, β) | A → β – продукция G} для всех А; 2). δ(q,a,a)={(q, ε ) для каждого а из Т}

Теорема. N(P) = L(G). Язык автомата Р по пустому магазину(либо по заключительному состоянию) совпадает с языком данной грамматики.

Если дан автомат, то язык этого автомата является языком некоторой грамматики.

Теорема. Пусть Р = (V, Σ, Г, δ, q0, z0) – некоторый автомат с магазинной памятью,

тогда существует контекстно-свободная грамматика G, язык которой не совпадает с языком этого автомата по пустому магазину.

Как по автомату построить грамматику:

G = (V, Σ,R,S)

1) V: S V, где S – стартовый символ.

[pxq] V, где p,q - состояния автомата, X – магазинный символ.

2) как строятся продукции (правила вывода):

а) S →[ q0z0p] для всех состояний р (из стартового символа получается, что видим дно магазина в состоянии запуска). Этот символ предназначен для таких цепочек w, которые приводят автомат к высказыванию z0 из магазина при переходе из состояния q0 в состояние р.

(q0,w, z0) ├ (q, ε ,ε). Эти продукции порождают из стартового символа те цепочки w, которые приводят к опустошению магазина после старта в начальной конфигурации.

б) δ(q,a,X) (r,y1y2…yk) (состояние, символ, вершина магазина) (состояние, вершина магазина), (a Σ, a= ε), k≥0, при к=0 будет (r, ε)

Для всех состояний r1,r2,…,rk в грамматике G есть продукция [qXrk] →a[ry1r1][r1y2r2]…[rk-1ykrk]. Одним из способов выталкивания из магазина символа Х и перехода из состояния q в состояние rk является следующее: прочитать символ а и вычеркнуть из вершины магазина символ y1, потом вытолкнуть y2, …, перейти в состояние rk и вытолкнуть yk

Автомат характеризуется некоторым числом параметров. Пусть построен автомат, который характеризуется n параметрами (n-длина представления автомата). Линейно зависят от этого n (О(n)) следующие преобразования:

1) преобразовать КС-грамматику в автомат с магазинной памятью (но только для КСГ выражений).

2) преобразование МП - автомата, допускающего по заключительному состоянию в автомат по пустому магазину.

3) преобразование автомата по пустому магазину в автомат по заключительному состоянию. Преобразование МП-автомата в грамматику пропорционально О(nn). Теорема: Существует алгоритм сложности О(n3), который по автомату с магазинной памятью строит КС-грамматику длиной не более О(n3). Эта грамматика порождает язык автомата по пустому магазину. Теорема: по грамматике длины n можно построить ее НФХ за время О(n2). Эта форма будет иметь длину О(n2).