Читаем Простые числа полностью

Когда говорят о полиномиальном времени, имеют в виду время, необходимое компьютеру для выполнения некоего алгоритма. Предположим, что у нас есть входная переменная п. Если алгоритм использует полиномиальные выражения, например, n3 + 2n + 1, его называют полиномиальным алгоритмом (алгоритмом класса сложности Р). Если же выражение экспоненциальное, то говорят о неполиномиальном алгоритме (алгоритме класса сложности NP). В общих чертах идея состоит в том, что полиномиальные алгоритмы имеют приемлемое время работы, в отличие от неполиномиальных.

* * *

МАКСИМАЛЬНАЯ БЕЗОПАСНОСТЬ

Правительство США на своей территории и в Канаде допускает использование лишь определенных криптографических кодов. Также существует запрет на их продажу за пределами этих стран. Несанкционированный экспорт стандартов шифрования приравнивается к торговле оружием. Компании, производящие программы шифрования, хранят секретные коды в планшетах, оснащенных сложными устройствами безопасности. При взломе их содержимое превращается в бесформенную массу из-за контакта с кислородом. При попытке просканировать планшеты с помощью, например, рентгеновских лучей их содержимое преобразуется в нули.

* * *

Р в сравнении с NP

Некоторые вычислительные задачи не могут быть решены с помощью детерминированного подхода — другими словами, с помощью процессов, выдающих уникальный и предполагаемый результат. Именно такими являются полиномиальные алгоритмы, работающие за полиномиальное время и выполняющие, например, операции сложения, умножения или решения систем уравнений. В большинстве случаев при использовании подходящих алгоритмов решение может быть найдено за разумное время. Задачи, которые могут быть решены таким образом, называются задачами класса сложности Р. С другой стороны, задачи класса сложности NP, для которых используются недетерминированные алгоритмы, решаются несколькими разными способами без гарантии получения одинакового результата.

Время, необходимое для решения такого рода проблем, намного больше чем для задач класса Р. Ясно, что любая проблема, которая допускает детерминированное решение за полиномиальное время, может быть также решена способом быстрой проверки. Другими словами, любая задача класса Р является также задачей класса NP. Однако на этом этапе нам следует уточнить понятие алгоритма.

Алгоритм можно сравнить с кулинарным рецептом. Он состоит из последовательности кристально ясных инструкций. Например, чтобы решить уравнение вида х — 2 = 8, можно использовать следующий алгоритм.

1. Отделить х (перенеся все члены, не содержащие х, в правую часть).

2. Выполнить сложение в правой части: 8 + 2 = 10.

3. Записать решение: х = 10.

Это задача класса Р, которую можно решить за полиномиальное время: она

очень проста и быстро решается.

Конечно, мы могли бы просто подставить значение, например х = 3, х = —2 и так далее, и времени на вычисления потребовалось бы меньше, так как единственное, что программа должна делать, — это подставлять значение вместо х и проверять равенство. Такой метод не является детерминированным, потому что всегда есть вероятность того, что решение будет неверным. (Мы предполагаем, что у нас есть определенные критерии для выбора диапазона возможных решений, например, условие, что все они должны находиться между 9 и 11.)

Можно поставить и обратный вопрос. Если у нас есть недетерминированный алгоритм, например, подстановки и проверки, можно ли гарантировать, что существует полиномиальный алгоритм, который позволяет решить задачу детерминировано? Другими словами, можем ли мы быть уверены в существовании алгоритма, решающего задачу за полиномиальное время?

Этот вопрос был поставлен независимо друг от друга Стивеном Куком и Леонидом Левиным в 1971 г.: если любая задача класса Р является также задачей класса NP, существуют ли задачи класса NP, которые не являются задачами класса Р?

Этот вопрос считается самой важной проблемой современной информатики и является одной из семи задач тысячелетия, за решение каждой из которых математическим институтом Клэя назначен приз в 1000 000 долларов США.

* * *

Перейти на страницу:

Все книги серии Мир математики

Математики, шпионы и хакеры
Математики, шпионы и хакеры

Если бы историю человечества можно было представить в виде шпионского романа, то главными героями этого произведения, несомненно, стали бы криптографы и криптоаналитики. Первые — специалисты, виртуозно владеющие искусством кодирования сообщений. Вторые — гении взлома и дешифровки, на компьютерном сленге именуемые хакерами. История соперничества криптографов и криптоаналитиков стара как мир.Эволюционируя вместе с развитием высоких технологий, ремесло шифрования достигло в XXI веке самой дальней границы современной науки — квантовой механики. И хотя объектом кодирования обычно является текст, инструментом работы кодировщиков была и остается математика.Эта книга — попытка рассказать читателю историю шифрования через призму развития математической мысли.

Жуан Гомес

Математика / Образование и наука
Когда прямые искривляются
Когда прямые искривляются

Многие из нас слышали о том, что современная наука уже довольно давно поставила под сомнение основные постулаты евклидовой геометрии. Но какие именно теории пришли на смену классической доктрине? На ум приходит разве что популярная теория относительности Эйнштейна. На самом деле таких революционных идей и гипотез гораздо больше. Пространство Минковского, гиперболическая геометрия Лобачевского и Бойяи, эллиптическая геометрия Римана и другие любопытные способы описания окружающего нас мира относятся к группе так называемых неевклидовых геометрий. Каким образом пересекаются параллельные прямые? В каком случае сумма внутренних углов треугольника может составить больше 180°? Ответы на эти и многие другие вопросы вы найдете в данной книге.

Жуан Гомес

Математика / Образование и наука

Похожие книги