Регулярные языки
[46/52%]Сколько существует строк длины над алфавитом , где — неотрицательное целое число?
Для строк и выполняется .
Решите уравнение в словах
над алфавитом ; то есть найдите множество строк над , удовлетворяющих этому уравнению.
Пусть и . Найдите тогда .
Верно ли, что если имеет размер , а имеет размер , то обязательно имеет размер ?
Пусть и . Найдите , .
Язык — это множество всех двоичных строк, не содержащих подстроки 11 и заканчивающихся на 0.
Покажите, что для любых языков и
тогда и только тогда, когда .
Для языков и выполняется и .
(Лемма Ардена). Предположим, что — два языка, причём , и — язык, удовлетворяющий соотношению . Тогда .
Предположим, что языки удовлетворяют следующим двум уравнениям:
Найдите простые представления для и .
Пусть и . Чему равны и ?
Пусть — язык над , и . Найдите необходимые и достаточные условия на и , при которых выполняется уравнение
Для каждого из следующих уравнений определите, верно ли оно для всех языков . Приведите доказательство или контрпример.
.
.
.
.
.
Покажите, что при выполняется .
Покажите, что при выполняется .
Предположим, что . Покажите, что при выполняется .
Докажите следующие тождества для языков :
.
.
.
.
.
Найдите кратчайшую строку над алфавитом , которая не принадлежит
Найдите общее решение уравнения
для .
Решите следующую систему языковых уравнений относительно языков :
Является ли множество регулярным языком?
Является ли множество регулярным языком над двоичным алфавитом?
.
.
Найдите регулярное выражение для множества двоичных представлений целых чисел, являющихся степенями 4.
Найдите регулярное выражение для множества двоичных строк, содержащих хотя бы одно вхождение подстроки 001.
Найдите регулярное выражение для множества двоичных строк, не содержащих подстроки 001.
Найдите регулярное выражение для множества всех двоичных строк, содержащих не более одной пары последовательных 0 и не более одной пары последовательных 1.
Найдите регулярное выражение для множества всех двоичных строк, обладающих тем свойством, что ни один из их префиксов не содержит на два 0 больше, чем 1, и ни один — на два 1 больше, чем 0.
Найдите регулярное выражение для множества всех непустых строк над арабскими цифрами, не содержащих повторяющихся соседних символов.
Найдите регулярное выражение для множества всех строк над алфавитом
которые представляют корректные операции сложения над двоичными представлениями целых чисел, с добавлением ведущих 0 при необходимости. Например, соотношение
означает, что строка
принадлежит этому множеству.
Для каждого языка над алфавитом пусть — множество всех суффиксов строк из , то есть . Покажите, что если — регулярный язык, то и тоже регулярен.
Покажите, что каждый регулярный язык обладает регулярным выражением в дизъюнктивной нормальной форме , в котором каждое , для , не содержит оператора + .
Опишите словами языки, задаваемые следующими регулярными выражениями:
.
.
.
.
Упростите следующие регулярные выражения:
.
.
.
Постройте регулярные выражения для следующих языков над алфавитом :
Множество всех строк, у которых пятый символ справа равен 0.
Множество всех строк, содержащих в качестве подстроки либо 000, либо 111.
Множество всех строк, не содержащих в качестве подстроки ни 000, ни 111.
Множество всех строк, не содержащих подстроки 010.
Множество всех строк, содержащих нечётное число 0.
Множество всех строк, содержащих чётное число вхождений подстроки 011. [Подсказка: сначала найдите регулярное выражение для множества двоичных строк, не содержащих подстроки 011.]
Покажите, что .
Постройте регулярное выражение для множества всех строк над алфавитом
которые представляют корректные операции вычитания. Например,
означает, что строка
принадлежит этому множеству.
Покажите, что для любого регулярного языка и являются регулярными.
Покажите, что если — регулярный язык, то также регулярен.
Пусть — отображение, удовлетворяющее условию для любых . Покажите, что если — регулярное множество над , то является регулярным множеством над . Обратно, если — регулярное множество над , то является регулярным множеством над .
Постройте для .
Постройте для .
Какова кратчайшая строка в каждом из следующих языков? Какова кратчайшая непустая строка в каждом языке?
.
.
.
Найдите алгоритм нахождения кратчайшей строки в регулярном множестве, заданном регулярным выражением.
Найдите алгоритм нахождения кратчайшей строки в регулярном множестве, заданном графовым представлением регулярного выражения.
Найдите представления в виде размеченных орграфов для следующих регулярных выражений:
.
.
.
Определите регулярные выражения, представляемые орграфами на рисунке 1.7.
Рисунок 1.7: Три орграфа к упражнению 4.
Найдите простейший орграф, представляющий .
Найдите контрпримеры, показывающие, что теорема 1.25 неверна, если убрать требования о том, что должна быть нефинальной вершиной, а — неначальной вершиной.
Теорема 1.25: Пусть — регулярное выражение. Тогда -ребро в , являющееся единственным исходящим ребром из нефинальной вершины или единственным входящим ребром в неначальную вершину , можно стянуть в одну вершину, сохранив при этом свойство теоремы 1.23. (Если один из концов -ребра является начальной или конечной вершиной, то таковой является и получившаяся вершина.)