Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РО семинар 8.docx
Скачиваний:
1
Добавлен:
19.07.2019
Размер:
1.59 Mб
Скачать

Часть 2.

В этой части, соединяя каждое правило остатка длины 2 с другим (неостаточным) правилом грамматики, получаем рекурсивную автоматную грамматику. Это происходит в результате (далее эврестическое правило) слияния каждого нетерминального элемента правила остатка с нетерминальным элементом неостаточного правила, который может порождать остаток. Так, например, если — остаточный нетерминал вида и — неостаточный нетерминал вида , где , все встречающиеся заменяются на , а правило подстановки отбрасывается.

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

В рассматриваемом примере выделим остаточные правила:

Для правила проведем поиск кандидата на слияние. Это правила вида . Здесь подходят следующие правила:

Таким образом, мы сливаем нетерминал с нетерминалом и удаляем правило (а также повторяющиеся правила):

Было

стало

Для правила проведем поиск кандидата на слияние. Это правила вида . Здесь подходят следующие правила:

Таким образом, мы сливаем нетерминал с нетерминалом и удаляем правило (а также повторяющиеся правила):

.

Рекурсивными правилами являются и .

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

Где новые нетерминалы для грамматики, различные для каждого удаляемого правила остатка.

Часть 3.

Здесь грамматика, полученная во второй части, упрощается объединением эквивалентных правил подстановки.

Два правила с левыми частями и эквивалентны, если соблюдены следующие условия. Предположим, что, начиная с , можно породить множество цепочек . Аналогичным образом предположим, что, начиная с , можно породить множество . Если , то два правила подстановки считаются эквивалентными, и каждый символ может быть заменен на символ без ущерба для языка, порождаемого этой грамматикой.

Формально два правила подстановки эквивалентны, если , где обозначает, что цепочка порождается из нетерминала соответствующим применением правил подстановки.

В приведенном примере эквивалентны правила с левыми частями и .

Было на втором шаге

.

После слияния и получаем следующий набор правил:

,

где исключены многократные повторения одного и того же правила. Дальнейшее слияние правил невозможно, поэтому алгоритм в процессе обучения строит следующую автоматную грамматику: , где:

,

,

,

.

Легко проверить, что эта грамматика может порождать обучающую выборку, использованную в процессе ее вывода.

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