Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MLTA_shpory2.doc
Скачиваний:
102
Добавлен:
23.12.2018
Размер:
2.34 Mб
Скачать

77.Алгоритмические проблемы для грамматик.

Поскольку класс множеств, порождаемых грамматиками, совпадает с классом перечислимых множеств, то для языков типа 0: никакое нетривиальное свойство языков типа 0 не является алгоритмически разрешимым; точнее, ни для какого нетривиального свойства языков типа 0 не существует алгоритма, который по произвольной грамматике G выяснял бы, обладает ли этим свойством язык L(G).

Для языков типа 1 уже существуют разрешимые проблемы. Например, для любой цепочки a и любого языка L типа 1 разрешима проблема принадлежности a языку L (теорема 2- Если G — неукорачивающая грамматика, то язык L(G) разрешим). Однако проблемы пустоты и бесконечности языка, порождаемого данной грамматикой типа 1, неразрешимы.

Для языков типа 2 эти две проблемы разрешимы. Разрешимость проблемы пустоты непосредственно следует из наличия алгоритмов приведения КС-грамматик, а именно: язык L(G) непуст, если и только если начальный символ G — производящий.

Разрешимость проблемы бесконечности следует из более сильного утверждения о характере бесконечности КС-языков, называемого иногда «леммой о разрастании».

78.Алгоритмические проблемы для контекстно-свободных грамматик.

Чтобы определить то, что называют к-с грамматикой надо:

(а)указать конечное множество A; его элементы называют символами;

(б) разделить все символы алфавита A на две группы: терминальные ("окончательные") и нетерминальные ("промежуточные");

(в)выбрать среди нетерминальных символов один, называемый начальным;

(г)указать конечное число правил грамматики, каждое из которых должно иметь видK-> X

где K - некоторый нетерминальный символ, а X - слово (в него могут входить и терминальные, и нетерминальные символы).

Теорема 5. Не существует алгоритма, который по двум произвольным КС-грамматикам G1 и G2 определял бы, пусто ли пересечение L(G1)Ç L(G2).

Теорема 6. Не существует алгоритма, который для произвольной КС-грамматики позволял бы узнать, является ли она однозначной или нет.

Теорема 7. Следующие проблемы для КС-языков неразрешимы:

1) является ли КС-языком пересечение КС-языков;

2) является ли КС-языком дополнение к КС-языку;

3) проблема тривиальности КС-языка (L = V*) или, что то же самое, пустоты дополнения;

4) проблема эквивалентности двух КС-грамматик.

. Конечный автомат. Способы задания автоматов.

Конечным автоматом называется система M ={А, S, B, j, f}, в которой А = {а1, ..., am}, S ={s1, ..., sn}, B ={b1, ..., bk} — конечные множества (алфавиты), а j: А ´ S ® S и f: А ´ S ® B — функции, определенные на этих множествах.

А называется входным алфавитом,

B — выходным алфавитом,

S — алфавитом состояний,

j — функцией переходов,

f — функцией выходов.

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

Способы задания автоматов

таблица переходов автомата, или просто автоматная таблица

ориентированный мультиграф, называемый графом переходов или диаграммой переходов.

.Автоматное отображение и его свойства. Изоморфизм и эквивалентность автоматов. Неотличимые автоматы.

Зафиксируем в M начальное состояние s1 и каждому входному слову a = aj1aj2...ajk поставим в соответствие слово w в выходном алфавите:

w = f(si, aj1) f(si, aj1aj2)... f(si, aj1... ajk). Это соответствие, отображающее входные слова в выходные слова, называется автоматным отображением, а также автоматным (или ограниченно детерминированным) оператором, реализуемым автоматом (M, s1).

Если результатом применения оператора к слову a является выходное слово w, то это будем обозначать соответственно M (s1, a) = w или M(a) = w.

Число букв в слове a, как обычно, называется длиной a и обозначается |a| или l(a). Автоматное отображение также удобно определить индуктивно:

M (si,aj) = f(si,aj)

M (si, aaj) = M(si, a) f(j(si, a), aj)

Пусть M = (AM, SM, BM, jM, fM) и T = (AT, ST, BT, jT, fT) — два автомата. Тройка отображений f: AM ® AT, g: SM® ST, h: BM ® BT называется гомоморфизмом автомата M в автомат T, если для любых aÎAM, sÎSM, bÎ BM выполнены условия:

jT(g(s), f(a)) = g(jM(s, a));

fT(g(s), f(a)) = h(fM(s, a)).

Автомат Т называется гомоморфным автомату M. Если все три отображения сюръективны, то эта тройка называется гомоморфизмом M на Т. Если, кроме того, эти три отображения взаимно однозначны, то они называются изоморфизмом M на Т; автоматы, для которых существует изоморфизм, называются изоморфными. Ясно, что мощности соответствующих алфавитов изоморфных автоматов должны быть одинаковыми.

Неотличимые автоматы.

Пусть M и Т — два автомата с одинаковыми входным и выходным алфавитами. Состояние s автомата M и состояние r автомата Т называются неотличимыми, если для любого входного слова a M(s, a) = T(r, a). В частности, если T = M , то речь идет о неотличимых состояниях одного и того же автомата M. Неотличимость состояний si и sj автомата M означает, что инициальные автоматы (M, si) и (M, sj) реализуют одно и то же автоматное отображение.

Автоматы M и Т называются неотличимыми, если для любого состояния s автомата M найдется неотличимое от него состояние r автомата Т и, наоборот, для любого r из Т найдется неотличимое от него s из M.

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

.минимальный автомат. Алгоритм Мили нахождения эквивалентных состояний.

Переход от автомата M к эквивалентному автомату называется эквивалентным преобразованием автомата M. Можно ставить различные задачи о поиске автоматов, эквивалентных данному и обладающих заданными свойствами. Наиболее изученной среди таких задач является задача о минимизации числа состояний автомата: среди автоматов, эквивалентных M, найти автомат с наименьшим числом состояний — минимальный автомат.

Теорема Для любого автомата M существует минимальный автомат M0, единственный с точностью до изоморфизма; если множество состояний M разбивается на l классов эквивалентности (l £ n): C1 = {s11, ..., s1i1},..., Сl = {sl1, ..., slil}, то M0 имеет l состояний.

Алгоритм Мили нахождения эквивалентных состояний

Пусть дан автомат M = (A, S, B, j, f) с n состояниями. На каждом шаге алгоритма будем строить некоторое разбиение S на классы, причем разбиение на следующем шаге будет получаться расщеплением некоторых классов предыдущего разбиения.

Шаг 1. Два состояния s и s¢ относим в один класс С1j, если и только если для любого а Î А f(s, a) = f(s¢, a).

Шаг i + 1. Два состояния s и s¢ из одного класса Сij относим в один класс Сi+1,j, если и только если для любого а Î А j(s, a) и j(s¢, a) принадлежат одному и тому же классу Сil. Если (i + 1)-й шаг не изменяет разбиения, т. е. состояния из одного класса Сij принадлежат одному классу Сi+1,j, то алгоритм заканчивается и полученное разбиение является разбиением на классы эквивалентных состояний; иначе применяем шаг i + 1 к полученному разбиению.

Для автомата M с девятью состояниями и двумя выходными буквами, заданного таблицей, алгоритм строит следующую последовательность разбиений

Обозначим найденные классы по порядку С1, …, С6, тогда минимальный автомат описывается табл. а, в которой обозначения состояний (классов Сi) заменены их индексами.

Обычно, в исходной таблице оставляют по одному представителю из каждого класса, а строки остальных состояний вычеркивают; в полученной таблице все вхождения этих остальных состояний также заменяют выбранными представителями. В нашем примере вычеркиваются строки 4, 8, 7; в клетках полученной таблицы 4 заменяется на 1, 8 на 2, 7 на 5; в результате получится табл. б.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]