Конспект по матлогике
.pdfПереформулировка теоремы Если формальная арифметика непротиворечива, то в ней не выводимы формулы, содержащие
утверждения о её непротиворечивости
Переформулировка теоремы Если в формальной арифметике выводима ¬ ( (0 = 1)), то в ней выводима (0 = 1)
Переформулировка теоремы Если средствами формальной арифметики можно доказать её непротиворечивость, то она противоречива
16.Машина Тьюринга. Недетерминированная машина Тьюринга. Определение времени и памяти машины Тьюринга
Машина Тьюринга (МТ) – абстрактная вычислительная машина, состоящая из бесконечной вправо ленты, разделенной на ячейки, в каждую из которых записывается по одному символу, и управляющего устройства – головки
Конкретная машина задаётся:
1)Алфавитом = { 0, … , }0 ∙ - бланковый (пустой) символ, всегда стоит в крайних ячейках ленты
2)Состояниями = { 0, 1, … , }0 – выходное состояние1 – входное состояние
3)Множеством правил перехода (команды)→ ′ ′
Стрелка задает направление перемещения головки (можно не перемещать)
′ - задает новые состояние′ - записываемый в ячейку символ
Вячейках ленты записаны символы алфавита
Головка находится в одном из состояний, видит одну ячейку. Изначальное положение – после левого
∙
Программа для машины Тьюринга – список команд, в которых нет 2х команд с одинаковой левой частью и разными правыми
Машину Тьюринга можно обобщить, изменяя число лент, головок, размерность ленты
Недетерминированная машина Тьюринга (НМТ) – машина Тьюринга, на которую не распространяется ограничение: если левые части команд одинаковы, то одинаковы и правые части
НМТ является предикатом, а не алгоритмом
Таким образом алгоритм превращается в исчисление: на любом шаге, если можно выполнить более одной команды, лента размножается и на каждой вновь полученной ленте выполняется одна из возможных команд
НМТ выдаёт 1, если хотя бы одна ветка вычислений, на которой машина закончит работу, иначе 0
Время – количество шагов до конечного состояния. В НМТ смотрим на минимальную ветку Память – количество используемых ячеек. В НМТ смотрим на ветку – решение Рабочая зона – число использованных во время работы ячеек Время вычислений – количество рабочих тактов МТ
11
P-SPACE – набор всех проблем разрешимости, которые могут быть разрешимы МТ с помощью ленты длинной не более полинома от длинны исходных данных
NP-SPACE – разрешимы на НМТ с полиномиальным ограничением пространства LIN-SPACE – разрешимы на МТ с линейным ограничением пространства EXP-LIN-SPACE – разрешимы на МТ с 2 ( ) ограничением пространства3 EXP-POLY-SPACE– разрешимы на МТ с 2 ( ) ограничением пространства
P-TIME = P – набор всех проблем разрешимости, которые могут быть разрешимы МТ за время не более полинома от длинны исходных данных
NP-TIME = NP – разрешимы на НМТ за время не более чем за полином
(Н)МТ с полиномиальным ограничением пространства – ( ): на любых входных данных длинной (Н)МТ посетит не более ( ) клеток
17.Полиномиальная m-сводимость
≤ множество (предикат) полиномиально сводится к множеству (предикату) означает, что
( ( ) )
Задача сводится к при помощи операций, число которых не превышает ( )
18.NP-полная задача. Примеры
NP-полная задача – это:
2)ВЫП ≤
3)( ≤ )
Задача ВЫП – есть ли набор пропозициональных переменных, обращающих формулу в истину
Примеры NP-полных задач:
1)Проблема раскраски графа
2)Задача коммивояжера
3)Полиномы Жегалкина
19.NP-полнота задачи 3-ВЫП
Тривыполнимость 3-ВЫП – формула в КНФ, у которой в любой элементарной дизъюнкции ровно 3 члена Теорема
3-ВЫП – NP-полная задача, то есть ВЫП≤ 3-ВЫП
□
Нужно доказать, что любую формулу, находящуюся в конъюнктивной нормальной форме, можно свести к форме, чтобы любая элементарная дизъюнкция содержала 3 разные переменные
Пусть – число переменных
= 1: ¬ (¬ )&(¬ ¬ )
= 2: ( ¬ ) ( ¬ )&( ¬ ¬ )
= 3: ничего не нужно делать
≥ 4: 1 2 …
Пусть 1 1 2, 2 1 2 3 и т.д.
Последовательно получаем (1 2 1)&(1 3 2)& … &( −2 −1) 1 2 … Рассмотрим (1 2 1) (1 2 1)&(1 1 2) (¬1&¬2 1)&(¬1 1 2)
(¬1 1)&(¬2 1)&(¬1 1 2)
■
3 n – длина исходных данных, o(n) – линейная функция, ( ) – полином
12
20.NP-полнота задачи проверки системы полиномов Жегалкина
Полином Жегалкина – полином из |
[ , … , ] |
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
«И» – 1 |
|
& |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
«Л» – 0 |
|
+ ( ) |
|
|
|
|
|
|
|
|
|
|
|
|
|
( , … , |
) = … |
|
|
|
|
… |
… |
где , , … , |
|
|||||||
|
1 |
|
1 |
2 |
2 |
|
1,2 |
1 2 |
1,3 1 3 |
1,…, 1 |
|
1 |
1,…, |
|
||
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
= 0 |
|
|
|
|
|
|
|
|
|
|
|
|
Рассмотрим систему { = 0 |
где , – полиномы Жегалкина. Эта система равносильна |
|
|
|||||||||||||
[ |
+ + ≡ 0( 2) |
|
|
|
|
|
|
|
|
|
|
|
|
|||
(1 + )(1 + ) ≡ 1( 2) |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
1 = 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{ |
|
( + 1) … ( + 1) ≡ 1( 2) ( 1) … ( |
1) 1 |
|
|
|
|
|
||||||||
|
|
|
1 |
|
|
|
1 |
|
|
|
|
|
|
|
|
|
= 0
Таким образом поиск решения системы из уравнений с полиномами Жегалкина сводится к поиску решения сравнения с 1, а это и есть задача ВЫП Наша задача сводится к ней полиномиально (путем построения сравнения) проверка системы полиномов Жегалкина – NP-полная задача
21.Полиномиально быстрые сравнения с нулём полинома Жегалкина
( 1, … , ) = 1 2 2 … 1,2 1 2 1,3 1 3 … 1,…, 1 … = 0
Если = 0 решение – нулевой вектор (( 1, … , ) = 0 )
Если = 1 берем член с минимальной степенью такой, что его коэффициент ,…, = 1, и всем переменным = = 1
Полином Жегалкина имеет решение, если он ≠ 1
Рассмотрим 2 уравнения { == 00 + + = 0 – просто решить, 1 = 0? 2 слагаемых, значит
сложность растет экспоненциально Лучше сделать (1 + )(1 + ) ≡ 1( 2)
1 = 0 Тогда { (1 + 1) … (1 + ) ≡ 0( 2)
= 0
22.Определение элементарных по Кальмару алгоритмов
Элементарная по Кальмару программа, если:
1)Программа без вложенных циклов
2)Программа, вычислимая на МТ за время, не превосходящее 222…| | = 2| |, где | | – длина исходных данных, – константа
3)Программа, вычислимая на МТ с затратами памяти не более 222…| | = 2| | ячеек, где | | – длина исходных данных, – константа
4)Паскалевидная функция, где из циклов допустим только for
23.Определение примитивно-рекурсивных программ
Базовые примитивно-рекурсивные функции: 1) Нулевая функция (без аргументов)
2) Функция следования : ( ) = + 1
3) Функция , где 0 < ≤ , от переменных, сопоставляющая любому упорядоченному набору
1, … , натуральных чисел число из этого набора
Операторы:
1)Суперпозиция– функция от переменных
1, … – упорядоченный набор функций от переменных
13
– оператор суперпозиции: ( 1, … , ) = ( 1( 1, … , ), … ( 1, … , ))
2)Примитивная рекурсия– функция от переменных, исходная функция в начале итерационного процесса
– функция от + 2 переменных, оператор, принимающий переменных 1, … , , номер шага, функцию на данном шаге и возвращающая функцию на следующем шаге
– функция от + 1 переменных (оператор примитивной рекурсии) такой, что
{ ( 1, … , , 0) = ( 1, … , )
( 1, … , , + 1) = ( 1, … , , , ( 1, … , , ))
Множество примитивно-рекурсивных функции - минимальное множество, содержащее все базовые функции и замкнутое относительно указанных операторов
Частично-рекурсивная функция – примитивно-рекурсивная функция, но к операторам добавлен
оператор минимизации: ( 1, … , , ) и ( 1, … , ) = argmin{ : ( 1, … , , ) = 0}. Не исключены
зацикливания
Общерекурсивная функция – всюдуопределённая частично-рекурсивная функция
Тезис Чёрча Всякий вычислимый всюдуприменимый алгоритм может быть запрограммирован с помощью
общерекурсивной функции
Тезис Клини Всякий вычислимый всюдуприменимый алгоритм может быть запрограммирован с помощью
частично-рекурсивной функции
Задача определения того, является ли частично-рекурсивная функция с данным описанием общерекурсивной или нет – алгоритмически неразрешима
Примитивно-рекурсивная функция (альтернативное определение), если:
1)Числа неограниченной разрядности или файлы неограниченной длины
2)Запрещены goto
3)Запрещены while/repeat
4)Запрещены процедуры и функции
5)Разрешены вложенные циклы for
24.Определение паскалевидной функции. Примеры
Паскалевидная функция – функция на языке Pascal, у которой:
1)Сколь угодно длинные целые числа
2)Не используются множества
3)Не используются файлы
4)Не используются структуры
5)Не используются процедуры и функции, принимающие в качестве параметров имена процедур и функции
Длинна исходных данных – сумма длин всех фактических параметров функции
25.Нормальный алгоритм Маркова
Команды в алгоритме Маркова – преобразования строк
1 → [ ] 1
{– схема нормально алгоритма
→ [ ]
Если правило подстановки с « » это правило заключительное. « » алфавиту
Принцип работы:
14
В слове ищется 1, если нашлось, то левое вхождение заменяется на 1 и, если правило с « », завершаем работу. Если 1 не нашлось, то ищем 2 и так далее Если ни одну строку не нашли конец работы. Если встретили правило с « » и произвели замену конец работы На каждом шагу схема просматривается сначала
Алгоритм Маркова – один из стандартных способов формального определения понятия алгоритма
Принцип нормализации – любой алгоритм (в том числе и бесконечный) может быть запрограммирован нормальным алгоритмом Маркова
Теорема Любая машина Тьюринга может быть запрограммирована нормальным алгоритмом Маркова и наоборот
26.Нормальный алгоритм Маркова с правилами Поста
Команды вида: 1 1 2 2 3 … +1 → [ ] 1 1 … +1 где { 1, … , } { 1, … , }, – переменные, – слова в алфавите
Примеры:
1)1 → 1 1 – удвоение слова
2)1 2, length( 1) = length( 2) length( 1) + 1 = length( 2) → 1 – первая половина слова
27.Простейшие теоремы о невозможности алгоритмов
Самоприменимость – свойство алгоритма успешно завершаться на данных, представляющих собой формальную запись этого же алгоритма
Алгоритмическая разрешимость – свойство формальной теории обладать алгоритмом, определяющим по данной формуле, выводима она из множества аксиом данной теории или нет Задача определения самоприменимости алгоритма – алгоритмически неразрешима
Теорема о самоприменимости Невозможно простроить алгоритм : ! (" ") ¬! (" ")
□
Предположим = ! (" ") ¬! (" ")
■
Теорема о самоаннулируемости Невозможно построить алгоритм : (" ") = 0 ¬ (" ") = 0
□
Предположим = (" ") = 0 ¬ (" ") = 0
■
28.Алгоритмическая неразрешимость простейших массовых задач
Массовая задача – формула с параметрами, вместо которых могут быть подставлены объекты любого типа
Пример (? , ) ( 2 + + < 0) – определить по целым параметрам и , есть ли такой
Теорема Следующие задачи алгоритмически неразрешимы
1)(? " ") ! (" ")
2)(? " ") (" ") = 0
15
□
1) Предположим – всюдуприменимое решение ( (" ") = Л ! (" "))
Рассмотрим (" ") = IF (" ") = Л THEN WHILE " " = " "
DO " ": = 1 OD
FI
Рассмотрим ( (" ")):
Если ( ) = Л ¬! ( ) ! (" ") Если ( ) ≠ Л ! ( )
Построили ( ) такой, что ! ( (" ")) ¬! (" ")!? Противоречие с теоремой о самоприменимости
2)Предположим – всюдуприменимое решение ( (" ") = Л (" ") = Л)
Рассмотрим (" ") = IF (" ") = Л
THEN return 1; ELSE return Л;
FI
Рассмотрим ( ):
Если ( ) = Л (" ") ≠ Л Если ( ) ≠ Л (" ") = Л (" ") = Л
Построили ( ) такой, что ( (" ")) = Л ¬ (" ") = Л!? Противоречие с теоремой о самоаннулируемости
■
29.Определение алгоритмически неразрешимой проблемы
Алгоритмическая неразрешимость – формальная теория не обладает алгоритмом, способным по данной формуле определить, выводима она из множества аксиом данной теории ли нет
Алгоритмически неразрешимая задача – задача, имеющая ответ «да» или «нет» для каждого объекта некоторого множества, для которого ¬ алгоритма, который бы давал правильный ответ за конечное число шагов
Разрешимая проблема:
1) ! ( )
и
2) ( ( ) = 0 ( ))
Неразрешимая проблема:
1) ¬! ( )
или
2) ¬( ( ) = 0 ( ))
30.Проблема применимости
Теорема о алгоритмической неразрешимости проблемы применимости Для универсального4 алгоритма невозможно построить всюдуприменимый алгоритм , для которого
(( ( ) = 0) ! ( ))
□
Предположим такое, что { ( ( ) = 0 ! ( ))! ( )
Тогда для ( ) построим всюдуприменимое продолжение 1( ): (! ( ) ( ( ) = 1( )))
Таким продолжением является алгоритм:_1( ) = IF ( ) = 0 THEN ( )
ELSE ( ) FI
4 Определение в следующем вопросе
16
по теореме о непродолжимости универсального алгоритма5, можно указать такие начальные данные, по которым неприменим!? невозможно построить
■
31.Непродолжимость универсального алгоритма до всюдуприменимого
Программа называется универсальной, если по коду программы и начальным данным выдает результаты работы, условно равные результату работы над
( ," ") ( )
– продолжение , если (! ( ) ( ) = ( ))
≈ – алгоритм условно равен , если (! ( ) ! ( ) & ( ) = ( ))
Теорема о непродолжимости универсального алгоритма Для алгоритма , являющегося продолжением , можно указать такие начальные данные, где неприменим
□
Построим алгоритм , который к концу последовательности (или ) чисел ( , ) приписывает единицу Предположим, это алгоритм 1( ) = ( ( , ), 1)
(" 1"," 1") = 1(" 1") = ( (" 1"," 1"), 1) Предположим, что ! (" 1"," 1") ! (" 1"," 1")
– продолжение (" 1"," 1") = ( (" 1"," 1"), 1) !? так как они не равны неприменим к
(" 1"," 1")
■
32.Алгоритмическая неразрешимость равенства слов в полугруппе
= { 1, … , } – алфавит, образующиесвободная полугруппа, слова
1,1 … 1, 1 = 1,1 … 1, 1
{ |
|
|
|
|
|
|
|
|
|
– определяющее соотношение |
|
|
|
… |
|
|
= |
|
… |
|
|
|
,1 |
|
, |
|
|
, |
|
|||
|
|
|
|
|
,1 |
|
|
|||
|
|
|
|
|
|
|
|
|
|
Два слова эквиваленты в полугруппе, если они либо равны графически, либо одно из них получено из другого путём конечной последовательности элементарных преобразований описанных определяющими соотношениями
Задача: по паре слов из полугруппы определить, эквиваленты они или нет
Докажем, что исчисление, где проблема равенства слов в полугруппе алгоритмически неразрешима: Будем строить исчисление на основе универсальной МТ (то есть универсальный алгоритм), который выдает «Л» при завершении
= { , 0, … , , 0, … , } – алфавит < 1 >, где – аксиома→ ′ ′
→ ′ ′ – команды машины Тьюринга
→ ′ ′
На её основе напишем равенства, задающие исчисление
→ ′ ′ { → ′ ′
→ ′ ′, где0( ) – универсальный алгоритм для нашей МТ
5 Теорема из следующего вопроса
17
Предположим, что МТ всегда удаляет передаваемую строку
Лемма
! 0( ) < 1 >=< 0 >, где
Таким образом 0 работает над словом и выдает пустое слово, когда есть равенство ! 0( ) – алгоритмически неразрешимая задача правая часть также алгоритмически неразрешима, то есть алгоритмически неразрешима задача равенства фиксированному слову
Из леммы следует, что проблема равенства слов в полугруппе с конечным числом образующих и определяющих соотношений для некоторой полугруппы алгоритмически неразрешима
□
« »
< 1 > 1 +1 +2 < 0 >
« »
< 1 > 1 +1 +2 < 0 >−1 +1 −1 +1 так как детерминированная МТ по индукции можем вырезать все
переходы справа налево < 1 > < 0 > ! 0( ) равносильно проблеме самоприменимости неразрешимо
■
33.Теорема Райса об инвариантных свойствах алгоритма
Свойство – формула некоторого логико-математического языка с одной свободной переменном для последовательности числен разрядности
– инвариантное свойство семейства с универсальным алгоритмом , если ,(( ( , ) ≈ ( , )) ( ) = ( )) 6
Свойство нетривиально, если ( ) & ¬ ( )
Теорема Райса Никакое нетривиальное инвариантное относительно условного равенства свойство алгоритмов не
является алгоритмически разрешимым
□
Предположим ( ) ¬! ( )
Рассмотрим ( ) IF !{n}(n) THEN 1 ELSE {n}(n) FI
( ) ¬! ( ) ¬! { }( ) свели к задача о самоприменимости, которая алгоритмически неразрешима наша задача также алгоритмически неразрешима
■
34.Обобщенная теорема Райса (формулировка)
Обобщенная теорема Райса Никакое нетривиальное инвариантное относительно условного равенства свойство алгоритмов класса
не является алгоритмически разрешимым посредством алгоритма класса
35.Определение конструктивных чисел и операций над ними
Конструктивная математика – есть только алгоритмы
Конструктивное число (КВЧ) – пара алгоритмов ,
– основание фундаментальной последовательности, переводит в
– регулятор сходимости, переводит в
Определение КВЧ: ( , > ( ) | ( ) − ( )| < 2− )
Их число счётно, так как запись алгоритма в памяти – счётно, строим числа с требуемой точностью
6 ≈ − условное равенство
18
Сложение:
+ ( ) = ( ) + ( )
+ ( ): | ( ) + ( ) − ( ) − ( )| ≤ | ( ) − ( )| + | ( ) − ( )| ≤ 2− + 2− = 2− +1 (если
, > ( + 1)
рассмотрим { , > ( + 1) ) + ( ) = max( ( + 1), ( + 1))
Отрицание: − ( ) = − ( ) − ( ) = − ( )
Умножение:
можно перемножить, если одно из чисел ограничено сверху
Функция в КВЧ – алгоритм, который по паре чисел выдает пару алгоритмов
– существует алгоритм, который по выдаёт такой , что верно
36.Правила сведения утверждений о корректности программ
Аннотирование программ – теоретическая отладка программы, целью которой является проверка утверждений о сложной программе посредством проверки утверждений о простых программах
Программа аннотирована корректно, если перед выполнением следующего за утверждением оператора это утверждение о текущем значении переменных, использованных в программе, выполняется
Если программа зависла до утверждения, то оно ничего не отражает
Фигурные скобки – аннотация Угловые скобки – условия, выполнение которых предполагается перед началом работы программы
Примеры:
1)x 0; {x=0} x x+2; {x=2}
2)корректность P; {A} Q; эквивалентна корректности P; {A} и <A> Q;
Программа корректно аннотирована в целом, если начиная работу после комментария при условии его истинности будут истинными все последующие комментарии и она аннотирована корректно
Частичная корректность программ: {A} P; {B} – триада Хаара
Если предусловие выполняется, то команда делает верным постусловие Если P не зависает, то триада истинна
Полная корректность программ:
<A> P; {B}
Если верно A, то P завершает работу и верно B
Правила перехода в логике Хаара:
{ & } 1{ }
1) { &¬ } 2{ }
{ } IF THEN 1 ELSE 2 FI { }
{ & } { }
2) { &¬ }{ }
{ } IF THEN FI { }
{ } 1{ }
3) { } 2{ } { } 1{ } 2{ }
19
{ &¬ }{ } { & } { } { &¬ }{ }
4) { & } { }
{ } WHILE DO { } OD { }
{ }{ }
5){ } { }
37.Аксиомы теории множеств Цермело-Френкеля
Предположим, у нас есть пустое множество 0
Построим : 1 { }, 2 { , { }}, 3 { , { , { }}} , …
Таким образом + 1 = { }
Аксиомы
1)( = ( )) – объемности
2)( {, } ) – пары
3)( ( & )) – объединения
4)( & ( + 1 )) – бесконечности
5)( & ( + 1 ) & (( & ( + 1 )) )) –
существования
6)( { : Φ} & [Φ] ) – выделения
7)( ( ) ) – степени
8)( ≠ ( & ∩ = )) – регулярности (фундирования)
9): → ( ( ( ) )) – выбора
Парадокс Рассела Наивная теория множеств противоречива
= {: ¬( )} ( )
38.Арифметика целых и рациональных чисел
Арифметика : пара ( , ) −
1)( , ) = (′, ′) − = ′ − ′
2)( , ) + (′, ′) = (′′, ′′)
− + ′ − ′ = ′′ − ′′
+ ′ + ′′ = + ′ + ′′
3)( , ) (′, ′) = (′′, ′′)
( − ) (′ − ′) = ′′ − ′′
′ + ′ + ′′ = ′ + ′ + ′′
4)( , ) + 1 = (′, ′)
− + 1 = ′ − ′
+ 1 + ′ = ′ +
Арифметика : ( , , ) |
− |
|
|
|
|
|
|
|
|
|
|||
+1 |
|
′− ′ |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
||||||
1) |
( , , ) = (′, ′, ′) |
|
− |
= |
|
|
|
|
|
||||
|
+1 |
′+1 |
|
|
′− ′ |
|
′′− ′′ |
||||||
|
|
|
|
|
|
|
|||||||
2) |
( , , ) + (′, ′, ′) = (′′, ′′, ′′) |
− |
+ |
= |
|||||||||
+1 |
′+1 |
′′+1 |
|||||||||||
|
|
|
|
|
|
|
|
|
|
39.Смешанная и конечнозначная логика
Конечнозначная логика Поста – обобщение двузначной логики, использующая числа 1, … , при для обозначения истинности или ложности 1 − абсолютная ложь
2 − почти ложь
− абсолютная истина
20