Конечные автоматы
[102/59%]Рассмотрим ДКА , где , а — функция, заданная следующей таблицей:
| 0 | 1 | |
|---|---|---|
Начертите диаграмму переходов .
Рассмотрим ДКА , заданный на рисунке 2.2. Определите, принимает ли строки 000 и 010.
Какой язык принимается ДКА на рисунке 2.2?
Какой язык принимается ДКА на рисунке 2.3?
Какой язык принимается ДКА на рисунке 2.4?
Рассмотрим ДКА с диаграммой переходов на рисунке 2.5.
Какое состояние является начальным состоянием , и какие состояния являются заключительными состояниями ?
Для каждой из строк 0001, 010101 и 001110101101 найдите вычислительный путь на этой строке и определите, принимает ли её .
Среди всех строк из (01)*, какие из них принадлежат ?
Рисунок 2.5: ДКА из упражнения 1.
Для целых чисел рассмотрим ДКА , где , а .
Начертите диаграмму переходов при и .
Пусть и . Найдите и .
Пусть и . Найдите двоичные строки и такие, что и .
- Покажите, что для любого состояния существует строка такая, что .
Рисунок 2.6: Три ДКА из упражнения 3.
Для каждого из ДКА и , показанных на рисунке 2.6(a), (b) и (c) соответственно, опишите словами язык, принимаемый им.
.
Множество всех двоичных строк, начинающихся с префикса 01.
Множество всех двоичных строк, содержащих подстроку 00.
Множество всех двоичных строк, содержащих подстроку 00101.
Множество всех двоичных строк, заканчивающихся на 01.
Множество всех двоичных представлений положительных целых чисел, сравнимых с нулём по модулю 5.
Множество всех двоичных строк, содержащих подстроку 00 или заканчивающихся на 01.
Множество всех двоичных строк, содержащих подстроку 00 и заканчивающихся на 01.
Множество всех двоичных строк, содержащих подстроку 00, но не заканчивающихся на 01.
Множество всех двоичных строк, в которых каждый блок из четырёх подряд идущих символов содержит подстроку 01.
Для каждого из следующих языков постройте ДКА, принимающий этот язык:
Множество двоичных строк, начинающихся с 010.
Множество двоичных строк, заканчивающихся на 101.
Множество двоичных строк, начинающихся с 10 и заканчивающихся на 01.
Множество двоичных строк, содержащих подстроку 010 или 101.
Множество двоичных строк, в которых последние пять символов содержат не более трёх нулей.
Множество двоичных строк , для которых делится на 5, где — число вхождений символа в строку .
Множество строк над алфавитом , в которых сумма всех символов делится на 5.
Множество строк над алфавитом , являющихся троичными представлениями (представлениями по основанию 3) положительных целых чисел, сравнимых с 2 по модулю 7.
Множество двоичных строк, в которых каждый блок из четырёх символов содержит не менее двух нулей.
Множество двоичных строк, в которых после каждой подстроки 010 непосредственно следует подстрока 111.
Для каждого из следующих языков используйте метод автомата-произведения для построения ДКА, принимающего этот язык:
Множество двоичных строк, начинающихся с 010 или заканчивающихся на 101.
Множество двоичных строк, содержащих подстроку 010, но не содержащих подстроку 101.
Множество двоичных строк, начинающихся с 010, заканчивающихся на 101 и содержащих подстроку 0000.
Для каждого из следующих языков используйте метод проверяющего автомата для построения ДКА, принимающего этот язык:
Множество из примера 2.12.
Множество из примера 2.14.
Множество из упражнения 2(a) выше.
Множество из упражнения 2(c) выше.
Найдите НКА, принимающий множество двоичных строк, содержащих подстроку 010.
Найдите НКА, принимающий множество двоичных строк, начинающихся с 010 или заканчивающихся на 110.
Найдите НКА, принимающий множество двоичных строк, содержащих не менее двух вхождений подстроки 01 и заканчивающихся на 11.
Рисунок 2.22: Решение примера 2.19.
Найдите НКА, принимающий множество .
Пусть и — два НКА. Постройте НКА такой, что .
Пусть — НКА. Постройте НКА такой, что .
Рассмотрим НКА на рисунке 2.26.
Чему равны -замыкание и -замыкание ?
Чему равны и ?
Постройте деревья вычислений на строках и . Принимает ли строки и , или отвергает их?
Рисунок 2.26: НКА из упражнения 1.
Для каждого НКА , показанного на рисунке 2.27, определите, чему равен .
Для каждого из следующих языков постройте НКА, принимающий этот язык:
Множество двоичных строк, содержащих не менее трёх вхождений подстроки 010.
Множество двоичных строк, содержащих одновременно подстроки 010 и 101. [Подсказка: это эквивалентно множеству двоичных строк, содержащих подстроку 0101, либо подстроку 1010, либо подстроку 010, за которой следует 101, либо подстроку 101, за которой следует 010.]
Множество двоичных строк, содержащих подстроку 010 либо подстроку 101 и заканчивающихся на 111 или 000.
Множество двоичных строк, у которых -й символ равен 0 для каждого .
Множество двоичных строк длины для некоторого , таких что для каждого хотя бы один из -го, -го и -го символов равен 0.
Множество .
Рисунок 2.27: Три НКА из упражнения 2.
Докажите, что новое начальное состояние и заключительное состояние в построении примера 2.22 необходимы. То есть найдите НКА и такие, что НКА и на рисунке 2.28 обладают свойством и .
Дан НКА , где , и
| 0 | 1 | ||
|---|---|---|---|
| - | |||
| - | - | ||
| - | - | ||
| - | - | ||
| - | - |
(Диаграмма переходов показана на рисунке 2.29(a).) Найдите ДКА, эквивалентный НКА .
Рисунок 2.29: Преобразование НКА в ДКА.
Постройте ДКА, эквивалентный НКА , где
| 0 | 1 | |
|---|---|---|
| - | ||
| - | - |
Пусть — , заданный
| 0 | 1 | |
|---|---|---|
| - |
Постройте НКА, принимающий .
Постройте ДКА, принимающий множество всех двоичных строк, у которых пятый символ справа равен 0.
Рассмотрим следующую таблицу умножения на :
Для любой строки из через обозначим значение, полученное перемножением символов строки слева направо. Например, пусть . Тогда получаем
Постройте НКА для множества всех строк над таких, что . (Например, , а .)
Преобразуйте каждый из следующих НКА в эквивалентный ДКА:
НКА , где
| 0 | 1 | |
|---|---|---|
| - | ||
| - | - |
НКА на рисунке 2.27(a).
НКА на рисунке 2.27(b).
НКА на рисунке 2.27(c).
Для каждого из следующих языков постройте ДКА, принимающий этот язык:
Множество двоичных строк, содержащих одновременно подстроку 010 и подстроку 101.
Множество всех двоичных строк, заканчивающихся на 00, 01 или 10.
Множество двоичных строк, содержащих в качестве подстрок и 001, и 110, либо не содержащих ни 001, ни 110.
Множество двоичных строк, у которых и четвёртый символ справа, и четвёртый символ слева равны 0. [Примечание: обе строки 0110 и 10101 принадлежат этому множеству.]
Рассмотрим следующую таблицу умножения на :
Постройте НКА для следующих языков:
.
.
.
Найдите ДКА, принимающий язык .
Постройте НКА, принимающий множество двоичных строк нечётной длины, содержащих подстроку 00.
Найдите регулярное выражение для языка, принимаемого НКА на рисунке 2.29(a).
Для каждого из следующих регулярных выражений постройте ДКА, принимающий :
.
.
.
Для каждого из следующих языков найдите НКА, который его принимает:
.
.
.
На рисунке 2.41 показан НКА, принимающий , построенный по методу примера 2.22. Четыре -перехода нельзя устранить по правилу теоремы 1.25. Примените метод из доказательства теоремы 2.31, чтобы сократить некоторые из его -переходов. Можете ли вы, исходя из этого примера, найти более общее правило (чем теорема 1.25) для устранения избыточных -переходов?
Рисунок 2.41: НКА, принимающий 0*.
Для каждого из языков, принимаемых НКА на рисунке 2.42, найдите регулярное выражение.
Рисунок 2.42: Два НКА для упражнения 4.
Пусть — некоторый . Постройте , такой что .
Пусть — подстановка над . Пусть — регулярный язык, и для каждого язык регулярен. Тогда также является регулярным языком.
Покажите, что для любого языка , если регулярен, то также регулярен.
Пусть — регулярный язык над , — положительное целое число, а — отображение из в . Докажите, что
регулярен.
Докажите, что если регулярен, то регулярен и .
Покажите, что если и — регулярные языки над , то
также регулярен.
Покажите, что если — регулярный язык, то регулярен и
Покажите, что если — регулярный язык, то регулярен и
Покажите, что если — регулярное множество, то регулярно и
Пусть и — два регулярных языка. Покажите, что язык, определённый как
также регулярен.
Покажите, что если регулярен, то регулярен и
Докажите следующее тождество:
, где .
.
Для любых двух битов , обозначает исключающее ИЛИ и ; то есть и . Для любых двух двоичных строк и с , обозначает поразрядное исключающее ИЛИ строк и . Например, если и , то . Пусть и . Найдите регулярное выражение для каждого из следующих языков:
.
.
.
Покажите, что если и — регулярные языки, то регулярны и следующие языки:
.
.
, где — фиксированная строка.
.
.
.
.
Приведите альтернативное доказательство примера 2.42, основанное на следующей идее: мы можем моделировать НКА на вместе с на , моделируя на каждом шаге два перехода и один переход . (Таким образом, новый НКА для имеет всего дорожки.)
Покажите, что если и — регулярные языки, то регулярны и следующие:
.
.
.
.
.
.
.
.
Рассмотрим булеву функцию . Для любых двоичных строк одинаковой длины обозначим через поразрядное применение функции к . То есть, если для , , где каждый — бит из , то равно
Покажите, что если языки регулярны, то язык
\begin{aligned} \left\{ f\left(x_{1}, x_{2}, \cdots , x_{n}\right) \mid & \left|x_{1}\right|=\left|x_{2}\right|=\cdots =\left|x_{n}\right| \\ & x_{1} \in A_{1}, x_{2} \in A_{2}, \cdots , x_{n} \in A_{n}\right\} \end{aligned}также регулярен.
В упражнении 3(c) выше покажите, что для любого регулярного языка число различных конечно. Найдите верхнюю оценку для этого числа, предполагая, что принимается ДКА с состояниями.
Верны ли следующие утверждения? Докажите или опровергните ваш ответ.
Если регулярен и , то регулярен.
Если регулярен и , то регулярен.
Если регулярен, то регулярен.
Если и регулярны, то регулярен.
Если и регулярны, то регулярен.
Покажите, что каждый регулярный язык в можно представить в виде
для некоторых целочисленных констант и .
Подмножество неотрицательных целых чисел является в конечном счёте периодическим, если существуют два положительных целых числа , такие что для всех из следует . Докажите следующие утверждения:
Для любого регулярного языка множество в конечном счёте периодическое.
Язык над регулярен тогда и только тогда, когда в конечном счёте периодическое.
Если — отображение из целых чисел в целые числа, такое что в конечном счёте периодическое для каждого в конечном счёте периодического множества , то множество регулярно для любой пары регулярных множеств и .
Если — отображение из целых чисел в целые числа, такое что в конечном счёте периодическое для каждого в конечном счёте периодического множества , то множество регулярно для любого регулярного множества .
Примените упражнение 10(d) выше, чтобы доказать следующие результаты:
Если — регулярный язык, то регулярен и . [Подсказка: используйте теорему Ферма, которая утверждает, что для любого нечётного целого числа существует целое число , такое что .]
Если — регулярный язык, то регулярен и .
Пусть . Найдите все классы эквивалентности отношения .
Пусть — множество непустых двоичных строк, начинающихся и заканчивающихся одним и тем же символом. Найдите все классы эквивалентности отношения .
Покажите, что регулярен тогда и только тогда, когда существует положительное целое , такое что тогда и только тогда, когда для каждого с , .
Найдите минимальный ДКА для языка .
Постройте минимальный ДКА для языка .
Найдите минимальный ДКА, эквивалентный ДКА с рисунка 2.47.
Рисунок 2.47: ДКА M.
Покажите, что следующий язык не является регулярным:
Покажите, что не является регулярным.
Для произвольного языка определим отношение эквивалентности следующим образом:
Покажите, что регулярен тогда и только тогда, когда .
Найдите все классы эквивалентности отношения для следующих языков:
.
.
.
Множество двоичных строк, в которых каждый блок из четырёх символов содержит не менее двух нулей.
, где — число вхождений символа в .
Для каждого из следующих языков покажите, что , и, следовательно, не является регулярным.
.
.
.
.
Для каждого из следующих языков покажите, что никакие две строки не могут лежать в одном классе эквивалентности отношения .
.
.
Постройте минимальные ДКА для языков, принимаемых ДКА на рисунках 2.52(a) и 2.52(b).
Рисунок 2.52: Два ДКА для упражнения 4.
Постройте минимальный ДКА, эквивалентный НКА с рисунка 2.53.
Рисунок 2.53: НКА для упражнения 5.
не является регулярным языком.
не является регулярным языком.
Покажите, что не является регулярным языком.
Покажите, что не является регулярным.
Покажите, что язык не является регулярным.
Рассмотрим следующую таблицу умножения на :
Напомним, из примера 2.28, что для любой строки из , обозначает значение, получаемое перемножением символов слева направо. Покажите, что множество
не является регулярным.
Покажите, что множество всех строк над алфавитом
представляющих корректное умножение, не является регулярным. Например, из соотношения
следует, что данная строка принадлежит :
Покажите, что множество двоичных представлений целых чисел из множества регулярно, а множество троичных представлений (представлений по основанию 3) целых чисел из не является регулярным.
Покажите, что не является регулярным.
Покажите, что не является регулярным.
Пусть — регулярный язык. Покажите, что
не обязательно регулярен.
Покажите, что следующие языки не являются регулярными.
.
.
.
.
.
.
Для каждого из следующих языков определите, является ли он регулярным. Приведите доказательство своего ответа.
Множество двоичных строк с равным числом 0 и 1.
Множество двоичных строк с равным числом вхождений 01 и 10.
Множество двоичных строк с равным числом вхождений 010 и 101.
.
.
.
Пусть — алфавит из примера 2.65.
Покажите, что множество всех строк над алфавитом , представляющих корректное деление, не является регулярным. Например,
из этого следует, что данная строка принадлежит :
Покажите, что множество всех строк над , представляющих корректное умножение, у которых второй множитель равен 3, является регулярным.
Верно ли, что для любого регулярного языка над множество также регулярно? Докажите свой ответ.
Докажите следующую усиленную форму леммы о накачке: для любого регулярного языка и любого положительного целого существует положительное целое , такое что любую строку из с можно разложить в , где и для любого .
Найдите регулярный язык , для которого
не является регулярным.
Пусть и — регулярные множества над алфавитом . Какие из следующих языков, если такие есть, обязательно являются регулярными?
.
.
.
.
.
.
Рассмотрим язык
где и — непустые множества над алфавитом . Можете ли вы найти регулярные множества , такие что не регулярен? Можете ли вы найти регулярные множества , такие что регулярен? Что если должны быть бесконечными регулярными множествами?
Является ли язык регулярным? Докажите свой ответ.
Пусть — язык над алфавитом . Покажите, что регулярен. [Подсказка: докажите и используйте тот факт, что если и — взаимно простые натуральные числа, то для любого целого числа существуют неотрицательные целые числа и , такие что .]