34
P, NP и не только Антон Карпуткин Dept. of Computer Engineering, TUT

P, NP и не только

Embed Size (px)

Citation preview

Page 1: P, NP и не только

P, NP и не только

Антон КарпуткинDept. of Computer Engineering, TUT

Page 2: P, NP и не только

О чем я хочу рассказать

• Что такое «легко» и что такое «сложно»• P, NP и другие классы• Сложные проблемы из разных областей

Page 3: P, NP и не только

P&NP for dummies

• P – есть быстрый алгоритм• NP – перебор– Правильный ответ можно быстро проверить• SHA-256:

74722f1e2386c9d0806b92b7e02533f0e5d869c0e23e0f4c123021de48bbca0e• DevClub

• Более сложные классы– Перебор, проверить нельзя

Page 4: P, NP и не только

P&NP for dummies

???

Page 5: P, NP и не только

История

• 40-е годы – появился компьютер• 50-е годы – ух ты, он сам считает• 60-е годы – что-то как-то долго считает• 70-е годы –почему он так долго считает??

=> теория сложности вычислений

Page 6: P, NP и не только

O-нотация

• Основные параметры– Скорость– Память

• – размер входных данных• •

• • •

Page 7: P, NP и не только

Полином – легко!

• Алгоритм считается эффективным, если он выполняется за время – – легко???

• Большинство известных полиномиальных алгоритмов имеет небольшую степень– Primality test -

Page 8: P, NP и не только

Экспонента – сложно!

• Растет быстрее любого полинома

Page 9: P, NP и не только

Вообще не решается!

• Невычислимые функции– Задача останова– Проблема эквивалентности алгоритмов– Десятая проблема Гильберта– Десятая проблема Дильберта

Page 10: P, NP и не только

Алгоритмы

• Машина Тьюринга– Детерминированная– Недетерминированная

• Проблема разрешимости– Ответ: да или нет

Page 11: P, NP и не только

Классы сложности

• Интересные классы– P– NP, coNP– BPP

• K-сложная проблема Π – любая проблема из K сводится к Π за полиномиальное время

• K-полная проблема Π – Π K-сложна и Π принадлежит K

Page 12: P, NP и не только

P

• Время и память – • Сортировка – • Поиск – • Решение системы линейных уравнений – • Проверка числа на простоту

Page 13: P, NP и не только

NP

• Время и память на недетерминированной машине –

• Детерминированная машина– Перебор– Проверить ответ

Page 14: P, NP и не только

SAT

• Булева функция

• Выполнимость булевой функции (SAT)– Существует ли , ?• Да – SAT• Нет – , UNSAT

Page 15: P, NP и не только

coNP

• UNSAT

– Ответ «Нет» быстро не проверить => UNSAT NP• NP = coNP?

Page 16: P, NP и не только

BPP

• ?• Рандомизированные алгоритмы• Сложность • Вероятность правильного ответа • P=BPP?

Page 17: P, NP и не только

Классы сложности

Page 18: P, NP и не только

Сложные проблемы

Page 19: P, NP и не только

Задача коммивояжера

• N городов.• M дорог. • Объехать все города и вернутся в начало• Найти кратчайший путь

Page 20: P, NP и не только

Линейное программирование

• Часто применяется в экономике• WWII – секретный метод оптимизации

распределения ресурсов

Page 21: P, NP и не только

Линейное программирование𝐴1

𝐴2

𝐴3

𝐵1

𝐵2

𝐶11𝑥11

𝐶22𝑥22

- Склад => Завод

𝑥1 𝑗+𝑥2 𝑗+…+𝑥𝑚𝑗≥ 𝐴 𝑗

𝑥𝑖 1+𝑥 𝑖2+…+𝑥𝑖𝑛≤𝐵𝑖

- стоимость перевозок

Найти

𝐶23 𝑥23

Page 22: P, NP и не только

Линейное программирование

• – целые и дробные– Simplex – EXP– 1979 – Хачиян, – 1984 – Кармаркар,

• – целые: NP-сложная

Page 23: P, NP и не только

Задача о рюкзаке

• 1 рюкзак, N предметов• Вес , стоимость • Рюкзак выдерживает вес W• Найти при

Page 24: P, NP и не только

Разложение на множители

• 74037563479561712828046796097429573142593188889231289084936232638972765034 02826627689199641962511784399589433050212758537011896809828673317327310893 0900552505116877063299072396380786710086096962537934650563796359

• 90912135295978188784406583026004374858926083103283587204285121689604115286 40933367824950788367956756806141

• 81438592591100452657278091262844293358778990021676278832009141724293243601 33004116702003240828777970252499

Page 25: P, NP и не только

Криптосистемы с открытым ключом

• RSA

– – большие простые числа• Дискретный логарифм– Найти если – a^x % p == b % p– Diffie-Hellman, ElGamal

• Лучший алгоритм:

Page 26: P, NP и не только

ATPG

• Генерация тестов– Дигитальная микросхема – Неисправность: – Найти , такие что

• Тест: один вектор – много ошибок

• Диагностика: один вектор – мало ошибок

Page 27: P, NP и не только

Формальная верификация

• Проверка эквивалентности– Высокоуровневое описание устойства – Сгенерированная микросхема – Доказать (UNSAT)

• FDIV: -$500M• Валидация компилятора– Подмножество C

Page 28: P, NP и не только

Формальная верификация

• Проверка модели– Программа/описание устойства – Свойство

• Никогда не случится (safety)• Когда-нибудь случится (liveness)• Постоянно повторяется (fairness)

– Доказать • MS Research

– Constraint solver Z3– SAGE: Whitebox fuzz testing– Null reference, деление на 0, переполнение буфера...– Область применения: драйвера, парсеры

Page 29: P, NP и не только

Минимизация микросхем

• Дана булева функция • Найти ее выражение используя

наименьшее число операций AND, OR, XOR и т.д.

• -полная

Page 30: P, NP и не только

Автоматическое планирование

• Первое применение SAT к реальным проблемам (начало 90-х)

• Множество состояний и переходов (действий)

• Начальное состояние, цель• Найти последовательность действий (план)

ведущую из начального состояния к цели

Page 31: P, NP и не только

Automated Theorem Proving

• Аксиомы + правила вывода = теоремы• Не UNSAT => ATP• Гипотеза Роббинса– Известна с 30-х годов– Доказана компьютером в 1996

Page 32: P, NP и не только

P?NP

• P=NP– Многие другие классы = P– Эффективные методы в различных областях– Криптология

• P≠NP– Status quo

• Скорее всего P≠NP• Решать NP-полные задачи можно и нужно• $1000000

Page 33: P, NP и не только

Заключение

• Бессмыслица — искать решение, если оно и так есть. Речь идёт о том, как поступать с

задачей, которая решения не имеет«Понедельник начинается в субботу»

Page 34: P, NP и не только

Q&A