млита-пми / Программа экзамена МЛиТА
.docxПрограмма экзамена МЛиТА-2025
1.
Задание
булевых функций таблицами. Подсчет
числа бинарных функций с различными
свойствами. Фиктивные
переменные.
2. Логические операции и их свойства.
По-хорошему надо расписать определение самих операций и только потом уже сами свойства. !Доказательство добавить!
3. Двойственность. Теорема о двойственной к сложной функции. Самодвойственность.
4. Булевы функции и классы замкнутости.
5. Классы замкнутости и теорема Поста.
Доказательство теоремы!!!
https://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D0%BE%D0%BB%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9._%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%9F%D0%BE%D1%81%D1%82%D0%B0_%D0%BE_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D0%B9_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B5_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9
6. СДНФ, СКНФ, связь между ними.
7. Доказательство единственности представления булевых функций каноническим многочленом Жегалкина. Число многочленов Жегалкина от n переменных.
Доказательство единственности
1. Подсчет количества объектов.
Количество различных полиномов Жегалкина от n переменных. В полиноме каждый коэффициент (a₀, a₁, ..., a₁₂...ₙ) может быть либо 0, либо 1. Сколько всего таких коэффициентов? Это число всех возможных конъюнкций (включая константу 1). Для набора из n переменных можно составить конъюнкцию, выбирая любое подмножество этих переменных. Общее количество коэффициентов = C(n,0) + C(n,1) + ... + C(n,n) = 2ⁿ.Так как каждый коэффициент независимо принимает 2 значения (0 или 1), общее число различных полиномов Жегалкина равно 2^(2ⁿ).
Количество всех булевых функций от n переменных. Булева функция — это отображение из {0,1}ⁿ (всего 2ⁿ наборов аргументов) в {0,1}. Для каждого из 2ⁿ наборов значение функции можно выбрать 2 способами. Следовательно, общее число различных булевых функций равно 2^(2ⁿ).
Вывод: Количество полиномов Жегалкина (2^(2ⁿ)) равно количеству всех булевых функций (2^(2ⁿ)).
2. Инъективность соответствия.
Если бы разным полиномам Жегалкина соответствовала одна и та же функция, то количество различных функций было бы меньше, чем 2^(2ⁿ). Однако мы только что установили, что их количество равно 2^(2ⁿ). Следовательно, разным полиномам должны соответствовать разные функции. А это означает, что каждой булевой функции соответствует ровно один полином Жегалкина.
8. Методы упрощения ДНФ. Геометрическая интерпретация.
Карты Карно:
Метод минимизирующих карт:
https://stepik.org/lesson/700560/step/6?unit=700541
Г
еометрическая
интерпретация карт Карно:
9. Исчисление высказываний. Понятие интерпретации. Аксиоматика исчисления высказываний.
Атомы - буквы, которые могут принимать значения истина или ложь.
Интерпреатция это таблица истинности. 2 в степени n. На каждом наборе имеем интерпретацию которая иммет значение 0 или 1.
10. Резольвента и метод резолюций автоматизации логического вывода.
11. Исчисление предикатов. Определение формул. Определение интерпретации. Свойства операций с кванторами.
Предикат – переменное высказывание, истинное значение которого зависит от параметра. Если аргумент один – предикат выражает свойство аргумента, если больше – то отношение между аргументами.
Число интепретаций бесконечно. Интерпретация – то что входит в функцию.
Выбрали предметное множество, переменные, функции. На множестве термов определяем отношения, которые и является атомами, они могут принимать значения истина или ложь.
12. Логический вывод. Основные теоремы логического вывода.
Основные теоремы логического вывода:
13. Аксиоматика исчисления предикатов. Основная теорема о дедукции.
14. Предваренная форма. Алгоритм приведения к предваренной форме. Нормальная сколемовская форма. Алгоритм приведения к ней.
15. Алгоритм унификации и метод резолюций для предикатов.
Метод резолюций:
16. Формальные языки и операции с ними. Свойства автоматных языков и замкнутость относительно некоторого набора операций (перечислить и доказать).
17. Формальные грамматики: КС-грамматики. Лемма о накачке. Примеры КС-языков, не являющихся автоматными.
Контекстно-свободные грамматики
Лемма о накачке: Любой автоматный язык удовлетворяет такому свойству: Если язык бесконечный, то в нём обязательно найдётся такое слово, которое можно разбить на три части. И если взять среднюю часть и повторять её любое количество раз, то слово всё равно будет принадлежать языку.
Д
оказательство:
Пусть существует язык и автомат, который
его распознаёт. Пусть у автомата
состояний, возьмём слово длиннее
.
Тогда при прохождении слова через
автомат какие-то состояния будут
повторяться. Цикл, который образуется
при повторении состояния, и будет
соответствовать средней части слова.
Если пройти по этому циклу несколько
раз, автомат всё равно распознаёт слово,
так как цикл можно повторять сколько
угодно раз, и слово останется в языке.
18. Понятие конечного автомата. Распознающий автомат. Алгоритм построения автоматного языка по автоматной грамматике и обратно.
19. Отличие автомата от алгоритма. Существование или несуществование конечного автомата для выполнения арифметических операций (сложение, вычитание, умножение) натуральных чисел неограниченной длины.
Автомат— это модель с конечным числом состояний и конечной памятью. Он распознаёт регулярные языки и реализует только те преобразования строк, которые не требуют хранения «бесконечно большого» промежуточного состояния.
Алгоритм— может использовать неограниченную память, делать произвольные вычисления, хранить и менять произвольные числа, выполнять циклы/рекурсию с произвольной глубиной.
Итого: алгоритм — общая вычислительная модель с неограниченной памятью; автомат — простое устройство с конечной памятью.
1. Существует конечный автомат, который складывает числа произвольной длины.
Док-во: пусть конечный автомат имеет n состояний. Для сложения достаточно хранить только перенос между разрядами. Автомат читает пары цифр чисел по разрядам от младших к старшим и по текущему состоянию (перенос) вычисляет сумму текущего разряда и обновляет перенос для следующего разряда. Так как количество возможных переносов конечно, все переходы и состояния конечны. Следовательно, конечный автомат корректно выполняет сложение чисел любой длины.
2. Существует конечный автомат, который вычитает числа произвольной длины.
Док-во: пусть конечный автомат имеет n состояний. Для вычитания достаточно хранить только заем между разрядами. Автомат читает пары цифр чисел по разрядам от младших к старшим и по текущему состоянию (заём) вычисляет разность текущего разряда и обновляет заем для следующего разряда. Так как количество возможных займов конечно, все переходы и состояния конечны. Следовательно, конечный автомат корректно выполняет вычитание чисел любой длины.
3. Не существует конечного автомата, который перемножает числа произвольной длины.
Док-во: пусть конечный автомат с n состояниями якобы реализует умножение двух чисел произвольной длины. Рассмотрим два числа длины >n в позиции. Например, числа A и B длины n+1. При чтении этих чисел автомат проходит через последовательность состояний длиной >n. По принципу Дирихле, какое-то состояние повторится. Это означает, что автомат «не различает» две разные части входа (он не может помнить всю информацию о длинном числе). А умножение требует хранения произвольного количества промежуточной информации, например, сумм частичных произведений. Так как состояние конечного автомата конечно, он не может корректно вычислить результат для всех длин чисел.
20. Алгоритм построения детерминированного автомата по недетерминированному.
2
1.
Регулярные
выражения. Теорема Клини.
Теорема Клини. “Каждому регулярному выражению можно построить автомат, который распознает язык, задаваемый данным регулярным выражением и наоборот."
Доказательсвто: Часть I: От регулярных выражений к конечным автоматам
Утверждение: Для любого регулярного выражения R существует НКА (с ε-переходами), распознающий в точности язык L(R).
Базис индукции:
Для R = ∅ строим НКА без конечных состояний.
Для R = ε строим НКА с двумя состояниями и ε-переходом от начального к конечному.
Для R = a (символ алфавита) строим НКА: начальное состояние →(a)→ конечное состояние.
Индукционный шаг: Предполагаем, что для подвыражений уже построены НКА.
Объединение R₁|R₂ (+):
Создаём новое начальное состояние и новое конечное состояние.
Добавляем ε-переходы:
Из нового начального → в начальные НКА для R₁ и R₂.
Из конечных состояний НКА R₁ и R₂ → в новое конечное состояние.
Конкатенация R₁R₂ (*):
Начальное состояние = начальное состояние НКА для R₁.
Конечное состояние = конечное состояние НКА для R₂.
Соединяем ε-переходом конечное состояние R₁ с начальным состоянием R₂.
Итерация Клини R*:
Создаём новое начальное и новое конечное состояние.
Добавляем ε-переходы:
Из нового начального → в начальное состояние R.
Из конечного состояния R → в новое конечное.
Из конечного состояния R → обратно в начальное состояние R (цикл).
Из нового начального → в новое конечное (для нуля повторений).
Эта конструкция гарантирует, что полученный НКА распознаёт язык, задаваемый регулярным выражением.
22. Машина Тьюринга. Построение композиций машин Тьюринга и соединения их условными операциями.
23. Нормальная схема алгоритма Маркова и примеры его работы. Идея о переводе команд машины Тьюринга в правила нормальной схемы Маркова.
Суть идеи перевода:
Конфигурацию машины Тьюринга (MT) — ленту, состояние и положение головки — кодируем в единую строку для алгоритма Маркова (НАМ). Символ состояния записывается в строке непосредственно слева от символа, на который указывает головка.
Каждая команда MT вида «в состоянии q, видя символ a, перейти в q', записать a', сдвинуться D» превращается в одно или несколько правил подстановки в НАМ.
Движение вправо (R): Команда q a -> q' a' R моделируется простым правилом q a -> a' q'. Состояние «перескакивает» через изменённый символ вправо.
Движение влево (L): Требует более сложных правил. Команда q a -> q' a' L моделируется набором правил вида x q a -> q' x a' для каждого возможного символа x слева. Состояние «перескакивает» через левый символ.
Завершение работы MT (достижение допускающего состояния q_yes) моделируется заключительным правилом в НАМ (например, q_yes ->.), которое очищает служебные символы и оставляет итоговое содержимое ленты.
Таким образом, один шаг MT имитируется одним применением правила НАМ к строке-конфигурации. Так как НАМ может точно воспроизвести все действия MT, это доказывает их вычислительную эквивалентность.
24. Алгоритмически неразрешимые задачи. Проблема останова и её связь с другими задачами.
Проблема останова
формулируется просто: существует ли
алгоритм
,
который по описанию произвольной
программы
и
входа
всегда
и правильно отвечает, остановится ли
когда-нибудь или будет выполняться
бесконечно? Ответ — нет: предположение
о существовании такого
ведёт
к конструктивному противоречию.
Конструируют программу
,
которая на входе
вызывает
и затем делает ровно противоположное
тому, что предсказывает
:
если
предсказывает
«останется»,
зацикливается,
и наоборот. При самоприменении
получается противоречие, поэтому
универсального решателя останова не
существует. Это не практическое
ограничение мощности компьютеров, а
логическое ограничение вычислимости:
некоторые вопросы о поведении программ
принципиально неразрешимы алгоритмически.
FRACTRAN (пасьянс Конвея)
— простая формальная система: программа
— упорядоченный список положительных
дробей
и
начальное натуральное число
;
шаг: найти первый дробь
такой,
что
—
целое, заменить
на
;
если ни один дробь не применим, процесс
останавливается. Суть связи FRACTRAN и
проблемы останова в том, что FRACTRAN
тьюринг-полон: для любой машины
(регистровой / Тьюринга) можно эффективно
построить список дробей и начальное
,
которые симулируют эту машину шаг в
шаг. Тогда вопрос «останется ли
FRACTRAN-процесс?» эквивалентен вопросу
«останется ли исходная машина?», и из
неразрешимости общей проблемы останова
следует неразрешимость задачи останова
в FRACTRAN.
Идея формирования
эквивалента FRACTRAN сводится к трём
моментам. Первый: кодировать конфигурацию
машины через разложение числа
на простые — каждой «ячейке» состояния
(регистру, счётчику) соответствует
фиксированное простое число, а значение
ячейки равно степени этого простого в
факторизации
.
Второй: кодировать текущее управляющее
состояние (номер инструкции) отдельным
простым, присутствующим в факторизации
с ненулевой степенью — таким образом
в
всегда
хранится и вектор регистров, и указатель
на текущую инструкцию. Третий: дроби
выполняют инструкции: дробь
применима
тогда и только тогда, когда в
содержатся
все простые из знаменателя в достаточных
степенях (это — условие), и при применении
степени простых из знаменателя
уменьшаются, а простых из числителя —
увеличиваются, что реализует изменения
регистров и переход в новое состояние.
Упорядоченность списка дробей даёт
семантику «первого подходящего перехода»,
а отсутствие применимого дроби
соответствует состоянию halt.
