Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по теории алгоритмов.doc
Скачиваний:
61
Добавлен:
27.05.2015
Размер:
2.97 Mб
Скачать

2. Характеризация праволинейных языков

Теорема 10.2.1. Каждый автоматный язык является праволинейным.

Доказательство. Пусть автоматный язык L(M) определяется конечным автоматом М=<Q, A, D, I, F>, где QA=, и I={q0}. Положим N=Q, S=q0, P={pxq : <p, x, q>D}{p : pF}. Тогда G=<N, A, P, S> – праволинейная грамматика (грамматика типа 3), порождающая язык L(M).

Теорема доказана.

Теорема 10.2.2. Каждый праволинейный язык является автоматным.

Доказательство. Без ограничения общности можно считать, что праволинейный язык L задан праволинейной грамматикой, не содержащей правил вида Tu, где uA+. Положим:

Q=N, I={S}, F={TN: (T)P}, D={<T, u, B> : (TuB)P}.

Тогда конечный автомат М=<Q, A, D, I, F> порождает такой язык L(M), что L=L(M).

Теорема доказана.

Пример 10.2.1. Праволинейный язык

L={w{a, b}*: wamod 2=0, wbmod 2=0}

порождается грамматикой G=<N, A, P, S>, где N={S, T, E, F}, A={a, b}, P={SaT, SbE, S, TaS, TbF, EaF, EbS, FaE, FbD}.

Диаграмма переходов конечного автомата M3, порождающего этот же язык имеет вид:

Рис. 10.2.1. Диаграмма конечного автомата М3

Определение 10.2.1. Праволинейная грамматика, в которой каждое правило имеет вид T, Ta, TaU, где T, UN, aA, называется праволинейной грамматикой в нормальной форме (автоматной грамматикой, регулярной грамматикой).

Теорема 10.2.3. Каждая праволинейная грамматика эквивалентна некоторой праволинейной грамматике в нормальной форме.

Теорема 10.2.4. Класс праволинейных языков замкнут относительно итерации, конкатенации и объединения.

Теорема 10.2.5. Класс праволинейных языков замкнут относительно дополнения и пересечения.

Теорема 10.2.6. Пусть L – праволинейный язык над алфавитом А. Тогда найдется такое натуральное p>0, что для любого слова wLwp можно подобрать слова x, y, zA*, для которых справедливы соотношения:y, xyp, xyz=w, xyizL (для всех i0).

Пример 10.2.2. Пусть язык L={abnan: n0} задан над алфавитом A={a, b}.

Пусть pпроизвольное натуральное число. Положим w=abpap.

Если положить x=, то возможны следующие варианты:

y

Z

w

xyyz

a

bpap

xyz

aabpapL

abk(0<k<p)

bp-kap

xyz

abkabpapL

abp

ap

xyz

abpabpapL

abpak(0<kp)

ap-k

xyz

abpak+1bpapL

Как видно из приведенной таблицы, при любом натуральном p и x= слово xyyzL. С помощью аналогичных выкладок можно придти к выводу о том, что при любом натуральном p и при x=a слово xyyzL. Этот же вывод оказывается верен и при x=abk, x=abpak. В свою очередь, это означает, что условие теоремы 10.2.6 не выполняется, а потому язык L не является автоматным.

Лекция № 11. Контекстно-свободные языки

1 Степанов А.Н. Информатика: Учебник для вузов. 4-е изд. – СПб.: Питер, 2005. – С. 41.

1Этой теории будут посвящены следующие лекции.

1В теории нормальных алгорифмов пустое слово обозначается символом .

2  – подслово слова .

1В ряде источников, например в [], стандартным считается то положение, при котором головка «обозревает» ячейку, в которой записана первая буква слова, т.е. крайне левую ячейку.

1 Здесь и далее в соответствии с тезисами теории алгоритмов под вычислимыми функциями подразумеваются частично рекурсивные функции. Соответственно под всюду определенными вычислимыми функциями – общерекурсивные функции.

2 Эти программы могут, например, располагаться в порядке возрастания их длины.

1 Если в классе А отсутствует нигде не определенная функция, то можно взять произвольную функцию из класса А, а нигде не определенную функцию из его дополнения.

2Не тривиальным в том плане, что класс всех вычислимых функций разбивается на два непустых подкласса функций, обладающих и не обладающих этим свойством.

51