млита-пми / Программа экзамена МЛиТА
.pdf
11. Исчисление предикатов. Определение формул. Определение интерпретации. Свойства операций с кванторами.
Предикат – переменное высказывание, истинное значение которого зависит от параметра. Если аргумент один – предикат выражает свойство аргумента, если больше – то отношение между аргументами.
Число интепретаций бесконечно. Интерпретация – то что входит в функцию.
Выбрали предметное множество, переменные, функции. На множестве термов определяем отношения, которые и является атомами, они могут принимать значения истина или ложь.
12. Логический вывод. Основные теоремы логического вывода.
Основные теоремы логического вывода:
13. Аксиоматика исчисления предикатов. Основная теорема о дедукции.
14. Предваренная форма. Алгоритм приведения к предваренной форме. Нормальная сколемовская форма. Алгоритм приведения к ней.
15. Алгоритм унификации и метод резолюций для предикатов.
Метод резолюций:
16. Формальные языки и операции с ними. Свойства автоматных языков и замкнутость относительно некоторого набора операций (перечислить и доказать).
17. Формальные грамматики: КС-грамматики. Лемма о накачке. Примеры КС-языков, не являющихся автоматными.
Контекстно-свободные грамматики
Лемма о накачке: Любой автоматный язык удовлетворяет такому свойству: Если язык бесконечный, то в нём обязательно найдётся такое слово, которое можно разбить на три части. И если взять среднюю часть и повторять её любое количество раз, то слово всё равно будет принадлежать языку.
Доказательство: Пусть существует язык и автомат, который его распознаёт. Пусть у автомата состояний, возьмём слово длиннее . Тогда при прохождении слова через автомат какие-то состояния будут повторяться. Цикл, который образуется при повторении состояния, и будет соответствовать средней части слова. Если пройти по этому циклу несколько раз, автомат всё равно распознаёт слово, так как цикл можно повторять сколько угодно раз, и слово останется в языке.
18. Понятие конечного автомата. Распознающий автомат. Алгоритм построения автоматного языка по автоматной грамматике и обратно.
19. Отличие автомата от алгоритма. Существование или несуществование конечного автомата для выполнения арифметических операций (сложение, вычитание, умножение) натуральных чисел неограниченной длины.
Автомат— это модель с конечным числом состояний и конечной памятью. Он распознаёт регулярные языки и реализует только те преобразования строк, которые не требуют хранения «бесконечно большого» промежуточного состояния.
Алгоритм— может использовать неограниченную память, делать произвольные вычисления, хранить и менять произвольные числа, выполнять циклы/рекурсию с произвольной глубиной.
Итого: алгоритм — общая вычислительная модель с неограниченной памятью; автомат — простое устройство с конечной памятью.
1. Существует конечный автомат, который складывает числа произвольной длины.
Док-во: пусть конечный автомат имеет n состояний. Для сложения достаточно хранить только перенос между разрядами. Автомат читает пары цифр чисел по разрядам от младших к старшим и по текущему состоянию (перенос) вычисляет сумму текущего разряда и обновляет перенос для следующего разряда. Так как количество возможных переносов конечно, все переходы и состояния конечны. Следовательно, конечный автомат корректно выполняет сложение чисел любой длины.
2. Существует конечный автомат, который вычитает числа произвольной длины.
Док-во: пусть конечный автомат имеет n состояний. Для вычитания достаточно хранить только заем между разрядами. Автомат читает пары цифр чисел по разрядам от младших к старшим и по текущему состоянию (заём) вычисляет разность текущего разряда и обновляет заем для следующего разряда. Так как количество возможных займов конечно, все переходы и состояния конечны. Следовательно, конечный автомат корректно выполняет вычитание чисел любой длины.
3. Не существует конечного автомата, который перемножает числа произвольной длины.
Док-во: пусть конечный автомат с n состояниями якобы реализует умножение двух чисел произвольной длины. Рассмотрим два числа длины >n в позиции. Например, числа A и B длины n+1. При чтении этих чисел автомат проходит через последовательность состояний длиной >n. По принципу Дирихле, какоето состояние повторится. Это означает, что автомат «не различает» две разные части входа (он не может помнить всю информацию о длинном числе). А умножение требует хранения произвольного количества промежуточной информации, например, сумм частичных произведений. Так как состояние конечного автомата конечно, он не может корректно вычислить результат для всех длин чисел.
20. Алгоритм построения детерминированного автомата по недетерминированному.
