Вы находитесь на странице: 1из 221

ЗОЛОТОЙ

БИЛЕТ

https://t.me/it_boooks
LANCE
FORTNOW

THE
GOLDEN TICKET
P, NP,
AND THE SEARCH
FOR THE IMPOSSIBLE
ЛЭНС
ФОРТНОУ

ЗОЛОТОЙ БИЛЕТ
P, NP
И ГРАНИЦЫ
ВОЗМОЖНОГО
Электронное издание

Перевод с английского
Зинаиды Ложкиной

Москва
Лаборатория знаний
2016
УДК 51
ББК 22.1
Ф80

Фортноу Л.
Ф80 Золотой билет. P, NP и границы возможного [Электронный
ресурс] / Л. Фортноу ; пер. с англ. З. Ложкиной. — Эл. изд. —
Электрон. текстовые дан. (1 файл pdf : 221 с.). — М. : Лабора-
тория знаний, 2016. — Систем. требования: Adobe Reader XI ;
экран 10".
ISBN 978-5-00101-424-9
«Золотой билет» — великолепное введение в P/NP-проблему,
в котором описаны история этой задачи и ее влияние на нашу жизнь.
В этой информативной и занимательной книге Лэнс Фортноу про-
слеживает работу, которая велась над задачей во времена холодной
войны по обе стороны «железного занавеса», и приводит примеры
ее возникновения во множестве дисциплин, включая экономику,
физику и биологию.
Для студентов и специалистов в области теории вычислений,
всех, интересующихся современными проблемами в математике.
УДК 51
ББК 22.1

Деривативное электронное издание на основе печатного


аналога: Золотой билет. P, NP и границы возможного / Л. Фортноу ;
пер. с англ. З. Ложкиной. — М. : Лаборатория знаний, 2016. — 218 с. :
ил. — ISBN 978-5-906828-68-2.

В соответствии со ст. 1299 и 1301 ГК РФ при устранении


ограничений, установленных техническими средствами
защиты авторских прав, правообладатель вправе требовать
от нарушителя возмещения убытков или выплаты компенсации

Copyright ○
c 2013 by Princeton University Press
Все права защищены. Никакая
часть этой книги не может быть
воспроизведена или передана
в любой форме или любыми
средствами, электронными или
механическими, включая
фотокопирование, запись или
использование средств хранения
и поиска информации, без
письменного разрешения
Издателя.
ISBN 978-5-00101-424-9 ○
c Лаборатория знаний, 2016
Посвящается Марси, Энни и Молли.
Теперь они, может быть, поймут,
чем я занимаюсь и почему.

ПРЕДИСЛОВИЕ

В Америке почти у каждого второго есть смартфон.


Этот маленький компьютер давно обогнал своих более
крупных собратьев, которые еще каких-то двадцать лет
назад считались очень мощными. Компьютеры снабжают
нас информацией о мире и не дают в ней потеряться;
позволяют выходить на связь почти из любой точки
планеты; справляются с неимоверно сложными вычисли-
тельными задачами, будь то составление расписаний для
загруженных аэропортов или моделирование космических
явлений. Компьютеры распознают наши лица и голоса,
регистрируют перемещения, определяют предпочтения
и советуют книги, музыку и фильмы... не за горами
то время, когда они будут сами управлять автомобилем.
Похоже, для них в этом мире нет ничего невозможного?
На самом деле пока они могут не все. Из этой книги
вы узнаете о вычислительных задачах, которые мы,
вероятно, никогда не научимся быстро решать. Виной
тому труднейшая математическая проблема с загадочным
названием «P против NP» — главный вопрос теории
алгоритмов, а, может, и всей математики или даже всей
науки в целом.
Математический институт Клэя присвоил ей статус
задачи тысячелетия. Всего таких задач семь, и за решение
каждой из них институт предлагает приз в миллион
долларов. Однако за вопросом «P против NP» стоит нечто
большее.
P — это класс задач, которые на компьютере решаются
относительно быстро. NP — задачи, для которых мы хотим
найти оптимальное решение. Равенство P и NP означает,
6 Золотой билет

что любую поставленную задачу можно быстро решить.


В этом случае наша жизнь сразу перейдет на совершенно
новый уровень; медицина, наука, индустрия развлечений
шагнут далеко вперед, и почти любой процесс можно
будет автоматизировать.
Неравенство P и NP, в свою очередь, означает, что
для некоторых задач быстрое решение не найдется
никогда, и отнимает у нас всякую надежду на создание
универсального алгоритма. Впрочем, это еще не повод
опускать руки: для борьбы с «крепкими орешками»
разрабатываются специальные методы, которые во многих
случаях работают вполне приемлемо. По крайней мере мы
знаем, какие техники здесь точно не годятся, и это знание
помогает понять, в каком направлении двигаться.
В 2008 году главный редактор журнала Communications
of the ACM Моше Варди предложил мне написать
о проблеме статью. Ассоциация вычислительной техники,
или ACM, — это крупнейшая международная организация,
объединяющая специалистов в области компьютерных
наук, а ее главный научный журнал Communications of the
ACM публикует статьи на интересующие компьютерное
сообщество темы.
Поначалу я пытался «сбагрить» работу кому-то еще, но
потом все же сдался. «Вон физики же издают популярные
статьи про теорию струн, — убеждал меня Моше. — И не
только статьи, а целые книги! Так что, я думаю, у нас
тоже получится объяснить всем теорию сложности и ее
достижения». Я писал, ориентируясь на читательскую
аудиторию журнала; речь в работе шла не столько
о текущем статусе проблемы, который можно было бы
описать одним словом — «открыта», сколько о методах
борьбы с трудоемкими задачами. Статья The Status of
the P versus NP Problem вышла в сентябре 2009 года
и быстро побила все рекорды по скачиванию за всю
историю существования сайта журнала.
Полная версия приключений P и NP осталась за
кадром, однако популярность статьи говорила о том,
что момент выбран верный и настало время познакомить
с подробностями не только специалистов, но и широкую
публику.
Предисловие 7

Статья послужила для книги каркасом; каждый па-


раграф в итоге разросся в целую главу. Вдохновение
я черпал в Краткой истории времени Стивена Хокинга,
объясняющей физику на простых примерах и заниматель-
ных историях. Хокинг обошелся без формул и терминов;
я попытался сделать то же, и, надеюсь, мне удалось
в доступной форме изложить суть проблемы и показать
ее важность.
Формальных определений вы здесь не найдете: хороших
учебников и сайтов, излагающих математическое описание
проблемы и связанные с ней результаты, сейчас и так
довольно много. Цель книги — дать представление о том,
что могут и чего не могут дать нам вычисления в век,
когда мир уже невозможно представить без компьютеров.
Итак, вперед, к классам P и NP!

Лэнс Фортноу
Иванстон, штат Иллинойс
Глава 1
ЗОЛОТОЙ БИЛЕТ

Владелец шоколадной фабрики решил устроить что-то


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

«На моей фабрике делают разные штуки из земляных


орехов, и работает там около ста женщин, они лущат
орехи, перед тем как посолить их и обжарить. Этим-
то женщинам я и сказал: „О’кей, девочки, с этой
минуты кончайте лущить орехи и начинайте снимать
обертки с шоколадок“. И они взялись за дело. Каждая
работница моей фабрики с утра до вечера только этим
и занималась.
10 Золотой билет

Прошло три дня, а толку никакого. О! Это было


ужасно! Моя малышка все больше огорчалась и, когда
я приходил домой, каждый раз начинала кричать: „Где
мой золотой билет? Хочу золотой билет!“ Она часами
валялась на полу, дрыгала ногами и визжала. Я не
мог больше смотреть на страдания несчастной крошки
и поклялся продолжать поиски, пока не найду то, что
она просит. И вдруг... вечером четвертого дня одна из
моих работниц закричала: „Я нашла! Золотой билет!“
И я сказал: „Быстро давайте сюда“. Она так и сделала.
Я бросился домой и вручил билет Веруке. Теперь она
улыбается, и мы снова счастливы» 1) .

Неважно, каким образом вы будете искать билет: вам,


как и мистеру Солту, понадобится много времени и денег —
или удача, когда и того, и другого дефицит. Возможно,
однажды какой-нибудь умный человек изобретет недоро-
гой прибор для быстрого поиска билетов. А возможно,
и нет.
Для современного компьютера десять миллионов —
цифра совершенно несерьезная. Занесите ваши шоколадки
в базу данных, и обычный ноутбук переберет их все
меньше чем за секунду. С шоколадками компьютеры
справляются намного быстрее, чем люди; впрочем, обычно
им приходится решать гораздо более серьезные задачи.
Где у нас самый большой массив данных? В интернете,
наверно? Сложите вместе все видео- и аудиофайлы, элек-
тронные письма и вообще все, что там есть, — и получите
около 1 000 000 000 000 000 000 байт информации, плюс-
минус два нуля. А один байт — это примерно то же,
что набранный на клавиатуре символ. Чудовищное число;
однако не стоит забывать, что современные компьютеры
очень, очень быстрые. Средний ноутбук способен выпол-
нить триллион операций в секунду, а значит, весь интернет
он теоретически пересмотрел бы за четыре месяца —
если бы, конечно, кому-то удалось загрузить все это ему
в память. Компания Google с ее сотнями тысяч мощнейших

1) Перевод: М. Барон, Е. Барон.


Глава 1. Золотой билет 11

компьютеров имеет возможность прочесывать интернет


непрерывно.
Ну что ж, раз компьютеры быстро находят информацию
даже в интернете, то вопрос о поиске цифрового аналога
золотого билета можно считать закрытым. Однако они
нужны не только для простого перебора всех имеющихся
данных: нередко от них требуется найти решение какой-
нибудь задачи.
Давайте посмотрим, какая проблема свалилась на
Мэри — коммивояжера компании US Gavel Corporation,
зарегистрированной в Вашингтоне, округ Колумбия. Ди-
ректор проучил Мэри объехать столицы всех сорока восьми
континентальных штатов и попытаться убедить местные
власти вложить средства в его замечательную фирму.
Транспортные расходы необходимо было свести к миниму-
му, и от Мэри требовалось найти оптимальное решение —
кратчайший маршрут, проходящий через все сорок восемь
столиц. Посидев немного над картой Америки, Мэри
набросала на ней план поездки и после некоторых поправок
представила его начальству. Маршрут получился довольно
симпатичный.

Рис. 1.1. Задача коммивояжера


12 Золотой билет

Однако транспортный отдел попросил ее подумать еще


и постараться уложиться в 17 000 километров. Мэри
написала программу, которая в поисках самого короткого
маршрута перебирала все возможные перестановки из
сорока восьми городов. Прошла неделя, а программа
все работала. Тогда Мэри решила кое-что прикинуть.
Первый город можно было выбрать сорока восемью спо-
собами. Второй — сорока семью. Третий — сорока шестью,
и так далее. Итого потенциальных маршрутов набралось
48 × 47 × 46 × . . . × 2 × 1. Для записи этого числа требуется
62 цифры. Вот оно: 12 413 915 592 536 072 670 862 289 047
373 375 038 521 486 354 677 760 000 000 000.
Если мы даже предположим, что один маршрут
обрабатывается всего за 0,00000000000000000033 секунды
(примерно столько времени требуется свету, чтобы преодо-
леть дистанцию, равную диаметру самого мелкого атома),
то на полную проверку всех маршрутов все равно уйдет
в десять тысяч миллиардов триллионов больше лет, чем
живет наша вселенная. Понятно, почему Мэри не увидела
ответ через неделю! Неужели для поиска оптимального
пути — этакого золотого билета среди всех возможных
маршрутов-шоколадок — нет способа получше?
Вот мы и подошли к сути дела. Вопрос о равенстве
классов P и NP самым непосредственным образом свя-
зан с задачей быстрого поиска кратчайшего маршрута
коммивояжера (и не только с ней). Названия классов —
сокращения от технических терминов, однако будет лучше
воспринимать их просто как общие понятия, а не как
конкретные математические объекты. Класс NP — это
множество задач, которые мы хотим решить; класс
P — задачи, которые мы умеем решать быстро. Если P
равно NP, мы всегда сможем быстро найти решение
любой NP-задачи (например, кратчайший маршрут для
коммивояжера). А если не равно, то не сможем.

ЗАДАЧА О РАЗБИЕНИИ
Взгляните на эти тридцать восемь чисел:
14 175, 15 055, 16 616, 17 495, 18 072, 19 390, 19 731,
22 161, 23 320, 23 717, 26 343, 28 725, 29 127, 32 257,
Глава 1. Золотой билет 13

40 020, 41 867, 43 155, 46 298, 56 734, 57 176, 58 306,


61 848, 65 825, 66 042, 68 634, 69 189, 72 936, 74 287,
74 537, 81 942, 82 027, 82 623, 82 802, 82 988, 90 467,
97 042, 97 507, 99 564.
В сумме все они дают ровно 2 000 000. Попробуйте
разбить их на две группы по девятнадцать чисел так,
чтобы сумма чисел внутри каждой группы была равна
1 000 000. Можете свободно пользоваться калькулятором,
Excel или даже написать программу. Ответ приводится
в конце главы.
Не так-то просто, верно? Ведь для разбиения существует
более семнадцати миллиардов вариантов! Современные
компьютеры считают очень быстро, и с хорошей про-
граммой у вас есть все шансы получить ответ. Ну а что
если я предложу вам не тридцать восемь чисел, а три
тысячи восемьсот? Или, что еще лучше, тридцать восемь
миллионов? Тут уже никакая программа не справится.
Дурацкая, никому не нужная математическая голо-
воломка, скажете вы. А вот и нет! Представьте, что
у нас есть хороший алгоритм, который быстро разбивает
заданное множество чисел на две группы с равной
суммой (когда это разбиение вообще существует). Тогда мы
можем применить его не только для решения подобных
головоломок, но и вообще любых задач, к примеру — для
поиска кратчайшего маршрута коммивояжера. Дурацкая
математическая головоломка на самом деле представляет
собой аналог проблемы «P против NP», и любой алгоритм,
решающий ее гигантскую версию, способен вычислить
практически все, что угодно.

НЕМНОГО О РУКАХ
Наши руки — это самый удивительный механизм на
планете. Они хватают, толкают, указывают пальцем.
Завязывают шнурки, выпускают из лука стрелу. Иг-
рают на фортепьяно, скрипке, демонстрируют фокусы.
В совершенстве управляют автомобилем, лодкой, поездом
и самолетом. Руки могут поздороваться, а могут выкрутить
запястья. Могут погладить с нежностью или больно
ударить. Они общаются языком жестов, пишут слова
14 Золотой билет

на бумаге, набирают текст на компьютере. Выполня-


ют ювелирную работу часового мастера и справляются
с бензопилой. Руки гениев создают великие картины,
симфонии, поэмы... Вероятно, все, чего мы достигли,
стало возможным именно благодаря рукам.
Кисть руки содержит двадцать семь костей. На ней
пять пальцев, включая незаменимый большой. Под
эластичной кожей спрятана сложнейшая система мышц,
сухожилий и нервов. Волшебный механизм — вот только
самостоятельно это чудо природной инженерии функцио-
нировать не будет. От головного мозга должны приходить
соответствующие инструкции: рука мертвеца не способна
двигаться и вообще что-либо делать.
Рука — это «железо», т. е. натуральное аппаратное
обеспечение. А значит, для работы ей обязательно
нужна программа — сообщение от мозга, объясняющее,
как выполнить то или иное задание.
Профессор Йоки Мацуока из Вашингтонского универси-
тета — специалист по робототехнике. Под ее руководством
группа исследователей разработала так называемую «ана-
томически правильную» кисть, пальцы которой в точности
повторяют движения человеческих. Технически искус-
ственная рука способна творить те же чудеса, что и на-
стоящая, однако на деле под силу ей оказываются лишь
самые простые операции. Нелегко создать программу,
которая управляла бы всеми функциями кисти; простей-
шие движения требуют идеальной координации большого
числа мышц, и реализующие их алгоритмы далеко не
тривиальны.
Впрочем, наш мозг умудряется контролировать руки
без особых проблем. По сути мозг представляет собой
сверхмощный компьютер, и раз он может объяснить
рукам, как завязать шнурки или создать картину, то
написать подобную программу теоретически возможно.
Конечно, одно дело знать, что некий алгоритм существу-
ет, и совсем другое — найти его. Программы со временем
будут становиться все сложнее и сложнее; искусственная
рука научится выполнять намного более трудные операции
и однажды — как знать! — вполне может даже превзойти
человеческую. Очевидно, нас ждет безумно увлекательное
Глава 1. Золотой билет 15

путешествие, вот только скорость движения, похоже, будет


очень низкой.
Или не очень? Представьте, что для любой поставленной
задачи тут же появляется программа со всей необходимой
функциональностью. Например, вы загружаете в ком-
пьютер ролик, в котором человек завязывает галстук,
и через секунду механические руки уже воспроизводят
этот процесс. Или подаете на вход полное собрание
сочинений Шекспира, а компьютер в ответ сочиняет новую
«шекспировскую» пьесу. Представьте: все, что можно
описать словами, можно и создать. Реально ли это? Да —
но только если P равно NP.
Вот почему проблема равенства P и NP так будоражит
умы. Неужели все задачи мы сможем щелкать как
орешки? Или над некоторыми все же придется трудиться?
Ответа пока нет, хотя на самом деле на «халяву» мало
кто надеется. Вряд ли когда-нибудь выяснится, что P =
=NP; и все же помечтать об идеальном мире бывает очень
и очень приятно.

P ПРОТИВ NP
Проблема «P против NP» касается не только описанных
выше задач, но и тысяч других, схожих с ними
по сути. Насколько быстро можно перебрать огромное
число потенциальных вариантов? Насколько трудно будет
отыскать тот самый золотой билет, т. е. оптимальное
решение поставленной задачи?
Впервые проблема равенства классов упоминается еще
в 1956 году — в письме, которое один величайший
математик XX века, Курт Гёдель, отправил другому
величайшему математику XX века, Джону фон Нейману.
К сожалению, вплоть до восьмидесятых о письме ничего
не было известно, а вот первые официальные публикации
появились в начале семидесятых. Авторы — Стивен Кук
и Леонид Левин — независимо друг от друга пришли
к одному и тому же вопросу, находясь по разные
стороны «железного занавеса». Вслед за этим Ричард Карп
опубликовал свой знаменитый список из двадцати одной
задачи: все они, включая маршрут для коммивояжера
16 Золотой билет

и разбиение на группы, были эквивалентны проблеме


«P против NP». Постепенно научное сообщество осознало
важность поднятых вопросов, и в развитии информатики
наступил поворотный момент. Сейчас проблема равенства
классов уже стала основополагающей — причем не только
в информатике, но также в биологии, медицине, эконо-
мике, физике и многих других областях.
Со временем этот вопрос заработал статус одной из са-
мых трудных задач в истории математики. Шумиха вокруг
доказательства Великой теоремы Ферма, предложенного
в 1994 году Эндрю Уайлсом, побудила Математический
институт Клэя организовать нечто вроде конкурса по ре-
шению сложнейших открытых математических проблем.
В 2000 году институт опубликовал список из семи «задач
тысячелетия» и за каждую из них объявил награду в один
миллион долларов. Вот они:

1. Гипотеза Берча–Свиннертон-Дайера.
2. Гипотеза Ходжа.
3. Уравнения Навье–Стокса.
4. Проблема равенства P и NP.
5. Гипотеза Пуанкаре.
6. Гипотеза Римана.
7. Теория Янга–Миллса.

Гипотезу Пуанкаре в 2003 году доказал Григорий


Перельман, однако от вознаграждения ученый отказался.
Остальные шесть задач тысячелетия на момент написания
книги по-прежнему остаются открытыми.
Решите проблему «P против NP» — и получите насто-
ящий золотой билет, т. е. миллион долларов США!
Лучше всего, конечно, если вы установите равенство P
и NP: тогда у вас будет алгоритм для поиска всех золотых
билетов (т. е. решения всех остальных задач из списка).
Докажете, что P = NP, — получите шесть миллионов за
решение шести задач тысячелетия. Впрочем, доказать как
равенство, так и неравенство классов будет очень и очень
непросто; если вам нужны шесть миллионов, вы скорее
выиграете их в лотерею.
Глава 1. Золотой билет 17

В ПОИСКАХ БИЛЕТА
Иногда найти билет все же удается. Предположим, мне
нужно поехать из Чикаго в Нью-Йорк на машине. Не
долго думая, я забиваю адрес в навигатор, который уже
через минуту-другую показывает оптимальный маршрут,
и жму на газ. Подробная карта США со всеми горо-
дами и улицами занимает миллионы байт; возможные
маршруты исчисляются гораздо более крупными цифрами.
Сколько маршрутов можно проложить из Чикаго в Нью-
Йорк? Грубейший подсчет даст нам свыше вигинтиллиона
(единица и 63 нуля) вариантов, и запрет движения по
встречке на односторонних улицах мало что изменит.
У навигатора просто нет времени на такое количество
проверок; как же он умудряется найти самый быстрый
маршрут?
На самом деле маршруты обладают одной интерес-
ной особенностью. Добавим в программу промежуточ-
ный пункт назначения — скажем, Питтсбург. Кратчайший
маршрут из Чикаго в Нью-Йорк через Питтсбург — это
сумма кратчайших маршрутов из Чикаго в Питтсбург и из
Питтсбурга в Нью-Йорк. Без заезда в Питтсбург до Нью-
Йорка можно добраться и быстрее, однако при наличии
промежуточной точки наилучшим решением будет склеить
два кратчайших маршрута.
Именно так и сужают круг поиска навигационные про-
граммы. Десять тысяч или даже сто тысяч вариантов — это
уже не вигинтиллион; современный процессор проверит
их без труда.
Поиск кратчайшего пути не охватывает все аспекты
проблемы равенства P и NP. Задача коммивояжера
доказывает, что при наличии огромного числа вариантов
совсем не обязательно перебирать их все; главный вопрос,
однако, заключается в том, всегда ли можно обойтись без
такого перебора.

ДОЛГАЯ ДОРОГА
Эта книга расскажет вам захватывающую историю о P
и NP. Что это за классы? Какая между ними разница? Что
18 Золотой билет

такое NP-полные, или самые трудные, поисковые задачи?


Как они связаны с проблемой P и NP?
Для наглядности приведу один маленький пример.
Сколько человек входит в максимальную клику на
Facebook, т. е. в наибольшую по численности группу,
в которой все дружны между собой? Может, сотня?
А может быть, тысяча? Даже при наличии доступа ко
всем необходимым данным ответить на этот вопрос будет
крайне непросто; искать максимальную клику не легче,
чем возиться с какой-нибудь другой поисковой проблемой.
Какая перспектива ожидает нас, если классы равны?
Совершенный мир, в котором все можно вычислить быст-
ро. Ответы на вопросы будут приходить почти мгновенно;
смертельных болезней не останется, и вселенная раскроет
нам все свои тайны. Однако есть здесь и своя ложка
дегтя: с компьютерами, которые могут почти все, нас
ждет безработица и потеря конфиденциальности.
Впрочем, жизнь в совершенном мире нам, скорее всего,
не грозит. Так что трудные поисковые задачи никуда от нас
не денутся. Впрочем, это еще не повод опускать руки: для
таких задач разработаны особые методы. Эвристические
алгоритмы, к примеру, почти во всех случаях выдают
корректный ответ, а приближенные позволяют получить
решение, близкое к оптимальному.
Какова предыстория проблемы равенства P и NP?
На самом деле здесь не одна история, а целых две.
События разворачивались в те времена, когда Холодная
война разделила мир на противоборствующие лагеря;
понятие эффективных вычислений и связанные с ним
вопросы независимо разрабатывались по разные стороны
«железного занавеса». В итоге оба пути сошлись в одной
точке, и эта точка получила имя «P против NP».
С какой стороны зайти, чтобы вывести неравенство
P 6= NP? Курт Гёдель показал, что не у всех математиче-
ских проблем имеется решение; возможно, аналогичным
образом удастся доказать тот факт, что не для всех
поисковых задач существует быстрый алгоритм. Еще
вариант — попытаться разделить вычислительный процесс
на более мелкие части, чтобы сложность исходной задачи
Глава 1. Золотой билет 19

было легче оценить. Некоторую надежду дает также алгеб-


раическая геометрия — молодой и абсолютно абстрактный
раздел математики. Впрочем, до решения проблемы мы
в любом случае дойдем еще очень не скоро.
Какая нам польза от того, что P и NP не равны? Доказав
неравенство, мы будем уверены в сохранности наших пер-
сональных данных и сможем создавать псевдослучайные
числа, неотличимые от настоящих.
Изменят ли ситуацию компьютеры будущего, осно-
ванные на принципах квантовой механики? Снимут ли
они проблему «P против NP»? Маловероятно, хотя с их
помощью мы сможем решать некоторые недоступные
современным машинам задачи, например, раскладывать
большие числа на множители. Кстати, квантовая механика
даст нам абсолютно стойкие шифры вне зависимости от
того, равны классы P и NP или не равны.
Так что же дальше? Похоже, самые большие трудности
ждут нас впереди. Как организовать совместную работу
нескольких компьютеров над одной задачей? Как про-
анализировать колоссальные объемы данных, которые мы
создаем изо дня в день? Каким станет мир, когда интернет
людей превратится в интернет вещей? Чем больше перед
нами возникает подобных задач, тем большую значимость
приобретает вопрос о равенстве P и NP.

РЕШЕНИЕ ЗАДАЧИ О РАЗБИЕНИИ


Упомянутые ранее тридцать восемь чисел
14 175, 15 055, 16 616, 17 495, 18 072, 19 390, 19 731,
22 161, 23 320, 23 717, 26 343, 28 725, 29 127, 32 257,
40 020, 41 867, 43 155, 46 298, 56 734, 57 176, 58 306,
61 848, 65 825, 66 042, 68 634, 69 189, 72 936, 74 287,
74 537, 81 942, 82 027, 82 623, 82 802, 82 988, 90 467,
97 042, 97 507, 99 564
можно разбить на две равные группы следующим образом:
15 055, 16 616, 19 390, 22 161, 26 343, 40 020, 41 867,
43 155, 46 298, 57 176, 58 306, 65 825, 66 042, 69 189,
74 537, 81 942, 82 623, 82 988, 90 467
и
20 Золотой билет

14 175, 17 495, 18 072, 19 731, 23 320, 23 717, 28 725,


29 127, 32 257, 56 734, 61 848, 68 634, 72 936, 74 287,
82 027, 82 802, 97 042, 97 507, 99 564.
Числа каждой группы дают в сумме ровно 1 000 000.
Глава 2
СОВЕРШЕННЫЙ МИР

Представьте, что вас просят написать статью обо всех


переменах, вызванных развитием интернета за последние
двадцать лет. Вы ведь упомянете о компактном устройстве,
которое лежит у вас в кармане и мгновенно предоставляет
доступ к любой открытой информации? И о новом типе
общения, сложившемся в социальных сетях? И о том,
как трансформировалось кино и музыка? О нововведениях
в работе издательств и новостных агентств? Изменений
слишком много, и в одну статью их явно не вместить.
А теперь вообразите, что сейчас начало девяностых и вы
пишете статью, когда все это еще только предстоит...
Равенство P и NP будет означать, что у нас имеется
универсальный эффективный алгоритм для всех NP-задач.
Мир изменится настолько сильно, что развитие интерне-
та превратится во второстепенный исторический факт.
Описать сейчас подробно эти изменения или хотя бы
предсказать основные последствия от внедрения новых
технологий не представляется возможным.
Совершенный мир, в котором P = NP, вряд ли когда-
нибудь станет реальностью. Однако заглянуть в него одним
глазком мы все-таки можем. Представим наше общество
через несколько лет после появления универсального
эффективного алгоритма; перенесемся в далекий 2026-й
и посмотрим для начала, как этот мир развивался.

УРБАНСКИЙ АЛГОРИТМ
В 2016 году чешский математик Милена Павел послала по
электронной почте письмо. Во вложении было описание
универсального эффективного алгоритма для решения
NP-задач. После долгих и тщательных проверок научное
22 Золотой билет

сообщество пришло к единому мнению: алгоритм работает,


и проблема равенства P и NP наконец решена. Свою работу
Милена скромно назвала «Об открытой проблеме Стивена
Кука», а вот New York Times выпустила статью с громким
и предельно кратким заголовком: «P = NP».
В 2018 году Милена Павел была удостоена Филдсовской
премии. Эту престижную математическую награду впервые
вручили женщине. Годом позже Математический институт
Клэя выписал на имя Милены чек в один миллион дол-
ларов. Григорий Перельман был первым, кто решил одну
из задач тысячелетия; Милена стала второй и в отличие
от Перельмана свой приз забрала. Часть денег (точные
цифры не раскрываются) она пожертвовала на учреждение
стипендий в своем родном университете в Праге.
В теории алгоритм Милены стал настоящим прорывом;
в реальности же он работал слишком долго и потому
оказался совершенно неприменим. В 2017 году рос-
сийский ученый Михаил Боров придумал интересную
модификацию и ускорил алгоритм на порядок, однако
до практического применения по-прежнему было очень
и очень далеко.
Годом позже старшекурсники Университета Цинхуа
в Пекине оптимизировали алгоритм Борова и запустили
его на самом быстром компьютере в мире (который
на тот момент находился в Китае). Меньше чем через
неделю новый алгоритм разобрался со средней задачей
о клике и решил несколько других типичных проблем из
класса NP. Ряд промышленных гигантов, среди которых
были Boeing и Daimler-Benz, заключили с университетом
контракт на разработку решения особо хитрых оптими-
зационных задач. В результате новое воздушное судно
«Боинг-797» получило крыло улучшенной конструкции,
а вместе с ним и возможность летать из Лондона в Сидней
без остановок.
Среди прочих над проектом работал аспирант Иллиной-
ского университета в Урбане Стивен Франк, проходивший
в то время в Пекине семестровую стажировку. Вернув-
шись в родную Урбану, Стивен пожаловался научному
руководителю, что, несмотря на все их ухищрения, на
Глава 2. Совершенный мир 23

решение одной-единственной и далеко не самой сложной


NP-задачи все равно уходит как минимум несколько дней.
«Когда джинн обещает выполнить одно — и только
одно — твое желание, что нужно попросить?» — спросил
ученый.
«Не знаю», — растерялся Стивен.
«Другого джинна, который выполнит все твои жела-
ния!»
На Стивена снизошло озарение. Он, конечно, знал, что
для задачи о клике существуют и более совершенные
алгоритмы, однако своими силами найти их не мог; зато
у него был знакомый джинн (программа из университета
Цинхуа), способный относительно быстро перебрать экс-
поненциальное число потенциальных вариантов. Стивен
написал программу, которая работала аналогично цинху-
анской и искала наилучший алгоритм решения NP-задач.
А затем получил разрешение на использование вычис-
лительных ресурсов Национального суперкомпьютерного
центра (NCSA) в Иллинойском университете. Прошло
несколько недель, и усилия Стивена наконец увенчались
успехом: найденный программой алгоритм был на пять
процентов быстрее цинхуанского. Неплохой результат для
научной статьи; однако ни о каком прорыве речи пока
не шло.
«Давай еще раз — с новым алгоритмом», — подсказал
научный руководитель.
Стивен запустил новую программу, чтобы та нашла
еще более быстрый алгоритм; через несколько недель
ускорение было уже двадцатипроцентным.
«Продолжай», — лаконично отреагировал научный ру-
ководитель. Казалось, он совсем не удивлен.
«Пора уже мне это автоматизировать. Пусть он сам
запускает новый поиск всякий раз, как найдет очередной
алгоритм!» — проворчал Стивен.
«Слава тебе, Господи, дошло наконец!» — читалось во
взгляде научного руководителя.
Вернувшись в лабораторию, Стивен взялся за про-
грамму, которая должна была находить самый быстрый
алгоритм, создавать на его основе новую программу,
24 Золотой билет

находить еще более быстрый алгоритм, и так далее —


до тех пор, пока алгоритмы не перестанут улучшаться.
«Ты не боишься, что будет как со Скайнетом?» —
поинтересовался коллега.
«С чем – с чем?»
«Ну, когда компьютер становится чересчур умным,
он обретает сознание и захватывает мир, как Скайнет
в „Терминаторе“».
«Ты серьезно? Это же просто программа! Не волнуйся,
все будет хорошо!»
И вот Стивен снова запустил свой код на вычисли-
тельном гиганте NSCA. С каждым шагом алгоритмы
становились все лучше и лучше. Наконец, процесс
остановился; окончательный вариант программы состоял
из 42 миллионов строк безличного машинного кода.
Удивительно, но этот код решал NP-задачи очень быстро
и при этом не пытался обрести сознание и захватить наш
мир. Университетский пресс-релиз на все лады расхвали-
вал новый «урбанский алгоритм»; название прижилось,
и других вариантов уже никто не предлагал.
Некоторые университетские математики, раньше дру-
гих получившие доступ к урбанскому алгоритму, пытались
доказать с его помощью остальные проблемы тысячелетия.
Рассуждения у них по большей части были довольно
невразумительные; впрочем, Математический институт
Клэя вовремя сориентировался и выпустил официальное
заявление: никакие новые доказательства, полученные
в результате тех или иных модификаций алгоритма
Милены Павел, который уже принес своей создательнице
награду в миллион долларов, рассматриваться не будут.
Многие фирмы желали выкупить права на урбанский
алгоритм или хотя бы приобрести временную лицензию на
его использование. Все они прочно увязли в юридическом
болоте, поскольку владельцами алгоритма считали себя
практически все кому не лень. Помимо Стивена Франка
и его научного руководителя права на алгоритм заявили
также центр NSCA и чешское правительство, спонсиро-
вавшее исследования Милены. Сознавая всю важность
полученных Стивеном результатов, Всемирная торговая
организация постановила, что урбанский алгоритм не
Глава 2. Совершенный мир 25

является объектом авторского права и после выплаты


некоторой компенсации его создателям должен сделаться
всеобщим достоянием; размер компенсации установит
специальная комиссия. Против высказались одни лишь
китайцы, однако было ясно, что заблокировать решение
ВТО они не смогут. Наконец, 23 октября 2019 года
урбанский алгоритм стал общедоступным.
И тогда наш мир начал меняться...

КОМПЬЮТЕРЫ – РАК — 1 : 0
Вернувшись в кабинет, лечащий врач Хелен плотно закрыл
дверь.
«Боюсь, новости у меня не очень хорошие, — начал
он. — У вас рак печени».
«Откуда вы знаете? — задохнулась Хелен. Ей всего
сорок два; у нее муж и дети, трое ребят от шести до
пятнадцати. — Я ведь только кровь сдавала!»
«Когда есть образцы ДНК, по маркерам в крови можно
выявить не только наличие рака, но даже его тип и стадию.
Хотите — сделаем биопсию. Хотя анализы крови теперь
настолько точны, что необходимость в этой небезопасной
процедуре практически отпала».
«У моей двоюродной сестры тоже нашли рак печени.
Восемь лет назад, в 2018-м. Вариантов лечения тогда было
немного. Через семь месяцев ее не стало...»
«За десять лет многое изменилось! Унифицированные
методы лечения мало что давали. Со временем стало ясно,
что подход должен быть строго индивидуальным. Сначала
мы анализируем образцы ДНК здоровых и мутировавших
раковых клеток пациента, а затем создаем протеины,
заставляя их сворачиваться так, чтобы эффективно ней-
трализовывать раковые клетки и не причинять никакого
вреда здоровым. Мертвые раковые клетки сами постепенно
выводятся из организма».
«Наверно, это стоит кучу денег...» — задумчиво протя-
нула Хелен.
«Кучу денег стоила химиотерапия! Новый метод обой-
дется вам всего в две тысячи, и со временем он будет
26 Золотой билет

становиться все дешевле и дешевле. Ваша страховка


покроет почти все расходы».
«Фантастика! Но что же такого случилось за последние
десять лет? Почему лечить и делать анализы теперь
настолько просто?»
«Исследования на эту тему велись уже давно, однако
существенно продвинуться в расшифровке ДНК не поз-
воляли даже самые мощные компьютеры. С появлением
урбанского алгоритма все изменилось; за несколько лет
нам удалось добиться невероятного прогресса. Обычно
новые методы тестируются годами, но в этот раз первые
же испытания прошли с ошеломляющим успехом, так
что Министерство здравоохранения посчитало нечестным
лишать людей такой возможности».
«Понятно. Тогда давайте начнем!»
«Начнем что? Кровь мы у вас уже взяли, анализ
сделали. Вот рецепт, — ответил доктор, протягивая Хе-
лен флешку вместо привычного листка бумаги. — Здесь
записаны коды белков, которые вам нужны. Отнесите это
в аптеку, и они вам сделают таблетки. За две недели все
раковые клетки будут выведены из организма. И никаких
побочных эффектов! Но имейте ввиду, что рецепт подходит
только вам. ДНК у все разная; если таблетки выпьет кто-то
еще, последствия могут быть очень и очень серьезными».
«Поверить не могу... Меня не будет тошнить, и волосы
не выпадут? Если рак диагностируют на ранней стадии,
можно просто выпить таблетку — и он пройдет, как обыч-
ная простуда? И все благодаря какому-то алгоритму?!»
«Ну... не совсем. Алгоритм, конечно, очень помог
в лечении рака, СПИДа, диабета, но вот обычная простуда
до сих пор остается для медиков загадкой».

ПОСТ-УРБАНСКИЙ БЕЙСБОЛ
«Отличный денек, как раз для бейсбола!» — приговаривал
Рэнди, пока они с его двенадцатилетней дочерью Кейт
ехали в Сент-Луис на ее первую в жизни бейсболь-
ную игру — и последнюю в сезоне 2026 года. «Сент-
Луис Кардиналс» принимали у себя «Милуоки Брюэрс»;
предстояла жесткая борьба за чемпионский титул. Рэнди
Глава 2. Совершенный мир 27

размышлял о том, как сильно изменилась игра со времен


его детства — особенно в последние годы, когда на сцену
вышел урбанский алгоритм. Удивительно: ведь технически
бейсбол настолько прост, что в нем даже часы не
нужны.
Первые реформы коснулись, конечно же, расписания.
В далеком 2004-м расписание для Главной бейсбольной
лиги составлял супружеский тандем — Генри и Холли
Стефенсон. Условия были предельно просты; как правило,
учитывалось лишь количество выездных и домашних игр
да еще некоторые особые пожелания (к примеру, в День
патриота в середине апреля «Ред Сокс» хотели провести
дневную игру на своем поле в Бостоне, поскольку недалеко
от стадиона как раз пробегали бостонские марафонцы).
В 2005-м лига заключила контракт с питтсбургской
компанией Sports Scheduling Group, у которой одни
и те же команды почти никогда не встречались друг
с другом две недели подряд. Как известно, под лив-
нем в бейсбол на улице не поиграешь, однако Sports
Scheduling Group погодный фактор не учитывала: ведь
расписание составляют в декабре, на весь сезон вперед,
а предсказать дождь настолько заранее просто невозможно.
Вернее, было невозможно; но потом появился урбанский
алгоритм.
Метеорология вышла на совершенно новый уровень.
Предсказать температуру, ветер, облачность, осадки можно
было очень точно и почти на год вперед. Конечно, совре-
менные алгоритмы тоже справляются довольно неплохо —
предвидят ураганы, штормы, торнадо и землетрясения,
давая людям возможность подготовиться и даже куда-то
уехать. Но они работают как скорая помощь, а урбанский
алгоритм полностью изменил весь наш быт. Школы
заблаговременно вносят в расписание снегопад. Пастор,
проводящий церемонию бракосочетания на воздухе, под-
нимает цены в хорошую погоду и делает скидки тем, кто
согласен на дождь, жару и влажность. Людям нравится
смотреть игру в ясный, теплый день; есть ли смысл
торчать в дождливом или облачном Детройте, когда
в Миннеаполисе вовсю сверкает солнце и простаивает
стадион?
28 Золотой билет

В конце сезона зритель хочет видеть только значи-


мые игры. Биться должны лучшие — с этим согласны
и завсегдатаи стадионов, и «домашние» болельщики.
Когда Рэнди был ребенком, предсказать успех команды
мог разве что экстрасенс; теперь же научные методы
с пугающей точностью определяют, кто в сентябре
поборется за чемпионский титул. Конечно, такие методы
не всегда предсказывают чемпионство: фактор случайности
никто не отменял, и за сезон происходит несколько
незапланированных поражений. Впрочем, это от них
и не требуется: главное — заполнить верхние строчки
турнирной таблицы. Каждый год объявляются очередные
будущие аутсайдеры; каждый год оскорбленные болель-
щики кричат, что компьютер промахнулся. Но компьютер
не промахивается. Никогда. За исключением одного-
единственного (сильно нашумевшего) раза.
Администрация лиги требует составлять расписание
так, чтобы матчи проходили по возможности в хорошую
погоду, а в конце сезона встречались только самые
лучшие. При этом расходы, естественно, требуется све-
сти к минимуму, например за счет сокращения числа
переездов для каждой команды. Еще пятнадцать лет
назад учесть все требования и перебрать астрономическое
число потенциальных вариантов было невозможно, а вот
урбанский алгоритм справляется с задачей за несколько
минут.
Итак, в прекрасный ясный день Рэнди ведет дочь
на матч. «Кардиналс», естественно, взимают за погоду
дополнительные сборы, но за хороший сервис Рэнди не
прочь и приплатить.
На входе турникетов нет, нет и контролеров. Рэнди
и Кейт свободно проходят на стадион. Вошедших заметила
миниатюрная камера; программа распознавания лиц уже
сопоставляет их с владельцами билетов. Охрана найдет
и выведет любого, кто проникнет на стадион без билета;
впрочем, большинство «умельцев» уже давно оставили все
попытки обмануть программу.
Рэнди с дочерью усаживаются на свои места. Оглядев
стадион, Рэнди замечает пустую площадку: раньше здесь
всегда находился оператор с огромной телевизионной
Глава 2. Совершенный мир 29

камерой. Теперь камер стало двадцать; они очень малень-


кие, едва различимые глазом, и расположены по всему
периметру стадиона. Программа, разработанная на основе
урбанского алгоритма, собирает с них данные и тут же
формирует детальную трехмерную модель. По этой модели
компьютер может создать видео, в котором игра будет
показана со всех точек поля и во всех направлениях.
Зритель увидит питчера глазами кэтчера и узнает, что
проносится перед глазами бегущего на третью базу.
Формально все изображения генерируются компьютером,
однако выглядят они совсем как настоящие. Участникам
одного известного эксперимента показывали реальное,
снятое на камеру видео вперемешку с компьютерным;
89 из 100 подумали, что компьютерное изображение как
раз и есть реальное.
Телевизоры нового поколения уже умеют работать
непосредственно с трехмерными моделями; по ходу игры
зритель может виртуально переместиться в любое место
поля.
В момент удара битой по мячу компьютер точно
рассчитывает его будущую траекторию, а затем без-
ошибочно определяет наилучшее место для съемки.
Трансляцию теперь обслуживают всего четыре человека:
два комментатора, продюсер и техник — так, на всякий
случай. Впрочем, технические проблемы во время игры
возникают крайне редко. За этим матчем пристально сле-
дят и в Токио: у «Сент-Луиса», так же как и у «Милуоки»,
в составе есть известный японский бейсболист. Репортаж,
по обыкновению, ведется на английском, однако в Японии
зрители слышат родной язык. Комментаторы все те же,
вот только созданные на основе урбанского алгоритма
программы распознают их голоса и после автоматического
перевода синтезируют безукоризненную японскую речь.
Трансляция доступна на 876 языках и диалектах мира.
Вице-президенту телекомпании кажется, что четыре
сотрудника — многовато. Может, удастся сократить их
число до нуля? Камеры на стадионах университетских
кампусов уже много лет записывают все бейсбольные игры,
чтобы тренеры спокойно проводили послематчевый анализ.
Один находчивый студент недавно придумал, как при
30 Золотой билет

помощи урбанского алгоритма преобразовать цифровые


данные камер в полноценную трансляцию, в которой
будут и комментаторы, и удачные ракурсы, и статистика,
и повторы — и все это от начала и до конца компьютерное,
а не созданное человеком. Вскоре в интернете уже можно
было в реальном времени смотреть все матчи колледжей,
школ и даже низшей лиги, причем в любом виде спорта
и почти на любом языке. Компьютерные комментаторы
заметно уступали настоящим, однако в общем и целом
были не так уж плохи.
Виртуальный спорт перешел на совершенно новый
уровень. В вымышленном матче теперь можно объединить
игроков из разных команд или даже эпох. Питчер Сай
Янг будет подавать на Джо ди Маджо, оба в расцвете
спортивной карьеры; «Янкиз» 1927-го года сыграют
против «Янкиз» 1998-го... Отделить реальный мир от
виртуального стало очень трудно. Однажды программист
со спортивного канала ESPN устроил первоапрельский
розыгрыш и изменил в программе одну небольшую деталь.
В результате зрители в прямом эфире наблюдали, как
его любимая баскетбольная команда «Бостон Селтикс»
побеждает «Нью-Йорк Никс», хотя в реальности все
обстояло в точности наоборот. После той трансляции
полетели многие головы...
С обязанностями судьи компьютеры тоже справляются
на «отлично». Они не ошибаются и с удивительной
точностью определяют все ауты, болы, страйки и хоум-
раны. Колледжи и низшая лига в целях экономии
пользуются только электронными арбитрами; Главная
лига настаивает, что судья должен быть «настоящим».
Дискуссия на эту тему возникает всякий раз, когда
очередная судейская ошибка влияет на исход игры.
После инцидента на Мировой серии 2022 года Главная
лига бейсбола запретила использование любых электрон-
ных устройств на протяжении всего матча, опасаясь
(и вполне справедливо), что компьютеры скоро отнимут
работу у бейсбольных менеджеров. «Для нашего общего
блага», — заявили в пресс-службе.
Потягивая холодное пиво и закусывая хот-догом (и то
и другое отличного качества и при этом полезно для
Глава 2. Совершенный мир 31

здоровья — благодаря новым рецептам, созданным при


помощи урбанского алгоритма), Рэнди наслаждается игрой
вживую — прямо как в старые времена, когда он был ре-
бенком. Конечно, можно было бы сэкономить и посмотреть
игру по телевизору — с прекрасными ракурсами, и к тому
же в 3D-режиме. С новыми технологиями домашний
просмотр дает гораздо больше впечатлений, чем поход
на стадион; однако Рэнди нравится ощущать себя ча-
стью происходящего, а создать подобный эмоциональный
настрой не под силу даже урбанскому алгоритму.
Турнирную таблицу можно скачать в интернете, но
Рэнди учит Кэйт заполнять ее самостоятельно — так же,
как учил его в свое время отец. Почти все вокруг измени-
лось под влиянием новых технологий, и в особенности —
с появлением урбанского алгоритма, однако правила игры
остаются все те же. Три страйка — и бьющий выбывает
из игры. Всегда.

БРИТВА ОККАМА
Урбанский алгоритм перенес нас в мир, где любая
болезнь поддается лечению, метеорологи всегда дают
точный прогноз, а компьютерная реальность неотличима
от настоящей. Как такое возможно? Ведь это всего лишь
программа, пусть даже и очень умная... В поисках ответа
мы отправимся в самое начало XIV века.
Уильям Оккам (или, точнее, Оккамский) еще юношей
вступил во Францисканский орден. В XIV веке в Оксфорде
наряду с францисканцами базировался также целый
ряд других религиозных орденов; все они давали кров
студентам Оксфордского университета, среди которых
был и изучавший теологию Уильям. Университет он
так и не закончил, однако это не помешало ему
стать одним из величайших мыслителей Средневековья
и внести поистине неоценимый вклад в физику, теологию,
логику и философию. Широкой публике Оккам известен
в основном благодаря своему принципу «бритва Оккама»,
согласно которому лучшим объяснением следует считать
самое простое. Почему бритва? Вероятнее всего, потому,
что она позволяет «сбривать», т. е. отсекать, все ненужное,
32 Золотой билет

оставляя лишь самую простую часть — и неважно, о каком


предмете идет речь. Для науки и философии этот прин-
цип стал основополагающим еще в эпоху Возрождения
и продолжает оставаться таковым и сейчас.
Французский мыслитель XVII века Рене Декарт поль-
зовался «бритвой Оккама» для доказательства существо-
вания окружающего мира. Самое известное изречение
ученого — это, безусловно, Cogito ergo sum, или «Я мыслю,
следовательно, я существую». В философском трактате
«Рассуждение о методе» Декарт выводит факт своего
существования практически из ничего, основываясь лишь
на своей способности рассуждать о себе. А как обстоит дело
с внешним миром? Может, все, что окружает Декарта,
существует лишь в его сознании? Ученый отвергает эту
идею, выдвигая более простое и к тому же более вероятное
объяснение: все люди — так же как и он сам — живут
в реальном физическом мире, который можно исследовать
и пытаться понять.
«И, заметив, что в истине положения „Я мыслю,
следовательно, я существую“ меня убеждает един-
ственно ясное представление, что для мышления
надо существовать, я заключил, что можно взять за
общее правило следующее: все представляемое нами
вполне ясно и отчетливо — истинно. Однако некоторая
трудность заключается в правильном различении того,
что именно мы способны представлять себе вполне
отчетливо».
Рене Декарт «Рассуждение о методе», часть IV
Современник Декарта Иоганн Кеплер изучал движе-
ние планет по орбитам и сформулировал ряд законов,
касающихся их траекторий и скорости, однако не нашел
простого объяснения тому факту, что планеты движутся
именно так, а не иначе.
Исаак Ньютон применил принцип «бритвы Оккама» для
описания поведения физических объектов. Его знаменитые
законы движения выглядят удивительно просто.
1. Всякий объект в отсутствие приложенной к нему
силы продолжает оставаться в состоянии покоя или
равномерного прямолинейного движения.
Глава 2. Совершенный мир 33

2. Ускорение, которое получает объект, прямо пропор-


ционально приложенной к нему силе.
3. Любые два объекта действуют друг на друга с рав-
ными по значению и противоположно направленными
силами.
Добавив к этому простое определение силы тяготения,
Ньютон сумел вывести открытые Кеплером законы движе-
ния планет. Простые объяснения — средство чрезвычайно
мощное!
Несколько веков спустя Альберт Эйнштейн высказал
гипотезу, что простые законы Ньютона перестают выпол-
няться, когда скорость движения объектов приближается
к скорости света. К подобной точке зрения склонялись
и другие ученые; большинство экспериментов подтвер-
ждало правоту Эйнштейна. «Всё следует упрощать до
тех пор, пока это возможно, но не более того», — метко
выразился ученый. Однако полученные им результаты
не означали, что ньютоновская модель мира абсолютно
не верна: в повседневной жизни она давала прекрасное
приближение. Законы Ньютона остаются актуальными
и по сей день и отлично работают для простых процес-
сов — например, если мы ведем автомобиль или ставим
эксперименты в школьной лаборатории.
Теория Эйнштейна, в свою очередь, не выдержива-
ет столкновения с мельчайшими частицами, которые,
как выяснилось, подчиняются правилам совсем другой
механики — квантовой. Современные физики пытаются
состыковать общую теорию относительности Эйнштейна
с квантовой механикой; если это удастся, можно будет
говорить о глобальной «теории всего».
Простые модели не способны охватить все многообразие
нашего мира, однако приближение они, как правило, дают
очень хорошее. Найдите простое объяснение какому-либо
факту — и получите возможность довольно точно предска-
зывать развитие однотипных ситуаций. В информатике
в последнее время этот принцип проявляется особенно
ярко.
Сегодня вы можете взять выписанный вам чек, сфото-
графировать на телефон и отправить в банк по интернету.
Программа проанализирует изображение и вычленит
34 Золотой билет

сумму и номер счета, даже если чек заполнен от руки.


Сотрудникам банка не придется вручную обрабатывать
чек, если только это не было оговорено заранее.
Расшифровать номер счета в нижней части чека для
программы никакого труда не составляет. Цифры строго
соответствуют установленному формату, специально раз-
работанному так, чтобы номер легко распознавался ком-
пьютером.
А вот сумма в 30 долларов выписана от руки. Откуда
машине знать, о какой сумме речь, если почерк у каждого
свой?

Рис. 2.1. Чек

Задача явно непростая. Взять хотя бы цифру «два» —


насколько по-разному пишут ее разные люди!

Рис. 2.2. Двойки


Глава 2. Совершенный мир 35

Подобными проблемами занимается особая матема-


тическая дисциплина — машинное обучение. На первом
этапе алгоритм получает большую обучающую выборку
(в нашем случае — несколько тысяч примеров написания
для каждой цифры). По ней он должен сконструировать
относительно несложную модель, которая позволит кор-
ректно отличать одну рукописную цифру от другой. Хо-
рошо натренированный алгоритм безошибочно распознает
незнакомые цифры даже в том случае, когда обучение
завершилось давно.
За последние двадцать лет в этой области удалось
добиться впечатляющих успехов. Современные методы
классификации данных позволяют анализировать уже
не тысячи, а миллионы обучающих примеров. Рас-
познавать теперь можно не только чеки; некоторые
программы редактирования изображений умеют вполне
сносно фильтровать фотографии по лицам. Сайты ин-
тернет-компаний (Amazon, Netflix, Pandora и многие
другие) рекомендуют книги, фильмы и музыку, ос-
новываясь на ваших предпочтениях и истории поку-
пок. Программы распознавания голоса и автоматиче-
ского перевода, конечно, не выдерживают конкуренции
с человеком, однако дают нам общее представление
о смысле написанного или сказанного. Спам-фильтры
избавляют нас от нежелательных сообщений, а автомобили
к 2020 году научатся ездить практически без нашего
участия.
Дальше, очевидно, все станет только лучше. С какого-
то момента успехи и достижения польются непрерывным
потоком. Значит ли это, что сбривать больше нечего?
Нет, не значит. Принцип Оккама гласит, что самое
простое описание следует считать самым лучшим, однако
не помогает нам это описание найти. Современные
методы машинного обучения работают с данными довольно
примитивной структуры; обычно это просто набор не
связанных друг с другом свойств. Найти самое простое
описание, т. е. создать небольшую эффективную программу
(на каком языке, неважно), которая умела бы быстро
классифицировать данные, — задача чрезвычайно трудная
и принадлежит классу NP.
36 Золотой билет

Урбанский алгоритм позволяет быстро решить любую


проблему из NP, а значит, найти простую программу
для классификации данных будет не сложнее, чем
решить школьную задачку по программированию. От нас
потребуется лишь подавать на вход большие обучающие
выборки: всю остальную работу алгоритм сделает сам. Так
мы сможем получить практически любые знания.
Мы уже знаем, что при помощи новых технологий
можно победить болезни и усовершенствовать нацио-
нальную американскую игру. Вернемся назад в будущее
и посмотрим, как урбанский алгоритм изменил саму суть
искусства.

АВТОМАТИЗАЦИЯ ТВОРЧЕСКОГО ПРОЦЕССА


Урбанский алгоритм в сочетании с «бритвой Оккама» поз-
воляет получить практически любые знания — например,
понять, что делает картины притягательными, музыку —
популярной, а слова — берущими за душу: ведь если
P = NP, мы можем просто перебрать все потенциальные
варианты. Так мы найдем процедуру распознавания
гениальности, а она даст нам возможность быстро находить
и гениальные произведения.
В 2022 году Демократическая партия проводила оче-
редные праймериз в Сенат от штата Колорадо. Пит
Джонсон был в избирательных списках первым с конца —
но только до своей «той самой речи». За две недели
до выборов в небольшом театре города Вейл Джонсон
выступил с десятиминутной речью об Америке и Колорадо.
Слова кандидата потрясли аудиторию; ему устроили
овацию, и все тридцать два приглашенных аплодировали
стоя.
Прессу на собрание не звали, однако один из при-
сутствующих записал все на телефон и выложил в ин-
тернет. Выступление посмотрели миллионы, и тысячи
людей потом клялись, что видели все своими глазами.
В результате праймериз Джонсон выиграл, и после этого
начались довольно серьезные разговоры о его участии
в президентских выборах 2024 года. Политик планиро-
Глава 2. Совершенный мир 37

вал часто появляться перед публикой, поэтому уволил


руководителя своей избирательной кампании и пригласил
известного на всю страну профессионала.
Желая отомстить, экс-начальник избирательного штаба
созвал пресс-конференцию и рассказал, почему речь
Джонсона имела такой успех. Шансы добраться до
выборов были почти на нуле, и избирательной кампании
требовался мощный толчок. Штаб нанял программиста,
который собрал чуть ли не сотню тысяч успешных речей,
произнесенных за последние десятилетия, и с помощью
урбанского алгоритма написал новую речь, где говорилось
о происходящих в Колорадо и в мире событиях. После
долгих репетиций Джонсон произнес синтезированную
компьютером речь с блеском, а начальник штаба заплатил
одному из слушателей, чтобы тот все снял на видео
и выложил в интернет.
После пресс-конференции разгорелись жаркие споры.
Одни были вне себя от ярости, другие не видели особой
разницы между компьютером и спичрайтером. Локомотив
Джонсона перестал набирать обороты; основные выборы
политик проиграл, однако к 2026 году подавляющее
большинство кандидатов уже вовсю создавали тексты
выступлений при помощи компьютера — кто частично,
а кто с начала и до конца. Все политические речи стали
одинаково хороши, и, конечно, ни одну из них уже нельзя
было назвать по-настоящему прекрасной.
Музыканты при помощи урбанского алгоритма допи-
сывают знаменитые неоконченные классические произве-
дения вроде «Турандот» Пуччини, Десятой симфонии Ма-
лера или Восьмой симфонии Шуберта («Неоконченной»),
а также сочиняют новые, например — Десятую симфонию
Бетховена. «Урбанская первая» — самая популярная сим-
фония урбанского алгоритма — своим новаторским звуком
привела концертную публику в настоящий восторг. Кое-
кто создает даже композиции «Битлз» и Элвиса Пресли,
синтезируя не только мелодию, но и голоса. Серьезные му-
зыкальные критики утверждают, что это не искусство, по-
скольку элемент творчества здесь полностью отсутствует,
однако люди все равно активно скачивают песни из сети.
38 Золотой билет

Одни создают на компьютерах картины, другие —


пьесы, романы и даже стихи... Какой-то киноман недав-
но сгенерировал романтическую комедию с молодыми
Хамфри Богартом и Джулией Робертс, и зрители почти
поверили, что актеры ради совместных съемок совершили
путешествие во времени. Мечтаете увидеть «Волшебника
из страны Оз» от Тима Бёртона? Так в чем проблема?
Amazon уже давно не рекомендует книги к прочтению.
Теперь он может сделать для вас гораздо больше:
индивидуальный роман, полностью отвечающий вашим
вкусам и интересам, обойдется не дороже билета в кино. На
канале NBC запустили многосерийное приключенческое
«реалити-шоу» без актеров и сценаристов: каждая серия от
начала и до конца генерируется компьютером. В последней
версии приставки Xbox появилась игра, в которой
ваша жизнь и мир вокруг создаются прямо на ходу.
Сюжетные линии не предопределены заранее; игрок может
действовать совершенно произвольно, а программа, не
вмешиваясь, позволяет его действиям реализовываться.
Из-за этого многие уже с трудом отделяют свою реальную
(и не особо насыщенную) жизнь от виртуальной.
Люди в восторге от таких удивительных возможностей.
Впрочем, критики в один голос твердят об отсутствии
подлинного самовыражения. Вопрос о том, приведет ли
появление урбанского алгоритма к наступлению новой
эры в искусстве или к полной его деградации, останется
предметом споров еще не одно столетие.

ПЕРВОКЛАССНЫЙ ДЕТЕКТИВ
Полиция обнаружила, что урбанский алгоритм идеально
подходит для раскрытия преступлений: подозреваемого
он может отыскать, не имея практически ни единой
зацепки. Правда, из-за этого однажды вышел небольшой
скандал.
При расследовании массового убийства в Атланте,
происшедшего уже в «пост-урбанский» период, полиции
удалось получить образец ДНК с оставленной на месте
преступления обертки от гамбургера. В национальной
Глава 2. Совершенный мир 39

объединенной базе индексов ДНК — CODIS — соответствия


не нашлось. Тогда один ученый из Технологического
института Джорджии привлек к делу урбанский алгоритм.
В результате был создан новый, натренированный на базе
CODIS метод, способный по образцу ДНК определить не
только физические параметры (рост, цвет глаз и кожи),
но также черты характера, а иногда даже профессию.
Сопоставив данные CODIS с фотографиями из полицейских
досье, ученый вместе со студентами разработал алгоритм,
который, обладая информацией о возрасте и наличии
бороды и усов, рисовал по ДНК человека его примерный
портрет.
В полиции попытались применить новый алгоритм для
сопоставления ДНК с места преступления со снимками из
уголовных дел. Поиск ничего не дал, и тогда алгоритм
запустили на базе водительских прав. Через несколько
часов подозреваемый Джордж Браун был уже под арестом.
С преступлением его связывали лишь самые косвенные
улики — отсутствие алиби и нарисованный компьютером
портрет. Добровольно сдать образцы ДНК арестованный
отказался, однако полиции удалось получить ордер; как
и ожидалось, совпадение ДНК было полным. Джорджа
Брауна признали виновным и приговорили к смертной
казни.
Осужденный подал апелляцию. Адвокаты настаивали
на том, что подобные методы расследования нарушают
право на неприкосновенность частной жизни. Дело пе-
редали в Верховный суд США, который постановил, что
использовать ДНК для установления личности правомерно.
Ведь улику полиция получила законным путем, а затем
над ней просто поработал некий алгоритм.
Несмотря на вердикт, дело вызвало волну обще-
ственного протеста. Неприкосновенность частной жизни
находилась под угрозой. Тридцать восемь штатов на
законодательном уровне запретили использовать образцы
ДНК для каких-либо иных целей, кроме сличения с уже
имеющимися в базе CODIS. А губернатор Джорджии
в конечном итоге изменил Брауну меру пресечения на
пожизненное заключение.
40 Золотой билет

ОБРАТНАЯ СТОРОНА МЕДАЛИ

Появление урбанского алгоритма повлекло за собой


немедленную смерть криптографии с открытым ключом.
Напрямую вводить номер кредитной карты в интернете
стало небезопасно. Поначалу вся электронная торговля
просто остановилась, но затем крупные интернет-компании
совместными усилиями перешли на старую добрую систему
шифрования с секретным ключом. Вскоре для секретных
ключей появился единый реестр; в каждом магазине
можно было за смешные деньги приобрести флешку
с миллиардом одноразовых кодов. Конечно, раньше было
гораздо удобнее, но зато теперь интернет-торговля снова
на плаву.
Постепенная потеря приватности многих пугает. Без-
обидные с виду видеокамеры распознают наши лица
и могут за нами проследить; программы с удивительной
точностью определяют, куда мы ездим отдыхать, какую
музыку слушаем, какое кино смотрим и какие товары
покупаем. Компьютеры знают о нас больше, чем мы
сами. Реклама в почтовых ящиках выглядит невероят-
но убедительно — ведь теперь ее разрабатывают с уче-
том наших личных вкусов. Потенциальных террористов
и магазинных воров вычисляют практически мгновенно
и тут же устанавливают за ними самое пристальное
наблюдение.
Больше всего мы опасаемся потерять работу. «Белых
воротничков» (от секретаря и до управляющего сред-
него звена) постепенно заменяет урбанский алгоритм.
В программу можно загрузить почти любую информацию,
включая неформальные письма, аудио- и видеофайлы,
а она мгновенно напишет ответное письмо, составит отчет,
выдаст заключение или даже примет решение. Вместо
«отдадим на аутсорсинг» теперь говорят «отдадим на
урбанайзинг». Зарплатные ведомости становятся короче;
чтобы вас не уволили, вы должны убедить работодателя
в вашей исключительной ценности. Компании все чаще
закрывают офисы службы поддержки за рубежом: вместо
них устанавливаются электронные мультиязычные спра-
Глава 2. Совершенный мир 41

вочные системы, которые, судя по опросам, помогают


клиентам гораздо лучше, чем люди.
В некоторых странах спешно переписывают трудовое
законодательство, чтобы человека нельзя было просто
взять и заменить на урбанский алгоритм. Толку от этих
законов немного, поскольку остальные страны уже создали
слишком высокую конкуренцию на рынке труда. Впрочем,
судя по некоторым признакам, ситуация потихоньку
начинает выправляться сама. Появление алгоритма послу-
жило хорошим толчком для развития впавшей в застой
экономики. В университетах ввели курс по урбанским
методам оптимизации: слушателей учат быстро и легко
приспосабливать урбанский алгоритм для решения любой
проблемы. Со временем благодаря алгоритму появится
даже больше рабочих мест, чем было потеряно. И все
же многие его просто ненавидят, понимая, что не все,
кто лишился работы, сумеют приспособиться к новой
экономической действительности.
Правительства усердно разрабатывают законы для
защиты населения от последствий внедрения алгоритма,
однако научно-технический прогресс назад не развернешь.
Человек адаптируется быстро; по данным соцопросов,
сейчас уже мало кто мечтает повернуть время вспять
и перенестись в старый добрый 2012-й, в «до-урбанскую»
эру.

С НЕБЕС НА ЗЕМЛЮ
Трудно представить, что один-единственный алгоритм спо-
собен полностью перевернуть нашу жизнь. Неужели все,
что можно описать словами, можно и создать? Неужели
можно без труда получать практически любые знания?
Звучит невероятно, и именно поэтому большинство ученых
не верят в равенство P и NP и полагают, что у нас
никогда не будет ни урбанского, ни еще какого-нибудь
универсального алгоритма.
Впрочем, рассказанные в этой главе сказки вполне
могут стать реальностью — вне зависимости от того, равны
классы P и NP или не равны. Конечно, для этого нам
42 Золотой билет

потребуется больше времени; к тому же в отсутствие


волшебной программы, позволяющей решать сразу все
задачи, придется бороться с каждой проблемой отдельно.
Однако человеческая изобретательность не знает границ,
так что мы в конце концов найдем способ реализовать
все свои мечты.
Глава 3
КЛАССЫ P И NP

ЗАКЛЯТЫЕ ДРУЗЬЯ
Лучший способ получить наглядное представление о клас-
сах P и NP — отправиться в воображаемое Королевство
заклятых друзей, в котором любые два жителя либо
дружат, либо враждуют.
В Королевстве проживает двадцать тысяч человек.
Глядя на каждого из них в отдельности, ничего такого не
подумаешь... однако стоит только свести двух жителей
вместе — и происходит нечто совершенно необъяснимое:
они или немедленно проникаются взаимной симпатией
и тут же становятся близкими друзьями, или с первого
взгляда превращаются в злейших врагов. Никто и никогда
не видел, чтобы между двумя жителями сложилось нечто
среднее между дружбой и враждой (как можно было
бы заключить из названия «заклятые друзья»): они
всегда или дружат взахлеб, или терпеть друг друга не
могут.
Никакой системы здесь не наблюдается. Друг вашего
друга — точно так же, как и враг вашего врага — может
быть вам другом, а может и врагом. Зависимость от пола,
расы, вероисповедания и социального статуса тоже вроде
бы отсутствует; известно только, что друзей у жителей
Королевства обычно намного меньше, чем врагов.
В интернете можно найти массу информации о том,
кто с кем дружит. Специалисты факультета компьютерных
наук Королевского технологического института проанали-
зировали данные социальных сетей, включая Facebook
и Twitter, и составили практически полную базу друзей
44 Золотой билет

и врагов в Королевстве. В данной главе мы поговорим


о том, как эти данные можно использовать.

ШЕСТЬ СТЕПЕНЕЙ ОТЧУЖДЕНИЯ


Выберем наугад двух жителей Королевства; пусть их зовут
Элис и Джордж. Маловероятно, что Элис и Джордж
дружат. Возможно, между ними существует связующее
звено — общий друг Боб. А возможно, и нет. Исследо-
ватели Королевского технологического нарисовали схему,
в которой каждому жителю Королевства соответствует
один элемент; если жители дружат, то соответствующие
элементы соединяются на схеме линией. Один из фраг-
ментов схемы выглядел примерно так:

Рис. 3.1. Дружеские связи в Королевстве

Чтобы добраться от Элис до Джорджа, нужно пройти


по цепочке из шести связей: Элис дружит с Бобом, Боб —
с Кэти, Кэти — с Дэвидом, Дэвид — с Евой, Ева — с Фре-
дом, а Фред — с Джорджем. Исследователи задумались:
можно ли любую пару жителей соединить относительно
короткой цепочкой дружеских связей? Проявится ли здесь
феномен «тесного мира»? Кстати, название феномена
пошло вовсе не от аттракциона в Диснейленде, а от
слов «мир тесен», которые мы обычно произносим, когда
Глава 3. Классы P и NP 45

знакомимся с кем-то и выясняем, что нас связывает нечто


общее (пусть даже очень отдаленно).
В 1967 году психолог Стэнли Милгрэм поставил свой
знаменитый эксперимент по проверке теории «тесного
мира». Сначала он выбрал некоего биржевого маклера,
проживающего в Бостоне. Имя маклера сохранялось
в секрете; для удобства назовем его Том Джонс. Далее
совершенно случайным образом в Небраске были выбраны
сто держателей акций. Потом — сто людей, не являвшихся
акционерами. И, наконец, в Бостоне по объявлению
в газетах были найдены еще сто участников. Вторая
группа из Небраски и группа из Бостона не имели
никакого отношения к инвестиционному миру. Каждому
из трехсот участников Милгрэм отослал пакет, в который
вложил список инструкций, реестр и пятнадцать почтовых
открыток с маркой, адресованных ему в Гарвардский
университет. Инструкции выглядели так:
1. Занесите свое имя в реестр.
2. Заполните одну из открыток и бросьте ее в почтовый
ящик.
3. Если вы лично знаете бостонского биржевого маклера
по имени Том Джонс, перешлите пакет ему.
4. В противном случае выберите среди своих знакомых
кого-нибудь, кто, по-вашему, с большей степенью
вероятности знает Тома Джонса и чье имя пока не
значится в реестре, и перешлите пакет ему (или ей).
Из трехсот участников двести семнадцать переслали
пакет своим друзьям. Шестьдесят четыре письма в конце
концов добрались до цели, т. е. до Тома Джонса. Средняя
длина цепочки оказалась равна 5,2; в результате возникло
понятие «шесть степеней отчуждения», означающее, что
любых двух человек на планете в среднем разделяет це-
почка из шести связей. Отдельные аспекты эксперимента
подверглись резкой критике; впрочем, Милгрэм и сам не
возводил феномен шести степеней в статус закона, однако
его эксперимент показал, что мы связаны гораздо теснее,
чем можно было бы ожидать.
Придумывая различные определения понятия связи —
более специфические, чем простое знакомство, — можно
46 Золотой билет

исследовать и анализировать людские сообщества. Иногда


таким образом возникают салонные игры, в которых тре-
буется вычислить расстояние от произвольного человека
до некой «центровой» персоны, обладающей, как правило,
большим количеством связей. В 1994 году Кевин Бэйкон,
выступая в поддержку своего фильма «Дикая река»,
в шутку заметил, что все актеры в Голливуде снимались
либо с ним самим, либо с теми, кто с ним снимался.
Тут же родилась игра под названием «Шесть шагов
до Кевина Бэйкона», цель которой — найти кратчайший
путь между заданным актером и Бэйконом через актеров,
с которыми они вместе снимались. Для многих актеров
путь до Бэйкона (и, соответственно, друг до друга)
оказался очень коротким. Например, Чарли Чаплин
находится от Бэйкона всего в трех шагах: в 1967 году
он снял фильм «Графиня из Гонконга», в котором сам
сыграл второстепенную роль; графиню играла Софи Лорен,
которая в 1979 году снялась в малоизвестном фильме
«Сила огня»; одну из главных ролей в этом фильме сыграл
Илай Уоллак, позднее появившийся в эпизодической
роли в фильме «Таинственная река»; в этом же фильме
снимался и Бэйкон.
У математиков тоже есть похожая игра: через совмест-
ные публикации они ищут расстояние до Пола Эрдёша —
гения комбинаторики и рекордсмена по количеству
публикаций 1) .
В Королевском технологическом решили выяснить,
выполняется ли закон «шести степеней» для дружеских
связей между жителями Королевства. Как проверить,
существует ли цепочка из шести связей между Элис
и Джорджем? Простейший способ — перебрать все суще-
ствующие цепочки длины шесть. Вот только в Коро-
левстве, насчитывающем 20 000 жителей, таких цепочек
может набраться 3 198 400 279 980 000 480 000. Даже если
предположить, что компьютер будет проверять триллион
1) Мое число Эрдёша равно двум, поскольку у меня имеются

совместные публикации с тремя его соавторами. В единицу оно уже


вряд ли когда-нибудь превратится: Пал Эрдёш умер в 1996 году.
Актерский опыт у меня отсутствует (талант, впрочем, тоже), так
что мое число Бэйкона не определено.
Глава 3. Классы P и NP 47

цепочек в секунду, на решение задачи уйдет более ста


лет. Неужели нет способа получше?
Оказывается, есть. Существует совсем не сложная
процедура, позволяющая быстро определить расстояние
между Элис и Джорджем.
• Присвоим Элис число 0.
• Присвоим всем друзьям Элис число 1.
• Присвоим число 2 всем друзьям тех, кто получил
число 1 и у кого пока еще нет числа.
• Присвоим число 3 всем друзьям тех, кто получил
число 2 и у кого пока еще нет числа.
• Продолжаем до тех пор, пока Джордж не получит
число.
• Число Джорджа и будет расстоянием между ним
и Элис.
Подобные неформальные описания вычислительных
процессов называются алгоритмами. Своим названием
алгоритмы обязаны персидскому математику по имени
Мухаммад ибн Муса Аль-Хорезми, жившему в VIII–IX ве-
ке н. э. В 825 году Аль-Хорезми написал трактат «Книга об
индийском счете», благодаря которому индийская система
счисления широко распространилась сначала на Востоке,
а затем и в Европе. В латинском переводе книга получила
название Algoritmi de numero Indorum. Имя Аль-Хорезми
превратилось на латыни в Algoritmi, что в конечном итоге
и привело к возникновению термина «алгоритм».
Упомянутый выше алгоритм вычисляет длину пути
между Элис и Джорджем приблизительно за полмиллиона
шагов. Если мы захотим найти степень отчуждения
для всех пар жителей Королевства, нам потребуется
средство помощнее: алгоритм Флойда–Уоршелла, который
справится с задачей примерно за восемь триллионов
шагов. Вам кажется, что триллион — это ужасно много?
Но ведь компьютеры и сейчас уже способны выполнять
миллиарды операций в секунду, так что мощные ин-
ститутские процессоры вообще посчитали все за пару
минут. В результате выяснилось, что средняя степень
отчуждения в Королевстве чуть больше шести. При этом
были найдены совершенно изолированные группы друзей,
48 Золотой билет

не имеющие дружеских связей с остальными жителями


Королевства.
Не стоит недооценивать важность этого события. В ин-
ституте, конечно, могли бы написать программу, которая
методично перебирает все возможные пути, пытаясь найти
минимальное количество связей между Элис и Джорджем;
вот только этой программе пришлось бы проверить столько
путей, что она просто не закончила бы работу за разумное
время. Более эффективный алгоритм позволил вычислить
степень отчуждения для Элис и Джорджа за ничтожную
долю секунды, а для всех пар жителей — за каких-то две
минуты.

ЗАДАЧА О ЧИСЛЕ ПАРОСОЧЕТАНИЙ


В Королевстве заклятых друзей залог счастливых от-
ношений — это прежде всего крепкая дружба. Правда,
дружеские связи возникают совершенно бессистемно;
хорошо, если вам встретился подходящий партнер, но
ведь не всем так везет!
Институтские исследователи вскоре поняли, что их
база может принести пользу обществу, и решили с ее
помощью повысить число удачных браков. На сайте
института появилось объявление о наборе 200 волонтеров:
по 100 мужчин и женщин гетеросексуальной ориентации.
Волонтеры откликнулись очень быстро. Теперь ученым
предстояло «поженить» как можно больше участников.
Сколько вариантов должен рассмотреть каждый участ-
ник? Первому мужчине потенциально подходят 100 жен-
щин. Когда выбор сделан, у второго мужчины остается
99 вариантов, у третьего — 98, и так далее. Итого
получается 100 умножить на 99 умножить на 98 умножить
на ... умножить на 2 умножить на 1 — величина, называе-
мая факториалом числа 100 и записываемая в виде «100!».
Факториал числа 100 состоит из 158 цифр и намного
превосходит гугол — число, изображаемое единицей со ста
нулями. Термин «гугол» изобрел девятилетний племянник
математика Эдварда Казнера, когда тот попросил мальчика
придумать числу название.
Глава 3. Классы P и NP 49

Название компании Google призвано отражать огром-


ный объем информации, обрабатываемый поисковыми
сереверами: это искажение от «гугол» (англ. «googol»).
Впрочем, отражает оно этот объем, мягко говоря,
некорректно. Интернет, конечно, большой, и измерить
его точно не представляется возможным, однако объем
содержащейся в нем информации и близко не подходит
к гуголу, какими бы мелкими единицами мы его ни
измеряли. Если мы даже составим вместе все когда-либо
созданные нами компьютеры, то и тогда, вне всяких
сомнений, не получим гугол (и уж тем более факториал
числа сто).
Однако у ученых все же оставался шанс соединить как
можно больше пар, т. е. найти максимальное число паро-
сочетаний. Для этого просто нужно было воспользоваться
специальным алгоритмом. На рисунке ниже представлены
несколько пар друзей.

Рис. 3.2. Потенциальные пары в Королевстве

Рис. 3.3. Паросочетания (не максимальное число)

Посмотрим, каким образом можно из друзей составить


романтические пары. Начнем с Артура и соединим его
с Евой. Боб и Фелисити пока одиноки; соединим их,
50 Золотой билет

Рис. 3.4. Максимальное число паросочетаний

а также Карла с Гейл. На рис. 3.4 романтические связи


обозначены пунктирной линией.
Теперь у нас не осталось пар друзей, в которых оба
были бы свободны. Может, это означает, что мы составили
максимальное паросочетание? А вот и нет.
У Дэвида нет пары, однако он дружит с Фелисити,
которую мы сочетали с Бобом. Боб дружит с Гейл, но
чету они не образуют. Гейл соединена с Карлом, а Карл
дружит с одинокой Хелен. Разлучим Боба с Фелисити
и Карла с Гейл и составим новые связи. Теперь пара есть
у всех!
Вернемся к рис. 3.3. Цепь из чередующихся сплошных
и пунктирных линий, первый и последний элемент которой
не имеет пары, т. е. не принадлежит паросочетанию,
называется увеличивающим путем. При наличии уве-
личивающего пути мы всегда можем увеличить наше
паросочетание. В 1957 году математик Клод Берж показал,
что для любого паросочетания, не являющегося макси-
мальным, существует увеличивающий путь. Программи-
сты Королевского технологического реализовали алгоритм
нахождения увеличивающих путей, основанный на методе
последовательного поиска, и в результате смогли подобрать
пару для 98 процентов участников эксперимента.
Вскоре после описанных событий Королевский верхов-
ный суд вынес постановление, разрешающее однополые
браки. На сайте института тут же вывесили объявление
о наборе волонтеров любых сексуальных ориентаций.
Схемы заметно усложнились; появились даже любовные
треугольники, которые к тому же частично пересекались
друг с другом (см. ниже).
Глава 3. Классы P и NP 51

Простыми методами находить увеличивающие пути


уже не получалось, и исследователи обратились к трудам
Джека Эдмондса. В 1965 году Эдмондс написал работу
с изящным названием «Пути, деревья и цветы», в которой
представил усложненный алгоритм поиска увеличиваю-
щих путей, подходящий для совершенно произвольных
схем. Реализовав метод Эдмондса, специалисты института
сумели подобрать пару для 97 процентов участников
второго эксперимента.
«Пути, деревья и цветы» дали нам не только эффек-
тивный способ решения задачи о паросочетаниях для
случая произвольной схемы. В группе из 100 человек
алгоритм Эдмондса находит максимальное паросочетание
примерно за 1004 , т. е. 100 000 000 (сто миллионов)
шагов, что для современного компьютера сущий пу-
стяк. Методичный перебор всех возможных сочетаний
вылился бы примерно в два квинвигинтиллиона шагов,
а один квинвигинтиллион — это, между прочим, единица
и 78 нулей! В работе Эдмондса есть довольно длинное
отступление на тему эффективных алгоритмов. Понимая,
что для такого, в сущности, интуитивного понятия,
как эффективность, подобрать полноценное формальное
определение очень сложно, Эдмондс все-таки предлагает
некий критерий. Он называет алгоритм эффективным,
если тот находит решение за «алгебраическое» время, т. е.
время, «алгебраически» зависящее от размера входных
данных. Для 100 человек это может быть, к примеру,
1004 , 1002 или 10012 . В дальнейшем класс задач, для
которых существуют такие алгоритмы, получил обозна-

Рис. 3.5. Нетрадиционные потенциальные пары


52 Золотой билет

чение «P» — от слова «полиномиальный», заменившего


эдмондсовское понятие «алгебраический». Таким образом,
класс P представляет собой все многообразие задач,
которые можно решить относительно быстро. Ну что ж —
в споре «P против NP» мы выслушали мнение первой
стороны.

В ПОИСКАХ КЛИКИ
В рамках проводимого исследования институтскому про-
фессору социологии понадобилось найти 50 жителей
Королевства, которые дружили бы между собой. Своими
силами справиться с задачей не удалось, и профессор
обратилась на факультет компьютерных наук, где один
из специалистов рассказал ей о базе дружеских связей
и уверенно заявил, что клика из 50 друзей найдется без
труда.
На деле выяснилось, что труд здесь требуется совершен-
но непосильный. Количество различных групп размера 50
оказалось непомерно огромным и выражалось числом из
151 цифры; не было и речи о том, чтобы проверить хотя
бы сотую долю вариантов. Круг поиска пытались сузить
всеми возможными способами — в частности, отсекли тех
жителей, у которых было меньше 49 друзей, поскольку
они-то уж точно не могли входить в искомую клику.
Однако, несмотря на свою высокую квалификацию,
исследователи не набрали и 25 друзей и при этом не
смогли представить убедительное доказательство того, что
клики размера 50 в Королевстве не существует.
Работа встала. Исследователи опустили руки. Внезапно
одного из аспирантов осенило: «Слушайте, у нас же есть
„Альфа“!» «Альфой» называлось известное, но при этом
полусекретное сообщество, все члены которого, по слухам,
дружили между собой. Пятьдесят «альфовцев» удалось
найти довольно быстро: ведь, в конце концов, секретным
сообщество было лишь наполовину. Оставалось только
перебрать 1 225 пар, чтобы проверить дружеские связи.
К изумлению исследователей (но не самих «альфовцев»,
разумеется), все пятьдесят действительно оказались дру-
зьями. Клика нашлась.
Глава 3. Классы P и NP 53

ПЕРЕДАЙ СКИПЕТР
Иногда достаточно внести лишь одно незначительное
изменение, чтобы задача, решение которой находится
очень легко, стала прямо-таки неприступной, и сейчас
мы с вами в этом убедимся.
Дети в Королевстве любят играть в игру под названием
«Передай скипетр», в которой участники по очереди
передают друг другу небольшую палку. Передачей счита-
ется тот момент, когда палку держат двое — передающий
и принимающий.
Правила игры:
1. Палку можно передавать только друзьям.
2. Между любыми двумя друзьями палка должна
переместиться ровно один раз.
Пусть в игре участвуют пятеро детей. Одно из возмож-
ных решений таково: начинают с Барбары, она передает
палку Эрику, Эрик — Алексу, Алекс — Кэти, Кэти — снова
Эрику, а Эрик — Дэвиду.

Рис. 3.6. Дети

Дети, которые играют в «Передай скипетр» часто,


вскоре понимают: решение существует, когда нечетное
число друзей среди игроков имеется не более чем у двух
участников. В данном случае таких участников у нас
ровно два — это Дэвид и Барбара, у каждого из которых
среди играющих есть только один друг. У остальных
детей количество друзей четно: у Алекса и Кэти — по два,
у Эрика — четыре. Вы спросите, причем тут четность?
А вот причем: чтобы передать кому-то палку, нужно сна-
чала получить ее, поэтому каждый игрок, кроме первого
54 Золотой билет

Рис. 3.7. Дети: число друзей у всех четно

и последнего, обязательно участвует в четном количестве


передач.
Когда у всех участников число друзей четно, в случае
успешного исхода палка возвращается к тому, с кого
начали.
В данной ситуации решение может быть таким:
начинают с Алекса, он передает палку Эрику, Эрик —
Дэвиду, Дэвид — Барбаре, Барбара — снова Эрику, Эрик —
Кэти, а Кэти — Алексу.
Прообразом игры «Передай скипетр» послужила одна
очень известная головоломка XVIII века. В прусском
городе Кёнигсберге (а ныне российском Калининграде)

Рис. 3.8. Старинная карта мостов Кёнигсберга


Глава 3. Классы P и NP 55

через реку Прегель и ее рукава было перекинуто семь


мостов (см. карту на рис. 3.8).
Жителям долгое время не давал покоя вопрос: можно
ли посетить все районы города, проходя по каждому
мосту ровно один раз? В 1735 году знаменитый математик
Леонард Эйлер придумал, как изобразить задачу в виде
схемы (см. рис. 3.9).

Рис. 3.9. Схема Эйлера

Очень похоже на игру со скипетром, и критерий


существования решения здесь тот же; единственное
отличие заключается в том, что узами дружбы связаны
уже не дети, а районы города — Северный, Восточный,
Южный и Остров. Эйлер доказал, что пройти по каждому
мосту ровно один раз невозможно, поскольку во всех
районах города количество мостов нечетно.
Так и выяснилось, что задача о семи мостах не имеет
решения. В память об этом в игре со скипетром любой
подходящий путь (а их бывает несколько) называется
эйлеровым. Эйлеров путь можно искать по-разному, в том
числе и простым перебором, однако при увеличении
количества участников число вариантов заметно возрас-
тает. Дети в Королевстве первым делом пересчитывают
игроков с нечетным числом друзей, чтобы понять,
существует ли вообще решение; если оно существует,
то найти искомый путь уже не составляет особого труда.
Поиск эйлерова пути — еще один пример задачи из клас-
са P, т. е. задачи, для которой существует эффективный
алгоритм.
56 Золотой билет

Рис. 3.10. Передай скипетр — 2: решение есть

Постепенно дети подрастают. Играть становится все


легче и легче; в конце концов «Передай скипетр» надоедает
им, и тогда они начинают играть в ее вариацию, которую
кто-то, не мудрствуя лукаво, окрестил «Передай скипетр —
2». Правила игры следующие:
1. Палку можно передавать только друзьям.
2. Все игроки, кроме первого, получают палку ровно
один раз; в конце палка возвращается к первому игроку.
Для представленной ниже схемы дружеских связей
решение может быть таким: Дэвид передает скипетр
Барбаре, Барбара — Эрику, Эрик — Алексу, Алекс — Кэти,
а Кэти возвращает его Дэвиду.
А вот для следующей схемы решения, как выяснилось,
не существует.
Новые правила выглядят проще. Поначалу детям
даже кажется, что вторая игра легче, чем первая,
однако при увеличении числа участников играть в нее
становится намного сложнее. В 1857 году математик

Рис. 3.11. Передай скипетр — 2: решения нет


Глава 3. Классы P и NP 57

Уильям Роуэн Гамильтон изобрел головоломку «Икосиан»,


или «Путешествие по додекаэдру», в которой нужно было
выполнить обход вершин правильного двенадцатигранни-
ка, или додекаэдра.

Рис. 3.12. «Путешествие по додекаэдру»

Эта головоломка — частный случай второй игры со


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

Рис. 3.13. Додекаэдр


58 Золотой билет

РАСКРАСКА ДОМОВ
В Королевстве вышел новый закон: по причинам эстетиче-
ского характера соседние дома должны быть выкрашены
в разные цвета (независимо от того, дружат их хозяева или
враждуют). Нововведение вызвало волну общественного
протеста: жители не желали тратить свои кровные на
краски и рабочих. В результате правительство согласилось
оплатить все счета при условии, что оно само выберет
цвета.
Расходы на краски предстояли огромные. Правитель-
ственные чиновники стремились минимизировать количе-
ство различных цветов, поскольку каждый сэкономленный
цвет позволял сохранить миллионы долларов. Королевско-
му технологическому выделили грант на поиск наимень-
шего количества цветов, достаточного для правильной
раскраски всех домов, т. е. раскраски, при которой любые
два соседних дома имеют разные цвета.
Ни у кого из жителей число соседей не превышает
двенадцати. При самом примитивном подходе — красить
каждый следующий дом в цвет, отличный от цветов
всех его соседей, — потребуется тринадцать различных
цветов. Однако в институте сумели обойтись малой
кровью.
Когда в 1852 году английский (а впоследствии юж-
ноафриканский) математик Франсис Гатри раскрашивал
карту графств Англии, ему пришло в голову, что любую
карту можно раскрасить в четыре цвета таким образом,
чтобы любые две смежные области получили разные
цвета. Его гипотеза широко обсуждалась в математической
среде; через некоторое время появились целых два
доказательства: первое в 1879 году выдвинул Альфред
Кемпе, второе — годом позже — Питер Тэт. Оба были
опровергнуты, хотя второе продержалось одиннадцать лет,
прежде чем в нем нашлись существенные изъяны. После
этого проблема раскраски карт почти сто лет оставалась
открытой.
Наконец, в 1976 году математики Кеннет Аппель
и Вольфганг Хакен сумели доказать, что для правильной
раскраски хватит четырех цветов. Правда, способ дока-
Глава 3. Классы P и NP 59

зательства был довольно спорным: для проверки много-


численных примеров, на которых строились рассуждения,
ученые использовали компьютер. Консервативно настро-
енные математики такой метод не приняли, поскольку не
все его этапы можно было проверить вручную. Впрочем,
формально доказательство Аппеля–Хакена так и не было
опровергнуто, и сегодня уже мало кто сомневается
в том, что любую карту действительно можно правильно
раскрасить в четыре цвета.
А вдруг четыре — это не предел? Можно ли обойтись
всего тремя цветами? Оказывается, нельзя, и сейчас мы
с вами в этом убедимся. Давайте рассмотрим штат Невада
и всех его соседей.
Неваду окружает кольцо из пяти штатов: Калифорния,
Орегон, Айдахо, Юта и Аризона. Пять — число нечетное,
поэтому для раскраски штатов кольца потребуется не
менее трех цветов. Действительно, предположим, что

Рис. 3.14. Невада и ее соседи


60 Золотой билет

цветов у нас всего два, к примеру — голубой и зеленый.


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

НА ПЕРВЫЙ-ВТОРОЙ РАССЧИТАЙСЬ!
В Королевской начальной школе обучается 500 детей.
Преподаватели решили поделить их на две группы,
разлучив при этом как можно меньшее число друзей,
поскольку те, конечно, хотели оставаться вместе. Вернемся
к схеме дружеских связей, рассмотренной в игре со
скипетром.
Глава 3. Классы P и NP 61

Рис. 3.15. Младшеклассники

Наилучшим решением будет поместить Алекса и Кэти


в одну группу, а Барбару, Дэвида и Эрика — в другую:
так мы разорвем всего две дружеские связи, Алекс-Эрик
и Кэти-Эрик. Очевидно, что разбиения, которое разлучило
бы лишь одну пару друзей, просто не существует.

Рис. 3.16. Группы младшеклассников

Директор школы обратился за помощью в институт,


подчеркнув, что учителя хотят разлучить минимально
возможное число друзей. Оказалось, что для решения за-
дачи существует довольно много эффективных алгоритмов,
поскольку она эквивалентна задаче о нахождении мини-
мального разреза в графе. Институтские исследователи
сумели разбить 500 учеников на две группы, «разрезав»
при этом всего 17 дружеских связей.
Все были довольны и счастливы... до тех пор, пока
учителя не осознали, что помещать в одну группу врагов —
это еще хуже, чем разлучать друзей. И директору
снова пришлось идти в институт. Теперь он просил
составить группы таким образом, чтобы разделить как
можно большее число врагов. Первая задача не вызвала
62 Золотой билет

абсолютно никаких затруднений, и директору казалось,


что со второй задачей в институте справятся с такой же
легкостью... однако он ошибался.
Исследователям предстояло разнести в разные группы
возможно большее число врагов, т. е. решить задачу
о поиске максимального разреза в графе, для которой —
в отличие от случая с минимальным разрезом — эффек-
тивных алгоритмов не существовало. Никто не знал,
как максимизировать количество разорванных вражеских
связей.
В конце концов выход все же нашелся. Применив
алгоритм, разработанный в 1995 году Мишелем Гемансом
и Дэвидом Уильямсоном, исследователи сумели построить
такое разбиение, при котором в разные группы попадала
1 321 пара врагов. Максимальный разрез построить не
удалось, однако до него оставалось совсем немного:
исследователи знали, что не существует такого разбиения,
при котором «разрезалось» бы более 1505 вражеских
связей. Директор остался несколько разочарован тем, что
оптимальное решение так и не нашли, но ему пришлось
смириться. Теперь все снова были довольны и счастливы.
Надолго ли?..

P ПРОТИВ NP
Некоторые задачи заставили институтских исследователей
изрядно попотеть. Давайте их перечислим: поиск клики,
поиск гамильтонова пути (вторая игра со скипетром),
раскраска карт и построение максимального разреза.
У всех этих задач есть одна общая черта: для них
легко проверить, является ли найденное решение верным.
Зная всех членов общества «Альфа», можно без особых
затруднений убедиться в том, что все они дружат между
собой, а следовательно — образуют клику. Предполагаемое
решение игры «Передай скипетр — 2» можно легко про-
тестировать, просто начав в нее играть. Когда все дома
раскрашены, можно за вполне разумное время проверить,
что цвета любых двух соседних домов различаются.
И, наконец, когда ученики уже разбиты на две группы,
Глава 3. Классы P и NP 63

директор школы легко подсчитает число разорванных


вражеских связей.
В теории сложности вычислений класс задач, для ко-
торых можно быстро проверить предполагаемое решение,
обозначается NP (где N значит «недетерминированная
машина Тьюринга», а P — «полиномиальное время», если
уж вам так интересно). Наиболее известные представители
класса NP — это как раз поиск клики, поиск гамильто-
нова пути, раскраска карт и построение максимального
разреза.
Обратите внимание, что в классе P, в отличие от
класса NP, решение можно быстро найти. Примеры —
кратчайший путь, максимальное число паросочетаний,
эйлеров путь (первая игра со скипетром) и минимальный
разрез.
А что, если быстрый алгоритм поиска клики суще-
ствует? Если в один прекрасный день какой-нибудь гени-
альный аспирант разработает простой метод нахождения
гамильтонова пути, эффективный алгоритм раскраски
карт или быстрый способ построения максимального
разреза? Вдруг все эти проблемы на самом деле лежат
в классе P — так же как и задачи о кратчайшем
пути, максимальном числе паросочетаний, эйлеровом пути
и минимальном разрезе? Такое вполне возможно; может
даже оказаться, что быстрый алгоритм существует для
всех задач из NP. Но пока мы этого не знаем.
В этом и заключается суть проблемы равенства (или
неравенства) классов P и NP. Если P = NP, мы попадаем
в совершенный мир, где для любой задачи из NP
существуют эффективные алгоритмы, и можно не только
быстро проверить предполагаемое решение, но и быстро
найти самый оптимальный вариант. И наоборот — если
найдется хоть одна задача из NP, для которой эффек-
тивного алгоритма не существует, это будет означать, что
P 6= NP.
Вопрос о равенстве P и NP — одна из центральных
проблем вычислительной техники, а возможно, и всей
математики. Многочисленные попытки ученых доказать
равенство классов и разработать быстрые алгоритмы для
поиска клики или гамильтонова пути, а также других
64 Золотой билет

NP-задач, успехом не увенчались. С неравенством классов


дело обстоит еще сложнее: ведь для обоснования того
факта, что P 6= NP, нужно доказать невозможность
построения быстрого алгоритма для клики или других
задач из NP. Но как вы докажете невозможность чего бы
то ни было? До сих пор ни в том, ни в другом направлении
не было получено сколько-нибудь значимых результатов.
Проблема P и NP настолько важна, что Математический
институт Клэя предложил миллион долларов за ее
решение. А я загорелся идеей написать эту книгу.

ЗА ГРАНИЦЕЙ КОРОЛЕВСТВА
Мы с вами лишь слегка коснулись огромного множества
NP-задач, которые невозможно решить за разумное время.
Вам, наверно, кажется, что проблема равенства P и NP
интересна только жителям воображаемого Королевства
да еще узкому кругу математиков, связанных с вычис-
лительной техникой. Чтобы развеять это впечатление,
рассмотрим еще несколько задач из NP, не имеющих
эффективных алгоритмов решения (и принадлежащих,
кстати, к разным областям науки).

Биология
Геном человека содержит двадцать три пары хромосом,
каждая из которых представляет собой двойную цепочку
пар оснований. Основания бывают четырех видов —
аденин (A), цитозин (C), гуанин (G) и тиамин (T).
Цепочки начинаются примерно так: «ACTGATTACA...»;
некоторые достигают прямо-таки гигантских размеров.
Самая короткая хромосома содержит около 47 миллионов
пар оснований, а самая длинная — около 247 миллионов.
Современные методы секвенирования ДНК позволяют за
один прием обрабатывать участки длиной от 20 до 1000 пар
оснований. Ученым приходится секвенировать огромное
число коротких кусков, а потом придумывать, как их
лучше соединить. Склейка последовательности — задача
огромной вычислительной сложности и принадлежит
она классу NP: ведь, имея на руках готовую после-
Глава 3. Классы P и NP 65

довательность, можно относительно быстро определить,


складывается она из секвенированных участков или нет.
Поскольку эффективные методы для поиска оптимального
решения пока неизвестны, биологи при составлении
карты человеческого генома вынуждены секвенировать
избыточное число последовательностей; к сожалению, это
не слишком спасает их от ошибок и неясных мест,
которых при наличии хорошего алгоритма было бы гораздо
меньше.
Последовательности ДНК содержат закодированную
информацию о последовательностях матричных РНК, а те,
в свою очередь, хранят информацию о синтезе белков.
Белки — или, иначе, протеины — играют ключевую роль
в работе клеток, формирующих любой живой организм.
Для выполнения своих функций протеин должен особым
образом свернуться, т. е. принять определенную простран-
ственную форму. Сложный механизм сворачивания био-
логами пока не разгадан; известно только, что процессом
командуют матричные РНК. Решение проблемы равенства
P и NP помогло бы продвинуться на пути понимания этого
механизма и, как следствие, — лечения и предотвращения
болезней.
В некоторых случаях предсказать пространственную
структуру белка помогает статистический метод про-
тягивания, работающий с последовательностями РНК.
Впрочем, этот метод тоже требует решения NP-задач,
хотя и дает нам лишь самое отдаленное представление
о механизмах сворачивания.

Физика
К классу NP принадлежит и проблема поиска состояния
минимальной энергии физической системы — например,
множества взаимодействующих магнитных частиц или
скопления мыльных пузырей. Эффективно находить такие
состояния мы пока не умеем. Но разве это не то же самое,
что и состояние равновесия? Нет — потому что в состоянии
равновесия энергия физической системы не обязательно
падает до минимума.
66 Золотой билет

Рис. 3.17. Простейшая физическая система

Рассмотрим простейшую физическую систему: шарик


на неровной поверхности (рис. 3.17). При x = 3,0 уро-
вень потенциальной энергии шарика минимален, а при
x = 1,0 — нет, хотя шарик будет оставаться в этой точке
до тех пор, пока его не толкнут. Таким образом, состояние
покоя еще не гарантирует минимального уровня энергии.
Поиск состояния минимальной энергии для сложных фи-
зических систем — задача чрезвычайно трудная, с которой
подчас не справляются не только компьютеры, но и сами
физические системы.
С некоторыми особо трудоемкими NP-задачами можно
бороться при помощи квантовой механики; подробнее об
этом вы узнаете в девятой главе.

Экономика
Менеджер хедж-фонда ищет наилучшую форму поме-
щения капитала. Покупатель в супермаркете старается
уложиться в бюджет. Оба сталкиваются с труднейшей
вычислительной задачей из класса NP, решить которую
получается далеко не всегда, и часто выбирают совсем
не оптимальную стратегию. Каким образом отсутствие
эффективных с вычислительной точки зрения алгоритмов
Глава 3. Классы P и NP 67

в различных сферах рынка сказывается на экономике


и на жизни общества в целом? Прекрасный вопрос;
к сожалению, достойного ответа на него не может дать
никто.
В книге «Игры разума» и в одноименном фильме
описывается жизнь известного экономиста Джона Нэша.
Нэш доказал, что в любом процессе стратегического взаи-
модействия нескольких сторон, или игроков, существует
состояние равновесия, при котором стратегия каждого
игрока такова, что он не выиграет от ее изменения
в одностороннем порядке. За свою работу ученый спустя
несколько десятилетий получил Нобелевскую премию.
Доказательство Нэша не дает нам алгоритм поиска
оптимальных стратегий; впрочем, позже выяснилось, что
эта поисковая задача обладает огромной вычислительной
сложностью. Маловероятно, что различные сферы рынка
сами, естественным образом, смогут достичь состояния
равновесия; по всей видимости, они так и будут непре-
рывно перетекать из одного состояния в другое, поскольку
люди постоянно меняют стратегии в стремлении добиться
наилучших результатов.

Математика
В 1928 году выдающийся немецкий математик Давид
Гильберт сформулировал свою знаменитую проблему раз-
решимости — Entscheidungsproblem: существует ли уни-
версальный алгоритм, который для любого математиче-
ского утверждения определяет, истинно оно или ложно?
В 1931 году Курт Гёдель показал, что некоторые утвер-
ждения невозможно доказать или опровергнуть ни в одной
системе аксиом; спустя несколько лет вдохновленные его
результатами Алонзо Чёрч и Алан Тьюринг независимо
друг от друга доказали, что универсального алгоритма не
существует.
Допустим, у нас есть некое математическое утверждение
и нам требуется найти относительно короткое доказатель-
ство, которое, к примеру, уместилось бы в тоненькой
книжке. Эта задача лежит в классе NP, поскольку
оценить длину уже имеющегося доказательства легко,
68 Золотой билет

а создать его совсем не просто; будь у нас на руках


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

РЕШЕНИЕ ГОЛОВОЛОМКИ
«ПУТЕШЕСТВИЕ ПО ДОДЕКАЭДРУ»

Рис. 3.18. Обход додекаэдра


Глава 4
САМЫЕ ТРУДНЫЕ ЗАДАЧИ КЛАССА NP

Психолог проводит эксперимент над математиком.


Математика посадили в маленький деревянный сарай;
на полу лежит лучина для растопки, рядом стоит стол,
а на нем — ведро с водой. Психолог поджигает лучину.
Математик хватает ведро и заливает огонь водой.
Пока все идет по плану. Психолог повторяет
эксперимент, изменив одну незначительную деталь.
Математика снова сажают в сарай; внутри тот же
стол, на полу такая же лучина, есть и ведро с водой,
но стоит оно не на столе, а рядом с лучиной на полу.
Психолог поджигает лучину. Математик хватает ведро
и ставит его на стол. В результате сарай выгорел дотла;
математика, к счастью, успели в последний момент
вытащить.
«Почему вы просто не залили огонь?!» — спрашивает
психолог. «Я свел новую задачу к уже решенной», —
отвечает математик.
Старый математический анекдот

ПЕРВАЯ NP-ПОЛНАЯ ЗАДАЧА


В 1970 году Том Хал, глава факультета информатики
Университета Торонто, загорелся идеей переманить к себе
Стивена Кука, которому не хотели давать постоянное место
в Калифорнийском университете в Беркли. Зная любовь
Кука к парусному спорту, Хал отвез его на озеро Онтарио:
он хотел доказать, что в окрестностях Торонто ходить под
парусом почти так же приятно, как и в заливе Сан-
Франциско. Хитрость удалась, и осенью 1970 года Кук
пополнил ряды специалистов Торонтского университета.
Со стороны Хала это был блестящий ход, поскольку
в скором времени Кук прославился на весь мир и стал
70 Золотой билет

самым известным канадским ученым в области теории


вычислений.
Кук проводил исследования на стыке математической
логики и теоретической информатики. Той осенью он
отправил одну из своих работ на рассмотрение комиссии
III Международного симпозиума по теории вычислений
(Symposium on the Theory of Computing, сокращенно —
STOC), проводимого Ассоциацией вычислительной техни-
ки. Симпозиум должен был состояться в мае 1971 года.
В статье Кука содержались результаты, полученные им
задолго до того и не вызвавшие в свое время ажиотажа.
Исследования ученого заинтересовали комиссию, и заявку
приняли. К началу конференции Кук почти все переделал;
в новой статье, которая называлась The Complexity of
Theorem-Proving Procedures, он впервые сформулировал
проблему равенства классов P и NP и тем самым полностью
изменил ход истории.
Чтобы лучше понять результаты Кука, вернемся
к рассмотренной в предыдущей главе задаче о клике.
Как вы помните, кликой мы называем группу жителей
Королевства, в которой все дружат между собой. На
представленной ниже схеме дружеских связей Алекс, Кэти
и Эрик образуют клику, а вот Алекс, Дэвид и Эрик —
нет, поскольку Алекс не дружит с Дэвидом.

Рис. 4.1. Задача о клике

Мы уже знаем, что в Королевстве есть полусекретное


и довольно многочисленное сообщество «Альфа». «Аль-
фовцы» утверждают, что все они дружат между собой,
т. е. образуют гигантскую клику. Если это действительно
так, то какие сведения можно почерпнуть о них из
Глава 4. Самые трудные задачи класса NP 71

приведенной выше схемы? Теоретически каждый из пяти


может входить в «Альфу». Нельзя исключить вероятность
того, что Алекс или Дэвид входят в сообщество, однако
они не могут быть там одновременно, поскольку дружбы
между ними нет; значит, один из них в сообщество
точно не входит. Запишем этот вывод в виде логического
выражения:
Алекс не в «Альфе» ИЛИ Дэвид не в «Альфе».
«ИЛИ» здесь не исключающее: возможен вариант, при
котором ни Алекс, ни Дэвид не входят в сообщество.
Алекс и Барбара тоже враждуют, а следовательно — не
могут оба входить в «Альфу». Запишем и это:
Алекс не в «Альфе» ИЛИ Барбара не в «Альфе».
Оба утверждения должны выполняться одновременно,
а значит, мы имеем:
(Алекс не в «Альфе» ИЛИ Дэвид не в «Альфе»)
И
(Алекс не в «Альфе» ИЛИ Барбара не в «Альфе»).

Барбара и Дэвид — друзья, поэтому они вполне могут


одновременно входить в «Альфу», и построенное нами
выражение такой возможности не исключает. Проана-
лизировав всю схему, мы в итоге получим следующее
выражение:
(Алекс не в «Альфе» ИЛИ Дэвид не в «Альфе») И (Алекс
не в «Альфе» ИЛИ Барбара не в «Альфе») И (Дэвид не
в «Альфе» ИЛИ Кэти не в «Альфе») И (Кэти не в «Альфе»
ИЛИ Барбара не в «Альфе»).
Допустим, Алекс, Кэти и Эрик принадлежат сообще-
ству, а Барбара и Дэвид — нет; тогда наше выражение
истинно, так как в каждом условии «ИЛИ» упоминается
кто-то, кто в «Альфу» не входит. Теперь предположим,
что сообществу принадлежат Алекс, Дэвид и Эрик. Тогда
условие (Алекс не в «Альфе» ИЛИ Дэвид не в «Альфе»)
не выполняется, поскольку и Алекс, и Дэвид входят
в сообщество, а значит — ложно и все выражение.
Наше выражение будет истинно только в том случае,
когда все «альфовцы» действительно дружат между собой;
с помощью подобных выражений клики отлавливаются
очень легко.
72 Золотой билет

Аналогичную конструкцию можно составить и для всех


20 тысяч жителей Королевства. В результате получится
огромное, содержащее несколько миллионов символов
выражение — впрочем, не настолько длинное, чтобы не
уместиться в компьютер. Для краткости обозначим его
буквой Φ. Очевидно, что Φ будет истинно только тогда,
когда «альфовцы» в самом деле образуют клику.
Через Ψ50 обозначим выражение, истинное в том
случае, если в «Альфу» входят хотя бы 50 человек.
Не будем углубляться в его структуру; достаточно будет
сказать, что построить его можно тем же способом, каким
первые цифровые компьютеры выполняли сложение чисел.
Соединим наши выражения в одно: (Ψ50 И Φ). Если чле-
ны сообщества образуют клику размером не меньше 50, то
новое выражение примет значение «истина», и наоборот —
если выражение истинно, то члены сообщества образуют
клику размером не меньше 50.
Логическое выражение, проверяющее принадлежность
к сообществу, называется выполнимым, если сообщество
можно составить таким образом, что выражение примет
значение «истина». Выражение (Ψ50 И Φ) выполнимо,
когда в сообществе есть клика размера не меньше 50.
Предположим, у нас есть быстрый алгоритм, проверя-
ющий выполнимость логического выражения. Подадим
ему на вход выражение (Ψ50 И Φ); если алгоритм
ответит «да», то в Королевстве существует клика размера
50, а если «нет» — то не существует. Таким образом,
алгоритм решения задачи о выполнимости позволяет
решить и задачу о клике.
То, чем мы сейчас тут занимались, называется процес-
сом сведения одной задачи к другой. Сведение широко
используется в теории сложности, и мы с вами только
что свели проблему клики к проблеме выполнимости
логического выражения, показав тем самым, что любой
метод решения задачи о выполнимости можно применить
и к задаче о клике. Появление эффективного алгоритма
для задачи о выполнимости означало бы, что такой
алгоритм существует и для задачи о клике; найти клику не
Глава 4. Самые трудные задачи класса NP 73

труднее, чем определить условия выполнимости, и если


задачу о выполнимости можно легко решить — значит,
задача о клике тоже легко решаема. С другой стороны,
если бы кому-то удалось доказать, что для задачи о клике
эффективного алгоритма не существует, это означало бы,
что его не существует и для задачи о выполнимости.
На самом деле к проблеме выполнимости, или SAT
(от англ. satisfiability — выполнимость), сводится не одна
лишь задача о клике, но и другие задачи класса NP, кото-
рые мы обсуждали ранее, включая задачу о коммивояжере,
поиск гамильтонова пути, построение максимального
разреза и раскраску карт. Стивен Кук доказал, что любая
проблема из NP сводится к проблеме выполнимости.
Решите проблему выполнимости — и у вас будет ключ
ко всем проблемам из NP. Появление эффективного
алгоритма для задачи о выполнимости будет означать,
что такой алгоритм существует для всех задач, решение
которых легко проверяется, а следовательно, P = NP. Со-
здайте эффективный алгоритм решения проблемы SAT —
и получите миллион долларов от Института Клэя!
Сама проблема SAT также принадлежит NP, поскольку
для любого набора входных переменных истинность
логического выражения проверяется относительно быстро.
В классе NP эта задача является универсальной или, как
еще говорят, самой трудной, или NP-полной. Доказать
наличие эффективного алгоритма для ее решения значит
доказать равенство P и NP.
Симпозиум проходил в городке Шейкер-Хайтс в штате
Огайо, в отеле Somerset Inn, принадлежащем компании
Stouffer. Стивен Кук выступил с докладом 4 мая 1971 года.
«Полученные результаты дают нам основания пола-
гать, что проблема выполнимости — задача чрезвычайно
любопытная, поскольку она, по всей видимости, не имеет
эффективных методов решения. Думаю, стоит попытаться
доказать данную гипотезу: в теории сложности это стало
бы величайшим прорывом».
С того дня и ведет свою историю проблема равенства
P и NP.
74 Золотой билет

ДВАДЦАТЬ ПЛЮС ОДНА


Работу Кука оценили, однако ажиотаж вокруг нее
поднялся не сразу. В те годы проблема выполнимости
интересовала немногих, и никто еще толком не понимал
смысл класса NP. Кук даже не придумал ему назва-
ния и пользовался выражением «недетерминированное
полиномиальное время». Все изменилось, когда вслед за
Куком свою работу опубликовал профессор Ричард Карп
из Калифорнийского университета в Беркли.
Ознакомившись с результатами Кука, Карп понял, как
можно свести проблему выполнимости к задаче о клике. Он
разработал несложный метод преобразования логического
выражения в схему, похожую на схему дружеских связей,
при котором выражение оказывалось выполнимым в том
и только в том случае, когда в схеме существовала
клика определенного размера. Отсюда следовало, что
любой алгоритм решения задачи о клике заодно решает
и проблему выполнимости. Кук доказал, что проблема вы-
полнимости является самой трудной в NP; в работе Карпа
было показано, что задача о клике не проще и потому
тоже является самой трудной. Появление эффективного
алгоритма для задачи о клике будет означать, что любую
задачу из NP можно решить быстро, и докажет равенство
классов P и NP.
Кук свел задачу о клике к проблеме выполнимости,
Карп совершил обратный процесс, и в результате ока-
залось, что с вычислительной точки зрения эти две
совершенно непохожие задачи эквивалентны. Проблему
выполнимости можно решить быстро тогда и только тогда,
когда быстро решается задача о клике, или — что то же
самое — когда P равно NP.
Не ограничившись одной лишь задачей о клике,
Карп рассмотрел еще девятнадцать важнейших задач
и показал, что все они также являются самыми труд-
ными. Среди них — задача о разбиении множества, задача
коммивояжера, поиск гамильтонова пути, раскраска карт
и поиск максимального разреза. Появление эффективного
алгоритма хотя бы для одной даст нам возможность
быстро решать их все и докажет равенство P и NP.
Глава 4. Самые трудные задачи класса NP 75

Если же классы P и NP все-таки не совпадают, то ни


одну задачу из списка — а их там двадцать одна, включая
выполнимость, — нельзя решить быстро.
Ошибочно было бы полагать, что рассмотренные Карпом
задачи надуманы и интересуют только математиков:
большинство из них очень даже практические.
Возьмем, к примеру, компанию Coca-Cola. Под этой
маркой производится более трех тысяч напитков по
всему миру. Установка для розлива напитков способна
выдавать сотни различных продуктов. В ее состав входит
несколько разливочных машин, каждая из которых выпол-
няет определенную последовательность операций, чтобы
смешать ингредиенты. Одна машина может приготовить
множество различных напитков. Задача установки — ско-
ординировать работу всех разливочных машин и добиться
наивысшей производительности, выдавая максимальное
число напитков за минимальное время, т. е. решить
проблему распределения подзадач, которая тоже входит
в список Карпа и является самой трудной в NP.
Даже небольшое увеличение скорости производства за
счет удачного распределения задач принесет компании-
производителю миллионы долларов. С момента появления
первых цифровых компьютеров ученые и программисты
трудятся над созданием наилучших алгоритмов для
решения этой проблемы, однако никому еще не удалось
придумать такой алгоритм, который всегда выдавал бы на
выходе оптимальное распределение. И это неудивительно:
ведь Карп показал, что даже частные случаи пробле-
мы распределения задач являются самыми трудными
в NP.
На самом деле сложности возникают не только у произ-
водителей. Допустим, вы решили съездить в «Мир Уолта
Диснея» в Орландо во время весенних каникул. Там,
естественно, ажиотаж, а вам хочется посетить все самые
лучшие аттракционы и при этом не слишком долго стоять
в очередях. В неофициальном путеводителе по Диснейлен-
ду предлагаются варианты прогулок, призванные помочь
вам сократить ожидание; впрочем, авторы путеводителя
прекрасно сознают, что поставили перед собой практически
неразрешимую задачу.
76 Золотой билет

Однодневная экскурсия по «Волшебному Королев-


ству» для взрослых включает посещение 21 ат-
тракциона. Обходить их можно разными способами;
всего существует... 51 090 942 171 709 440 000 вариан-
тов! Удивительно, правда? Пятьдесят один миллиард
миллиардов — это примерно в шесть раз больше, чем
количество песчинок на планете. А если задачу немного
усложнить и начать учитывать очередь по записи,
посещение ресторанов и шоу, вариантов будет еще
больше.
Ученые уже давно бьются над подобными проблема-
ми. Каким образом, к примеру, компания по доставке
почты должна составлять маршруты для курьеров,
чтобы минимизировать суммарную длину пути и сэко-
номить время и бензин? Вообще задача, в которой
требуется с минимальными усилиями посетить как
можно больше мест, настолько распространена, что
даже получила имя: задача коммивояжера.

Задачу коммивояжера — так же как и проблему


оптимального распределения, задачу о клике, задачу
о максимальном разрезе и все остальные задачи из списка
Карпа — пытались решить очень многие. Фактически все
они бились над одним и тем же: ведь из работы Карпа
следовало, что если эффективный алгоритм появится хотя
бы для одной задачи, то с его помощью можно будет
решить и все остальные.
Над решением этих разнообразных задач ученые
трудились независимо. Все они потерпели поражение, из-
за чего многие склоняются к тому, что P и NP не равны,
хотя доказать это никто не может. Ясно лишь, что если
эффективный алгоритм все-таки есть, то найти его будет
очень и очень непросто. А пока операторы разливочных
машин могут с чистой совестью заявить директору, что
оптимального способа распределения просто не существует.
Да и энтузиастам из Орландо тоже вряд ли удастся
просчитать оптимальный маршрут по Диснейленду.
Все практически неразрешимые вычислительные задачи
из списка Карпа уже были известны ранее, но Карп одним
Глава 4. Самые трудные задачи класса NP 77

махом связал их воедино, и с этого момента проблема


«P против NP» вышла на первый план.
Каждый год Ассоциация вычислительной техники
вручает премию Тьюринга — «компьютерный» аналог Но-
белевской премии, названый в честь Алана Тьюринга,
который заложил основы теоретической информатики еще
в 30-х годах XX века. В 1982 году за формулировку
проблемы равенства P и NP премию получил Стивен Кук.
Однако P и NP явно требовали большего, и в 1985 году
Ричарда Карпа наградили за вклад в теорию алгоритмов,
и в особенности — за список NP-полных задач.

ЧТО В ИМЕНИ?
Названия «P» и «NP», которыми мы пользуемся и по
сей день, впервые появились в работе Карпа. Однако для
самых трудных задач из класса NP термина у него не
было. Кук использовал крайне специфичное обозначение,
deg({DNF tautologies}), которое расшифровывалось как
«с полиномиальным уровнем сложности по отношению
к сложности множества тавтологий, записанных в дизъ-
юнктивной нормальной форме». Карп употреблял выра-
жение «полиномиально полные». Оба варианта звучали
как-то не очень.
В итоге с этим вопросом разобрался Дональд Кнут,
который в 1974 году получил премию Тьюринга за
исследования в области информатики и трехтомный (на тот
момент) труд «Искусство программирования». В 1973 году,
работая над четвертым томом монографии, Кнут в полной
мере осознал важность проблемы равенства P и NP
и решил взять инициативу на себя. Ученый запустил
опрос населения по почте — не электронной, без которой
он и сейчас прекрасно обходится. Впрочем, в те времена
без электронной почты удавалось прекрасно обходиться
всем.
В опросе предлагалось на выбор три названия: «ти-
танические», «сверхтрудные» и «тяжелые», однако ни
одно из них не смогло набрать достаточного количества
голосов. В ответ люди присылали собственные варианты —
от самых наивных вроде «неподдающиеся» или «упрямые»
78 Золотой билет

до откровенно насмешливых «не лыком шиты» или «черт


ногу сломит».
Победителем конкурса стало название «NP-полные»,
которое после довольно бурных обсуждений предложили
сотрудники Лабораторий Белла в Нью-Джерси. Этот
термин, также отсутствовавший в первоначальном списке,
обязан своим появлением математической логике, где
система фактов, или аксиом, называется полной, если с ее
помощью можно обосновать любое истинное высказывание
в данной логической теории. Аналогичным образом, задача
из класса NP называется NP-полной, если с ее помощью
можно решить все остальные NP-задачи.
Кнут принял решение оставить этот вариант, хотя
и чувствовал некоторую неудовлетворенность: ему хоте-
лось, чтобы название состояло из одного слова и при этом
давало интуитивное представление о трудных переборных
задачах, т. е. было доступно самой широкой публике.
В 1974 году, излагая результаты последних исследо-
ваний, Кнут написал: «Вообще-то термин „NP-полные“
кажется мне слишком техническим для широкой аудито-
рии. Зато он по крайней мере адекватный».
Название «NP-полные» очень быстро вошло в стандарт-
ную терминологию. А Кнуту потребовалось почти сорок
лет, чтобы закончить работу над четвертым томом.
Может, стоило все-таки попытаться придумать менее
специфичное название? Причем не только для NP-полных
задач, но и для самих классов P и NP? Ведь проблема ра-
венства P и NP выходит далеко за пределы теоретической
информатики, а использование этих загадочных аббре-
виатур, маскирующих не менее загадочные определения,
затрудняет понимание проблемы непосвященными. Как бы
то ни было, сейчас уже поздно: за прошедшие десятилетия
термин прочно устоялся и заменить его было бы очень
непросто даже при наличии достойной альтернативы.
Кнут, конечно, понимал, что если равенство классов
докажут, то все его усилия по изобретению названия
пропадут даром, поскольку NP-полные задачи «переедут»
в класс P. Однако такая перспектива ученого не пугала.
«Мне даже хочется, чтобы эта «неприятность» случи-
лась, — пишет он. — Более того, за решение проблемы
Глава 4. Самые трудные задачи класса NP 79

я объявляю награду: тот, кто первый докажет, что


P = NP, получит от меня настоящую живую индейку».
Что ж... докажите равенство P и NP — и получите мил-
лион долларов и индейку в придачу!

ПОСЛЕ КАРПА
Работа Карпа послужила толчком к дальнейшему раз-
витию информатики. NP-полные задачи множились, как
грибы; профессора и аспиранты по всему миру брались
за известные поисковые проблемы (а также находили
новые) и доказывали их NP-полноту. В классическом
труде 1979 года 1) приводится более трехсот основопола-
гающих NP-полных задач. Число их неудержимо растет;
NP-полные задачи возникают не только в информатике
и математике, но и в физике, биологии, экономике и во
многих других областях. Поиск по Академии Google
выдает более 138 000 научных статей об NP-полноте за
период с 1972 по 2011 год, и в одном только 2011 году
на эту тему было создано около 10 000 работ. Вряд ли
имеет смысл приводить здесь список всех NP-полных
задач, однако мне хотелось бы дать вам представление
о некоторых из них.

Доминирующее множество
Существует ли в Королевстве группа из 50 человек,
в которой у каждого жителя есть хотя бы один друг?
NP-полная задача.

Разбиение на треугольники
Комнаты в общежитии Королевского технологического
рассчитаны на трех человек. Можно ли расселить студен-
тов таким образом, чтобы в каждой комнате жили только
друзья? NP-полная задача.
1) Гэри М., Джонсон Д. Вычислительные машины и трудно-

решаемые задачи. — М.: Мир, 1982 / Michael Garey, David


Johnson. Computers and Intractability: A Guide to the Theory
of NP-Completeness. — W. H. Freeman, New York, 1979.
80 Золотой билет

Гигантские судоку
Судоку — это японская головоломка с числами. В клас-
сическом варианте используется квадратная сетка 9 × 9
(рис. 4.2).

Рис. 4.2. Классический Рис. 4.3. Решение судоку из


вариант судоку рис. 4.2

Цель игры — заполнить пустые клетки цифрами от


1 до 9 так, чтобы в каждой строке, каждом столбце
и каждом жирно очерченном квадрате 3 × 3 эти цифры
не повторялись.
Судоку лежит в классе NP, поскольку проверить
имеющееся решение труда не составляет. Вы спросите,
насколько сложно это решение найти? На самом деле
все не так уж страшно: обычный среднестатистический
компьютер при помощи простого перебора с возвратом
решает классический вариант всего за несколько секунд.
А как обстоит дело с игрой на большом поле? Например,
с сеткой 25×25, в которой каждая строка, каждый столбец
и каждый мини-квадрат должны содержать все буквы от A
до Y?
В этом случае вычисление займет уже гораздо больше
времени, а с сеткой 100×100 вообще ни один современный
компьютер не справится.
Глава 4. Самые трудные задачи класса NP 81

Рис. 4.4. Гигантское судоку

Поиск решения гигантского судоку — задача NP-


полная. Считаете себя мастером судоку? Или знаете на-
дежный способ решения какой-нибудь другой гигантской
головоломки? Тогда в ваших руках ключ от решения
задачи о выполнимости, задачи коммивояжера и тысячи
других NP-полных проблем!
Есть еще много игр для одного игрока, решение
которых представляет собой NP-полную задачу. Возьмем,
к примеру, встроенного в Microsoft Windows «Сапера».
82 Золотой билет

Рис. 4.5. «Сапер»

Число в ячейке говорит о количестве мин, рас-


положенных в соседних с ней квадратиках — по вер-
тикали, горизонтали и диагонали. Вы должны либо
открыть ячейку, чтобы узнать это число, либо поставить
на ней флажок, если думаете, что в ячейке бомба.
Откроете бомбу — проиграете. Нахождение выигрышной
стратегии в гигантском «Сапере» также представляет
собой NP-полную задачу. На рисунке ниже показано
расположение оставшихся бомб.
Другой пример — «Тетрис», в котором нужно передви-
гать и поворачивать фигурки так, чтобы образовывались
сплошные горизонтальные ряды. Заполненный ряд тут
же исчезает. Игра заканчивается, когда на экране
больше не осталось свободных рядов; цель играющего —
продержаться как можно дольше.
Фигурки бывают разных форм. В классическом ва-
рианте «Тетриса» вы не знаете, какая фигурка выпадет
следующей. Впрочем, если бы вам даже заранее сообщили
последовательность появления фигурок, выбор оптималь-
ной стратегии все равно остался бы NP-полной задачей.
Глава 4. Самые трудные задачи класса NP 83

Рис. 4.6. Оставшиеся бомбы

Рис. 4.7. «Тетрис»


84 Золотой билет

Кто бы мог подумать, что, научившись мастерски играть


в судоку, «Тетрис» или «Сапер», можно доказать равенство
P и NP и решить одну из задач тысячелетия!

Рис. 4.8. Виды фигурок в «Тетрисе»

Как насчет кубика Рубика? Наверняка это тоже NP-


полная задача: ведь если даже освоение классического
варианта 3 × 3 × 3 занимает столько времени, что уж
говорить о больших кубах?

Рис. 4.9. Кубик Рубика. Фото: Том ван дер Занден


Глава 4. Самые трудные задачи класса NP 85

На самом деле все совсем не так. Благодаря такой


области математики, как теория групп, у нас есть
эффективные алгоритмы, способные справиться даже
с гигантскими кубами. Оптимального решения они не
дают, но все же позволяют собрать кубик относительно
быстро вне зависимости от его начального состояния.
Верится с трудом, но это правда — кубик Рубика
намного проще «Тетриса», «Сапера» и судоку.
А как обстоит дело с играми для двоих? Шахматы,
шашки, го, «Отелло»? Если говорить о гигантских
версиях, то они не уступают по сложности ни проблеме
выполнимости, ни другим NP-полным задачам, однако
к классу NP, тем не менее, не принадлежат. Вы спросите,
почему? Потому что если я скажу, что белые обеспечат
себе выигрыш, передвинув пешку на «e3», то вы вряд ли
сможете быстро это проверить. Ученые полагают, что на
самом деле эти игры намного труднее любой NP-полной
задачи.

Цепочка из почек
Почки выводят из организма балластные вещества. У боль-
шинства людей обе почки здоровы; если одна отказала,
другая будет работать за двоих, позволяя человеку жить
полноценной жизнью. Иногда отказывают обе почки,
и тогда от смерти может спасти только регулярный диализ,
который дорого стоит и отнимает много времени.
Если ваши почки здоровы, вы можете стать донором
и отдать одну из них тому, у кого почки не функционируют
вообще, — при условии совместимости с организмом реци-
пиента. Совместимость проверяется с помощью несложного
анализа крови.
Допустим, почки Элис вышли из строя. Ее муж,
Боб, согласен стать донором. Если Боб пройдет тест на
совместимость, врачи пересадят Элис его почку.
А если не пройдет? Тогда можно будет попытаться
совершить обмен почками.
Предположим, Чарли требуется почка, его брат Дэвид
готов отдать свою, но его почка не подходит. Если Дэвид
совместим с Элис, а Боб — с Чарли, то можно провести
86 Золотой билет

операцию сразу на четырех пациентах, и в результате


и Элис, и Чарли получат рабочую почку.
Представьте, что у нас имеется база данных с информа-
цией по всем совместимым парам донор-реципиент. Тогда
мы можем запустить на ней эффективный алгоритм, кото-
рый найдет наибольшее возможное число обменов. Задача
совсем не сложная и аналогична задаче о максимальном
числе паросочетаний, рассмотренной в предыдущей главе.
Ограничиваться двумя парами за раз совсем не обяза-
тельно. В конце 2011 года силами шестидесяти хирургов
была проведена цепочка из тридцати таких операций. Для
тридцати человек это был единственный способ обрести
здоровье.
Если мы в нашей базе разрешим обмен по цепочке,
желая помочь как можно большему числу людей, то
снова придем к NP-полной задаче. Равенство P и NP
спасет чьи-то жизни, а это уже гораздо серьезнее, чем
гарантированный выигрыш в игре «Сапер»!

МАСТЕРА КОНСПИРАЦИИ
Как правило, те NP-задачи, которыми ученые занимались
в середине семидесятых, довольно быстро либо оказыва-
лись NP-полными, либо «скатывались» в класс P, посколь-
ку для них появлялись эффективные алгоритмы. Однако
некоторые особо вредные экземпляры упорно не желали
поддаваться классификации; одни сумели продержаться
несколько лет, другие не удалось рассекретить до сих пор.

Изоморфизм графов
В Королевстве насчитывается несколько сотен фанатов
«Блейд Квеста» — массовой многопользовательской ро-
левой онлайн-игры. Как и в других играх подобного
плана, участники здесь получают новую личность, или
аватар; каждый исполняет роль определенного персонажа
и общается с другими персонажами, за которыми тоже
стоят реальные жители Королевства. В виртуальном мире
дружеские связи сохраняются: те, кто дружат в жизни,
Глава 4. Самые трудные задачи класса NP 87

становятся друзьями и в игре, а те, кто враждуют, заново


проникаются взаимной неприязнью.
Джон, Изабель, Кевин, Лаура, Молли и Нэнси очень
любят играть в «Блейд Квест».

Рис. 4.10. Любители «Блейд Квеста»

Их персонажей зовут Акрис, Лэмбо, Криард, Де


Гарольд, Хрхрхр и Вирус, но кто под каким именем
скрывается — неизвестно: эта информация пользователям
игры недоступна, и они могут видеть только схему
дружеских связей между персонажами.

Рис. 4.11. Аватары в «Блейд Квесте»

Проанализировав обе схемы, Лаура отправила осталь-


ным игрокам сообщение от имени своего аватара: «Я знаю,
кто ты!» А вы уже догадались, кто есть кто?
Схемы будут соответствовать друг другу лишь в том
случае, если Изабель — это Хрхрхр, Джон — Де Гарольд,
88 Золотой билет

Кевин — Криард, Лаура — Лэмбо, Молли — Акрис, а Нэн-


си — Вирус. Например, «реальная» Молли дружит с Ла-
урой и Нэнси, а ее аватар Акрис — с Лэмбо и Вирусом.
Установить, соответствуют ли друг другу подобные
схемы, — это все равно что определить, изоморфны два
графа или нет. Некоторые схемы сопоставить нельзя,
другие — можно, иногда даже несколькими способами.
Проблема изоморфизма графов лежит в NP, поскольку,
зная, кто есть кто, можно легко проверить соответствие
дружеских связей.
Вопрос о том, относится ли проблема изоморфизма
также и к классу P, до сих пор открыт; никто пока не
придумал хороший алгоритм, который всегда находил бы
искомое соответствие в случае, если оно действительно
есть. Мы также не знаем, является ли эта проблема
NP-полной, хотя, по мнению ученых, некоторые признаки
косвенно указывают на то, что не является. Изоморфизм
графов стоит в ряду немногочисленных задач, занимающих
некое промежуточное положение: они вроде бы труднее,
чем задачи из P, но легче, чем задачи NP-полные, вроде
поиска гамильтонова пути или максимального разреза.

Простые числа. Разложение на множители


Число 15 можно разложить на множители, т. е. пред-
ставить в виде произведения других натуральных чисел,
двумя способами: 15 × 1 и 5 × 3. Для числа 24 способов
уже гораздо больше, например — 24 × 1, 12 × 2, 8 × 3, 6 × 4.
А вот число 17 иначе как в виде 17 × 1 не представишь:
оно простое, т. е. делится только на себя и на единицу.
Множество простых чисел бесконечно; первые восемь его
представителей — 2, 3, 5, 7, 11, 13, 17, 19. Самое большое
простое число, известное на момент написания этой книги,
состоит из 12 978 189 цифр и начинается так: 316 470 269
330 255 923 143 453 723...
Как понять, является данное число простым или нет?
К примеру, число 1 123 467 619? Первое, что приходит
в голову, — это методично перебрать все числа от 2 до
1 123 467 618, пытаясь поделить на них исходное число. На
самом деле достаточно будет дойти лишь до квадратного
Глава 4. Самые трудные задачи класса NP 89

корня из 1 123 467 619, т. е. перебрать все числа от 2 до


33 518. Не такая уж и ужасная перспектива! А что, если
взять число побольше? Например, такое:
8 273 820 869 309 776 799 973 961 823 304 474 636 656
020 157 784 206 028 082 108 433 763 964 611 304 313
040 029 095 633 352 319 623
Оно простое, как вы думаете?
Первые алгоритмы проверки на простоту придумали
еще в Древней Греции, однако для больших чисел они не
годились. В семидесятых годах прошлого века появились
вероятностные алгоритмы, которые справлялись с числами
из нескольких сот цифр. Проверка простоты осуществля-
лась при помощи серии тестов с использованием случай-
ных чисел и некоторых методов теории чисел. Новые
алгоритмы давали неплохие результаты, однако не гаран-
тировали стопроцентную точность. Наконец, в 2002 году
индийский профессор Маниндра Агравал вместе со своими
студентами Нираджем Каялом и Нитином Саксеной
создал точный и эффективный алгоритм распознавания
простоты без использования случайных величин, доказав
тем самым, что задача проверки числа на простоту лежит
в классе P.
Алгоритм Агравала позволяет установить, что число
8 273 820 869 309 776 799 973 961 823 304 474 636 656
020 157 784 206 028 082 108 433 763 964 611 304 313
040 029 095 633 352 319 623
не является простым, но при этом не дает нам ни одного
его делителя.
Удивительно, правда? Вопрос о простоте числа решается
довольно быстро, а вот для поиска делителей эффективный
алгоритм пока не придумали.
Задача разложения на множители принадлежит классу
NP, поскольку при наличии готовых множителей их
произведение можно посчитать очень легко. Например,
умножив
84 578 657 802 148 566 360 817 045 728 307 604 764
590 139 606 051
на
97 823 979 291 139 750 018 446 800 724 120 182 602
777 022 032 973,
90 Золотой билет

мы получим
8 273 820 869 309 776 799 973 961 823 304 474 636
656 020 157 784 206 028 082 108 433 763 964 611 304
313 040 029 095 633 352 319 623.
Маловероятно, что эта задача принадлежит классу P.
Впрочем, в ее NP-полноту ученые тоже не верят: раз-
ложить число на множители, конечно, очень трудно,
однако решить проблему выполнимости или раскраски
карт, скорее всего, будет на порядок труднее.
Задачи распознавания простоты и поиска делителей
важны не только для математиков, которые жить без
своих чисел не могут. К примеру, практически неразло-
жимые на множители числа используются в современной
криптографии. В восьмой главе мы коснемся этой темы
подробнее.

ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ
Фэнси Франкс продает четыре вида колбасных изделий:
франкфуртские сосиски, итальянские сосиски, братвурст
и чоризо. У всех продуктов разный состав и время
приготовления; все они продаются по разной цене,
и стоимость ингредиентов также отличается. Сколько
сосисок и колбасок каждого вида должна изготавливать
Фэнси, чтобы получать максимальный доход?
Составить оптимальный план выпуска продукции —
значит решить задачу максимизации прибыли при огра-
ниченных ресурсах. Пусть фарш для одной франкфуртской
сосиски стоит 1 доллар, для итальянской сосиски —
2 доллара, для братвурста — 3 доллара, а для чоризо —
4 доллара, и пусть дневной бюджет по расходам на мясо
составляет 10 000 долларов. Тогда количество франкфурт-
ских, умноженное на один, плюс количество итальянских,
умноженное на два, плюс количество братвурстов, умно-
женное на три, плюс количество чоризо, умноженное на
четыре, не должно превышать 10 000.
Поиск оптимального решения при наличии подоб-
ных ограничений представляет собой задачу линейного
программирования. Множество потенциальных решений
Глава 4. Самые трудные задачи класса NP 91

образует выпуклый многогранник в многомерном про-


странстве.
В 1947 году Джордж Данциг разработал симплекс-
метод, который позволял решать задачи линейного про-
граммирования довольно-таки быстро. Суть метода заклю-
чается в последовательном обходе ребер многогранника
в поисках оптимальных значений.
Но если все так просто, то зачем мы тут вообще
говорим о линейном программировании? На самом деле
в некоторых случаях симплекс-метод не умеет выдавать
быстрый результат.
В 1979 году Леонид Хачиян придумал метод эл-
липсоидов, в котором исходный многогранник поэтапно
сжимается до тех пор, пока от него не останется одно
лишь оптимальное решение. Доказав эффективность этого
метода, Хачиян тем самым «переместил» задачу линейного
программирования в класс P, хотя на практике метод
эллипсоидов работает гораздо дольше симплекс-метода.
Работа Хачияна имела огромное теоретическое значение;
в последующие десятилетия на основе метода эллипсоидов
было создано множество нетривиальных алгоритмов.

Рис. 4.12. Выпуклый многогранник

Алгоритмов стало два, причем друг на друга они


абсолютно не походили; один прекрасно работал на
практике, другой — в теории.
92 Золотой билет

В 1984 году индийский математик Нарендра Кармаркар


разработал метод внутренней точки, который тоже, как
и симплекс-метод, выполняет обход многогранника, вот
только «ходит» он не по внешним точкам, а по внутренним.
В теории метод внутренней точки сравним по быстроте
с методом эллипсоидов, а на практике он после некоторых
доработок может поспорить с симплекс-методом.
Так у задачи линейного программирования появилось
целых три совершенно разных по сути алгоритма. Пер-
вый — симплекс-метод — хорошо работает на практике;
второй — метод эллипсоидов — в теории; третий — метод
внутренней точки — хорош и там и там. Не так уж плохо
для задачи, которую до самого конца семидесятых считали
практически неразрешимой!
Глава 5
ХРОНИКА ПРЕДШЕСТВУЮЩИХ СОБЫТИЙ

В предыдущей главе мы рассказывали о не очень успешных


попытках Дональда Кнута найти такой термин, который
бы наилучшим образом отражал понятие NP-полноты.
Если бы Кнут догадался повернуться на восток, в сторону
СССР, то обнаружил бы там очень даже подходящее
слово — «перебор». Метод перебора, или, как его еще
называют, метод «грубой силы», заключается в последо-
вательной проверке всех возможных вариантов в поисках
наилучшего решения. Вопрос о равенстве классов P и NP
можно переформулировать так: верно ли, что для задачи
о клике работает лишь перебор, или можно найти и более
быстрые методы?
Впрочем, в те времена американцам (в том числе Кнуту)
сложно было разглядеть что-либо за железным занавесом,
отделившим СССР и Восточную Европу от Европы Запад-
ной и от США после окончания Второй мировой. Холодная
война породила острое соперничество между СССР и США;
в пятидесятых обе страны начали активно развивать
науку и технику в стремлении выиграть интеллектуальную
гонку вооружений. К сожалению, железный занавес почти
полностью изолировал друг от друга научные сообщества
Востока и Запада. В семидесятых границы начали
потихоньку открываться, однако полноценный диалог
стал возможен лишь после окончания холодной войны,
в 1991 году, когда соперничество наконец уступило место
сотрудничеству. Сейчас научные работы выкладываются
в интернет, а люди свободно путешествуют по миру.
Научное сообщество ощущает себя единым целым; больше
никаких противоборствующих лагерей!
94 Золотой билет

В этой главе я расскажу вам две истории и проведу


по двум дорогам, которые сойдутся в пункте «P против
NP» — там, где Стивен Кук на Западе и Леонид Левин на
Востоке первыми поставили вопрос о равенстве P и NP.
Научные открытия на пустом месте не возникают,
и у работ Левина и Кука была богатая предыстория.
Мы с вами коснемся лишь небольшой части масштабных
исследований, проводившихся по обе стороны железного
занавеса, и узнаем, как на Западе бились над природой
эффективных методов вычислений, а на Востоке пытались
понять, в каких случаях необходим перебор. В конечном
итоге оба пути приведут нас к проблеме равенства P и NP.

НА ЗАПАДЕ
Поиск эффективных алгоритмов начался около 3 000 лет
назад, когда люди впервые стали применять арифметику
для ускорения процесса сложения больших чисел. Однако
наша отправная точка — тридцатые годы прошлого века:
именно в этот период зародилась теория алгоритмов.

Алан Тьюринг
Мы освоили космос. Телескопы переносят нас в отдаленные
уголки галактики, позволяя изучать историю развития
Вселенной. Через микроскопы мы наблюдаем за атомами;
мы даже изобрели огромные машины, в которых эти
атомы сталкиваются, распадаясь на еще более мелкие
частички. А еще мы расшифровали человеческий геном.
И все же одну из самых главных загадок представляет
собой то небольшое устройство, которым мы ежедневно
пользуемся дома, в машине, и даже носим в кармане. Мы
называем его компьютером. Так что же это такое?
Слово computer появилось еще в XVII веке. В те времена
никому и в голову не приходило изобретать машины,
которые бы что-либо вычисляли. Компьютерами, или
вычислителями, называли мастеров счета, занимавшихся
вычислениями профессионально. С развитием банковской
системы на вычислителей «свалились» еще и вклады
и кредиты.
Глава 5. Хроника предшествующих событий 95

Согласно Оксфордскому словарю, для обозначения


механического счетного устройства слово computer впервые
применили в 1897 году, а для электронного — в сороковых
годах прошлого века. Так от людей-вычислителей термин
перешел к огромным установкам из нескольких вычис-
лительных машин, а затем и к компьютерам, которыми
мы пользуемся сейчас.
Если абстрагироваться от технической части, то задача
компьютера — получить входные данные, обработать их со-
гласно заданным инструкциям и выдать некий результат.
С этой точки зрения компьютером является даже обычная
почта, которая принимает на вход письмо, обрабатывает
указанный на нем адрес и доставляет письмо получателю,
а также любой живой организм, который обрабатывает
последовательность ДНК и производит необходимые для
жизни белки.
А как обстоит дело с самим процессом вычисления?
Есть ли что-то такое, что вычислению не поддается?
Вопрос был решен еще до появления вычислительных
машин: в 1936 году ответ на него дал великий математик
Алан Тьюринг. Размышляя над тем, как рассуждают
математики, Тьюринг пришел к формальной матема-
тической модели вычислительного процесса, которая
впоследствии стала классической. Теперь ее называют
машиной Тьюринга.
Тьюринг родился в 1912 году в Лондоне. В начале
тридцатых он поступил в Королевский колледж Кэмбри-
джа, где показал необыкновенные успехи в математике.
Использовав себя в качестве наглядного примера, Тьюринг
попытался описать, каким образом математики выполняют
вычисления. В голове у ученого происходит некий
процесс; его память ограничена, а бумага и ручки
имеются в изобилии. Сделав очередную запись, он либо
переходит к следующей странице, либо возвращается на
предыдущую, чтобы изменить то, что было написано ра-
нее. Формализовав этот интуитивный алгоритм, Тьюринг
создал абстрактную модель вычислений.
Машина Тьюринга казалась очень простой, однако,
по словам ученого, на ней можно было вычислить все,
что вообще поддавалось вычислению. Почти в то же
96 Золотой билет

Рис. 5.1. Машина Тьюринга

самое время Алонзо Чёрч сделал аналогичное заявление


относительно своего лямбда-исчисления, которое счита-
ют предшественником языков программирования. Тезис
Чёрча–Тьюринга выдержал испытание временем, хотя
сформулирован он был еще до изобретения современных
компьютеров. Все, что поддается вычислению, вычислимо
и на машине Тьюринга; по своим вычислительным
возможностям она не уступит любому современному
компьютеру, так что о ее чересчур примитивном устройстве
можно не беспокоиться.
Для понимания сути вычислительного процесса вам
даже не нужно знать, что это за машина: достаточно
взять любой язык программирования и представить, что
у него есть доступ к неограниченному объему памяти. Все
языки программирования функционально эквивалентны;
все, что может быть запрограммировано, вычислимо и на
«простенькой» машине Тьюринга.
В том же 1936 году Тьюринг доказал, что не всякую
задачу можно решить на его абстрактной машине.
Наиболее известный пример — проблема останова: не
существует такой вычислительной машины, которая бы
по коду программы определяла, остановится она или будет
работать бесконечно.
Во время Второй мировой войны Алан Тьюринг
был одним из главных «дешифраторов» Великобритании.
В послевоенные годы он задался вопросом, можно ли
Глава 5. Хроника предшествующих событий 97

на его машине сымитировать работу человеческого мозга.


Ученый разработал тест, призванный определить, способна
ли машина рассуждать «по-человечески»; впоследствии
этот тест назвали в его честь. Представьте, что вы пере-
писываетесь с кем-то через систему обмена сообщениями.
Вы уверены, что вам отвечает человек? А вдруг это просто
компьютерная программа? Программа, сумевшая обмануть
большинство собеседников, проходит тест Тьюринга.
К несчастью, исследовательская деятельность Тьюринга
прервалась очень рано. В 1952 году он был осужден за
гомосексуализм, который в те годы считался в Великобри-
тании противозаконным. Случившееся в конечном итоге
привело к тому, что в 1954 году Тьюринг покончил жизнь
самоубийством. Лишь в 2009-м британское правительство
принесло официальные извинения.
За неоценимый вклад, внесенный ученым в развитие
информатики и искусственного интеллекта, Ассоциация
вычислительной техники назвала в его честь свою главную
награду — «компьютерный» аналог Нобелевской премии.
Среди ученых, о которых речь пойдет дальше, многие
являются лауреатами премии Тьюринга.

Вычислительная сложность
В пятидесятых годах цифровые компьютеры распространи-
лись уже довольно широко; требовалось как-то оценивать
объем вычислений, необходимый для решения той или
иной задачи. Первые методы оценки появились в ре-
зультате попыток формализовать процесс человеческого
мышления и поведения.
В 1943 году нейропсихологи Уоррен Маккаллок и Уол-
тер Питтс разработали нейронную сеть — теоретическую
модель, описывающую деятельность человеческого мозга.
В пятидесятых годах математик и логик Стивен Клини
изобрел конечный автомат — частный случай машины
Тьюринга — и изучал свойства разрешимых на нем задач.
При помощи конечных автоматов удобно описывать
алгоритмы работы простейших агрегатов (к примеру,
автомата с газировкой), однако что-то более сложное они
уже не потянут.
98 Золотой билет

Примерно в тот же период, в пятидесятых годах, линг-


вист Ноам Хомский исследовал механизмы построения
предложений в английском и некоторых других языках.
Он сформулировал понятие контекстно-свободной грамма-
тики, в которой предложениям ставились в соответствие
схемы, называемые «деревьями разбора». На рисунке ниже
представлено дерево разбора для английского предложения
The quick brown fox jumped over the lazy dog.

Рис. 5.2. Дерево разбора

С синтаксическим разбором контекстно-свободные грам-


матики справляются неплохо, но они не являются пол-
ными и не могут охватить все многообразие естественного
языка. В лингвистической среде до сих пор ведутся споры
о возможности построения идеальной грамматики.
Как выяснилось, такие грамматики прекрасно подходят
для описания языков программирования и разметки
(XML), а вот интуитивное понятие эффективных вычис-
лений им уже не по зубам (как и конечным автоматам).
В последующие годы было создано множество вычисли-
тельных моделей, однако настоящий прорыв совершили
в 1962 году Юрис Хартманис и Ричард Стернс, работавшие
Глава 5. Хроника предшествующих событий 99

в то время в Исследовательской лаборатории General


Electric в Скенектади, штат Нью-Йорк. Для оценки
качества работы программы ученые предлагали смотреть,
как меняются время ее выполнения и объем задейство-
ванной памяти при увеличении объема входных данных.
Блестящая идея! В 1965 году вышла их совместная статья
«О вычислительной сложности алгоритмов», заложившая
основы нового раздела математики — теории сложности
вычислений. В 1993 году Хартманис и Стернс получили
за эту работу премию Тьюринга.
В 1960-х теория вычислительной сложности раз-
вивалась сразу в двух направлениях. Приверженцы
одного выбирали конкретные вычислительные модели,
ограничивали время исполнения и доступный объем
памяти и пытались определить, какие задачи могут
быть решены при таких условиях, а какие — не могут.
Мануэль Блюм, работая над диссертацией в Массачу-
сетском технологическом институте, использовал иной —
совершенно абстрактный — подход, не зависящий ни от
вычислительной модели, ни от времени и памяти и каких-
либо других ресурсов. Ни один из вариантов не приблизил
ученых к понятию вычислительной эффективности.

Классы P и NP
В середине 1960-х формальное определение эффективного
алгоритма появилось сразу в двух работах: «Пути, деревья
и цветы» Джека Эдмондса и «Внутренняя вычислительная
трудность функций» Алана Кобэма.
Работа Эдмондса получила широкую известность благо-
даря тому, что в ней впервые был предложен эффективный
алгоритм для задачи о числе паросочетаний, рассмот-
ренной нами в третьей главе. В главе под названием
«Отступление» ученый рассуждает об экспоненциальной
и алгебраической сложности, предостерегая в то же
время от использования слишком жестких критериев
эффективности.
«Необходимо пояснить, что же все-таки понимается
под эффективным алгоритмом < . . . > Я не готов сейчас
дать строгое определение и сформулировать какие-
100 Золотой билет

то технические требования; вопрос этот находится за


рамками данного исследования < . . . > С практической
точки зрения разделять задачи на алгебраические и экс-
поненциальные гораздо важнее, чем на вычислимые
и не вычислимые < . . . > Введение жесткого критерия
могло бы повлечь за собой негативные последствия и по-
мешать развитию алгоритмов, про которые невозможно
с уверенностью утверждать, удовлетворяют они данному
критерию или нет < . . . > Важно также понимать,
что, принимаясь за поиски хороших, практических
алгоритмов, разумно было бы для начала задаться
вопросом об их существовании».
Класс алгебраических задач, введенный Эдмондсом, —
это и есть класс P: задачи, которые можно решить
эффективно. Подчеркивая тот факт, что для постановки
вопроса о равенстве P и NP и других подобных задач
четкое определение иметь необходимо, ученый в то же
время призывает не отказываться от менее формального
понятия вычислительной эффективности, и при написании
этой книги я старался действовать именно так.
Кобэм в своей работе независимо от Эдмондса вводит
тот же класс задач и приводит аналогичные рассуждения
о пользе четкого определения.
По ряду причин желание ввести класс P выглядит
вполне закономерным. Формализация описания классов
вычислительных машин, как правило, приводит нас к чет-
кому определению соответствующих классов функций, так
что можно не бояться исказить суть класса P при переходе
от интуитивного определения к математическому.
Понятие класса P, так же как и понятие вычислимости,
не зависит от конкретной вычислительной модели.
Кобэм тоже считает своим долгом предупредить:
«Этот вопрос напоминает нам о другом, с которым он
теснейшим образом связан: о необходимости формализо-
вать понятие эффективности. Впрочем, в данном случае
эффективность следует рассматривать под несколько
другим углом, поскольку на первый план здесь
выходят физические характеристики вычислительного
процесса».
Глава 5. Хроника предшествующих событий 101

Ученый, вероятно, отдавал себе отчет в том, что когда-


нибудь появятся вычислительные модели, не укладыва-
ющиеся в его классификацию. Понятие эффективности
нельзя зафиксировать раз и навсегда, и создание рандо-
мизированных, а затем и квантовых алгоритмов — лишнее
тому подтверждение.
В 1971 году Стивен Кук сформулировал понятие
класса NP (задачи, решение которых можно эффективно
проверить), а также поставил вопрос о равенстве P и NP
и нашел первую NP-полную задачу. Годом позже Ричард
Карп доказал NP-полноту для целого ряда известных
математических проблем.
Выступление Карпа стало самым знаменательным
событием на Конференции по вопросам сложности вы-
числений, проведенной в 1972 году Исследовательским
центром IBM имени Томаса Дж. Уотсона. Будущее нового
направления активно обсуждалось на итоговом заседании
организаторской комиссии. Одной из главных тем был
вопрос о том, как из горстки разрозненных результатов —
нескольких алгоритмов и нижних оценок сложности —
построить единую теорию. Участники заседания, среди
которых был и Ричард Карп, вряд ли отдавали себе
отчет, что ответ на этот вопрос находится у них перед
глазами — в работах Кука и самого Карпа, описывающих
классы P и NP, понятие сводимости, а также свойство,
которое позже назовут NP-полнотой.
Карп прекрасно понимал, что новой области науки
требуется хорошее название:

«Термин „вычислительная сложность“ представляет-


ся мне чересчур широким — по крайней мере до тех
пор, пока мы не включили сюда работы Блюма и его
последователей. „Реальная вычислительная сложность“
подходит больше для какой-нибудь практической, ин-
женерной дисциплины, ну а „сложность компьютерных
вычислений“ вообще неверно отражает суть».

В конце концов победило название «вычислительная


сложность». Вопрос о равенстве P и NP приобрел огромное
значение и быстро затмил все остальные направления
102 Золотой билет

исследований в данной области. Абстрактная теория слож-


ности отошла на второй план; даже Блюм переключился
на криптографию и верификацию программ. В 1995 году
ученый получил премию Тьюринга за свою активную
исследовательскую деятельность в 1960–1980-х годах.
Когда много лет спустя его спросили, почему он все-таки
решил сменить направление, Блюм ответил: «Потому что
Кук был прав».

НА ВОСТОКЕ
В СССР проблемами теоретической кибернетики занима-
лись многие выдающиеся ученые. Мы подробно остано-
вимся на трех из них; все они являются представителями
различных подходов к методу перебора.
1. Сергей Всеволодович Яблонский первым применил
перебор для поиска минимальных схем, реализующих
дискретные функции. К сожалению, его самонадеянность
в сочетании с огромным влиянием, которое он приобрел
в научной среде, тормозили развитие теории вычислитель-
ной сложности.
2. Андрей Николаевич Колмогоров — крупнейший уче-
ный в истории русской науки — предложил в качестве
меры сложности алгоритмическую информацию.
3. Ученик Колмогорова Леонид Анатольевич Левин
независимо от Кука сформулировал проблему равенства
классов P и NP и пришел к понятию NP-полноты. На
родине защитить диссертацию он не смог по политическим
причинам.

Сергей Всеволодович Яблонский


В Советском Союзе исследования в области теории вычис-
лений проводились в рамках теоретической кибернетики.
Активное развитие этой области началось в 1950-х годах,
когда электронные вычислительные машины были взяты
на вооружение военными. Сергей Яблонский родился
в 1924 году в Москве. Вернувшись с фронта после
окончания Второй мировой войны, он продолжил изучать
математику в Московском государственном университете.
Глава 5. Хроника предшествующих событий 103

В 1953 году Яблонский защитил кандидатскую диссер-


тацию под руководством Петра Сергеевича Новикова,
который одним из первых в СССР начал заниматься
проблемами вычислимости. Вместе с Алексеем Андре-
евичем Ляпуновым, также работавшим под руководством
Новикова, Яблонский проводил в МГУ семинары по вопро-
сам реализации булевых функций. Яблонский и Ляпунов
организовывали и направляли всю исследовательскую
деятельность в области теории вычислений.
Проблема выполнимости, упомянутая в четвертой главе,
касается логических формул, т. е. формул, в которых
основными операциями являются «И», «ИЛИ» и «НЕ».
На самом деле любой вычислительный процесс можно
представить в виде набора таких операций, или, другими
словами, в виде схемы из элементов «И», «ИЛИ» и «НЕ».
Одни задачи решаются схемами небольшого размера, для
других необходимо огромное число элементов. Возникает
понятие схемной сложности, и в начале пятидесятых
Яблонский этим понятием заинтересовался.
Основатель теории информации — американский уче-
ный Клод Шеннон — доказал, что некоторые логические
функции имеют чрезвычайно высокую схемную слож-
ность. Яблонский решил исследовать сложность построе-
ния таких функций. Хоть это и не очевидно, но если P
и NP окажутся не равны, отсюда будет следовать, что
некоторые легко формулируемые поисковые задачи нельзя
решить при помощи маленьких схем.
Из результатов Шеннона вытекало, что сложность
логических функций, заданных случайным образом, почти
всегда близка к максимальной. Яблонский первым обратил
внимание на этот факт и начал заниматься вопросом
поиска сложных логических функций без использования
случайных величин. Возникала ли при этом необходи-
мость полного перебора всех функций? Ученый показал,
что во время построения последовательности функций,
имеющих сложную схемную реализацию, обязательно
будут строиться и все остальные функции. Отсюда,
в частности, следовало, что всякий метод построения
некоторой сложной функции можно преобразовать таким
образом, чтобы он строил любую другую функцию.
104 Золотой билет

Из того факта, что при построении сложных функций


строятся также и все остальные, Яблонский сделал вывод
о необходимости перебора. В 1959 году вышла его работа
«О невозможности элиминации перебора всех функций
из P2 при решении некоторых задач теории схем».
Важность результатов Яблонского сложно переоценить;
и все же интерпретировал он их не совсем верно.
Ведь если при построении сложной функции можно
получить и любую другую, то это еще не означает,
что строить все остальные функции необходимо и дру-
гим способом сложную функцию никак не найти. На
самом деле в работе Яблонского мало что говорилось
о вычислительной сложности поиска самых сложных
функций. Годом позже ученик Яблонского Юрий Иванович
Журавлёв опубликовал статью с не менее впечатляющим
названием — «О невозможности построения минимальных
дизъюнктивных нормальных форм функций алгебры
логики в одном классе алгоритмов», в которой тема
вычислительной сложности также не затрагивалась. По
сути ни та ни другая работа не касалась вопросов,
связанных с проблемой равенства P и NP.
Советский Союз был социалистической страной с цен-
трализованной системой управления экономикой. В науке
применялся аналогичный подход, и математические иссле-
дования находились под контролем различных комиссий,
в которых Яблонский играл далеко не последнюю роль.
Ученый полагал, что проблема перебора уже достаточно
изучена в его собственной работе, и потому не привет-
ствовал дальнейшие исследования в этом направлении,
особенно если дело касалось вычислительной сложности
и поиска алгоритмов. Далее мы увидим, что в результате
такого подхода в шестидесятые годы в математическом
сообществе случился раскол.

Андрей Николаевич Колмогоров


Андрей Колмогоров родился в 1903 году в Тамбове.
В 1920 году он поступил в Московский университет,
где поначалу интересовался не только математикой, но
и пробовал свои силы и в истории, занимаясь изучением
Глава 5. Хроника предшествующих событий 105

налогообложения на Руси в Средние века. Вопрос в его


работе ставился такой: назначался ли налог сразу целому
селению или же складывался из налогов, назначенных
отдельных дворам? Проанализировав старинные налоговые
записи, Колмогоров показал: расшифровать эти записи
и объяснить правило, по которому они составлялись, будет
гораздо проще в предположении, что налог назначался
селению. На историческом отделении работу студента
оценили очень высоко. Однако в ответ на вопрос,
следует ли ему опубликовать полученные результаты,
Колмогоров услышал: «У вашей гипотезы есть лишь одно
обоснование. А для публикации требуется как минимум
два», что в конечном итоге заставило его отвернуться
от истории и посвятить себя науке, в которой одного
доказательства было вполне достаточно. Колмогоров внес
неоценимый вклад в самые разные области математики;
это величайший математик XX века и один из крупнейших
ученых в истории всей российской и мировой науки.
Существует забавная история — анекдот, по всей види-
мости, — о том, как Колмогоров спас теорию вероятностей
от сталинского режима.
В тридцатых годах Сталин стремился укрепить свою
власть. Все достижения науки и искусства, представляв-
шие потенциальную угрозу режиму, безжалостно уни-
чтожались. Биологией заправляла группа псевдоученых,
«приближенных к императору». В 1937 году очень многие
генетики были арестованы как троцкисты и агенты фа-
шистской разведки. В последующие десятилетия советская
генетика — некогда предмет настоящей гордости — почти
полностью прекратила свое существование.
Разобравшись с генетикой, «светочи науки» ополчились
на теорию вероятностей за понятие независимых событий.
Теория вероятностей занимается изучением шансов на
тот или иной исход; к примеру, если одновременно
бросить две игральные кости, то вероятность того, что
в сумме выпадет пять очков, равняется одной девятой.
Через понятие вероятности определяются и независимые
события. Например, при подкидывании двух игральных
костей число выпавших очков на одной никак не зависит
от числа выпавших очков на другой. Все это плохо
106 Золотой билет

согласовывалось с марксистской философией, согласно


которой все кругом взаимосвязано и взаимообусловлено.
Колмогорова вызвали наверх и упрекнули в том, что
независимые события идут вразрез с идеями марксизма.
Ученый понимал, насколько важно подобрать верные
слова: от того, что он скажет, зависит будущее советской
математики. «Вы ошибаетесь», — начал он, и его собе-
седники тут же решили: «Попался!» Ведь критиковать
линию партии — все равно что подрывать основы марк-
систского учения, и для Колмогорова это означало конец
карьеры.
«Допустим, поп во время засухи молится о ниспослании
дождя, — продолжал ученый. — На следующий день начи-
нается дождь. Эти два события совершенно независимы».
Что тут можно было возразить? Допустить даже самую от-
даленную связь значило признать действенность религии,
что было равносильно попытке дискредитировать учение
Маркса. Так Колмогоров спас теорию вероятностей.

Рис. 5.3. Комикс про Дилберта. c Скотт Адамс, 2001.


Публикуется с разрешения UNIVERSAL UCLICK. Все права
защищены

Стремление проникнуть в суть вероятности и случай-


ности привело Колмогорова к одной удивительно простой
и в то же время гениальной идее. Рассмотрим три
последовательности цифр:
• 999 999 999 999 999 999 999 999 999 999 999 999
999 999 999 999 999;
Глава 5. Хроника предшествующих событий 107

• 707 106 781 186 547 524 400 844 362 104 849 039
284 835 937 688 474;
• 982 922 216 207 267 591 232 795 977 564 268 549
473 337 889 037 097.

Одну из них мне выдал генератор случайных чисел,


а остальные были получены другими способами. Все
три последовательности абсолютно равновероятны: нет
никаких причин, по которым одна была бы «менее случай-
на», чем другая. Прежде чем читать дальше, попробуйте
догадаться, какая из них — творение генератора.
Выдавать одни девятки для генератора случайных чисел
не очень-то естественно. Вторая последовательность, —
как некоторые уже, наверно, догадались, — это начало
дробной части квадратного корня из 1/2. А вот третья
действительно была создана генератором.
Колмогоров придумал определять степень случайности
последовательности в зависимости от длины ее самого
короткого описания. Первая √ последовательность — это
«51 девятка». Вторая — «1/ 2». Описать третью можно,
только повторив ее целиком: «982 922 216 207 267 591
232 795 977 564 268 549 473 337 889 037 097». Конечно,
«описание» — понятие неформальное; Колмогоров форма-
лизовал его через понятие компьютерной программы.
Аналогичные идеи независимо друг от друга и от Колмо-
горова разработали также двое американских ученых: Рэй
Соломонов (из Кливленда, а не из СССР, как можно было
бы подумать по его фамилии) — чуть раньше Колмогорова,
Грегори Хайтин — чуть позже. Однако Колмогоров и его
последователи углубились в эту тему гораздо дальше, так
что сложность, определяемую через длину описания, стали
называть «колмогоровской».
Последовательность называется случайной, если самый
короткий способ описать ее — это привести ее целиком,
как в случае с нашим третьим примером.
Создать случайную последовательность нетрудно: про-
сто выбирай каждое следующее число случайным обра-
зом — и все. Однако без случайных величин последова-
тельность никогда не станет по-настоящему случайной.
Алгоритм, не являющийся вероятностным, т. е. не исполь-
108 Золотой билет

зующий случайные числа, не способен строить случайные


последовательности произвольной длины. Поэтому не
стану утверждать, что последовательность
982 922 216 207 267 591 232 795 977 564 268 549 473
337 889 037 097
действительно является случайной: чтобы доказать это,
мне пришлось бы проанализировать все возможные
описания меньшей длины, а эта задача явно не из легких!
За понятием колмогоровской сложности стоит обшир-
ная и глубокая теория, которая находит применение
в машинном обучении, анализе алгоритмов и в сложности
вычислений. Именно колмогоровская сложность привела
Леонида Левина — ученика Колмогорова — к проблеме
равенства P и NP, хоть она и не связана с этой проблемой
напрямую.

Леонид Анатольевич Левин


В 2800 километрах к востоку от Москвы находится
Новосибирск — самый крупный город в Сибири и третий
по численности во всей России. В 1961 году из Москвы
в Новосибирск приехал Алексей Андреевич Ляпунов
и вскоре основал в Новосибирском университете кафедру
теоретической кибернетики.
Первыми сотрудниками стали преимущественно быв-
шие московские студенты Яблонского и самого Ляпу-
нова. Новая кафедра быстро приобрела статус центра
кибернетических исследований — второго по значимости
в Советском Союзе. Почти сразу к исследовательскому
коллективу присоединился Борис Трахтенброт, который
также занимался кибернетикой и на тот момент — в сорок
с небольшим лет — уже был доктором наук; вскоре
Трахтенброт стал одним из ведущих сотрудников кафедры.
В 1962 году в Новосибирск приехал Ян Мартынович
Барздинь, незадолго до того защитивший кандидатскую
в Латвийском государственном университете в Риге.
Трахтенброт и Барздинь начали совместные исследования
в области сложности вычислений и привлекли к работе
множество российских и латышских студентов. В середине
шестидесятых ученые уже вовсю разрабатывали теорию
Глава 5. Хроника предшествующих событий 109

алгоритмической сложности — аналогичную той, что в то


же самое время создавалась на Западе.
Впрочем, в СССР с вычислительной сложностью все
было довольно сложно. В 1984 году Трахтенброт напишет:

«Напряженность в отношениях с представителями


так называемой классической школы — и в особенности
с Яблонским — нас очень угнетала. Эти люди занимали
крайне негативную позицию касательно применения
теории алгоритмов к вопросам сложности < . . . > Они
не допускали и мысли о том, что вычислительную
и алгоритмическую сложность можно связать с про-
блемой перебора. Яблонский к тому времени играл
уже далеко не последнюю роль в различных орга-
низациях, занимавшихся планированием и контролем
математических исследований; в дальнейшем наше
противостояние только усилилось — по всей видимости,
из-за разногласий по поводу необходимости перебора» 1) .

Летом 1963 года в Новосибирск приехал Колмогоров


и начал совместные исследования с Трахтенбротом. Ученые
пытались понять, каким образом теория алгоритмов
может помочь им продвинуться в изучении сложности
и информации.
Из Новосибирска Колмогоров вскоре отправился в Киев,
где посетил физико-математическую школу-интернат при
Киевском университете. Ученый предложил школьникам
несколько задач; пятнадцатилетний Леонид Левин спра-
вился почти со всеми. Позже Колмогоров пригласил его
в Московский университет и взял под свое руководство.
Во время учебы в аспирантуре Левин разрабатывал сразу
два разных направления.
В рамках одного из них был создан оптимальный
алгоритм поиска. Допустим, Элис говорит Бобу, что
придумала быстрый алгоритм для задачи о клике, но
отказывается его показать. Применив метод Левина, Боб
сможет сам создать почти такой же быстрый алгоритм —
1) B. A. Trakhtenbrot. A Survey of Russian Approaches to Perebor

Algorithms // Annals of the History of Computing vol. 6, no. 4


(October 1984).
110 Золотой билет

и для этого ему не нужно будет знать, что написала Элис.


В работе Левина используется модифицированный вариант
колмогоровской сложности; его оптимальный алгоритм
особым образом запускает все возможные алгоритмы,
проверяя, дают ли они нужное решение.
Размышляя о задачах поиска и проблеме перебора,
Левин пришел к понятию универсальной переборной
задачи, которое было эквивалентно понятию NP-полной
задачи, введенному Куком. Ученый рассмотрел шесть
переборных задач, включая выполнимость, и показал
их универсальность, а также сформулировал проблему
равенства классов P и NP.
Блестящие результаты! И второй, безусловно, достоин
награды; Стивен Кук за аналогичные достижения получил
премию Тьюринга. Колмогоров, однако, счел работы
Левина несколько сырыми и настоял на том, чтобы
вместе довести их «до кондиции». В те годы в Советском
Союзе было принято сокращать публикуемые статьи,
опуская подробности доказательств. Следуя этому правилу,
Левин сократил текст по максимуму и уместил все свои
исследования в каких-то две страницы.
Вскоре Левин представил кандидатскую диссертацию;
предыдущие работы он в нее включать не стал. Вся совет-
ская молодежь тогда состояла в комсомоле — молодежной
организации Коммунистической партии. Независимый
и свободомыслящий Левин открыто саботировал комсо-
мольские мероприятия, не осознавая, вероятно, к чему
это может привести. В конце концов его диссертацию
не приняли по причине «неопределенности политического
облика».
Политическая травля Левина не прекращалась.
В 1978 году ему удалось эмигрировать в Соединенные
Штаты. Альберт Мейер из Массачусетского технологиче-
ского института стал его научным руководителем; спустя
год Левину присудили степень доктора философии — за
выдающиеся результаты, полученные еще в Советском
Союзе. В настоящее время Левин — профессор Бостонского
университета.
В Соединенных Штатах об исследованиях Левина
узнали в середине семидесятых, когда проблема равенства
Глава 5. Хроника предшествующих событий 111

P и NP уже широко обсуждалась в научных кругах.


Левину не пришлось разделить с Куком премию Тьюринга,
которую тот получил в 1982 году; и все-таки основной
результат касательно NP-полноты со временем стали
называть теоремой Кука–Левина — правда, произошло это
уже ближе к девяностым.
Потепление в отношениях между СССР и США началось
в 1980-х. В седьмой главе мы поговорим о попыт-
ках разработать методы для доказательства неравенства
P и NP, опирающиеся на теорию сложности схем;
ведущую роль в этих разработках сыграл советский
и российский математик Александр Разборов, бывший
в ту пору студентом.
После распада Советского Союза пришел конец и вы-
нужденной изоляции ученых. А с развитием интернета
весь мир превратился в единое научно-исследовательское
сообщество.

ПИСЬМО ГЁДЕЛЯ
В 1956 году Курт Гёдель написал письмо Джону фон
Нейману — пионеру в информатике и многих других
областях науки. В письме Гёдель на немецком языке
рассуждал о проблеме выполнимости и о вопросе равенства
классов P и NP, только формулировал он этот вопрос
в несколько иных терминах. По словам ученого, если бы
мы жили в мире, в котором P = NP, то «математикам более
не пришлось бы тратить время на задачи типа „да-нет“:
этот труд за них выполняли бы машины <...> Впрочем,
я уже перестал относить эту возможность к области
несбыточного». Идеи Гёделя на пятнадцать лет опередили
работы Левина и Кука.
Получил ли фон Нейман то письмо? Ответил ли он
Гёделю? Мы этого не знаем; на тот момент фон Нейман
уже был болен раком, и в 1957 году его не стало.
О письме научное сообщество узнало лишь в конце
восьмидесятых, когда за вопросом о равенстве P и NP
уже прочно закрепился статус одной из центральных
открытых научных проблем. Сам Гёдель умер в 1978 году;
душевное расстройство, омрачившее последние годы его
112 Золотой билет

жизни, помешало ученому понять, что Кук в своей работе


поднял тот же вопрос.
Так почему бы не назвать вопрос «проблемой Гёделя»?
Почему не признать за Гёделем приоритет? Ведь он пришел
к нему намного раньше, чем Кук и Левин! К сожалению, —
или, возможно, к счастью, — в науке действует тот же
принцип, что и в мореплавании: Христофор Колумб
прославился не потому, что первым открыл Америку,
а потому, что открыл ее последним. Впрочем, Гёдель тут
и сам, как говорится, дал маху: не осознавая значимость
поднятых в письме к фон Нейману вопросов, ученый
никогда не публиковал свои идеи. Если смотреть на
публикации, то первыми проблему равенства P и NP
сформулировали все-таки Кук и Левин.
В 1993 году научное сообщество, отдавая дань Гёделю
за его фундаментальный вклад в логику и высказанные
в письме идеи, учредило премию в его честь. Премией
Гёделя отмечают недавно появившиеся работы в области
теоретической информатики.

ПРАВИЛО МАРСИАНИНА
Как узнать, какое понятие в науке — естественное, подска-
занное самой природой, а какое — искусственный продукт
деятельности человеческого разума? Представьте, что
на Марсе обнаружили цивилизацию, которая находится
примерно на таком же уровне развития, что и наша. Если
для некоторого земного понятия существует марсианский
аналог, полностью идентичный или хотя бы схожий
по смыслу, значит, это понятие естественное, поскольку
происходит из двух независимых источников.
Понятно, что цивилизации на Марсе нет и сравнивать
нам там себя на самом деле не с кем, но мы ведь можем
подключить воображение! Допустим, у марсиан имеется
машина Экзигия — вычислительная модель, отличная от
машины Тьюринга, но обладающая абсолютно теми же
возможностями. Марсианский вариант тезиса Чёрча–
Тьюринга гласит: все, что можно вычислить, вычислимо
и на машине Экзигия. Значит, понятие вычислимости
естественно, а вот понятие машины Тьюринга — нет.
Глава 5. Хроника предшествующих событий 113

В случае с классами P и NP можно обойтись без марси-


ан. Советские и американские математики практически не
имели возможности общаться; они параллельно проделали
одну и ту же работу и независимо сформулировали
проблему равенства P и NP и понятие NP-полноты. Мотивы
были разными: на Западе разбирались с вычислительной
эффективностью, на Востоке — с необходимостью перебора;
в результате обе стороны пришли туда же, куда и Курт
Гёдель, опередивший их на пятнадцать лет.
Точно так же и марсиане — если бы они, конечно,
существовали — могли бы прийти к проблеме равенства
P и NP или чему-то подобному и отнести ее к разряду
важных и естественных.
Глава 6
ПРЕОДОЛЕВАЯ ТРУДНОСТИ

Во второй главе мы с вами побывали в идеальном


мире. Равенство P и NP сделало нашу жизнь прекрасной
и удивительной. Исследовать можно было все. Оптими-
зировать — тоже. Машины умели выполнять почти все
мыслимые и немыслимые операции. Прекрасно, волшебно,
пугающе... и, скорее всего, нереально.
На самом деле мир наверняка далек от совершенства —
этакая «неэлегантная вселенная», в которой P и NP не
равны. Во всяком случае, именно в таком мире мы будем
жить до тех пор, пока не найдем эффективный алгоритм
для решения задач из NP. Но что же делать, если мы не
можем эффективно решить какую-то задачу? Оставить на
потом?
К сожалению, некоторые трудные задачи нельзя так
просто взять и отмести. Гарри работает планировщиком на
производственном предприятии «Рога и копыта». Его босс
Эми поручает ему настроить линию на сборку последней
модели мобильного телефона «Эйфон» и минимизировать
при этом время сборки. Гарри читал предыдущие главы
нашей книги, поэтому смело отвечает: «Извините, но
эта задача NP-полная. Если даже известные ученые
считают, что быстрого решения нет, то что уж мне
пытаться? Я лучше в боулинг пойду поиграю». На что
Эми разрешает ему веселиться хоть до утра, поскольку
в «Рогах и копытах» он больше не работает.
На место Гарри в срочном порядке наняли Джорджа.
К счастью для себя, Джордж читал эту главу и потому
сумел настроить линию на производство «Эйфонов».
Неужели он изобрел гениальный алгоритм, который всегда
оптимально распределяет подзадачи? Нет. Но с работой
он все-таки справился? Безусловно.
Глава 6. Преодолевая трудности 115

NP-полные задачи «приручить» не так-то просто. Если


P 6= NP, то мы никогда и ни для одной из них не
найдем хороший, быстрый алгоритм, который бы во всех
случаях выдавал наилучшее решение. Впрочем, это вовсе
не значит, что сделать ничего нельзя. В данной главе
мы рассмотрим несколько подходов к решению трудных
задач.
Современные процессоры настолько мощны, что, когда
размер входа не очень велик, можно просто перебрать
все потенциальные решения. Также можно применять
алгоритмы, которые не годятся для некоторых частных
случаев, однако по большей части работают вполне
приемлемо. Кроме того, существуют алгоритмы, которые
выдают пусть и не оптимальное, но все же довольно
близкое к нему решение.
Иногда NP-полная задача упорно не желает подда-
ваться. Что с ней делать? Перейти к другой NP-полной
задаче. Или взять и плюнуть на все, потому что есть дела
и поважнее.

ПОЛНЫЙ ПЕРЕБОР
Современные компьютеры считают очень быстро. Неве-
роятно быстро. С невообразимой, умопомрачительной
скоростью. Даже ноутбук или планшет может выполнить
полный перебор потенциальных решений для задачи
с небольшим размером входа.
Однако раньше все было совсем по-другому. В 1971 году,
когда Стивен Кук поднял вопрос о равенстве P и NP,
компания Intel выпустила микропроцессор Intel 4004 —
первый полноценный центральный процессор, который
уместился на одном кристалле и стал доступным для
потребителей. Intel 4004 мог выполнять 92 000 операций
в секунду и для того времени был очень скоростным.
Возьмем для примера подробно разобранную Куком
задачу о выполнимости и рассмотрим случай с двадцатью
переменными. Применим к ней простейший алгоритм,
который методично перебирает все возможные комбинации
значений переменных, устанавливая их в TRUE или
FALSE. Если предположить, что на обработку одной
116 Золотой билет

комбинации уходит 100 шагов, то выполнимость всей


формулы будет проверяться примерно 19 минут. Долго,
конечно, но ведь могло быть и хуже! Однако проблема
в том, что с двадцатью переменными каши особо не
сваришь.
Двадцать пять переменных обрабатывались бы при-
мерно 10 часов. Тридцать — чуть больше 13 суток. Ну
а с сорока переменными мы бы ждали с 1971-го года по
2009-й.
Сейчас Intel каждый год выпускает несколько новых
моделей процессоров. Рассмотрим, к примеру, появив-
шийся в 2009-м Intel i7-870, который мог выполнять 2,93
миллиарда операций в секунду — в 30 000 раз больше,
чем Intel 4004. С сорока переменными он справился
бы часов за десять, так что в 1971-м быстрее было бы
просто подождать 38 лет и воспользоваться технологиями
2009-го.
Для некоторых NP-полных задач можно привести и бо-
лее впечатляющие примеры. Возьмем задачу о коммиво-
яжере, который ищет кратчайший маршрут, проходящий
через максимально возможное число городов. Применяя
метод секущих плоскостей, мы легко найдем решение
даже для 10 000 городов. На рисунке ниже представлено
решение для 13 509 населенных пунктов с населением от
500 человек.
Впрочем, обычно потенциальных вариантов бывает
слишком много; не стоит и надеяться решить даже
среднюю по размеру задачу.
Современные микросхемы работают почти на пределе
физических возможностей. Впрочем, число транзисторов
на одном кристалле неизменно увеличивается, так что
производительность компьютеров пока продолжает расти
с той же бешеной скоростью, подтверждая закон Мура.
Когда-нибудь мы наверняка научимся решать NP-полные
задачи гораздо большего размера. Однако при увеличении
размера входа трудоемкость задачи также сильно воз-
растает, поэтому не стоит ждать, что уже в ближайшем
будущем мы сможем быстро проверять выполнимость для
150 переменных или находить коммивояжеру оптималь-
ный маршрут на 20 000 городов.
Глава 6. Преодолевая трудности 117

Рис. 6.1. Коммивояжер: города с населением более 500 человек

ЭВРИСТИЧЕСКИЕ МЕТОДЫ
Когда английскому плотнику XVII века требовалось
прикинуть расстояние в дюймах, он ориентировался
на ширину своего большого пальца. Вероятно, отсюда
и пошло так называемое правило большого пальца —
простой и неточный, но вполне приемлемый метод
решения того или иного вопроса. К примеру, поговорка
«Красный закат — моряк, веселись! Красный рассвет —
моряк, берегись!» дает нам примитивный, но достаточно
надежный метод предсказания погоды. А закон Мура
грубо оценивает рост мощности компьютеров.
Любой вычислительный алгоритм — это тоже метод
решения какого-либо вопроса. Эвристические алгоритмы
работают подобно правилу большого пальца: иногда они
ошибаются, однако в большинстве случаев находят верное
решение. Для NP-полных задач такие алгоритмы начали
появляться задолго до того, как об их NP-полноте стало
известно. За последние десятилетия сложными эври-
стическими методами «обзавелось» огромное множество
118 Золотой билет
Рис. 6.2. Карта Соединенных Штатов
Глава 6. Преодолевая трудности 119

трудоемких задач. Ни один из этих методов не является


универсальным и не годится для всех случаев сразу, однако
в общем и целом они со своей работой справляются.
Давайте подробно рассмотрим простой, но очень мощ-
ный эвристический алгоритм раскраски карт. В третьей
главе мы объяснили, почему для правильной раскраски
карты Соединенных Штатов, т. е. для раскраски, при
которой соседние штаты имеют разные цвета, требуется
не меньше четырех цветов.
Неваду окружает кольцо из пяти штатов: Калифор-
ния, Орегон, Айдахо, Юта и Аризона. Для раскраски
всех штатов кольца требуется не меньше трех цветов;
Невада имеет с ними общие границы, так что для
нее придется добавить четвертый. Другие штаты также
образуют подобные кольца: к примеру, штат Кентукки
окружают Теннесси, Вирджиния, Западная Вирджиния,
Огайо, Индиана, Иллинойс и Миссури. Здесь нам тоже,
как и в случае с Невадой, понадобится три цвета для
кольца и четвертый для Кентукки.
Любую карту, на которой есть хотя бы один регион,
окруженный нечетным количеством других регионов,
невозможно раскрасить меньше чем в четыре цвета.
На рисунке ниже представлена карта областей Арме-
нии.
Всего две из них целиком лежат внутри страны. Котайк
окружен шестью областями, а столица Ереван — четырьмя.
Эвристический метод говорит нам, что если все внутренние
регионы имеют четное число соседей, то для раскраски
карты хватит трех цветов. И мы видим, что для Армении
так и получается.
Швейцарию окружает нечетное число соседей — пять.
Это Франция, Италия, Австрия, Лихтенштейн и Германия.
Несмотря на это, карту на рис. 6.5 тоже можно раскрасить
в три цвета.
Дело в том, что Лихтенштейн вклинился между
Швейцарией и Австрией и разбил их общую границу
на две, поэтому Австрию нужно учитывать дважды.
Оказывается, важно не количество соседних государств,
а количество общих границ; у Швейцарии их шесть,
а шесть — число четное. Заметим, что считаются только
120 Золотой билет

Рис. 6.3. Армения

внешние границы, и страны, целиком лежащие внутри


другого государства, не учитываются вообще (например,
Ватикан внутри Италии).
Если бы наш эвристический метод всегда выдавал
верное решение, это означало бы, что для раскраски в три
цвета существует эффективный алгоритм, а поскольку
задача раскраски NP-полна, то и для всех остальных
NP-задач тоже существует эффективный алгоритм, поэто-
му P = NP. Думаю, вы уже догадались, что иногда у него
случаются проколы?
Эвристический метод имеет ровно два исключения.
1. На карте имеется озеро, по которому проходит
граница между регионами. Например, озеро Мичиган
отделяет Иллинойс от штата Мичиган.
Глава 6. Преодолевая трудности 121

Рис. 6.4. Раскраска Армении

2. Четыре или более регионов встречаются в одной точ-


ке. Например, Аризона, Нью-Мексико, Колорадо и Юта.
Впрочем, в случае с США исключения роли не играют,
поскольку мы и так уже знаем, что цветов нужно четыре
(не считая, разумеется, синего для озер).
В реальной жизни этот эвристический метод почти не
ошибается. Ну а как он справится с картой воображаемого
Королевства, на которой у любой провинции четное
число соседей (четыре), и которую, однако, невозможно
правильно раскрасить в три цвета (не считая, опять же,
синего для озер)?
Каждая из одиннадцати провинций граничит ровно
с четырьмя другими, при этом в ее «окружении»
обязательно имеется озеро. Наш метод говорит, что карту
122 Золотой билет

Рис. 6.5. Швейцария

Рис. 6.6. Раскраска Швейцарии


Глава 6. Преодолевая трудности 123

Королевства можно правильно раскрасить в три цвета;


однако он ошибается, поскольку при наличии лишь трех
цветов какие-нибудь две провинции непременно окажутся
одинаково окрашены.

Рис. 6.7. Карта Королевства заклятых друзей

Международная конференция The International Confe-


rence on Theory and Applications of Satisfiability Testing
стремится охватить все аспекты проблемы выполнимости.
Особое внимание уделяется хорошим эвристическим алго-
ритмам. В рамках конференции проводится конкурс SAT
Race, в котором участвуют компьютерные программы по
решению SAT-задач. Задачи для конкурса могут быть
сгенерированы случайным образом, позаимствованы из
различных областей науки и техники или же сконстру-
ированы специально с таким расчетом, чтобы решить
их было крайне трудно. Многие программы-участники
успешно справляются с задачами на миллион переменных.
Эвристические алгоритмы не всегда способны выдать
правильный ответ, и на конкурсе SAT Race их оценки
далеки от высшего балла. Тем не менее они неред-
ко умудряются решать задачи гигантских размеров —
124 Золотой билет

благодаря различным хитростям и невероятно высокой


производительности современных компьютеров.

ИГОЛКА В СТОГЕ СЕНА


Предположим, мы ищем клику из трех человек среди всех
20 000 жителей Королевства. По самым грубым подсчетам
нужно проверить чуть больше триллиона вариантов —
сущая ерунда для любого современного компьютера.
Однако дальше варианты начинают размножаться с кос-
мической скоростью, перед которой компьютеры очень
быстро пасуют: для клики размера четыре требуется
уже 6 квадриллионов проверок, для клики размера
пять — 26 квинтиллионов, а для клики размера шесть —
88 секстиллионов (т. е. 88 и 21 ноль).
Впрочем, поиск «иголки в стоге сена» не всегда превра-
щается в такую катастрофу. Группа жителей Королевства
считается очень приятной, если для любой пары друзей
хотя бы один из них в эту группу входит.

Рис. 6.8. Дружеские связи


Глава 6. Преодолевая трудности 125

На представленной выше диаграмме Боб, Даниэль,


Фрэнк и Гарри образуют очень приятную группу, по-
скольку все дружеские связи (линии на схеме) завязаны
на них.

Рис. 6.9. Очень приятная группа размера четыре

А вот очень приятную группу размера три составить


уже не получится. Например, если взять Элис, Чарли
и Фрэнка — потеряются дружеские связи Ева–Даниэль
и Джордж–Гарри.
Задача поиска очень приятной группы, более известная
под официальным названием «задача о вершинном покры-
тии», принадлежит к «старой гвардии» и упоминается еще
в списке NP-полных задач Карпа.
Давайте взглянем на дружеские связи Фрэнка. Если
Фрэнк не является членом очень приятной группы, то
тогда в нее должны входить Джордж, Даниэль и Ева,
поскольку все они с Фрэнком друзья. Каждая очень
приятная группа обязательно содержит либо Фрэнка, либо
всех его друзей — даже если их не три, а целых сто.
При помощи подобных хитростей можно избежать
полного перебора всех потенциальных вариантов при
126 Золотой билет

Рис. 6.10. Не очень приятная группа размера 3

поиске небольших очень приятных групп. Для группы


размера пять понадобится около 100 000 проверок, для
группы размера 10 — 200 000 проверок, а для группы
размера 30 — 601 000 проверок; любой ноутбук справится
с такой задачей за считаные доли секунды. Поиск
очень приятной группы размера 113 потребует проверки
триллиона вариантов и будет длиться не дольше, чем
поиск клики из каких-то несчастных трех человек.
Стоп. Выходит, очень приятные группы искать не так
уж сложно? Но разве Карп не доказал, что поиск очень
приятной группы минимального размера (т. е. минималь-
ного вершинного покрытия) — задача NP-полная? Дело
в том, что у жителей Королевства друзей обычно очень
много. Маловероятно, что все дружеские связи завязаны
лишь на 113 жителях. А как только мы замахнемся на
группы побольше, число вариантов тут же резко возрастет.
Например, для группы размера 150 потребуется уже
1,5 квадриллиона проверок, для группы размера 200 —
более секстиллиона, а для группы размера 500 — примерно
Глава 6. Преодолевая трудности 127

38 сексдециллионов (т. е. 38 и 51 ноль). Поиск очень прият-


ной группы минимального размера — задача практически
неразрешимая. А вот если нам просто нужно убедиться,
что в Королевстве не существует очень приятной группы
размера сто, мы получим ответ за разумное время.

ПРИБЛИЖЕННЫЕ МЕТОДЫ
Оптимальное решение получается найти далеко не всегда.
Очень часто, однако, не самое лучшее решение оказывается
вполне удовлетворительным.
Давайте снова обратимся к NP-полной задаче ком-
мивояжера, в которой требуется проложить кратчайший
маршрут через заданные города.
Предположим, вы хотите объехать 50 городов. Вам из-
вестно, что длина кратчайшего маршрута — 2 800 000 км.
Если вы составите маршрут в 2 810 000 км, то вряд
ли станете надрываться дальше из-за каких-то лишних
10 000 км.
С другой стороны, если дорога обходится вам в доллар
за километр, и за весь вояж вам заплатят 2 805 000
долларов, разница будет очень заметна: вы либо зара-
ботаете 5 000 долларов (уложившись в 2 800 000 км), либо
потеряете (удовлетворившись маршрутом в 2 810 000 км).
Сократите длину пути до 2 803 000 км — и окажетесь
в плюсе, хотя ваш маршрут не будет оптимальным.
Задача коммивояжера NP-полна, поэтому поиск точного
решения предположительно затянется на неопределенное
время. Зато мы можем построить приближенный маршрут,
причем от оптимального он будет отличаться не так уж
и сильно. Санджив Арора и Джо Митчелл независимо
друг от друга разработали алгоритм, который разбивает
карту на более мелкие куски и решает для каждого из
них аналогичную задачу, а затем аккуратно склеивает все
обратно.
На рисунке ниже вы видите карту Китая, на которой
отмечено 71 009 городов.
Наложим на карту частую сетку, решим задачу для
каждого квадрата в отдельности, а в конце просто со-
единим все полученные маршруты. Квадраты, в которых
128 Золотой билет

Рис. 6.11. Карта Китая

оказалось слишком много городов, можно будет раздробить


аналогичным образом.
Этот метод позволяет за разумное время находить
коммивояжеру вполне приличные маршруты: длина их
отличается от оптимальной всего на несколько процентов.
Если бы все NP-задачи решались приближенными
методами настолько замечательно, поднимать вопрос
о равенстве или неравенстве P и NP не имело бы особого
смысла. Однако в действительности дела обстоят не так
уж радужно. Рассмотрим, к примеру, задачу о клике —
большой группе людей, в которой все между собой дружны.
В общем случае алгоритмы поиска максимальной клики
не дают нам хорошего приближения. За разумное время
мы вряд ли доберемся даже до клики размера 15; а вдруг
в Королевстве есть клика из 2000 жителей?
Если P равно NP, то мы с легкостью отыщем клику
любого размера. В противном случае, как выяснилось, нам
доступны лишь клики в тысячу раз меньше максимальной.
Любой алгоритм, гарантирующий лучшее приближение,
позволит находить также и точные решения и докажет
равенство P и NP.
Глава 6. Преодолевая трудности 129

Рис. 6.12. Сетка на карте Китая

В большинстве NP-полных задач приближенное реше-


ние ищется проще, чем в задаче о клике, но сложнее, чем
в задаче коммивояжера. А как обстоит дело с задачей об
очень приятных группах?
Мы с вами разобрали тривиальный случай, в котором
можно методично перебрать все варианты и убедиться,
что минимальная очень приятная группа состоит из
четырех человек: Фрэнк, Даниэль, Гарри и Боб. Теперь
предположим, что ответ нам неизвестен, и рассмотрим
простой приближенный алгоритм поиска очень приятной
группы минимального размера.
На первом шаге выберем любых двух друзей и отметим
их; пусть это будут Элис и Гарри.
Теперь выберем еще двух друзей, ни один из которых
пока не отмечен, и тоже их отметим.
Повторяем до тех пор, пока у нас имеются неотмеченные
друзья.
В итоге все те, кого мы отметили, составят очень
приятную группу.
130 Золотой билет

Рис. 6.13. Дружеские связи — II

Рис. 6.14. Поиск очень приятной группы — II: шаг 1


Глава 6. Преодолевая трудности 131

Рис. 6.15. Поиск очень приятной группы — II: шаг 2

Рис. 6.16. Очень приятная группа размера шесть


132 Золотой билет

В нашем случае получилась очень приятная группа


размера шесть. Ясно, что любая очень приятная группа
содержит хотя бы одного человека из каждой выбранной
дружеской пары, а значит — состоит как минимум из
трех человек. Поэтому минимальный размер такой группы
лежит в промежутке от трех до шести.
Алгоритм подойдет для любой схемы дружеских связей.
Если он, к примеру, отберет 50 дружеских пар и построит
очень приятную группу из 100 человек, мы будем знать,
что минимальный размер группы — от 50 до 100.
Выходит, мы всегда можем найти очень приятную
группу, размер которой превышает минимальный не более
чем в два раза. Однако существенно улучшить этот
результат нам вряд ли удастся.
Если P равно NP, то мы сможем отыскать минимальную
очень приятную группу быстро и эффективно. А если
не равно? Тогда в общем случае мы будем получать
лишь группы, размер которых превышает минималь-
ный более чем на 36 процентов. Любой алгоритм,
гарантирующий превышение ровно в 36 процентов или
менее, можно преобразовать таким образом, чтобы он
решал произвольную NP-полную задачу. Возможность
этого преобразования основывается на целом ряде важных
и серьезных результатов, полученных в период между
1990 и 2005 годами.
Рассмотренный выше простейший алгоритм последо-
вательного отбора дружеских пар позволяет получить
очень приятную группу, размер которой превышает
минимальный не более чем в два раза (т. е. не более чем
на 100 процентов). Если P 6= NP, то мечтать о превышении
меньше чем в 36 процентов смысла вообще не имеет. Но,
может, удастся создать алгоритм, гарантирующий хотя
бы 50-процентное превышение?
В поисках ответа на этот и другие вопросы индийский
математик Субхаш Кхот разработал свои «уникальные
игры» — модификацию задачи о раскраске карт, в которой
для раскраски соседних государств вводятся дополнитель-
ные правила. Кхот выдвинул гипотезу, что задача об
уникальных играх является NP-полной. Так это или нет —
пока никто не знает.
Глава 6. Преодолевая трудности 133

Если гипотеза об уникальных играх верна, то у нас


нет шансов придумать хороший приближенный алгоритм:
из построений Кхота следует, что в этом случае мы не
сможем гарантированно находить очень приятные группы,
размер которых превышает минимальный менее чем на
100 процентов. Если гипотеза верна, нам останется до-
вольствоваться описанным выше простейшим алгоритмом.

ДРУГАЯ ЗАДАЧА
Когда не помогают даже самые хитрые трюки, можно
вместо одной NP-задачи попытаться решить другую.
Ресторан «У Тьюринга» в местечке Пало-Альто всегда
следует новейшим кулинарным течениям. Последний
писк — вычислительная гастрономия, которую уже под-
хватили все модные рестораны в округе. Когда шеф-
повар Джейн загорелась идеей создать новый соус для
своей знаменитой макаронной запеканки, она не стала
экспериментировать на кухне, а просто ввела в компьютер
основные характеристики будущего блюда, в частности —
цвет, вкус, запах и консистенцию. От программы требова-
лось подобрать наилучшее сочетание ингредиентов и способ
приготовления и при этом обеспечить заданный уровень
вкусовых ощущений, а также минимизировать расходы
и число калорий. Джейн попросила сконструировать ей
густой красный соус с уровнем остроты 5, консистенцией
чуть более однородной, чем овсянка, и качеством вкуса от 5
до 11; соус должен был хорошо сочетаться с запеканкой
не забивать своим вкусом все остальное.
К сожалению, компьютер не сумел так подобрать
ингредиенты, чтобы все заданные условия выполнялись.
Тогда Джейн обратилась к местному компьютерному
гению Тому, который периодически помогал ей, получая
взамен скидки на еду. Том испробовал все известные ему
эвристические алгоритмы и нашел в интернете несколько
новых. Потом арендовал виртуальный сервер на Amazon,
чтобы увеличить вычислительную мощность, и какое-то
время витал в облаках. Ничто не помогало; отчаявшись
найти решение самостоятельно, он обратился к друзьям
из Силиконовой долины. Тому, кто первым подберет
134 Золотой билет

ингредиенты для соуса, Том обещал драгоценную бронь


в ресторане «У Тьюринга». Однако через неделю сдались
и «силиконщики»: было ясно, что задача им не по зубам.
Том отправился в ресторан, чтобы сообщить плохие
новости. Это был его первый провал: до сих пор ему всегда
удавалось помочь Джейн с рецептом. «Мы можем хоть
немного изменить условия задачи? Требования ко вкусу,
например? — поинтересовался он. — Иначе никакого соуса
не будет». В ответ Джейн заявила, что ничего менять
нельзя и что вкус и консистенция должны быть в точности
такими, как она просила, — в противном случае блюдо
будет безнадежно испорчено. «А как насчет самой
запеканки?» — осенило Тома.
Смирившись с тем, что поиск оптимального соуса для
запеканки — задача практически неразрешимая, Джейн
и Том решили сконструировать сразу и соус, и запеканку,
которые идеально подходили бы друг к другу. Новая
задача оказалась на порядок проще, и через несколько
часов рецепт был готов. Изменив условия поиска, ресторан
получил оригинальное блюдо, которое быстро стало хитом.
Впрочем, изменение условий бывает выгодно не всем.
Например, специалистам по защите информации оно
способно принести только головную боль: ведь даже
самые лучшие криптографические методы обеспечивают
сохранность лишь в том случае, когда плохие парни делают
то, что от них ожидают. Поступая нестандартно, плохие
парни добиваются успеха.
Смарт-карта — это примерно то же, что кредитка
с чипом. Там есть микропроцессор и память, которая
хранит секретный код. Смарт-карты можно применять
для идентификации личности; на них также можно
класть деньги, чтобы совершать покупки в магазине или,
к примеру, платить за парковку, не устанавливая при этом
соединение с сервером. Даже если данные, отправленные
или полученные картой, будут перехвачены, расшифровать
их без знания секретного кода вряд ли удастся.
Допустим, некий Томас из обслуживающего персонала
отеля позаимствовал смарт-карту Энни, пока та плавала
в бассейне. У Томаса есть специальный кардридер, кото-
рый посылает карте определенные данные и анализирует
Глава 6. Преодолевая трудности 135

ее ответ. Если P окажется равно NP, то такой кардридер


будет быстро подбирать секретный ключ, и смарт-карты
станут совершенно бесполезны. Но пока мы с вами живем
в мире, где P и NP не равны, так что поиск ключа представ-
ляет собой задачу огромной вычислительной трудности.
Протоколы для смарт-карт специально разрабатывают
таким образом, чтобы у методов, описанных в этой
главе, не осталось ни единого шанса, будь то грубый
поиск или хитрый эвристический алгоритм. Обычный
мошенник, потерпев неудачу, просто возвратил бы Энни
ее карту, а если бы Энни обнаружила пропажу раньше,
то позвонила бы в банк и попросила эту карту за-
блокировать.
Наш Томас не принадлежит к разряду стандартных
«похитителей личности». В его арсенале есть разные
приемчики, о которых разработчики смарт-карт даже
не догадываются. Для начала он на несколько секунд
помещает карту в микроволновку. Не пытайтесь повторить
этот трюк: электромагнитные волны могут привести вашу
карту (а также любой другой предмет с чипом внутри)
в полную негодность. Секундное воздействие способно
вызвать замыкание электрических цепей; если карта
и останется жива, то она наверняка время от времени
будет вести себя нестандартно.
А нестандартное поведение — это как раз то, что
требуется Томасу: он не сможет подобрать секретный код,
если карта работает как надо. Поврежденная (в меру)
карта продолжает реагировать на запросы, вот только
реакции ее уже могут быть не те, что прежде.
Поведение испорченной карты по-прежнему зависит
от секретного ключа — но уже не так, как задумали
разработчики, стремившиеся усложнить подбор ключа по
максимуму. Теперь у Томаса есть шанс, и в надежде
подобрать секретный ключ он будет применять все
известные ему алгоритмы.
Как только ключ найдется, Томас изготовит две новые
карты, идентичные смарт-карте Энни — разумеется, не в ее
нынешнем состоянии, а еще до микроволновки. Одну
карту он вернет владелице, а другую оставит себе и будет
потихоньку воровать со счета деньги. Вероятно, пройдет
136 Золотой билет

несколько недель или даже месяцев, прежде чем Энни


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

ВРЕМЯ СМИРИТЬСЯ
Если вам попался слишком крепкий орешек, все, что
вы можете сделать, — это бросить его и заняться чем-то
другим.
Ричард долго бился над химической формулой супер-
наркотика, который поможет ему захватить весь мир
или — на худой конец — окрестности его родного Цин-
циннати. Под действием наркотика люди должны были
становиться расслабленными и управляемыми. «Добавлю
его в воду на очистительной станции Миллера, — мечтал
он. — А когда все размякнут, приду и порабощу их!»
Для превращения мечты в реальность оставалось
лишь обзавестись достаточным количеством необходимых
ингредиентов. Проблема была в том, что после недавнего
инцидента ему был вынесен судебный запрет на покупку
химикатов. Не имея возможности официально обратиться
в специализированную фирму, Ричард придумал использо-
вать предметы домашнего обихода и экстрагировать из них
требуемые вещества. Он составил внушительный перечень
подходящих комбинаций товаров и ввел в компьютер
множество параметров — цены, максимальное количество
товара, которое, не навлекая подозрений, можно заказать
за один раз, адреса двадцати «Волмартов» и четырнадцати
«Таргетов» в Цинциннати и окрестностях, а также
стоимость доставки и аренды складов (ясно было, что
склад понадобится, причем точно не один). Вдобавок от
компьютера требовалось минимизировать время и рас-
ходы. К огромному огорчению Ричарда, потенциальных
вариантов оказалось слишком много, и проверить их
Глава 6. Преодолевая трудности 137

все было совершенно нереально. Ричард чувствовал, что


решение где-то рядом; он перепробовал все найденные
в интернете алгоритмы, однако ни приближенные методы,
ни эвристические не приблизили его к заветной цели ни
на шаг. В конце концов он все же сдался и вернулся к ос-
новной работе — охранником на фабрике по производству
зубной пасты.
Так благодаря особо трудной NP-задаче был спасен
Цинциннати.

ВЕСЬ БОЕВОЙ АРСЕНАЛ


Далеко не каждую трудную задачу из класса NP можно
победить каким-то одним методом. Зачастую приходится
применять сразу несколько способов из описанных выше.
Когда стоящая перед нами задача никак не поддается, мы
пытаемся изменить ее условия. Если новая задача снова
оказывается NP-полной, мы атакуем ее эвристическими
методами, которые хотя и не всегда дают точное реше-
ние, во многих случаях позволяют получить неплохое
приближение.
Если P = NP, все эти ухищрения становятся не нужны,
поскольку один-единственный алгоритм дает ключ ко всем
проблемам сразу. Если же — как многим кажется — P и NP
не совпадают, то в большинстве случаев мы все же можем
что-то сделать. Возможно, нам потребуется довольно
много времени; возможно, мы решим задачу, отличную
от исходной; возможно, решение окажется далеким от
оптимального... однако работа будет выполнена, а это
уже неплохо.
Глава 7
КАК ДОКАЗАТЬ, ЧТО P 6= NP

Юрис Хартманис, один из основоположников теории


вычислительной сложности, любит повторять: «Все знают,
что они не равны, а доказать не могут».
В предыдущих главах мы познакомились с проблемой
равенства P и NP, узнали, в чем ее суть и почему она
так важна, совершили путешествие в идеальный мир,
в котором P = NP и который вряд ли когда-нибудь станет
реальностью, а также научились обращаться с трудными
задачами в мире, где P и NP не равны.
Для математиков вопрос о равенстве классов превратил-
ся в настоящий вызов. С тех пор как Кук, Карп и Левин
сформулировали проблему и показали ее важность, ученые
во всем мире пытаются найти строгое математическое
доказательство равенства — или неравенства — P и NP.
Классические методы давно потерпели поражение; еще
к концу семидесятых в математическом сообществе
сложилось мнение, что для решения данной проблемы, по
всей видимости, требуется особый, принципиально новый
подход.
Последующие десятилетия ознаменовались невероятны-
ми успехами в математике и кибернетике; удалось раз-
решить даже одну из самых знаменитых математических
проблем — Великую теорему Ферма.
В 1637 году француз Пьер де Ферма, математик-
любитель и юрист по профессии, сделал на полях своей
древнегреческой «Арифметики» следующее замечание:
«Невозможно разложить куб на два куба, биквадрат
на два биквадрата и вообще никакую степень, большую
квадрата, на две степени с тем же показателем. Я нашел
этому поистине чудесное доказательство, но поля книги
слишком узки для него».
Глава 7. Как доказать, что P 6= NP 139

Рис. 7.1. Комикс про Дилберта. c Скотт Адамс, 1997.


Публикуется с разрешения UNIVERSAL UCLICK. Все права
защищены

Другими словами, не существует таких натураль-


ных чисел a, b, c и такого натурального n > 2, что
an + bn = cn . Ученый больше нигде не упоминает об этом
доказательстве; вполне возможно, что строгое математи-
ческое обоснование он так и не придумал. Постепенно
теорема приобрела широкую известность и пополнила
ряды классических «нерешаемых» математических задач.
Знаменитую теорему мечтали доказать даже дети. Один
из таких мечтателей (среди которых был и я), став
взрослым, превратил мечту в реальность. В 1994 году
Эндрю Уайлс из Принстонского университета представил
доказательство, основанное на целом ряде работ по теории
чисел, и в один миг стал знаменитым — насколько вообще
бывают знаменитыми математики.
Здесь вы не найдете ключ к решению вопроса
«P против NP», иначе это была бы совсем другая книга.
Цель данной главы — познакомить вас с некоторыми
идеями и методами, разработанными в попытке доказать
неравенство P и NP. К сожалению, ни одна из этих идей не
приблизила математиков к решению проблемы. По сути,
для доказательства неравенства необходимо показать, что
некоторые задачи из класса NP не могут быть эффективно
решены ни одним из известных — а также неизвестных —
алгоритмов. Вообще доказать неосуществимость чего-
либо крайне трудно, однако нельзя утверждать, что
это невозможно логически. Шансы у нас есть; будем
140 Золотой билет

надеяться, что когда-нибудь эту проблему — вероятно,


наиболее трудную и важную среди всех математических
проблем, — все-таки решат.

ПАРАДОКС ЛЖЕЦА
Давайте рассмотрим одно загадочное утверждение.

Рис. 7.2. Утверждение

Оно истинно или ложно, как вам кажется? Если оно


ложно, значит, неверно то, что оно ложно, а значит,
оно истинно. Но если оно истинно — значит, верно то,
что оно ложно. С какой стороны ни зайди, получишь
противоречие. Этот парадокс получил название «парадокс
лжеца». Сейчас я лгу. Ну как — солгал я или нет?
В математике не бывает настоящих парадоксов: бывают
лишь некомпетентные математики. Утверждение «Это
утверждение ложно» некорректно с математической точки
зрения, поскольку оно оценивает собственную истинность.
В 1930 году Курт Гёдель пришел к выводу, что
о математических доказательствах можно рассуждать на
языке самой математики и что высказывания о возмож-
ности доказательства того или иного утверждения также
могут быть записаны в виде формальных математических
утверждений. Ученый изобрел высказывание, которое
говорит о возможности собственного доказательства,
и сформулировал его на языке математики. Вот оно:

Рис. 7.3. Утверждение о возможности доказательства

Похоже на предыдущее, правда? Предположим, что


оно ложно. Тогда его можно доказать, а следовательно,
оно истинно. Но это противоречит первоначальному
предположению о том, что оно ложно; значит, оно истинно.
Глава 7. Как доказать, что P 6= NP 141

Что, опять парадокс? Вообще-то нет: высказывание


истинно, вот только это не докажешь. Так Гёдель одним
махом пошатнул все фундаментальные основы матема-
тики: оказывается, некоторые истинные утверждения
невозможно доказать 1) !
Допустим, знакомый говорит вам, что у него есть
волшебная шкатулка, которая предсказывает будущее.
Попросите его поинтересоваться у этой шкатулки, какой
рукой вы его ударите — правой или левой? Если шкатулка
ответит «левой», ударьте правой, а если «правой» —
ударьте левой. Шкатулка ошибется в любом случае.
Примерно так же дело обстоит и с вычислениями. Вам
наверняка приходилось любоваться песочными часами на
экране монитора и гадать — завис компьютер или просто
надолго задумался? Перегрузить его или еще подождать?
Вот бы кто-нибудь придумал алгоритм, который бы
определял, крутится компьютер в бесконечном цикле
или нет! Было бы здорово — но, к сожалению, это опять
невозможно, и сейчас мы с вами поймем, почему.
Начнем с простого наблюдения: программа — это набор
данных. Такой же, как, к примеру, файл Word или Excel.
Поэтому одна программа вполне может проанализировать
код другой программы. Впервые подобная мысль была
высказана Аланом Тьюрингом в его знаменитой работе
1936 года, заложившей основы теоретической информа-
тики.
Любая компьютерная программа либо остановится
и выдаст некий результат, либо будет работать бесконечно.
Допустим, у нас есть алгоритм, который определяет, оста-
навливается программа или нет. Применим его к самому
себе и создадим программу, представленную на рисунке
ниже.
Программа либо остановится, либо будет работать
бесконечно. В любом случае мы придем к противоречию,
1) Разве мы с вами только что не доказали истинность этого

высказывания? На самом деле нет: ведь мы действовали в пред-


положении, что все, что можно доказать, истинно. Однако Гёдель
показал, что утверждение «Все, что можно доказать, истинно»
также нельзя доказать, если только мы не умеем доказывать
ложные утверждения. Вот что можно узнать, читая сноски!
142 Золотой билет

а значит, наше допущение неверно, т. е. создать программу,


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

Рис. 7.4. Программа

А нельзя ли примерно таким же способом доказать, что


некоторые задачи не могут быть решены эффективно, т. е.
не принадлежат классу P, в котором для любой задачи
существует эффективный алгоритм? Конечно же, можно!
Для начала определим алгоритм Q, который принимает
на вход код программы R и решает следующую задачу:
• Если программа R, получив на вход свой собственный
код, за полиномиальное время выдает ответ «Да»,
ответить «Нет».
• В противном случае ответить «Да».
Теперь возьмем произвольный эффективный алго-
ритм S. Очевидно, что Q(S) ответит «Да» в том и только
в том случае, когда S(S) ответит «Нет», а это значит,
что ни один эффективный алгоритм никогда не совпадет
с алгоритмом Q.
Несмотря на это, алгоритм Q вполне корректный,
и задача, которую он выполняет, разрешима, — вот только
за полиномиальное время с ней не справиться.
Раз Q не принадлежит классу P, тогда, если бы
мы доказали, что Q лежит в NP, т. е. любое заданное
решение быстро проверяется, это означало бы, что P 6= NP,
и проблема тысячелетия была бы решена.
Никто не знает, принадлежит ли Q классу NP; на
самом деле это очень мало вероятно. По этой причине
(а также по ряду других) любой «парадоксальный» подход
к решению проблемы P и NP почти наверняка потерпит
неудачу — по крайней мере, если с его помощью пытаться
так вот «в лоб» доказать неравенство P и NP.
Глава 7. Как доказать, что P 6= NP 143

СХЕМЫ
В основе любого современного вычислительного устройства
лежит интегральная схема.
Интегральные схемы состоят из миллионов и даже
миллиардов крошечных транзисторов, предназначенных
для усиления и преобразования электрических сигналов.
На базе транзисторов создаются так называемые вентили —
логические элементы, выполняющие простейшие операции
с входными сигналами.
Для начала рассмотрим один электрический провод, на
который подается либо высокое напряжение, либо низкое.
Возможны только два значения, интерпретируемые обычно
как наличие тока или его отсутствие; эти значения
кодируют два состояния — единицу и ноль, или «истину»
и «ложь». Количество информации, передаваемое таким
двузначным сигналом, получило название «бит» (англ.
bit — сокращение от binary digit, т. е. «двоичная цифра»).

Рис. 7.5. Интегральная схема. Фото любезно предоставлено


Пенсильванским университетом

Сам по себе провод — или даже несколько отдельных


проводов — мало на что способны. Если мы хотим органи-
зовать какое-нибудь вычисление, то должны преобразовы-
вать идущие по проводам сигналы. Простейший метод —
инвертировать входное напряжение, т. е. реализовать
логический вентиль «НЕ».
144 Золотой билет

Рис. 7.6. Вентиль «НЕ»

Если на входе вентиля, т. е. слева от элемента «НЕ»,


будет высокое напряжение, на выходе оно станет низким,
и наоборот.
Занимаясь каждым проводом в отдельности, полно-
ценную схему не составить: на самом деле провода
нужно специальным образом комбинировать. Вентиль «И»
принимает на вход два или более сигнала и преобразует
их в один; на выходе будет единица, если на все входы
подается единица. Вентиль «ИЛИ» также принимает на
вход два или более сигнала и преобразует их в один; на
выходе будет единица, если хотя бы на один из входов
подается единица.

Рис. 7.7. Вентили «И» и «ИЛИ»

Из таких простейших базовых элементов можно строить


схемы, реализующие более сложные операции. Например,
«исключающее ИЛИ» выдает единицу, когда ровно на один
из входов подается единица.
Любую, даже самую сложную, функцию можно реали-
зовать схемой из элементов «И», «ИЛИ» и «НЕ». Вер-
немся к вопросу о клике — группе жителей Королевства,
Глава 7. Как доказать, что P 6= NP 145

Рис. 7.8. Вентиль «Исключающее ИЛИ»

в которой все дружат между собой. Чтобы определить,


дружат ли Алекс, Боб и Венди, мы можем воспользоваться
вентилем «И».

Рис. 7.9. «И» с тремя входами

Чтобы узнать, есть ли в компании из пяти человек —


Алекс, Боб, Венди, Гарри и Диана — клика размера три,
мы можем построить схему, изображенную на рис. 7.10.
В этой схеме десять элементов «И». Каждый элемент
соответствует одной из десяти потенциальных клик
размера три в нашей группе. А что, если в группе
не 5 человек, а 20 000? И нам нужно найти клику
размера 50? Действуя так же, «в лоб», мы получим
невероятно огромную схему, содержащую
3 481 788 616 673 927 174 126 704 329 430 033 822 428
741 136 969 800 292 509 234 146 086 195 855 824 730
457 281 170 250 134 309 383 506 694 008 809 661 825
431 661 561 845 957 650 386 210 936 569 600
элементов «И».
146 Золотой билет

Рис. 7.10. Схема для клики размера три


Глава 7. Как доказать, что P 6= NP 147

Вы спросите, причем тут классы P, NP и вопрос об их


равенстве? Дело в том, что для любой задачи из P, т. е.
задачи, для которой существует эффективный алгоритм,
существует также относительно небольшая схема из
элементов «И», «ИЛИ» и «НЕ», которая ее решает. Если
мы докажем, что некоторую задачу из NP (например,
задачу о клике) нельзя решить при помощи небольшой
схемы, это будет означать, что P 6= NP.
Существуют ли маленькие схемы для задачи о клике?
Равны классы P и NP или не равны? Вопросы эти очень
тесно взаимосвязаны, и ответа на них ученые пока не
знают; однако сейчас уже мало кто верит, что задача
о клике реализуется маленькой схемой, как, впрочем,
и в то, что P = NP.
Вернемся к схемам для поиска клики, которые мы
только что построили. Заметьте, что в них нет ни одного
вентиля «НЕ». Вообще-то некоторые схемы реализовать без
отрицания нельзя: оно необходимо даже для такой простой
операции, как «исключающее ИЛИ». А вот в задаче
о клике можно обойтись одними только «И» и «ИЛИ» —
правда, размер подобных схем будет просто устрашающий.
В 1985 году Александр Разборов — студент Математи-
ческого института им. В. А. Стеклова в Москве — доказал,
что любая схема, реализующая алгоритм для задачи
о клике при помощи одних лишь вентилей «И» и «ИЛИ»
(т. е. без использования «НЕ»), обязательно содержит
огромное число элементов. Конечно, проблему равенства
P и NP это не снимало; использование элемента «НЕ»
вполне могло бы привести к значительному сокращению
размера схемы, хотя для задачи о клике он совсем не
обязателен.
Тем не менее результат Разборова сочли огромным
прорывом на пути к решению вопроса о P и NP. В то время
я учился в аспирантуре, и мой научный руководитель
Майкл Сипсер сказал, что решение это уже почти у нас
в руках: осталось лишь придумать, как модифицировать
доказательство Разборова таким образом, чтобы в него
можно было «подсунуть» элементы отрицания. Если это
удастся, то любая схема, реализующая задачу о клике
при помощи полного набора базовых операций — «И»,
148 Золотой билет

«ИЛИ», «НЕ», — обязана будет содержать огромное число


элементов. Поскольку эффективные алгоритмы реали-
зуются небольшими схемами, отсюда будет следовать,
что NP-полная задача о клике эффективного алгоритма
не имеет, а значит, не принадлежит классу P. Таким
образом, неравенство P и NP будет доказано. К сожалению,
в реальной жизни все обстоит несколько сложнее.
В Соединенные Штаты ранние работы Разборова попали
непереведенными. Сипсер привлек к делу несколько рус-
ских студентов; вместе они в ожидании чуда скрупулезно
переводили текст на английский и с каждой следующей
статьей надеялись, что вопрос о равенстве P и NP вот-вот
будет закрыт. Авторству Разборова принадлежит целый
ряд замечательных работ, однако ключ к доказательству
неравенства P и NP они не дают.
В третьей главе мы разбирали задачу о числе паросоче-
таний и составляли из дружеских пар романтические. Как
и в случае с кликой, для решения задачи о паросочетаниях
можно строить схемы, содержащие только операции «И»
и «ИЛИ». Для оценки общего числа элементов подходят
те же методы, что были использованы в задаче о клике.
Поэтому схемы, решающие задачу о паросочетаниях при
помощи одних лишь «И» и «ИЛИ», всегда содержат
огромное число элементов.
Впрочем, для паросочетаний, в отличие от клики,
эффективные алгоритмы все же существуют, а значит,
существуют и небольшие схемы из элементов «И», «ИЛИ»
и «НЕ». Конечно, отрицание использовать совсем не
обязательно, однако с его помощью число элементов схемы
можно значительно уменьшить. Простой и скромный
вентиль «НЕ» на самом деле гораздо мощнее, чем
кажется.
Все это практически сводит на нет любые попытки
разобраться с классами P и NP, основываясь на резуль-
татах Разборова относительно клики. Если для решения
некоторой задачи при помощи одних лишь «И» и «ИЛИ»
требуется схема из огромного числа элементов, то отсюда
вовсе не следует, что при добавлении «НЕ» ситуация
останется прежней. В более поздних работах Разборов
этот вопрос прояснил; он четко показал, почему для схем
Глава 7. Как доказать, что P 6= NP 149

с отрицанием его методы не годятся, и почему их почти


наверняка невозможно будет переделать.
Позже Разборов в соавторстве со Стивеном Рудичем
из Университета Карнеги-Меллон разработал понятие
«естественного доказательства», охватывавшее широкий
спектр методов, применяемых для оценки сложности схем.
Ученые показали, что при помощи естественных доказа-
тельств проблему равенства P и NP решить невозможно.
«Неестественные» методы доказательства могут осно-
вываться на парадоксах, подобных тем, что обсуждались
выше. Разработка таких методов для схем уже принесла
некоторые плоды, однако доказать, что для некоторой
NP-полной задачи требуется большая схема (и решить
тем самым вопрос о равенстве P и NP), вряд ли когда-
нибудь получится; надежда на это постепенно угасает.

КАК НЕ ДОКАЗАТЬ, ЧТО P 6= NP


6 августа 2010 года сотрудник исследовательской лаборато-
рии Hewlett-Packard Винэй Деолаликар разослал двадцати
двум ведущим специалистам в области теоретической
информатики препринт своей работы, лаконично озаглав-
ленной «P 6= NP». Многие мечтают прославиться и сорвать
большой куш, т. е. миллион долларов от Математического
института Клэя; то и дело из ниоткуда возникают люди
с «доказательствами», заявляющие, что проблема решена
и они установили, что P равно NP, или что P не равно NP,
или что решить этот вопрос нельзя, или что он вообще
не имеет смысла. Каждый год десятки подобных работ
выкладывают в интернет, предлагают в научные журналы
и рассылают по электронной почте известным ученым.
В одно из самых престижных изданий по теоретической
информатике — Journal of ACM — «доказательства» идут
непрерывным потоком. Журнал даже разработал специ-
альную политику для авторов:

«В редакцию регулярно поступают работы, авторы


которых претендуют на решение известных открытых
проблем теории сложности, в частности — проблемы
равенства классов P и NP. Рассмотрение и рецензиро-
150 Золотой билет

вание подобных работ осуществляется на добровольной


основе и отнимает значительную часть редакционных
ресурсов, поскольку требует проведения тщательного
анализа на предмет выявления возможных ошибок.
Редакция не исключает вероятность того, что проблема
равенства P и NP, а также связанные с ней вопросы
будут когда-нибудь решены; попытки доказательства
таких проблем по-прежнему приветствуются. Тем не
менее с целью избавления от дополнительной нагрузки,
вызванной регулярной проверкой одних и тех же работ,
которые после исправления выявленных в процес-
се рассмотрения ошибок направляются в редакцию
повторно, для авторов устанавливаются следующие
ограничения: рукописи по проблеме равенства P и NP
и другим связанным с ней открытым проблемам
теории сложности можно представлять в редакцию
не чаще, чем раз в два года, — за исключением
случаев, когда у автора имеется специальное разре-
шение от главного редактора. Данное правило касается
также повторного предоставления ранее отклоненных
рукописей».

По большей части представляемые доказательства абсо-


лютно нечитабельны или пестрят глупейшими ошибками,
и научное сообщество их просто-напросто игнорирует.
Однако в случае с Деолаликаром дело приняло совсем
другой оборот: у ученого уже имелся целый ряд научных
публикаций, а качество представленной работы выгодно
отличало его от других претендентов. Некоторые специали-
сты полагали, что труд Деолаликара заслуживает самого
пристального рассмотрения. Из-за этого твиты и блоги
запестрели преждевременными сообщениями о том, что
проблема тысячелетия решена. Доказательство изучали
известные математики и кибернетики; в результате
всплыли как мелкие и средние недочеты, так и серьезные
изъяны. Уже 16 августа — всего через десять дней после
выхода препринта Деолаликара — газета New York Times
опубликовала статью под названием Step 1: Post Elusive
Глава 7. Как доказать, что P 6= NP 151

Proof. Step 2: Watch Fireworks, в которой описывалась


вся эта история. К тому времени научное сообщество
пришло к единому мнению: доказательство принять
нельзя, поскольку в нем содержатся серьезные ошибки.
Вопрос о равенстве P и NP по-прежнему оставался
открытым.
Надеюсь, эта книга поможет вам прочувствовать всю
важность обсуждаемой проблемы. Не исключено, что у вас
даже возникнет искушение попытать счастья и попробо-
вать решить ее самостоятельно. Ну что ж, дерзайте —
только так вы по-настоящему сможете осознать, насколько
она трудна! Однако имейте ввиду, что я не даю здесь
строгих определений; если вы и правда сгораете от
желания взяться за дело, вам придется ознакомиться
с точными формулировками. На сайте книги вы найдете
полезные ссылки на источники, в которых приводится не
только подробное математическое описание проблемы, но
и примеры неудачных попыток ее решения.
Допустим, вы уверены, что решили проблему равенства
P и NP, и уже потираете руки в предвкушении чека на
миллион долларов от Математического института Клэя. Не
спешите радоваться: с вероятностью 99,9% доказательство
окажется неверным. Попробуйте понять, что с ним не
так; ищите ошибку — и ваши поиски почти наверняка
увенчаются успехом.
Давайте разберем несколько типичных ошибок, встре-
чающихся у тех, кто думает, что все доказал.
Вероятно, первой неудачной попыткой доказать нера-
венство P и NP можно считать работу средневеко-
вого итальянского математика Джероламо Кардано —
одного из первопроходцев в области теории вероятно-
стей. В 1550 году Кардано разработал новую систему
шифрования сообщений, которая, по его мнению, была
очень надежной, поскольку для подбора ключа требовалось
проверить огромное число вариантов. На самом деле
взломать систему было не так уж сложно, ведь для
расшифровки засекреченного сообщения перебирать все
возможные варианты вовсе не обязательно.
152 Золотой билет

Ошибку Кардано в том или ином виде регулярно


повторяют современные авторы, которым кажется, что они
доказали неравенство P и NP. Давайте снова обратимся
к задаче о клике. Любой алгоритм, утверждающий,
что клику заданного размера найти невозможно, должен
доказать, что ее действительно нет. Единственный способ
в этом удостовериться — перебрать все возможные группы
и проверить, не образуют ли они клику. Поскольку
потенциальных вариантов слишком много, алгоритм не
справится с проверкой за разумное время. Отсюда вытека-
ет, что эффективных алгоритмов для задачи о клике не су-
ществует. Следовательно, P 6= NP, ч. т. д. (что и требовалось
доказать). Этим выражением (или аббревиатурой Q. E. D. —
от латинского quod erat demonstrandum) математики часто
завершают свои выкладки, подчеркивая тот факт, что
доказательство окончено.
Рассуждения такого рода могут варьироваться, однако
их общая логическая ошибка заключается в словах
«единственный способ». Вы не можете предсказать, как
будет работать тот или иной алгоритм; он вовсе не обязан
делать то, что считаете нужным вы, и в частности —
работать лишь с исходной проблемой. К примеру, можно
преобразовать схему дружеских связей в какое-нибудь за-
ковыристое алгебраическое уравнение, которое будет иметь
решение в том и только в том случае, когда клика данного
размера существует. Конечно, это очень маловероятно,
однако нельзя исключать такую возможность лишь по
той причине, что вы в нее не верите.
Спорить с приверженцами подобных «методов» дока-
зательства бывает порой довольно сложно. Они постоянно
возвращаются к отправному моменту и требуют, чтобы
я привел пример алгоритма для клики, который бы не
использовал «единственно возможный способ». Разумеет-
ся, я такого алгоритма не знаю; если бы его придумали,
это означало бы равенство P и NP, что на самом деле
очень маловероятно. В данном случае бремя доказательства
лежит на вас — и это сказано не ради красного словца!
Именно вы, т. е. человек, утверждающий, что он (или она,
Глава 7. Как доказать, что P 6= NP 153

хотя ошибочные доказательства предоставляют в основном


мужчины) решил проблему, должны доказать, что других
возможных способов в природе не существует.
Для доказательства равенства P и NP достаточно «всего
лишь» показать, что для некоторой NP-полной задачи
существует эффективный алгоритм. И вот некоторые
изобретают алгоритм для задачи о клике или какой-
нибудь другой эквивалентной ей проблемы и заявляют, что
доказали равенство P = NP. Но ведь сам по себе алгоритм
еще не является доказательством! Требуется строгое
математическое обоснование того факта, что данный
алгоритм дает верное решение во всех возможных случаях
(если мы говорим о клике — то для всех возможных схем
дружеских связей), причем делает это за полиномиальное
время. В подобных работах доказательство корректно-
сти алгоритма либо отсутствует вообще, либо является
неполным и неверным; сами же алгоритмы, сталкиваясь
с нетривиальными случаями, обычно выдают ошибочное
решение или работают неприемлемо долго.

ТЕКУЩЕЕ ПОЛОЖЕНИЕ ДЕЛ


Мы еще никогда не были настолько далеки от решения
проблемы P и NP. Не в том смысле, что для этого
требуется огромная подготовительная работа; просто мы
уже испробовали все мыслимые и немыслимые подходы
и исчерпали все известные науке методы доказательства,
так что в ближайшем будущем прогресса ждать не
приходится.
Единственную на сегодняшний момент потенциальную
возможность открыл Кетан Мулмулэй из Чикагского
университета. Ученый показал, что решение некоторых
трудных проблем из области математики под названием
«алгебраическая геометрия» (и это не помесь школьной
алгебры и геометрии, а нечто гораздо более сложное) может
дать ключ к доказательству неравенства P и NP. Вот
только для решения этих алгебраически-геометрических
проблем потребуются такие техники, которых в нашем
154 Золотой билет

арсенале нет и которые в ближайшее время вряд ли


появятся. Несколько лет назад Мулмулэй предположил,
что реализация этого плана займет около ста лет. Теперь
тот прогноз уже кажется ему чересчур оптимистичным.
Так сколько нам еще ждать? Не исключено, что сейчас,
когда вы читаете эти строки, проблему уже решили. Хотя,
скорее всего, над ней будут биться еще очень долго;
дольше даже, чем над Великой теоремой Ферма, которая
поддалась лишь через 357 лет. А может, она так навсегда
и останется одной из величайших загадок в истории
математики и вообще всей науки.
Глава 8
СОВЕРШЕННО СЕКРЕТНО

У каждого из нас есть секреты. Как минимум мы храним


в тайне пароли и не желаем, чтобы кто-то читал нашу
почту. Если P 6= NP, то секреты есть и у NP-полных
задач: это их решения, найти которые не так-то про-
сто. В 1976 году Уитфилд Диффи и Мартин Хеллман
предложили шифровать информацию при помощи класса
NP. В истории криптографии, т. е. науки о шифровании,
наступил поворотный момент.

ОЧЕНЬ КРАТКАЯ ИСТОРИЯ КЛАССИЧЕСКОЙ


КРИПТОГРАФИИ
Шифрование существует столько же, сколько и перепис-
ка. Юлий Цезарь пользовался простым подстановочным
шифром, в котором каждая буква заменялась на другую
букву, отстоящую от нее в алфавите на три позиции.
Фраза The early bird gets the worm («Кто рано встает,
тому бог дает») после такой кодировки превращается
в Wkh hduob elug jhwv wkh zrup. Способ шифрования,
при котором все буквы циклически сдвигаются на
определенное число позиций, стали называть шифром
Цезаря.
В Древнем Риме этот метод работал хорошо. Зашифро-
ванные сообщения выглядели как случайный набор букв,
а люди пока еще не обладали необходимыми навыками
для взлома шифров. К IX веку математики разработали
методы восстановления исходного сообщения; эти методы
учитывали частоту появления букв и анализировали
короткие слова. Глядя на фразу Wkh hduob elug jhwv
wkh zrup, можно заметить, что буква h встречается
четыре раза, т. е. чаще остальных. Самая распространенная
156 Золотой билет

буква английского алфавита — это e, ее частота составляет


примерно 12 процентов. Вы можете предположить, что
буква h кодирует букву e, — и будете совершенно правы.
Сочетание wkh встречается дважды; вы уже знаете,
что h — это e, поэтому делаете вывод, что wkh — это,
наверно, the. Еще чуть-чуть — и исходное сообщение будет
восстановлено!

Рис. 8.1. Шифр Цезаря

В XV веке, в эпоху Возрождения, итальянский ученый


Леон Баттиста Альберти разработал более сложный метод.
Это был шифр многоалфавитной замены, в котором
сообщение разбивалось на несколько частей, и для каждой
части использовался свой алфавит подстановки. Система
Альберти практически не поддавалась взлому вплоть до
XIX века, когда на шифры началось систематическое
наступление.
Американский писатель и поэт Эдгар Аллан По
мастерски владел техникой криптоанализа. В 1839 году он
обратился к широкой публике с предложением присылать
ему тексты, зашифрованные сложным, не поддающимся
взлому шифром, и обещал разгадать их все. Годом позже
По опубликовал эссе «Несколько слов о тайнописи»,
в котором утверждал, что человеческий разум не способен
изобрести такой шифр, который разум другого человека
был бы не в силах разгадать. В нашумевшем рассказе
По «Золотой жук», появившемся в 1843 году, события
вертятся вокруг расшифровки тайного сообщения. Это
было одно из первых художественных произведений,
в котором речь шла о секретных кодах.
В 1903 году выходят «Пляшущие человечки» Конан
Дойля, где Шерлок Холмс взламывает подстановочный
шифр, состоящий из странных пляшущих фигурок.
Наступила эра механики; люди начали изобретать
машины, способные создавать ключи для шифровки и де-
шифровки. Самая известная шифровальная машина — это,
Глава 8. Совершенно секретно 157

пожалуй, «Энигма», первую версию которой в 1918 году


в Германии разработал Артур Шербиус.
В «Энигме» было несколько роторов, искажавших
набранные на клавиатуре символы. Роторы вращались
в разных режимах, и каждый символ получал свой
индивидуальный шифр замены. В результате машина
выдавала усложненную версию многоалфавитного шифра
Альберти, взломать которую было чрезвычайно трудно.

Рис. 8.2. Пляшущие человечки

Рис. 8.3. Шифровальная машина «Энигма»

У немцев во время Второй мировой большинство


сообщений шифровалось при помощи «Энигмы». Неза-
долго до начала войны Великобритания получила от
польской разведки описание машины и некоторых ме-
тодов дешифровки. Британское правительство запустило
158 Золотой билет

засекреченный проект с кодовым названием «Ультра»,


целью которого был взлом шифров «Энигмы». В штат
набирали известных шахматистов, чемпионов по решению
кроссвордов и, конечно, талантливых математиков, среди
которых был и основоположник теории вычислений Алан
Тьюринг. В рамках проекта был спроектирован и построен
«Колоссус» — первый в мире программируемый цифровой
компьютер. «Именно благодаря проекту „Ультра“ мы
выиграли войну», — скажет позже Уинстон Черчилль.
Криптография всегда была — и будет — чем-то вроде
игры в кошки-мышки между теми, кто создает шифры,
и теми, кто их взламывает. Впрочем, в семидесятых
годах XX века игра заметно усложнилась, поскольку
трудоемкость некоторых NP-задач послужила отправной
точкой в создании новых методов шифрования.

СОВРЕМЕННАЯ КРИПТОГРАФИЯ
«Мы стоим на пороге криптографической революции» —
таковы первые слова нашумевшей статьи Уитфилда
Диффи и Мартина Хеллмана, вышедшей в свет еще
в 1976 году. «Благодаря развитию массового производства
дешевых цифровых устройств криптография освободилась
от аппаратных ограничений и перестала испытывать
недостаток в вычислительных ресурсах, — продолжают
авторы. — Стоимость надежных криптографических си-
стем значительно снизилась; теперь эти системы можно
использовать в различных коммерческих приложениях —
например, для удаленного управления кэш-диспенсерами
и компьютерными терминалами».
Диффни и Хеллман понимали, что с дальнейшим
развитием вычислительной техники сложные шифроваль-
ные системы превратятся в недорогой и всем доступный
софт, хотя у криптографов при этом возникнут новые
вопросы. Компьютерные сети прочно войдут в повседнев-
ную жизнь; появится острая необходимость в недоро-
гих и эффективных методах защиты передаваемой по
ним информации. Рассуждая о последних достижениях
в борьбе с проблемой равенства P и NP, ученые заявляют:
«В то же время развитие теории информации и теории
Глава 8. Совершенно секретно 159

алгоритмов позволяет надеяться на появление достаточно


надежных криптографических систем; древнее искусство
шифрования постепенно переходит в разряд науки».
До сих пор и шифрование, и дешифровка всегда
проводились одним и тем же ключом. Перед началом
переписки сторонам необходимо было встретиться и усло-
виться, каким будет этот ключ. Если главнокомандующий
передавал полевому офицеру зашифрованное на «Энигме»
сообщение, то настройки машины — в особенности поло-
жение роторов перед началом передачи — должны были
знать оба. Настройки, как правило, менялись каждый
день, и у офицеров имелись специальные шифровальные
книги. Когда эти книги попадали в руки противника,
секретную переписку прекращали и ждали, пока не будут
составлены новые. Впрочем, это происходило не так уж
часто: секретные документы охранялись очень тщательно
и при угрозе захвата их уничтожали.
Компьютерные сети создают дополнительные трудно-
сти, поскольку на их безопасность нельзя положиться.
В конце XX века сети работали преимущественно через
телефонные линии, подключиться к которым было не
так уж и сложно. А сейчас любой посетитель кофейни
может перехватить все данные, отправляемые вашим
компьютером через местный Wi-Fi.
Посылать секретный ключ по сети ни в коем случае
нельзя: это ставит под угрозу вашу будущую переписку.
Перед началом обмена сообщениями вы должны как-то
физически передать собеседнику ключ, а на это уйдут
время и деньги, причем, возможно, немалые.
Основываясь на результатах, полученных ранее Раль-
фом Мерклом, Диффи и Хеллман предложили обойти
эту проблему при помощи так называемых криптосистем
с открытым ключом. Компьютер создает два ключа —
открытый и закрытый; открытый можно послать кому
угодно, а закрытый хранится в тайне и по сети не
передается.
Основная идея таких криптосистем состоит в том, что
при шифровании применяется открытый ключ, который,
однако, не подходит для дешифровки. Исходное сообщение
можно восстановить лишь при наличии закрытого ключа.
160 Золотой билет

Допустим, Диффи хочет отправить Хеллману такое


сообщение: «Наступление в полночь». Хеллман создает
пару ключей; открытый ключ он посылает Диффи и дру-
гим заинтересованным участникам, а закрытый держит
в тайне. С помощью открытого ключа Диффи зашифро-
вывает сообщение «Наступление в полночь» и отправляет
результат Хеллману. Секретный ключ ему знать не нужно,
поскольку для шифрования он не используется. Хакер, пе-
рехвативший шифровку, не сможет восстановить исходный
текст даже в том случае, если знает открытый ключ. А вот
Хеллман с помощью закрытого ключа расшифрует сообще-
ние и узнает о том, что наступление начинается в полночь.
Неужели можно шифровать сообщения ключом, ко-
торый все знают?! Можно — но только если P и NP не
равны: в противном случае закрытый ключ легко и быстро
восстанавливается по открытому.
В 1976 году большинство ученых уже склонялись
к тому, что P 6= NP, а потому системы с открытым ключом
имеют право на жизнь. Диффи и Хеллман такую систему
предложили, однако более широкое распространение полу-
чила криптосистема RSA, которую в 1978 году разработали
Рональд Ривест, Ади Шамир и Леонард Адлеман. Система
была названа по первым буквам фамилий ее создателей —
Rivest, Shamir, Adleman.
В основе алгоритма RSA лежит тот факт, что умножать
легко, а раскладывать на множители — очень трудно. Возь-
мем, к примеру, два достаточно больших простых числа,
5 754 853 343 и 2 860 486 313. Найти их произведение легко:
это 16 461 679 220 973 794 359. А вот с обратным процессом
все обстоит гораздо сложнее — попробуйте-ка по чис-
лу 16 461 679 220 973 794 359 восстановить сомножители
5 754 853 343 и 2 860 486 313! В системе RSA используются
громадные простые числа, состоящие, как правило, из
нескольких сот цифр. Нельзя утверждать, что разложение
на простые множители практически неразрешимо, пока
неравенство классов P и NP остается недоказанным; однако
по мнению ученых задача эта представляет огромную
вычислительную трудность.
За свое изобретение Ривест, Шамир и Адлеман
в 2002 году получили премию Тьюринга.
Глава 8. Совершенно секретно 161

Удивительный факт: позднее выяснилось, что впервые


подобную криптосистему описал в 1973 году Клиффорд
Кокс, работавший в то время в Центре правительственной
связи Великобритании. Эта информация была обнародо-
вана лишь в 1997 году.
С системой RSA вы наверняка неоднократно сталкива-
етесь каждый день. Возьмем для примера какой-нибудь
часто посещаемый веб-сайт (в вашем браузере он может
отображаться немного по-другому).

Рис. 8.4. Верхняя часть страницы Facebook

Обратите внимание на букву s в адресной строке и на


замочек.

Рис. 8.5. Верхняя часть страницы Facebook с отметками

Буква s указывает на безопасное соединение (от англ.


secure). Facebook опубликовал свой открытый ключ; этим
ключом браузер шифрует ваш пароль. Злоумышленник
с ноутбуком, расположившийся в другом углу кофейни,
не сможет взломать пароль, даже если будет перехватывать
все передаваемые по Wi-Fi данные, а вот Facebook
легко восстановит его с помощью закрытого ключа.
Аналогичным образом ваш браузер при необходимости
создаст пару ключей и сообщит открытый ключ Facebook,
а тот в ответ пришлет вам зашифрованную информацию
об обновленных статусах ваших друзей, которую больше
никто, кроме вас, не увидит.
162 Золотой билет

КРИПТОГРАФИЯ В СОВЕРШЕННОМ МИРЕ


Что станет с криптографией в совершенном мире?
В мире из второй главы, где P = NP? Определить,
что число 16 461 679 220 973 794 359 представляется
в виде 5 754 853 343 × 2 860 486 313, а числа 5 754 853 343
и 2 860 486 313 — простые, не составит особого труда;
подобные вычисления можно будет проделывать с числами
из тысяч и даже миллионов цифр! Задача разложения на
множители лежит в классе NP, поскольку потенциальное
решение можно проверить очень быстро; если классы
P и NP совпадают, то для этой задачи существует
эффективный алгоритм, а значит, мы легко отыщем все
делители любого, сколь угодно большого числа. Протокол
RSA, как и любая другая система шифрования с открытым
ключом, станет абсолютно бесполезен, поскольку закры-
тый ключ будет быстро восстанавливаться по открытому
ключу. Равенство P и NP приведет к тому, что мы
больше не сможем обмениваться секретной информацией,
не условившись предварительно о способе ее передачи.
Так, значит, в совершенном мире о криптографии
придется забыть? Вообще-то есть один шифр, надежность
которого не зависит от отношений между P и NP: это
так называемый одноразовый шифровальный блокнот.
Предположим, Элис придумала пароль из 12 символов:
FIDDLESTICKS. Шифровальный ключ — он же блокнот —
представляет собой случайную последовательность симво-
лов той же длины: JXORMQNAMRHC. Возьмем первые
символы пароля и ключа, F и J. Это шестая и десятая
буквы алфавита, соответственно. В сумме их номера
дают число 16, поэтому первым символом шифрованного
текста будет шестнадцатая буква алфавита — P. Теперь
возьмем вторые символы пароля и ключа, I и X. Это
девятая и двадцать шестая буквы алфавита. В сумме
их номера дают 33, однако тридцать третьей буквы
алфавита в английском языке не существует, поэтому мы
вычитаем из числа 33 количество букв в алфавите, т. е. 26.
Получается 7, а значит, вторым символом шифровки
будет седьмая буква алфавита — G. Действуя аналогичным
образом, мы в итоге получим PGSVYVGUVUSV. Эту
криптограмму Элис отошлет на Facebook, а он расшифрует
Глава 8. Совершенно секретно 163

ее с помощью точно такого же блокнота, выполняя


вычитание вместо сложения.
Любая строка длины 12 может быть ключом. Любая
строка длины 12 может быть исходным сообщением. Все
варианты равновероятны, так что, имея на руках крипто-
грамму, получить какую-либо информацию об исходном
тексте абсолютно невозможно. Этот факт математически
доказан, и классы P и NP тут совершенно ни при чем. Но
тогда зачем нужны все эти хитроумные и потенциально
уязвимые системы шифрования, завязанные на поиск
простых сомножителей? Почему бы нам не перейти на
одноразовые блокноты?
К сожалению, с блокнотами все обстоит не так
просто. Их ведь потому и назвали одноразовыми, что
любой ключ разрешается использовать только один раз.
Это правило должно соблюдаться неукоснительно; даже
если два не связанных между собой человека отсылают
сообщения двум другим не связанным между собой
людям, лучше, чтобы их ключи не совпадали, иначе
конфиденциальность переписки может быть нарушена.
Кроме того, одноразовый блокнот обязательно должен быть
той же длины, что и сообщение. В отличие от криптосистем
с открытым ключом, ключ здесь лишь один — секретный,
общий для обеих сторон. И Элис, и Facebook должны
знать секретный ключ; если к злоумышленнику попадет
хотя бы часть ключа, он сможет получить некоторую
информацию об исходном сообщении, поэтому Facebook
должен переправить Элис ключ так, чтобы его никто,
кроме самой Элис, не увидел (или наоборот — Элис должна
переправить ключ в Facebook). Данные, пересылаемые по
интернету, легко перехватить. Блокноты нужно передавать
на физическом носителе, например — на флешке, причем
делать это только лично или через надежного посредника.
В совершенном мире Элис, скорей всего, отправилась
бы в ближайший супермаркет и купила запечатанную
флешку с набором одноразовых блокнотов. Производством
таких флешек занималась бы заслуживающая доверия
организация (возможно, правительство), способная га-
рантировать безопасную передачу второго экземпляра
блокнота в Facebook и другие подобные компании.
164 Золотой билет

Рис. 8.6. Судоку с нулевым разглашением

Равенство P = NP многое упрощает, однако криптогра-


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

СУДОКУ С НУЛЕВЫМ РАЗГЛАШЕНИЕМ


Боб пожертвовал обедом, чтобы добить судоку из послед-
него номера газеты.
«У них тут ошибка. Это решить невозможно!» —
восклицает он, совершенно выбившись из сил. На крики
приходит его коллега Элис; взглянув на судоку, она видит
ту самую головоломку, которую утром решила в метро.
Боб зря ругается. На рисунке ниже вы видите решение
Элис.
Боб вот-вот сдастся, и Элис хочется его поддержать. Она
говорит, что решила задачу, но он ей, конечно, не верит.
Он ужасно расстроится, когда увидит в завтрашней газете
ответ, так что нужно обязательно убедить его подумать
еще. Показать свое решение значит испортить Бобу все
Глава 8. Совершенно секретно 165

Рис. 8.7. Решение судоку с нулевым разглашением

удовольствие от процесса; но как доказать, что задача


решается, не давая при этом никаких подсказок?
К счастью, в колледже Элис специализировалась на
теоретической информатике и поэтому знает о доказатель-
ствах с нулевым разглашением. В голове у нее быстро
созревает план действий.
Вернувшись к своему столу и зная, что Боб не может
видеть ее за перегородкой, Элис берет цифры от 1 до 9
и случайным образом их упорядочивает.

Рис. 8.8. Новый порядок цифр


166 Золотой билет

С помощью полученной таблицы Элис шифрует свое


решение, заменяя 1 на 2, 9 на 3, и т. д., и рисует его на
большом листе бумаги. Вот что у нее выходит:

Рис. 8.9. Зашифрованное решение

Дальше Элис аккуратно режет сетку с решением на


маленькие квадратики по одной цифре в каждом. Всего
квадратиков получается 81. Каждый квадратик она прячет
в маленький пакетик и кладет в соответствующую ячейку
нарисованной на другом листе пустой сетки.

Рис. 8.10. Решение спрятано


Глава 8. Совершенно секретно 167

Рис. 8.11. Открытая строка

В левом верхнем пакетике лежит цифра 2, справа от


него — цифра 3, и так далее.
Осторожно, без резких движений, Элис относит всю
эту конструкцию Бобу и объясняет ему, что именно
она сделала. Не раскрывая схему кодировки цифр, она
предлагает провести тест. Бобу разрешается выбрать один
из двадцати восьми вариантов:
• открыть все пакетики в одной из строк;
• открыть все пакетики в одном из столбцов;
• открыть все пакетики в одном из девяти блоков
3 × 3;
• открыть все пакетики, расположенные на тех же
позициях, что и заданные цифры исходной голово-
ломки.
Допустим, Боб решил открыть третью строку. Что он там
увидит?
Если бы в строке оказалось две одинаковых цифры, это
означало бы, что Элис наврала. Но поскольку решение
у нее действительно есть, и она четко объяснила Бобу, что
сделала с пакетиками, Боб видит все различные цифры
от 1 до 9 в случайном порядке. Тест пройден!
Если Боб решит открыть столбец или блок 3 × 3,
результат будет точно таким же.
168 Золотой билет

Теперь предположим, что он выберет последний вари-


ант — «открыть все пакетики, расположенные на тех же
позициях, что и заданные цифры исходной головоломки».
Открыв пакетики, Боб видит такую картину.

Рис. 8.12. Открытые позиции соответствуют заданным цифрам

Рис. 8.13. Новый порядок цифр

Это единственный случай, когда Боб получает от Элис


еще и таблицу кодировки, при помощи которой он
проверит, соответствуют ли открытые цифры тем, что
Глава 8. Совершенно секретно 169

были указаны в задаче изначально. Например, согласно


схеме, цифра 9 должна была превратиться в цифру 3... так
и есть!
Если Элис и правда решила задачу и четко следовала
правилам, она пройдет любую проверку. А что же Боб?
Получит ли он хоть какую-нибудь подсказку, когда
откроет строку, столбец или блок 3 × 3? Исключено:
перед ним будут лишь цифры от 1 до 9, расположенные
в случайном порядке.
Последний вариант даст ему перестановку цифр, при
помощи которой было зашифровано решение. Но что он
при этом узнает? Ничего.
Другое дело, если Элис наврала: один из тестов
обязательно провалится, и она ничего не сможет с этим
поделать. Когда Боб выбирает тест наугад, вероятность
попасться на вранье составляет одну двадцать восьмую,
или примерно 3,57%. Не так уж и рискованно, правда?
Однако если Элис и Боб проведут 83 эксперимента подряд
и при этом будут каждый раз менять схему кодировки,
вероятность провалить один из тестов возрастет до 95%.
Боб убедился, что Элис действительно решила судоку,
а ей при этом удалось соблюсти принцип «нулевого
разглашения»: о решении Боб знает только то, что
оно существует. Эта мысль будет греть его, когда он
вернется к головоломке, но справляться ему придется
исключительно своими силами.
Мы исходили из предположения, что Боб не хочет
слышать никаких подсказок. На случай, если он решит
сжульничать и открыть сразу все пакетики, Элис может
спрятать цифры в запирающиеся коробочки и по мере
необходимости выдавать Бобу ключи.
Теперь представим, что Боб и Элис не работают вместе
и вообще находятся в разных городах. Они могут связаться
по телефону или электронной почте, однако вместо пакети-
ков придется придумать что-то другое. Здесь на помощь им
придет несложный шифр. Каждому пакетику Элис может
присвоить уникальный номер — большое случайное число,
последняя цифра которого совпадает с цифрой внутри.
170 Золотой билет

Для цифры 2 подойдет, к примеру, 3 682 502. Затем она


зашифрует номера пакетиков своим открытым ключом
и отошлет их Бобу. Когда Боб определится с вариантом
теста, Элис сообщит ему исходные номера тех пакетиков,
которые разрешается открыть. Для проверки Боб повторно
зашифрует их открытым ключом и получит те же номера,
что Элис выслала ему в начале.
В четвертой главе мы уже упоминали, что решение
судоку — задача NP-полная. А раз к судоку сводится любая
задача из NP, то и описанный выше метод доказательства
с нулевым разглашением также годится для любой
NP-задачи. Элис сможет убедить Боба в том, что она нашла
максимальную клику, раскрасила карту в три цвета или
составила маршрут для коммивояжера, не раскрывая при
этом никакой дополнительной информации; о решении
Боб будет знать только то, что оно существует.
Классический способ осуществить криптографическую
атаку — выдать себя за другого. Защититься от самозван-
цев помогает доказательство с нулевым разглашением.
Происходит это так. Элис выбирает любой известный
только ей секрет и шифрует его своим открытым ключом.
Ее цель — убедить Боба, что она и вправду Элис. Она,
конечно, может отправить ему зашифрованный текст, но
тогда Боб получит возможность выдавать себя за нее. Так
что Элис проводит доказательство с нулевым разглашением
и показывает Бобу, что действительно владеет секретной
информацией. В результате Боб верит, что общается
именно с Элис, но при этом ничего не знает о ее секрете.

КРИПТОГРАФИЯ В ИГРАХ

Боб и Элис спорят, куда пойти ужинать. Бобу хочется


в стейк-хаус, Элис — в рыбный ресторан. В конце концов
на помощь призывают орла и решку. Боб подбрасывает
монетку и накрывает ее ладонью. Элис ставит на орла.
Боб открывает монетку... решка. Этим вечером Боб будет
наслаждаться сочным стейком.
Глава 8. Совершенно секретно 171

Все бы хорошо, но что, если Боб и Элис говорят


по телефону или переписываются по почте? Боб может
соврать и сказать, что выпала решка, когда на самом деле
выпал орел. А может и вообще монетку не бросать. Как
убедиться, что он говорит правду?
Простейший способ — положиться на случайное собы-
тие, исход которого станет известен всем. Например,
договориться, что если последняя цифра промышленного
индекса Доу-Джонса на закрытие дня окажется нечетной,
то выбирать ресторан будет Боб, а если четной — то Элис.
Правда, в субботу торги не ведутся, так что на выходные
придется придумывать что-то другое.
В этом случае подойдет рассмотренная ранее схема
шифрования с открытым ключом. Боб создает пару
ключей, открытый и закрытый. Затем выбирает случайное
число, к примеру — 69 441 251 920 931 124, и шифрует его
своим открытым ключом, который отсылает Элис вместе
с шифровкой.
Элис выбирает «чет» или «нечет» и сообщает об
этом Бобу. В ответ он отправляет ей секретный ключ.
Расшифровав криптограмму, Элис узнает, что Боб зага-
дал 69 441 251 920 931 124. Если она выбрала «чет», то
выиграла, а если «нечет» — выиграл Боб.
Давайте разберемся, почему эта схема работает. Боб
выбирает число еще до того, как Элис делает ставку.
Но когда она загадывает «чет» или «нечет», то не
знает, что он выбрал 69 441 251 920 931 124. У нее есть
лишь криптограмма, и если она не умеет взламывать
шифры, то не получит никакой информации об этом
числе. Все, что она может сделать, — это положиться на
интуицию. Боб не станет менять свое число, поскольку
уже отправил Элис криптограмму. Теперь ему остается
лишь сообщить ей секретный ключ, чтобы она увидела,
какое число он выбрал. Когда ставки делаются без всякой
системы, каждый игрок выигрывает в половине случаев.
Надежность шифров с открытым ключом исключает
возможность обмана.
172 Золотой билет

Бросать монетку — это как-то слишком просто. Что,


если взять какую-нибудь более сложную игру?
Можно ли, к примеру, провести по телефону шахматную
партию? Без проблем: игроки по очереди будут сообщать
друг другу свой следующий ход, пользуясь принятыми
в шахматах обозначениями.
Как насчет игры в кости, нарды или «Монополию»?
Поверит ли Элис, что Боб не врет насчет выпавших
очков? Безусловно — для этого лишь нужно будет утвер-
дить протокол бросания костей, во многом совпадающий
с протоколом бросания монетки.
А вот в случае с покером и другими карточными играми
все обстоит несколько сложнее. Карты игроков выбираются
случайным образом. Каждый видит свои карты и не знает
о картах противника. Некоторые карты доступны обоим;
какую-то часть не видят ни тот, ни другой. По ходу игры
закрытые карты открываются и становятся доступны либо
всем, либо лишь одному игроку.
В интернете сейчас очень много покерных сайтов,
однако все они играют роль ведущего, так как сами
тасуют карты и раздают их игрокам.
Можно ли провести игру в покер без сайта-посредни-
ка? Можно, конечно, — вот только протоколом бросания
монетки тут уже не обойдешься. В семидесятых и восьми-
десятых годах прошлого века для карточных игр с двумя
и более игроками появилось множество хитрых крипто-
графических схем, в которых были и открытые ключи,
и закрытые, и даже двойное шифрование. Применялись
эти схемы как по телефону, так и по сети.
К началу девяностых криптографам удалось разработать
универсальные схемы. С их помощью по интернету можно
было играть в любую игру, в которой требовался честный
противник. Эти схемы исключали всякую возможность
мошенничества; в протоколах помимо шифрования при-
менялось также доказательство с нулевым разглашением.
И все же на практике удобнее было работать с сайтами-
посредниками или пользоваться узкоспециализирован-
Глава 8. Совершенно секретно 173

ными протоколами, поэтому широкого распространения


универсальные схемы так и не получили.

ОБЛАКО СЕКРЕТНЫХ ВЫЧИСЛЕНИЙ

Допустим, у Элис имеются конфиденциальные данные, над


которыми требуется произвести некие вычисления, а Боб
как раз предоставляет сервис облачных вычислений. Элис
отправляет Бобу информацию, закодированную его откры-
тым ключом. Боб расшифровывает данные, выполняет вы-
числения и отправляет Элис результат, закодированный ее
открытым ключом. Если система шифрования достаточно
надежна, то ни один злоумышленник не сумеет похитить
секретную информацию. Схема работает — но лишь до тех
пор, пока Элис доверяет Бобу. А что, если она захочет
скрыть свои данные даже от него?
В этом случае помогут системы, называемые полностью
гомоморфными. Протокол RSA устроен таким образом,
что, умножив шифр одного числа (к примеру, числа 28)
на шифр другого (к примеру, 45), мы в итоге получим
шифр их произведения (т. е. числа 1260). Умножение чисел
можно проводить без расшифровки, и исходные данные
при этом знать не обязательно. Для сложения, однако,
это правило не действует, и по кодам чисел 28 и 45 код
числа 73 в системе RSA не получишь.
Умножение соответствует логическому «И», а сло-
жение — логическому «ИЛИ». Вместо логических схем
можно строить схемы из операций умножения и сложения,
и такими схемами на самом деле реализуются очень мно-
гие вычисления. Полностью гомоморфная криптосистема
позволяет не только умножать зашифрованные числа,
но и складывать; обе операции можно проводить без
расшифровки, и никакая дополнительная информация при
этом не потребуется.
Допустим, Элис закодировала информацию полностью
гомоморфным шифром и отправила ее на сервер Боба.
Боб выполняет вычисления, не имея представления об ис-
174 Золотой билет

ходных данных. Результат он получает в закодированном


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

В ПОИСКАХ СЛУЧАЙНОСТИ

Рассмотрим популярную игру «Камень, ножницы, бумага»


для двух игроков, в которой нужно выбрать камень,
ножницы или бумагу и показать рукой соответствующий
знак.
Камень затупляет ножницы, поэтому выбравший ка-
мень победит того, кто выбрал ножницы. Ножницы
разрезают бумагу, бумага оборачивает камень. Если игроки
выбирают один и тот же знак, засчитывается ничья.
Какова оптимальная стратегия в этой игре? Хорошо, ес-
ли вы можете предсказать выбор противника; но что, если
все наоборот, и противник знает ход ваших рассуждений?
Неужели вы обречены на вечный проигрыш?
Вовсе нет — при условии, что вы действуете наугад, не
размышляя. Когда камень, ножницы и бумага выбираются
с одинаковой вероятностью, то независимо от стратегии
противника вероятность проигрыша, победы и ничьи тоже
будет одинакова — одна треть. Впрочем, человеку на самом
деле очень сложно сделать по-настоящему случайный
выбор, и знающие люди этим пользуются; вот почему
для участия в чемпионатах по игре в «Камень, ножницы,
бумагу» необходима не только удача, но и определенное
мастерство.
Глава 8. Совершенно секретно 175

Рис. 8.14. «Камень, ножницы, бумага»

В криптографии дело обстоит аналогичным образом:


здесь тоже требуется абсолютная случайность. Во всех
криптографических протоколах, обсуждаемых в этой гла-
ве, для защиты информации от перехватчиков и нечестных
посредников используются случайные величины. Когда
числа не являются абсолютно случайными, у злоумыш-
ленника появляется шанс, даже если вы используете
одноразовые блокноты.
Как получить настоящие случайные числа? Компью-
теры пока не научились подбрасывать монетку; впрочем,
даже если бы они и умели, то монетки все равно
подчинялись бы законам физики, так что случайность эта
была бы достаточно условной. Источником случайности
могут стать квантовые явления, однако из-за сложности
реализации этот способ крайне редко применяется на
практике.
Чтобы получить случайность, мы подкидываем монет-
ку, бросаем кости, тасуем карты или крутим колесо
рулетки. Все эти процессы подчиняются физическим
законам (правда, казино всегда остается в выигрыше).
Нетривиальный механизм взаимодействия шарика рулет-
176 Золотой билет

ки с колесом не оставляет шансов вычислить результат


очередного запуска, поэтому выпадающие числа кажутся
абсолютно случайными.
Компьютеры используют такой же трюк. Они не
умеют создавать истинно случайные последовательности
нулей и единиц, поэтому генерируют так называемые
псевдослучайные числа, выполняя операции, результат
которых трудно предсказать. Криптография очень тесно
связана со случайностью. Для любого, кто пытается прочи-
тать шифровку без ключа, зашифрованный текст должен
выглядеть абсолютно случайным набором символов. На
основе методов шифрования можно создавать отличные
генераторы случайных чисел.
Впрочем, в компьютерах, как правило, применяются
более эффективные схемы, которые хорошо и быстро
работают на практике, хотя в теории и не всегда гаранти-
руют истинно случайный результат. Разработка хорошего
генератора, оптимально распределяющего вычислительные
ресурсы, — задача отнюдь не тривиальная.
Генераторы псевдослучайных чисел спасают нас лишь
до тех пор, пока существуют относительно трудные задачи.
Если P = NP, то любой вычислительный процесс можно
в той или иной степени инвертировать. В совершенном
мире будет чрезвычайно трудно — а то и вовсе нереально —
программно реализовать полностью случайное подбрасыва-
ние монетки. А компьютерный вариант «Камня, ножниц
и бумаги» вряд ли сможет называться азартным.

ПРОБЛЕМЫ РАЗРАСТАЮТСЯ
Шифрование с открытым ключом базируется на «непри-
ступности» таких NP-задач, как разложение на множите-
ли. Достаточно случайным образом выбрать два больших
простых числа и перемножить их — и вы получите число,
которое никто, кроме вас, на множители, скорее всего,
не разложит.
Является ли задача разложения на множители NP-пол-
ной, мы не знаем; на самом деле это очень маловероятно.
Глава 8. Совершенно секретно 177

Впрочем, если бы она даже и была NP-полна, то из


неравенства классов P и NP следовало бы лишь то,
что некоторые числа трудно разложить на множители,
а относительно всех случайных чисел мы не могли бы
утверждать то же самое.
В основе современной криптографии лежит предполо-
жение о неравенстве классов P и NP и практической
неразрешимости NP-полных задач — и в этом-то и состоит
ее главная проблема.
Новый этап в развитии криптографии, начало которому
в семидесятых годах положили Диффи и Хеллман, привел
нас к криптографическим протоколам, базирующимся на
практической неразрешимости некоторых задач. Чемпио-
ны по кроссвордам, великие шахматисты и талантливые
математики уже не способны были разгадывать шифры
силой своего интеллекта.
Впрочем, игра в кошки-мышки по-прежнему продолжа-
ется. Современные мошенники уже не взламывают сами
шифры, а ищут уязвимые места в системе. В протоколе,
которым пользуются Элис и Боб, числа могут оказаться
недостаточно случайными. В операционной системе или
браузере могут найтись дефекты, позволяющие хакеру про-
никнуть в компьютер. Злоумышленники могут обмануть
Элис и заставить ее сообщить секретный ключ. А придумав
ненадежный пароль, Элис сама поставит себя под удар.
Помимо зашифрованного текста, хакеры анализируют
самую разнообразную информацию — к примеру, время
шифрования, которое для разных сообщений может от-
личаться. Еще вариант — вывести из строя часть системы,
как в случае с расплавленной в микроволновке смарт-
картой, и надеяться, что сбои приведут к потере конфи-
денциальности.
Никакой, пусть даже самый стойкий шифр не гаранти-
рует стойкость всей системы; не исключено, что абсолютно
надежный протокол мы так и не создадим.
Глава 9
ЕГО ВЕЛИЧЕСТВО КВАНТ

В 1982 году лауреат Нобелевской премии по физике


Ричард Фейнман обратил внимание на тот факт, что
простого способа смоделировать работу квантовой системы
на цифровом компьютере не существует. Из проблемы
родилась идея: а что, если вычислительные устройства,
основанные на принципах квантовой механики, будут
работать намного эффективнее обычных компьютеров?
В последующие десятилетия в результате совместных
усилий физиков и кибернетиков (которые вообще часто
работают вместе) было доказано, что некоторые зада-
чи — в частности, разложение на простые множители —
квантовые компьютеры способны решать несравненно
быстрее. Неизвестно, увидят ли когда-нибудь свет даже
самые средненькие квантовые компьютеры, не говоря уже
о больших и полноценных; неизвестно также, сумеем ли
мы корректно оценить их возможности: все это пока
находится под большим вопросом. В данной главе речь
пойдет о квантовых вычислениях, об их мощности и таких
связанных с ними понятиях, как квантовая криптография
и телепортация.

КВАНТОВЫЙ ВИДЕОРЕКОРДЕР
Том живет в Бостоне и, конечно, болеет за «Ред Сокс».
Днем его любимая команда принимала Нью-Йоркских
«Янкиз»; Том был на работе и специально не читал
бейсбольные новости. Вернувшись домой, он заказал
пиццу, включил телевизор и начал смотреть игру, которая
к тому моменту уже давно закончилась. На исходе девятого
иннинга у хозяев были заняты вторая и третья база, два
Глава 9. Его величество квант 179

игрока были в ауте и один в рандауне. Отбивающий


Брайан Хаммер побежал к «дому». Том напряженно
замер в надежде, что его команда получит очко, —
и вдруг одернул себя: эфир-то не прямой! Очко уже
либо заработано, либо нет, только Тому пока об этом не
известно. Для него исход по-прежнему не определен: не
победа и не поражение, а что-то между ними. Результат
игры он узнает чуть позже.
Реальность для Тома определяется тем, что он видит.
Он смотрит последний иннинг — а значит, в его мире
еще никто не победил. Матч продолжается; и пока
не закончится последний розыгрыш, он так и будет
находиться в промежуточном состоянии между победой
«Ред Сокс» и их поражением.
Сьюзен — ярый фанат «Янкиз». Она тоже записала
игру и теперь, как и Том, смотрит ее в оффлайн-режиме
и гадает, заработает ли Хаммер победное очко. Для Сьюзен,
как и для Тома, результат игры еще не определен;
он случаен — ровно до того момента, пока Сьюзен не
услышала финальный свисток.
Том и Сьюзен одновременно наблюдают разные случай-
ные события, находясь в 200 милях друг от друга. И все
же результат они увидят совершенно одинаковый. И для
Тома, и для Сьюзен Хаммер либо заработает победное очко,
либо не заработает. Не может быть такого, чтобы в мире
Тома Хаммер заработал очко, а в мире Сьюзен — нет.
Исход игры никто из зрителей пока не знает, однако оба
уверены, что в конце увидят на табло один и тот же счет.
Результаты событий, отражаемых на экранах телевизоров
Тома и Сьюзен, каким-то загадочным образом связаны
друг с другом.
Вы спросите, причем здесь квантовые вычисления?
В классических цифровых компьютерах основной логиче-
ской единицей является бит, или двоичная цифра (от англ.
bit — binary digit). Каждый бит может принимать ровно
два значения, например — истина и ложь, или победа
и поражение. Базовый элемент квантовых компьютеров —
это кубит, или квантовый бит (от англ. qubit — quantum
180 Золотой билет

bit). В отличие от бита, который всегда принимает одно


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

Рис. 9.1. Бостонская команда

Звездочкой обозначена тридцатипроцентная вероят-


ность победы Бостона. Пока Том смотрит матч, звездочка
перемещается; в зависимости от исхода игры она попадет
либо в самую левую точку, либо в самую правую.
Состояния кубита образуют окружность с центром
в точке пересечения осей «Истина» и «Ложь».
Глава 9. Его величество квант 181

Рис. 9.2. Кубиты

В данном случае звездочка перемещается по двумерной


траектории. На рис. 9.2 ее текущие координаты — 0,55 по
«Истине» и 0,84 по «Лжи». Координаты вполне могут
быть и отрицательными: к примеру, смайлик находится
в точке (−0,71; −0,71). Квантовые компьютеры вращают
и переворачивают эти окружности и таким образом
управляют состояниями кубитов.
Одному кубиту соответствует окружность на плоскости.
Двум кубитам требуется четырехмерная окружность;
нарисовать ее здесь или даже просто представить в уме
было бы довольно затруднительно. В системе из тридцати
кубитов размерность пространства будет более триллиона.
Все это наводит на мысль использовать квантовые
компьютеры для решения NP-задач. Допустим, нам нужно
найти клику размера 50 среди 20 000 жителей Королевства.
Имея около 500 кубитов, мы сможем воспроизвести сразу
все группы размера 50, которые будут обрабатываться
параллельно; чтобы отметить клику, квантовый компью-
тер выполнит определенную последовательность вращений
и переворотов.
В результате система придет в квантовое состояние,
представляющее собой совокупность приблизительно из
3 × 10150 (т. е. 3 и 150 нулей) групп, часть которых
отмечены как клики. Если мы научимся эффективно
«вытаскивать» из квантовых состояний информацию
о кликах, то получим быстрый квантовый алгоритм для
поиска клики, а также для всех остальных NP-полных
182 Золотой билет

задач. Считывая квантовое состояние системы (т. е.,


в некотором роде, наблюдая за окончанием игры), мы
видим лишь один исход, в данном случае — одну группу
жителей; маловероятно, что именно эта группа окажется
кликой.
Нам нужно научиться как-то выделять искомые клики,
чтобы при считывании квантового состояния они попа-
дались нам с большей вероятностью. Сделать это можно
при помощи квантовых манипуляций с кубитами. Правда,
при грубом подходе манипуляций потребуется столько
же, сколько и групп, т. е. примерно 3 × 10150 , и все
преимущества квантовых вычислений будут сведены на
нет. В 1996 году сотрудник Лабораторий Белла в Нью-
Джерси Лов Гровер разработал «умный» квантовый
алгоритм, который мог обнаружить клику в Королевстве
«всего» за 2 × 1075 квантовых шагов. Однако даже при
скорости триллион операций в секунду на это ушло бы
в пять раз больше времени, чем живет наша вселенная.
Уже доказано, что при решении NP-полных задач на
квантовом компьютере алгоритм Гровера в общем случае
дает наилучший результат, поэтому квантовые алгоритмы
вряд ли позволят приравнять классы P и NP. Если
физики когда-нибудь и построят полноценные квантовые
компьютеры, самые трудные проблемы все равно окажутся
им не по зубам.
Это, конечно, не означает, что от квантовых компьюте-
ров не будет никакого толку. С их помощью мы сможем
эффективно эмулировать нетривиальный жизненный цикл
различных наносистем и постепенно приоткроем завесу
над тайнами вселенной. А еще квантовые компьютеры
помогут нам решить некоторые NP-задачи, с которыми
обычные компьютеры за разумное время не справляются.
В 1994 году другой сотрудник Лабораторий Белла,
Питер Шор, придумал, как на квантовом компьютере
можно быстро выполнять факторизацию, т. е. расклады-
вать число на простые множители (к примеру, для числа
16 461 679 220 973 794 359 тут же выяснилось бы, что
16 461 679 220 973 794 359 = 5 754 853 343 × 2 860 486 313).
Глава 9. Его величество квант 183

При наличии мощного квантового компьютера алгоритм


Шора спокойно работал бы с числами из сотен и даже
тысяч знаков. Для поиска делителей алгоритм строит
алгебраические конструкции, с которыми квантовые
компьютеры справились бы очень легко. Современным
машинам такая задача не под силу, а вот квантовые
могли бы эффективно факторизовывать сколь угодно
большие числа. К сожалению, хорошие алгебраические
конструкции для NP-полных задач пока не придумали,
поэтому для них алгоритм Шора работать не будет.
Разумеется, прежде чем реализовывать какой-нибудь
квантовый алгоритм, нужно создать полноценный кван-
товый компьютер. Для решения особо трудоемких задач,
перед которыми пасуют даже самые мощные современные
машины, понадобятся системы из десятков тысяч запутан-
ных кубитов; связи между кубитами должны сохраняться
в течение нескольких секунд, пока с ними проводятся
квантовые преобразования. К сожалению, эти связи очень
хрупкие и легко обрываются. Малейшее взаимодействие
с внешней средой способно вызывать у кубитов состояние
считывания, разрушить отдельные связи и исказить весь
процесс вычисления.
Создать абсолютно — или хотя бы относительно —
устойчивую систему даже из двух запутанных кубитов
физикам пока не удалось. Ученые-кибернетики разра-
ботали специальные методы квантовой коррекции оши-
бок, которые позволяют строить алгоритмы, способные
корректно работать с довольно приличным количеством
связей. А вот как поддерживать все эти многочисленные
связи в системе хотя бы из двух десятков кубитов, мы
пока не знаем. Не исключено, что большие запутанные
квантовые системы просто обязаны разрушаться через
некоторое время, подчиняясь законам природы; с другой
стороны, проблема может носить и чисто технический
характер. Будем надеяться, физики с этим когда-нибудь
разберутся.
Существуют и другие способы организовать вычисления
при помощи квантовых явлений: это адиабатические
184 Золотой билет

процессы и квантовый отжиг. Впрочем, они тоже обладают


целым рядом технических и мощностных ограничений.
Канадская компания D-Wave заявила о создании адиаба-
тических компьютеров, однако ученые пока не уверены,
что они работают лучше обычных.
Если мы даже и построим мощные квантовые компьюте-
ры, они все равно будут довольно узко специализированы.
Для разложения чисел на множители и эмуляции физиче-
ских систем они, конечно, подойдут; с их помощью можно
будет взламывать шифры и разгадывать тайны вселенной,
однако они не дадут нам ключ к решению NP-полных
задач и не заставят Excel работать быстрее.

КВАНТОВАЯ КРИПТОГРАФИЯ
Большинство рассмотренных в предыдущей главе алго-
ритмов шифрования базируются на предположении, что
задача факторизации является вычислительно трудной.
Если же под рукой у вас имеется квантовый компьютер,
то любой из этих шифров взламывается алгоритмом Шора,
раскладывающим числа на множители. Конечно, пока
это только фантазия, которая, однако, имеет все шансы
превратиться в реальность. Для защиты от квантовых
криптографических атак можно было бы попытаться
разработать новые протоколы шифрования, основанные на
особо трудоемких задачах, не укладывающихся в «люби-
мые» квантовыми компьютерами алгебраические структу-
ры. Однако ученые придумали другой способ: шифрование
при помощи квантовой механики.
Возможность копировать данные воспринимается нами
как должное. Функции копирования и вставки сейчас есть
почти в каждой программе. Мы можем сохранить один
и тот же файл в разных папках и на разных машинах,
можем создать резервную копию данных на жестком диске
или в облаке. Иногда все эти многочисленные экземпляры
нам даже мешают — очень трудно, к примеру, удалить свои
персональные данные и электронный адрес так, чтобы
о них больше не осталось ни единого упоминания.
Глава 9. Его величество квант 185

А вот квантовые биты копированию не поддаются.


Ведь чтобы скопировать кубит, его нужно хотя бы
частично измерить, т. е. выполнить наблюдение, которое
сразу превратит его в обычный бит с двумя значениями.
Предположим, Джордж отсылает Гарри кубит информа-
ции, а Эрик его перехватывает. Если Эрик попытается
скопировать или прочитать кубит, тот сразу же примет
вид обычного бита. Безопасность обеспечена, вот только
для организации переписки этого явно недостаточно: ведь
когда Гарри начнет читать сообщение, он тоже увидит
лишь обычный бит.
В 1979 году в Пуэрто-Рико проходила важнейшая
международная конференция по проблемам теоретиче-
ской информатики — IEEE Symposium on Foundations of
Computer Science. Среди участников был Жиль Брассард
из Монреальского университета. Когда он после очередного
заседания плескался в океане, его разыскал Чарльз Беннет.
Знакомство вылилось в плодотворное сотрудничество;
вместе ученые придумали, как при помощи квантовых
битов можно создавать системы шифрования с доказуемой
криптостойкостью. Допустим, Джордж отсылает Гарри
длинную последовательность кубитов, содержащую сек-
ретный ключ для шифрования дальнейшей переписки.
Любой злоумышленник, перехвативший это сообщение,
разрушит все кубиты, как только попытается их про-
читать или скопировать. Беннет и Брассард разработали
метод, позволяющий при помощи дополнительного обмена
информацией по квантовым и классическим каналам либо
успешно передать секретный ключ, либо установить, что
сообщение было скомпрометировано (в этом случае можно
попытаться еще раз).
Впрочем, у нового протокола имелись некоторые
ограничения. При передаче данных возникали ошибки;
из-за этого число кубитов приходилось увеличивать,
и в результате злоумышленники получали шанс похитить
часть данных, оставшись незамеченными. В целях борьбы
с подобными проблемами исходный вариант протокола
неоднократно дорабатывался и усложнялся.
186 Золотой билет

В отличие от случая с квантовыми вычислениями,


в протоколе Беннета–Брассарда квантовая запутанность
не применяется. Вероятно, поэтому квантовые крипто-
системы средней мощности уже реализованы. В Лос-
Аламос, к примеру, сообщения успешно отправлялись
по оптоволоконному кабелю почти на 150 километ-
ров, а между Канарскими островами — по воздушному
каналу примерно на 140 километров. Не исключено,
что когда-нибудь квантовые технологии позволят нам
пересылать не поддающиеся взлому сообщения даже через
спутник.
Почему бы нам всем уже сейчас не перейти на
квантовое шифрование? Дело в том, что на текущий
момент квантовые криптосистемы находятся на стадии
тестирования; они дорого стоят, часто ошибаются, да
и скорость передачи данных у них не велика. Слабое место
в них — не сами шифры: главную опасность представляют
«дыры» в реализации. Вероятность разработать здесь
«дырявый» протокол ничуть не меньше (а может, даже
больше), чем в случае с обычными криптосистемами.
Кроме того, неясно, как обеспечить передачу данных
через интернет, где информация по пути к адресату
многократно перекидывается от одного сервера к другому.
Впрочем, пока современные системы шифрования могут
спать спокойно: вряд ли в ближайшем будущем появятся
квантовые или еще какие-нибудь хитрые компьютеры,
способные эффективно разложить число на множители.

КВАНТОВАЯ ТЕЛЕПОРТАЦИЯ
В 1996 году компания IBM анонсировала новое направ-
ление исследований. На форзаце февральского номера
журнала Scientific American появилась двухстраничная
реклама.
«Она годами делилась рецептами с другом из Осаки.
Она познакомила его с сотней способов применения
паприки. В ответ он раскрыл ей тайну своего восхити-
тельного сукияки. Однажды Сейджи получил от Маргит
Глава 9. Его величество квант 187

Рис. 9.3. Реклама IBM. Публикуется с разрешения IBM

письмо: „Никуда не уходи. Я сейчас телепортирую тебе


гуляш“. Конечно, Маргит несколько поторопилась, но
мы уже над этим работаем. Специалисты IBM создали
ряд технологий, при помощи которых можно обратить
некий объект в пыль, а затем в целости и сохранности
воссоздать его в другом месте. И это вовсе не сказка:
сделанное открытие затронет все сферы человеческой
деятельности, от разработки компьютеров до освоения
космоса. Умные ребята — вот только голубцы готовить
не умеют. Пока».

Что же это за волшебный процесс, которым так хвалит-


ся журнал? К гуляшу и кубитам он прямого отношения не
имеет, хотя квантовый бит действительно умеет исчезать
из одного места и появляться в другом, прямо как в сказке.
В рекламе речь идет об открытии, сделанном в 1993 году
Чарльзом Беннетом и его коллегами по IBM, среди которых
был и Жиль Брассард. Вместе с квантовой криптографией
ученые подарили миру и квантовую телепортацию.
188 Золотой билет

Допустим, у Артура есть кубит, который нужно пере-


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

Рис. 9.4. Кубит

Альтернативный вариант — отправить Гарриет парамет-


ры кубита (−0,55 по «Истине» и 0,84 по «Лжи»), чтобы
она могла воссоздать его у себя. Правда, эти параметры
должны быть Артуру заранее известны: в противном
случае получить он их никак не сможет, поскольку любое
измерение разрушит квантовое состояние кубита.
Беннет с коллегами разработали метод, при помощи
которого Артур сможет спокойно передать Гарриет свой
кубит. Для этого лишь нужно будет выполнить некоторые
предварительные действия, а именно — сцепить пару
кубитов.
На рис. 9.5 кубиты с сердечками надлежащим образом
запутаны. Один из них находится у Артура, другой —
у Гарриет. Если Артур измерит состояние своего кубита,
он с одинаковой вероятностью увидит либо ноль, либо
единицу. Но если он увидит ноль, то и Гарриет увидит
Глава 9. Его величество квант 189

Рис. 9.5. Сцепленные кубиты

ноль, а если он увидит единицу, то и Гарриет тоже увидит


единицу (прямо как с бейсбольными играми).
Все дело в том, что теперь у Артура не один кубит,
а два. Один — с сердечком — сцеплен с кубитом Гарриет,
другой — со звездочкой — он хочет отослать. Ранее мы
уже говорили, что система из двух кубитов описывается
четырехмерной сферой. Не нарушая квантовое состояние
кубитов, Артур аккуратно крутит сферу относительно всех
четырех осей, а затем измеряет оба кубита, в результате
чего они превращаются в обычные биты со значениями
ноль или единица.
Полученные биты Артур отсылает Гарриет. Один из
них несет информацию о том, нужно ли Гарриет вращать
кубит, другой — нужно ли его переворачивать. Гарриет
выполняет необходимые действия, и... та-дам! Ее кубит
приходит в то же состояние, в котором изначально
190 Золотой билет

находился кубит Артура. Ловкость рук — и никакого


мошенничества! Верится с трудом, однако схема работает.
А что же стало с кубитами Артура? После измерения
их квантовые состояния разрушились. По-другому и быть
не могло — иначе у кубита Артура образовался бы клон,
а это противоречит квантовым законам.
Пока Артур проводит квантовые манипуляции и из-
меряет состояния своих кубитов, с кубитом Гарриет не
происходит ровно ничего, хотя он и сцеплен с кубитом
Артура. Если бы Артур мог влиять на состояние кубита
Гарриет, это означало бы, что он умеет передавать
информацию мгновенно, быстрее скорости света, однако
по законам физики это невозможно.
Кубит Гарриет является, по сути, двойником кубита
Артура, только расположен он в пространстве немного по-
другому. Благодаря двум полученным от Артура битам
Гарриет сумеет привести его в искомое положение. Эти
маленькие биты волшебным образом помогут ей воссоздать
исходный кубит, хотя она так и не узнает, какие именно
манипуляции проводил с кубитами Артур.

Рис. 9.6. Кубит

Вы спросите, как все это связано с гуляшом и с чу-


десными транспортерами из сериала «Звездный путь»?
Давайте посмотрим, как можно организовать транспортер,
выполняющий квантовую телепортацию. Допустим, я хочу
телепортироваться из Чикаго в Токио и обращаюсь в спе-
циализированную компанию. Они создают запутанную
квантовую систему из внушительного числа кубитов. Часть
Глава 9. Его величество квант 191

кубитов, соблюдая все возможные меры предосторожности,


доставляют в Чикаго, остальные — в Токио. В Чикаго меня
вместе с кубитами помещают в специальную камеру;
описать мое состояние нужно очень точно, поэтому
кубитов должно быть достаточно много. Нас вращают
в многомерном пространстве, измеряют, и в результате
мы все превращаемся в обычные нули и единички.
Полученную кучу битов передают в токийский филиал,
где с ними в такой же камере производят необходимые
вращения. Потом камеру открывают, и я выхожу. Вот
это да!
Использованные кубиты — отработанный материал. Ес-
ли я решу вернуться, или нужно будет телепортировать
кого-то еще, понадобится новая система запутанных куби-
тов. Кстати, с самолетами дело обстоит примерно так же:
на обратном пути невозможно повторно воспользоваться
израсходованным топливом.
Впрочем, это еще не самое страшное. Главная пробле-
ма — сохранить все зависимости между кубитами. Чтобы
описать меня, требуется порядка миллиона миллиардов
триллионов сцепленных кубитов: примерно столько атомов
содержится в человеческом теле. И это еще довольно опти-
мистичная оценка, поскольку на деле кубитов, вероятно,
понадобится намного больше. Ведь достаточно потерять
каких-нибудь две-три связи (которые охотно разрушаются
при малейшем взаимодействии с окружающей средой) —
и из камеры вывалится порядком изуродованная, а то
и вовсе неживая версия меня. Поэтому — только после
вас. Я уж лучше по старинке, на самолете. Встретимся
на месте!

КВАНТОВОЕ БУДУЩЕЕ
Ряд ученых полагают, что теорию вычислений пора
переводить на квантовый уровень. Пусть кванты и не
позволят нам решать NP-полные задачи, однако с их
помощью можно будет эмулировать физические системы,
а это значительно приблизит нас к пониманию сущности
192 Золотой билет

материи, космоса и даже человеческого мозга. Мир увидит


такие научные открытия, которые сейчас не в состоянии
даже вообразить!
Впрочем, некоторые, напротив, не видят в развитии
квантовых алгоритмов и процессоров особого прогресса. По
их мнению, с середины девяностых мы практически стоим
на месте; маловероятно, чтобы квантовые компьютеры
в обозримом будущем вошли в повседневную жизнь. Если
не случится какого-нибудь глобального прорыва, кванто-
вые вычисления еще долго будут оставаться предметом
научной фантастики.
Что же может послужить очередным толчком в разви-
тии вычислений? Какие еще грандиозные вычислительные
задачи требуют нашего внимания? Читайте дальше — и вы
все узнаете.
Глава 10
БУДУЩЕЕ ВЫЧИСЛЕНИЙ

Я уже смирился с тем, что проблему равенства P и NP


ожидает довольно унылая перспектива. Думаю, классы все
же не равны — правда, в этой жизни доказательства я уже
не увижу. И, думаю, нам не придется жить в совершенном
мире из второй главы, хотя полностью исключать такую
возможность, конечно, нельзя. Вероятно, пройдет не один
десяток (а может, и не одна сотня) лет, прежде чем тайна
P и NP будет раскрыта.
«P против NP» — не просто хитрая математическая
головоломка. Даже будучи неразгаданной, она дает нам
некий каркас для размышлений и подсказывает спосо-
бы борьбы с важнейшими вычислительными задачами.
Приведем наиболее актуальные на сегодняшний момент
проблемы.

• Параллельные вычисления. До недавних пор ско-


рость процессоров удваивалась каждые полтора-
два года. Современные процессоры работают прак-
тически на пределе физических возможностей,
и существенно ускорить их уже не получится.
Производительность повышают за счет разветвления,
когда на одном кристалле или в облаке согласованно
работают сразу несколько процессоров. Наш мир
распараллеливается все больше и больше; как
адаптировать к этому вычислительные алгоритмы?
• Большие данные. Каждый день в мире появляются
тонны новых данных. Взять хотя бы интернет или
многочисленные научные эксперименты... Как ра-
ботать с такими огромными объемами информации?
Как искать, структурировать, анализировать, делать
прогнозы?
194 Золотой билет

• Интернет вещей. Почти каждый современный чело-


век пользуется компьютерными сетями — к примеру,
общаясь на Facebook или отправляя письмо по
электронной почте. Дело идет к тому, что скоро все
произведенные человеком предметы, будь то одежда
или лампочки для чтения, тоже станут частью сети.
Как ориентироваться в мире с таким количеством
связей?
Независимо от того, равны классы P и NP или не
равны, изучение проблемы P и NP поможет выработать
подход к решению данных вопросов.

ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ
В 1965 году Гордон Мур заметил, что число базо-
вых элементов микросхемы — транзисторов — стремитель-
но возрастает с каждым годом. Мур выдвинул смелое
предположение: в последующее десятилетие количество
транзисторов на одном кристалле каждые два года будет
увеличиваться вдвое. Десятью годами дело в результате
не ограничилось; закон Мура — так окрестили правило —
действует и по сей день, и в ближайшие годы тенденция,
похоже, сохранится.
Долгое время закон Мура гарантировал также по-
вышение скорости. Однако примерно к 2005 году на
сцену выступили некоторые физические ограничения.
Дальнейшее ускорение представлялось нецелесообразным,
так как возросшие энергозатраты перевешивали все
преимущества быстрых процессоров. Для оптимизации
потребления энергии процессоры пришлось даже немного
замедлить.
И все же транзисторов на кристалле становится все
больше и больше. Зачем это нужно? Чтобы запускать сразу
несколько вычислений одновременно: распараллеливая
работу, мы значительно уменьшаем время решения задач.
Возьмем для примера суперкомпьютер IBM по имени
Уотсон, который в феврале 2011 победил в американской
телевикторине «Jeopardy!». Уотсон состоит из 90 серверов
IBM Power 750 по 4 процессора Power 7 в каждом.
Один процессор Power 7 содержит восемь более мелких
Глава 10. Будущее вычислений 195

процессоров, или ядер, и может параллельно вести сразу


восемь вычислений. В итоге получается 32 ядра в одном
сервере и 2880 во всем компьютере, так что Уотсон
может запускать 2880 процессов одновременно. Неуди-
вительно, что он анализирует варианты ответа быстрее,
чем соперники, и успевает нажать кнопку миллисекундой
раньше! Впрочем, если производительность компьютеров
продолжит расти по закону Мура, то уже через несколько
лет 2880 параллельных процессов покажутся нам сущим
пустяком; в ближайшие десятилетия могут появиться
компьютеры с миллионами и даже миллиардами ядер.
Для организации такого количества параллельных
вычислений нам придется призвать на помощь всю
теоретическую информатику. Как научить компьютер
распределять вычисления по нескольким ядрам и серве-
рам, добиваясь при этом наилучшей производительности?
Вероятно, нам следует модифицировать основные языки
программирования, чтобы из программы можно было
обращаться к разным ядрам? Но тогда как это сделать
лучше всего?
К проблеме равенства P и NP тоже пытались применить
распараллеливание. Помните Веруку Солт? Девочку из
книги «Чарли и шоколадная фабрика», о которой мы
говорили в первой главе? Верука очень хотела найти
золотой билет, а все билеты были спрятаны в шоколад-
ных плитках. Ее отец — владелец ореховой фабрики —
распараллелил задачу, разделив шоколадки между всеми
своими рабочими, которых у него было более ста. Так
почему бы не сделать то же самое с задачами из класса NP?
Например, распределить все потенциальные клики между
разными ядрами и даже компьютерами? Иногда время
перебора действительно может заметно сократиться —
например, с нескольких недель до нескольких часов,
однако некоторые NP-задачи и после распараллеливания
останутся такими же неприступными. Будь у нас даже
миллион компьютеров с триллионом ядер, каждое из
которых выполняет квинтиллион операций в секунду, —
для поиска клики размера 50 среди 20 000 жителей
Королевства все равно потребовалось бы в гугол раз
больше лет, чем живет наша вселенная (а гугол, как
196 Золотой билет

уже говорилось, — это единица и сто нулей). В мире, где


можно распараллелить любой процесс, вопрос о равенстве
P и NP по-прежнему актуален.
А как обстоит дело с задачами из P? С теми,
которые можно решить эффективно? Сумеем ли мы
в полной мере воспользоваться всеми преимуществами
распараллеливания? Как правило, эффективные алго-
ритмы действительно удается модифицировать, идет ли
речь о простых арифметических задачах или о поиске
кратчайшего пути и максимального числа паросочетаний;
для всех этих задач вычисления с успехом распределяются
по большому количеству ядер.
Класс задач, которые можно быстро решить в парал-
лельном режиме, тоже получил обозначение: его назвали
NC, или Nick’s Class, — в честь пионера параллелизации
алгоритмов Николаса Пиппенджера. Если P = NP (так
ли это, мы пока не знаем), то задачи, для которых
существует эффективный алгоритм, в параллельном ре-
жиме решаются в разы быстрее. А если NP = NC (что,
опять-таки, пока находится под большим вопросом), то
и любую переборную задачу из NP тоже можно решить
практически мгновенно, распараллелив вычисления по
разным машинам и ядрам, — т. е. мир, где NP = NC, еще
более совершенен, чем тот, где P = NP. И хотя классы NC
и NP вряд ли окажутся равны, отношения между ними
не менее загадочны, чем отношения между P и NP.

БОЛЬШИЕ ДАННЫЕ
Каждую секунду мы загружаем 35 минут видеоматериала
на YouTube, создаем 1600 сообщений в Twitter, 11 000
постов в Facebook, 50 000 поисковых запросов в Google
и отправляем 3 000 000 электронных писем (из которых
90 процентов — это спам).
Телескоп «Хаббл» вращается на околоземной орбите
и фотографирует космос, отсылая на Землю 200 000
байт информации в секунду (один байт — это примерно
один символ алфавита). На смену «Хабблу» планируется
запустить «Джеймс Уэбб» с огромным параболическим
Глава 10. Будущее вычислений 197

зеркалом, который будет отправлять уже 3 500 000 байт


в секунду.
Большой адронный коллайдер — самый крупный уско-
ритель частиц на планете — разместился близ границы
Швейцарии и Франции. Каждую секунду он создает
примерно полмиллиарда байт информации — и так изо
дня в день, из года в год, а в году, между прочим,
31 миллион секунд!
Коллайдер построили в Европейском центре ядерных
исследований (ЦЕРН). В пару к нему была создана
сверхмощная вычислительная сеть, которая распределяет
потоки генерируемых коллайдром данных по серверам
в тридцати четырех странах; обработкой и анализом этих
данных занимаются ученые по всему миру.
Описание ДНК человека занимает примерно 55 милли-
онов байт. Для хранения ДНК всех жителей Земли, т. е.
семи миллиардов человек, потребуется что-то около 400
квадриллионов байт. А если считать не только людей?
Мы умеем быстро и довольно дешево создавать са-
мые разнообразные датчики, которые могут измерить
все, что угодно, — температуру, звук, движение, уровень
радиации. Каждый датчик постоянно генерирует какую-то
информацию, а в одной системе их может быть несколько
тысяч — как в американской армии, которая буквально
«тонет в датчиках и захлебывается мощными потоками
данных».
Информация не всегда приходит из внешнего ми-
ра. Научные эксперименты часто оказываются слишком
сложными и дорогими, и для понимания физических,
биологических и химических процессов активно использу-
ется компьютерное моделирование. Результат — очередные
колоссальные объемы данных, которые ждут не дождутся,
когда их проанализируют.
Как правило, большая часть получаемой информации —
мусор. Случайные помехи, избыточные данные. Отобрать
полезное и ценное совсем не просто, а потом все это нужно
еще правильно истолковать! Вот если бы P оказалось равно
NP, у нас бы автоматически появились алгоритмы, кото-
рые отсеивали бы все лишнее и фильтровали информацию
198 Золотой билет

по принципу «бритвы Оккама», давая нам возможность


лучше понимать и предсказывать развитие событий.
Но поскольку в совершенном мире мы, скорее всего, не
живем, алгоритмы приходится изобретать или переделы-
вать под конкретные цели. Поиск ключевой информации
в больших массивах данных — задача крайне важная
и чрезвычайно трудоемкая.
Впрочем, иногда большие данные — это не катастрофа,
а благо, и в особенности если речь идет о машинном
обучении. Алгоритмы тренируются, получая на вход
различные выборки данных; чем больше информации, тем
умнее станет алгоритм. В распоряжении Google имеется
колоссальное число обучающих примеров, и поэтому он
так хорошо отсеивает спам, распознает голоса и переводит
тексты.
В ближайшем будущем у нас уже накопится достаточно
данных, чтобы на порядок лучше проводить медицинскую
диагностику, создавать «умные» сети с пониженным по-
треблением энергии и управлять автомобилем без участия
водителя, а также продвигаться к новому пониманию
природы явлений. На плечи ученых ляжет труднейшая
задача — интерпретировать эти данные и научиться ис-
пользовать их для повышения качества жизни.

ИНТЕРНЕТ ВЕЩЕЙ
Почти два миллиарда жителей планеты общаются через
интернет: пишут электронные письма и сидят в со-
циальных сетях. Вообще же, общение, работа, учеба
и развлечения вышли на такой уровень, который в XX веке
невозможно было даже представить.
Что будет, если начать подключать к интернету
и вещи? Уже совсем скоро в продаже появятся недорогие
и компактные чипы, способные выходить в интернет через
Wi-Fi и сотовые сети или другие беспроводные системы,
которые пока находятся на стадии разработки. Такой чип
мы сможем поставить почти на любой предмет, будь то
одежда, деталь автомобиля или еда из супермаркета. Под
нашим контролем окажется практически все: мы будем
знать, когда наши дети не пристегнуты, и без всяких
Глава 10. Будущее вычислений 199

расчетов получим количество съеденных за день калорий.


Кончается молоко или шампунь? Беспокоиться не о чем —
новую партию доставят автоматически; наверняка она уже
на пути к вашему дому. С приемом лекарств больше
не будет случаться никаких накладок. Одежда, которую
вы надеваете, предупредит вас, если для данной погоды
и мероприятия она не годится, а может, даже спросит что-
то вроде: «Вы уверены, что хотите надеть с этими брюками
именно эту рубашку?» Если вы плохо различаете цвета
или совсем не разбираетесь в моде, такая помощь может
оказаться очень кстати.
А еще вы больше никогда не потеряете бумажник,
ключи, билеты и... что вы там обычно теряете? Честно
говоря, у вас вообще не будет никакого бумажника, ключей
и билетов. Представьте: двери открываются сами — по
сигналу, который отправляет ваш мобильник. Банкомат
выдает купюры без лишних вопросов. В супермаркете
можно просто взять товар и спокойно уйти. Все счета
и налоги оплачиваются автоматически.
Разумеется, все эти устройства должны работать согла-
сованно. Потребуются технологии, при помощи которых
вещи смогут общаться, не раскрывая наши персональные
данные. Скоординированность процессов достигнет небы-
валого уровня; подумать только, как улучшится ситуация
на дорогах, когда автомобили начнут «разговаривать»
друг с другом! Трудоемкие задачи пойдут непрерывным
потоком, и справляться с ними нужно будет максимально
быстро и корректно: ведь если система не среагирует
вовремя, даже мелкая авария может вылиться в огромную
пробку. Периодически мы будем упираться в проблему
P и NP, и тогда придется мобилизовать все наши силы
и возможности.
В девяностых годах у компании Sun Microsystems
(позднее поглощенной компанией Oracle) появился такой
лозунг: «Сеть — это компьютер». Каждый компьютер сети
работает самостоятельно, однако вместе они образуют
единый вычислительный организм. Интернет вещей — это
тоже один (чудовищно огромный) компьютер. Его трудно
«приручить», но если мы все-таки справимся, перед нами
откроются поистине удивительные возможности.
200 Золотой билет

НА ПУТИ НАУЧНО-ТЕХНИЧЕСКОГО ПРОГРЕССА


Параллельные вычисления, большие данные и интернет
вещей не относятся к области научной фантастики. Скорее,
это признаки глобальных перемен — перемен, которые уже
начались и в ближайшие десятилетия охватят все аспекты
нашей жизни. Но куда же они нас заведут?
Никогда не знаешь, каких последствий ждать от
внедрения инновационных технологий. В пятидесятые
годы прошлого века владелец крупной компании по
перевозке грузов Малькольм Маклин придумал специ-
альный транспортный контейнер, который можно было
без разгрузки сразу перемещать с корабля на автомо-
биль. Его открытие вызвало настоящую «контейнерную
революцию»; появились специальные судна-контейнеро-
возы, вмещавшие тысячи контейнеров, а порты массово
увольняли грузчиков и переходили на автоматический
режим. Экономика Китая резко пошла вверх, поскольку
китайские товары можно было дешево доставить в любую
точку мира... и все это благодаря какому-то стальному
ящику!
Изобретение автомобиля повлекло за собой бурное
развитие пригородов. Мобильные телефоны избавили нас
от необходимости обо всем договариваться заранее. При
помощи Twitter иногда удается свергнуть правительство.
Любое нововведение отражается на нас самым непредска-
зуемым образом; будьте готовы к тому, что это случится
снова.
Помимо решения вычислительных задач нам обяза-
тельно придется учитывать и человеческий фактор. Люди
будут заниматься вредительством — кто нечаянно, по
ошибке, а кто вполне осознанно. Возникнет необходимость
в надежных и быстро обучаемых интуитивных алгоритмах,
способных определить, выполняет ли устройство волю
своего «хозяина».
Время от времени кто-то будет пытаться взять под
контроль те или иные технологии — в стремлении уве-
личить свой доход или получить доступ к секретным
личным данным. Хуже всего, когда технологии начинают
применяться в разрушительных целях; иногда это причи-
Глава 10. Будущее вычислений 201

няет лишь мелкие неудобства, однако зачастую обходится


крайне дорого и может привести к человеческим жертвам.
Для защиты от подобных социальных катастроф потре-
буются надежные криптосистемы, забота о безопасности
и постоянный контроль.
Технология, проработавшая без сбоев долгое время,
становится потенциально опасной. Мы начинаем слишком
доверять ей, и нам кажется, будто все и дальше
будет так же хорошо. Неприятности обычно застают
нас врасплох; чем реже они случаются, тем меньше
мы оказываемся готовы к ним. Ярчайшие примеры —
разрушенные ураганом «Катрина» дамбы в Нью-Орлеане,
обширный разлив нефти в Мексиканском заливе после
взрыва буровой платформы в 2010 году, а также
авария на японской АЭС «Фукусима-1» в 2011 году,
спровоцированная землетрясением и последовавшим за
ним цунами. С технологией следует обращаться как
с диким животным. Следующая крупная авария не
должна привести к глобальной катастрофе (впрочем, будем
надеяться, что она не случится).

И СНОВА ПРО P И NP
Доказать неравенство P и NP будет очень и очень
непросто. Ведь для этого придется обосновать тот факт,
что с задачей о клике (или с любой другой NP-полной
задачей) не справится ни один известный — а также
неизвестный — эффективный алгоритм. Но как можно
рассуждать о неизвестных алгоритмах?
Впрочем, я почти уверен, что неравенство классов
докажут. Произойдет это нескоро — лет через двадцать,
а может, через два столетия или даже два тысячелетия,
однако в конце концов мы все же разработаем методы,
которые позволят доказать, что P и NP не равны.
Математики придут в настоящий экстаз и наперебой
заговорят о «великом решении великой проблемы».
Новые техники подведут нас к самой сути эффективных
вычислений, а они со временем проникнут во все сферы
нашей жизни.
202 Золотой билет

«P против NP» — не просто математическая голово-


ломка; это образ мыслей, при котором вычислительные
проблемы классифицируются в зависимости от трудоем-
кости. И хотя формально неравенство классов пока не
доказано, при встрече с очередной NP-полной задачей мы
не мечтаем отыскать хороший, стопроцентно эффективный
алгоритм; мы просто делаем все возможное и применяем
весь доступный арсенал, сочетая приближенные методы
с эвристическими и повышая вычислительную мощь.
NP-полные задачи дают нам ориентиры и побуждают
создавать новые способы борьбы.
Классам P и NP удалось сплотить научное сообщество.
NP-полные задачи возникают в физике, биологии, эконо-
мике и многих других областях. Проблемы у физиков
и экономистов как будто совершенно разные, однако
благодаря их общности ученые с успехом применяют
к ним одни и те же техники и алгоритмы. Метод поиска
состояния минимальной энергии физической системы
может пригодиться для поиска состояния равновесия
в сложных экономических процессах.
Неприступность NP-задач способствует развитию но-
вых технологий. Проблема «P против NP» послужила
криптографам музой и перевела искусство шифрования
в разряд науки. Необходимость решать задачи из класса
NP подтолкнула нас к созданию быстрых и мощных
вычислительных систем и заставила разрабатывать теорию
квантовых вычислений и другие направления, находив-
шиеся в совершенно зачаточном состоянии.
Вычисление — это нетривиальный процесс, и касается
он не одних лишь компьютеров. Проблема равенства
P и NP тесно связана с вопросами о разного рода
ограничениях; тут и природные ресурсы, и законы
развития физических и биологических систем, и даже
возможности человеческого мозга. Тайна не раскрыта —
а значит, своих пределов мы пока не знаем. И поэтому
у нас есть полная свобода действий!
БЛАГОДАРНОСТИ

Прежде всего я хотел бы поблагодарить Моше Варди,


который вдохновил меня на написание обзорной статьи
для журнала Communications of the ACM и сам ее
отредактировал. Статья вышла под названием The Status
of the P versus NP Problem; ее популярность навела меня
на мысль развить тему и выпустить книгу, доступную для
широкой аудитории.
Пока я занимался книгой, Уильям Гасарч, с которым
мы вместе ведем блог, всячески меня поддерживал и читал
каждую главу еще в самом черновом и притом рукописном
варианте. Помимо Уильяма предварительную версию всей
книги изучили Алана Лидовер, а также Джон, Джим
и Крис Пуртило, которые высказали много ценных
замечаний. Черновики отдельных глав проверяли Куан-
Линг Чен, Джош Грочоу, Ральф Хансен, Адам Калинич,
Дэвид Пеннок и Рахул Сантанам; их советы также очень
помогли мне.
Мануэль Блюм, Стивен Кук, Дэвид Джонсон, Леонид
Левин, Альберт Мейер поделились со мной своими
мнением относительно зарождения проблемы равенства
P и NP. Благодаря Александру Разборову я немного
разобрался с советской историей.
Вся моя научная деятельность в области теорети-
ческой информатики, все мое рабочее окружение —
исследователи, студенты и многие другие (привести здесь
полный список не представляется возможным) — в той
или иной мере повлияли на написание этой книги.
Особую признательность хочу выразить моим коллегам из
Калифорнийского университета в Беркли, Массачусетского
технологического института, Чикагского университета,
Центра математики и информатики в Амстердаме, научно-
204 Золотой билет

исследовательского института NEC, Технологического ин-


ститута Toyota в Чикаго и Северо-Западного университета:
я очень ценю нашу дружбу и наши интересные беседы.
Мои первые представления о проблеме равенства P и NP
сформировались под влиянием двух людей, которые,
безусловно, заслуживают отдельного упоминания: это
Юрис Хартманис, который познакомил меня с P и NP,
когда я еще был студентом Корнелльского университета,
и Майкл Сипсер, под руководством которого я писал
диссертацию в Калифорнийском университете и в Масса-
чусетском технологическом институте.
За примерами раскраски карт в шестой главе мне
пришлось обратиться в интернет; хочу поблагодарить
всех, кто откликнулся: это Крис Богарт, Хсиен-Чих Чанг,
Палволги Домотор, Дэвид Эпштейн, Лукас Грабовски, Гил
Калай, Чарльз Мартель и Деррик Столи.
Книгу я писал, будучи профессором электротехники
и информатики в Школе инженерии и прикладных
наук имени Роберта Маккормика при Северо-Западном
университете. Университет очень поощряет книжные про-
екты, направленные на популяризацию научных знаний.
Я активно пользовался всеми доступными ресурсами,
в особенности обширной библиотекой, представленной как
на цифровых носителях, так и в бумажном виде. В уни-
верситете работают замечательные люди; мой помощник
по административной части Марджори Рейес оказала мне
неоценимую помощь.
Мой принстонский редактор Вики Керн дала мне
множество толковых советов и тщательно вычитывала
рукопись на всех стадиях ее создания; благодаря ей книга
стала намного лучше. Также я очень признателен ее
помощнику Куинну Фустингу и вообще всем сотрудникам
издательства Princeton University Press.
Огромное спасибо моей семье — жене Марси и дочерям
Энни и Молли — за любовь и поддержку.
ПРИМЕЧАНИЯ И СПИСОК ЛИТЕРАТУРЫ

Материалы книги базируются как на моем собственном ис-


следовательском опыте в области сложности вычислений,
так и на знаниях, почерпнутых у тысяч других теоретиков
и практиков, разделяющих мой интерес к проблеме P и NP.
Основой послужили также некоторые статьи из моего блога
Computational Complexity.
Приведенные в книге истории, примеры и результаты
взяты из различных источников, список которых вы
найдете ниже.
Все дополнения и изменения, касающиеся источников
и ссылок, а также найденные в тексте серьезные
ошибки будут выкладываться на сайт книги: http://press.
princeton.edu/titles/9937.html. Помимо этого, на сайте
приводятся ссылки на использованные статьи, материалы
выступлений и некоторую дополнительную информацию,
а также список рекомендуемой к прочтению литературы
по теме.

Предисловие
Lance Fortnow, «The Status of the P versus NP Problem».
Communications of the ACM 52, no. 9 (September 2009):
78–86.
Stephen Hawking, A Brief History of Time: From the
Big Bang to Black Holes (New York: Bantam Dell, 1988).

Глава первая
История Веруки Солт позаимствована из книги Roald
Dahl, Charlie and the Chocolate Factory (New York: Knopf,
1964) 1) .
1) На русском языке: Роальд Даль «Чарли и шоколадная фабри-

ка». — Прим. перев.


206 Золотой билет

Информация о разработке анатомически правильной


искусственной руки подчерпнута из выступления Йоки
Мацуока на конференции Ассоциации по исследованиям
в области вычислительной техники (CRA) в Сноуберде
18 июля 2010 года.
Примеры задач коммивояжера созданы программой
Марка Даскина, см. http://sitemaker.umich.edu/msdaskin/
software.

Глава вторая
Почти все в этой главе — вымысел автора, созданный
с целью дать читателю представление о фантастическом
мире, в котором P = NP. Исключение составляет раздел
про «бритву Оккама».

Глава третья
Подробнее об эксперименте Милгрэма можно прочитать
в статье Stanley Milgram, «The Small World Problem»,
Psycology Today 2, no. 1 (1967): 60–67.
Информация о числе Бэйкона взята с сайта Internet
Movie Database.
Проблема четырех красок увлекательно излагается
в работе Robin Wilson, Four Colors Suffice: How the Map
Problem Was Solved (Princeton, NJ: Princeton University
Press, 2004).

Глава четвертая
Цитата из Кука — на самом деле не совсем цитата;
я перефразировал абзац из основополагающей работы
ученого, используя более современные понятия. Приведу
здесь оригинальный текст:

«Теорема дает нам основания полагать, что мно-


жество тавтологий на самом деле очень интересное,
поскольку оно, по всей видимости, не принадлежит
L∗ . Думаю, стоит попытаться доказать данную гипо-
тезу: в теории сложности это стало бы величайшим
прорывом».
Примечания и список литературы 207

Steve Cook, «The Complexity of Theorem-Proving


Procedures», Proceedings of the Third Annual ACM
Symposium on Theory of Computing (New York: ACM),
151–58.
Richard Karp, «Reducibility among Combinatorial
Problems», Complexity of Computer Computations 40, no. 4
(1972): 85–103.
Bob Sehlinger (author) and Len Testa (contributor), The
Unofficial Guide Walt Disney World 2010 (New York: Wiley,
2010).
Раздел «Что в имени?» основывается на работе Donald
Knuth, «A Terminological Proposal», ACM SIGACT News 6,
no. 1 (January 1974): 12–18.
Kevin Sack, «60 Lives, 30 Kidneys, All Linked», New
York Times, February 19, 2012, A1.

Глава пятая
Здесь по большей части излагаются материалы из следу-
ющих источников.
Lance Fortnow and Steve Homer, «A Short History
of Computational Complexity», Bulletin of the European
Association for Theoretical Computer Science 80 (June 2003);
«Computational Complexity» column.
Dennis Shasha and Cathy Lazere, «A Good Solution
Is Hard to Find», Out of Their Minds: The Lives and
Discoveries of 15 Great Computer Scientists (New York:
Springer, 1995).
Juris Hartmanis, «Observations about the Development
of Theoretical Computer Science», Annals of the History of
Computing 3, no. 1 (January 1981): 42–51.
B. A. Trakhtenbrot, «A Survey of Russian Approaches
to Perebor (Brute-Force Search) Algorithms», Annals
of the History of Computing 6, no. 4 (October 1984):
384–400.
Michael Sipser, «The History and Status of the P versus
NP Question», Proceedings of the 24th Annual ACM
Symposium on Theory of Computing (New York: ACM,
1992), 603–18. (В этой статье приводится оригинал письма
Гёделя фон Нейману и его английский перевод.)
208 Золотой билет

Дополнительным источником послужили личные бе-


седы с некоторыми учеными, включая Стивена Кука
и Леонида Левина.
Колмогоров действительно пробовал свои силы в ис-
тории; данный факт подтвердили российские участники
международного семинара «Колмогоровская сложность
и ее приложения», проведенного в честь столетия со
дня рождения ученого (Дагштул, Германия, 27 апреля —
2 мая 2003 года). 1 мая 2003 года я написал об этом
в своем блоге Computational Complexity.
Историю о том, как Колмогоров спас теорию веро-
ятностей, однажды упомянул Александр Разборов; она
также приводится в блоге http://ansobol.livejournal.com/
12551.html?thread=235015. Из текста можно заключить,
что это все-таки, наверное, анекдот.

Литература

Alan Cobham, «The Intrinsic Computational Difficulty


of Functions», in Proceedings of the 1964 International
Congress for Logic, Methodology, and Philosophy of Science,
24–30.
Stephen Cook, «The Complexity of Theorem-Proving
Procedures», in Proceedings of the Third Annual ACM
Symposium on Theory of Computing (New York: ACM,
1971), 151–58.
Jack Edmonds, «Paths, Trees and Flowers», Canadian
Journal of Mathematics 17 (1965): 449–67.
Juris Hartmanis and Richard Stearns, «On the
Computational Complexity of Algorithms», Transactions of
the American Mathematical Society 117 (1965): 385–406.
Richard Karp, «Reducibility among Combinatorial
Problems», Complexity of Computer Computations 40, no. 4
(1972): 85–103.
Левин Л. А. Универсальные задачи перебора // Пробле-
мы передачи информации, т. 9 (1973), вып. 3, с. 115–116.
Warren McCulloch and Walter Pitts, «A Logical Calculus
of the Ideas Immanent in Nervous Activity», Bulletin of
Mathematical Biology 5, no. 4 (1943): 115–33.
Примечания и список литературы 209

Panel discussion, Complexity of Computer Computations


40, no. 4 (1972): 169–85.
Alan Turing, «On Computable Numbers, with an
Application to the Entscheidungsproblem», Proceedings of
the London Mathematical Society 42 (1936): 230–65.
Яблонский С. В. О невозможности элиминации перебора
всех функций из P2 при решении некоторых задач теории
схем // Доклады Академии наук СССР, 1959, т. 124, № 1,
с. 44–47.
Журавлев Ю. И. О невозможности построения ми-
нимальных дизъюнктивных нормальных форм функций
алгебры логики в одном классе алгоритмов // Доклады
Академии наук СССР, 1960, т. 132, № 3, с. 504–506.

Глава шестая
Пример задачи коммивояжера взят из пресс-релиза Центра
исследований параллельных вычислений при университете
Райса (CRPC Researchers Solve Traveling Salesman Problem
for Record-Breaking 13,509 Cities, 2003).
Когда мне потребовалась помощь с эвристическими
алгоритмами и примерами раскраски карт, я обратился
за консультацией в раздел вопросов и ответов на сайте
http://cstheory.stackexchange.com/questions/4027/coloring-
planar-graphs, а также опубликовал вопрос в своем блоге.
Карта провинций королевства создана по аналогии
с некоторыми примерами в статье David P. Dailey,
Uniqueness of Colorability and Colorability of Planar
4-Regular Graphs Are NP-Complete, Discrete Mathematics
30 (1980): 289–93.

Глава седьмая
Процитированную в начале главы фразу Юрис Хартманис
произнес весной 1985 года, когда читал курс в Корнелль-
ском университете.
С редакционной политикой журнала Journal of the ACM
относительно проблемы равенства P и NP можно ознако-
миться по ссылке: http://jacm.acm.org/instructions/pnp.
210 Золотой билет

Работу Деолаликара я получил от него самого: я был


среди тех двадцати двух специалистов, которым 6 августа
2010 года Винэй Деолаликар направил по электронной
почте письмо с приложенным к нему доказательством.
О деятельности Джероламо Кардано подробно расска-
зано в книге David Kahn, The Codebreakers: The Story of
Secret Writing (New York: Macmillan, 1967).

Глава восьмая
Сведения об истории развития криптографии по большей
части почерпнуты из книги David Kahn, The Codebreakers:
The Story of Secret Writing (New York: Macmillan,
1967).
Примеры судоку с нулевым разглашением перекочевали
в книгу из моего блога Computational Complexity (запись от
3 августа 2006 года): http://blog.computationalcomplexity.
org/2006/08/zero-knowledge-sudoku.html.

Литература

Whitfield Diffie and Martin Hellman, «New Directions in


Cryptography», IEEE Transactions on Information Theory
22, no. 6 (November 1976): 644–54.
Craig Gentry, «Fully Homomorphic Encryption Using
Ideal Lattices», in Proceedings of the 41st Annual ACM
Symposium on Theory of Computing (New York: ACM,
1979), 169–78.
Ronald Rivest, Adi Shamir, and Leonard Adleman, «A
Method for Obtaining Digital Signatures and Public-Key
Cryptosystems», Communications of the ACM 21, no. 2
(February 1978): 120–26.

Глава девятая
Представление о той роли, которую Ричард Фейнман
сыграл в развитии квантовых вычислений, я получил из
работы David Deutsch, «Quantum Computation», Physics
World, January 6, 1992.
Примечания и список литературы 211

Литература

Charles Bennett and Gilles Brassard, «Quantum Cryp-


tography: Public Key Distribution and Coin Tossing»,
Proceedings of the IEEE International Conference on
Computers, Systems, and Signal Processing (Amsterdam:
Elsevier, 1984), 175–79.
Charles Bennett, Gilles Brassard, Claude Crepeau, Richard
Jozsa, Asher Peres, and William K. Wootters, «Teleporting
an Unknown Quantum State via Dual Classical and
Einstein-Podolsky-Rosen Channels», Physical Review Letters
70 (1993): 1895–99.
Lov Grover, «A Fast Quantum Mechanical Algorithm
for Database Search», in Proceedings of the Twenty-Eighth
Annual ACM Symposium on Theory of Computing (New
York: ACM, 1996), 212–19.
Stephen Pincock, Codebreaker: The History of Codes and
Ciphers (New York: Walker and Co., 2006), 151.
Peter Shor, «Polynomial-Time Algorithms for Prime
Factorization and Discrete Logarithms on a Quantum
Computer», SIAM Journal on Computing 26 (1997):
1484–1509.

Глава десятая
Закон Мура опубликован в работе Gordon Moore,
«Cramming More Components onto Integrated Circuits»,
Electronics 38, no. 8 (April 19, 1965).
Об устройстве Уотсона рассказано в блоге IBM: «What
Runs IBM Watson and Why», David Davidian.
Историю создания контейнеровозов см. в книге Marc
Levinson, The Box: How the Shipping Container Made the
World Smaller and the World Economy Bigger (Princeton,
NJ: Princeton University Press, 2008)

Ссылки на статистику по большим данным

http://www.youtube.com/t/press_statistics
http://techcrunch.com/2011/03/14/new-twitter-stats-140m-
tweets-sent-per-day-60k-accounts-created-per-day/
212 Золотой билет

http://www.facebook.com/press/info.php?statistics
http://email.about.com/od/emailtrivia/f/emails_per_day.
htm
http://public.web.cern.ch/public/en/lhc/Computing-en.html
http://space.about.com/od/telescopesandoptics/p/hubbleinfo.
htm
http://webbtelescope.org/webb_telescope/technology_at_the
_extremes/quick_facts.php
http://royal.pingdom.com/2011/01/12/internet-2010-in-
numbers/
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ

Facebook 18, 43, 161, 163, Гамильтон, Уильям


194, 196 Роуэн 57
Гатри, Франсис 58
Google 10, 49, 79, 196, 198 Геманс, Мишель 62
Гентри, Крейг 174
NP-задача 202
NP-полнота 101, 117 Гильберт, Давид 67
Гровер, Джерси Лов 182
Twitter 43, 196, 200
Данциг, Джордж 91
YouTube 196 Декарт, Рене 32
Деолаликар, Винэй 149,
Агравал, Маниндра 89 210
Адлеман, Леонард 160 Диффи, Уитфилд 155, 158,
Аль-Хорезми, Мухаммад 177
ибн Муса 47
Альберти, Леон Журавлев, Юрий
Баттиста 156 Иванович 104, 209
Аппель, Кеннет 58
Арора, Санджив 127 Казнер, Эдвард 48
Барздинь, Ян Кардано, Джероламо 151,
Мартынович 108 210
Беннет, Чарльз 187 Кармаркар, Нарендра 92
Берж, Клод 50 Карп, Ричард 15, 74–77,
Блюм, Мануэль 99, 102 101, 126, 138
Брассард, Жиль 187 Каял, Нирадж 89
Кемпе, Альфред 58
Гёдель, Курт 15, 18, 67, Кеплер, Иоганн 32, 33
111, 113, 140 Кнут, Дональд 77, 93
214 Предметный указатель

Кобэм, Алан 99 Рудич, Стивен 149


Кокс, Клиффорд 161
Колмогоров, Андрей Саксен, Нитин 89
Николаевич 102, 104, Сипсер, Майкл 147
109 Соломонов, Рэй 107
Кук, Стивен 15, 69, 73, Солт, Верука 9, 195, 205
77, 94, 101, 110, 115, Стернс, Ричард 98
138, 208
Кхот, Субхаш 132 Трахтенброт, Борис 108
Тьюринг, Алан 67, 77, 95,
Левин, Леонид 141, 158
Анатольевич 15, 94, Тэт, Питер 58
102, 108, 109, 138, 208
Ляпунов, Алексей Уайлс, Эндрю 16, 139
Андреевич 103, 108 Уильямсон, Дэвид 62
Маккаллок, Уоррен 97 Фейнман, Ричард 178, 210
Мейер, Альберт 110 Ферма, Пьер де 138
Меркл, Ральф 159
Милгрэм, Стэнли 45 Хайтин, Грегори 107
Митчелл, Джо 127 Хакен, Вольфганг 58
Мулмулэй, Кетан 153 Хал, Том 69
Мур, Гордон 194 Хартманис, Юрис 98, 138,
209
Нейман, Джон фон 15, 111
Хачиян, Леонид 91
Новиков, Петр
Хеллман, Мартин 155,
Сергеевич 103
158, 177
Ньютон, Исаак 32, 33
Хокинг, Стивен 7
Нэш, Джон 67
Хомский, Ноам 98
Оккамский, Уильям 31
Чёрч, Алонзо 67, 96
Перельман, Григорий 16,
22 Шамир, Ади 160
Пиппенджер, Николас 196 Шеннон, Клод 103
Питтс, Уолтер 97 Шербиус, Артур 157
По, Эдгар Аллан 156 Шор, Питер 182

Разборов, Александр 111, Эдмондс, Джек 51, 99


147, 208 Эйлер, Леонард 55
Ривест, Рональд 160 Эйнштейн, Альберт 33
Предметный указатель 215

Яблонский, Сергей Генератор случайных


Всеволодович 102, 108, чисел 107
209 генетика 105
геном человека 64
Автомат конечный 97, 98 геометрия
алгоритм 47 алгебраическая 19, 153
– RSA 160 го 85
– Агравала 89 грамматика
– быстрый 72 контекстно-свободная 98
– вероятностный 89 гугол 49
– вычислительный 117 Данные большие 193, 196
– Гровера 182 ДНК 38, 64, 95, 197
– универсальный 67 додекаэдр 57, 68
– урбанский 21, 36, 40 доказательство с нулевым
– Флойда–Уоршелла 47 разглашением 164, 170,
– Шора 183, 184 172
– эвристический 117 Древняя Греция 89
– Эдмондса 51
– эффективный 55, 72, 74, Задача NP-полная 69, 78,
85, 86, 89, 94, 99, 114, 79, 101, 114–116, 129,
142, 201 182, 191, 202
анализ алгоритмов 108 – коммивояжера 11, 12, 17,
Ассоциация 73, 74, 76, 116, 127, 206
вычислительной – о вершинном
техники 6, 70, 77, 97 покрытии 125
– – выполнимости 72, 115
Байт 10 – – кенигсбергских
бит 179 мостах 55
блокнот шифровальный – – клике 72, 74, 93, 128,
одноразовый 162, 163 147, 152, 181
«бритва Оккама» 31, 32, – – разбиении 12
35, 36, 206 – – числе паросочетаний 48
– разложения на
множители 89, 162
Выражение логическое
– тысячелетия 5, 16
выполнимое 72
закон Мура 116, 194, 195,
вычисления квантовые 179,
211
202 210
– параллельные 193, 194 Изоморфизм графов 86, 88
– эффективные 98 интернет 194
216 Предметный указатель

Класс NC 196 покрытие минимальное


– NP 5, 12, 78, 101 вершинное 126
– P 5, 12, 78 понятие NP-полноты 113
клика 52, 63, 70–72, 124, – вычислимости 112
144 последовательность
коллайдер адронный 197 случайная 107
компьютер 5, 94–96, 115, премия Тьюринга 97, 99,
124, 159, 175, 202 102, 110, 111, 160
– квантовый 178, 181, 184, проблема выполнимости 73,
192 74, 111, 123
Королевство заклятых – останова 96, 142
друзей 43 – поиска состояния
криптография 155, 158, минимальной энергии
162, 170, 175, 177, 210 физической системы 65
кубик Рубика 84 – равенства классов P
кубит 179, 185, 187, 188 и NP 70, 73, 74, 78,
100, 104, 108, 111, 113,
Математический институт 147, 158, 193
Клэя 5, 16, 22, 64, 149, – четырех красок 206
151 – разрешимости 67
машина Тьюринга 63, 95, программирование 96
97, 112 – линейное 90
метод внутренней точки 92 путь гамильтонов 63
– перебора 93 – эйлеров 55, 63
– приближенный 202
– эвристический 120, 202 Равенство P и NP 101,
– эллипсоидов 91, 92 115, 151
механика квантовая 19, разложение на
66, 164, 178 множители 88
разрез максимальный 63,
Обмен по цепочке 86 73
обучение машинное 108 – минимальный 63
раскраска карт 63, 73, 74,
Парадокс лжеца 140 119
перебор полный 115 РНК 65
план выпуска продукции
оптимальный 90 «Сапер» 81, 84
поиск гамильтонова сведения одной задачи
пути 73, 74 к другой 72
– максимального разреза 74 симплекс-метод 91, 92
Предметный указатель 217

система RSA 173 «Тетрис» 82, 84


сложность вычислений 108 транзистор 194
– вычислительная 101, 104
– Колмогоровская 108, 208 Формула логическая 103
– схемная 103
смарт-карта 134 Цикл гамильтонов 57
состояние равновесия 67 Число паросочетаний
судоку 80, 84, 164, 210 максимальное 63
схема интегральная 143 – простое 88, 160
– случайное 175
Тезис Чёрча–Тьюринга 96,
– Эрдёша 46
112
телепортация 190 Шахматы 85
теорема о четырех шашки 85
красках 60 шифр Альберти 157
– Кука–Левина 111 – Цезаря 155
– Ферма великая 138, 154 шифрование с закрытым
теория алгоритмов 94 ключом 159
– вероятностей 105 – с открытым ключом 159,
– вычислений 191 162, 171, 176
– групп 85
– информации 103 «Энигма» 157–159
– сложности 72, 73, 102,
138 Язык программирования 98
ОГЛАВЛЕНИЕ

Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Глава 1. Золотой билет . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Глава 2. Совершенный мир . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Глава 3. Классы P и NP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Глава 4. Самые трудные задачи класса NP . . . . . . . . . . . 69
Глава 5. Хроника предшествующих событий . . . . . . . . . . 93
Глава 6. Преодолевая трудности . . . . . . . . . . . . . . . . . . . . . . . 114
Глава 7. Как доказать, что P 6= NP . . . . . . . . . . . . . . . . . . . . 138
Глава 8. Совершенно секретно . . . . . . . . . . . . . . . . . . . . . . . . . 155
Глава 9. Его величество квант . . . . . . . . . . . . . . . . . . . . . . . . . 178
Глава 10. Будущее вычислений . . . . . . . . . . . . . . . . . . . . . . . . . 193
Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Примечания и список литературы . . . . . . . . . . . . . . . . . . . . . 205
Предметный указатель . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Минимальные системные требования определяются соответствующими
требованиями программы Adobe Reader версии не ниже 11-й для плат-
форм Windows, Mac OS, Android, iOS, Windows Phone и BlackBerry;
экран 10"
Научно-популярное электронное издание

Фортноу Лэнс
ЗОЛОТОЙ БИЛЕТ.
P, NP И ГРАНИЦЫ ВОЗМОЖНОГО
Ведущий редактор М. С. Стригунова. Художник В. Е. Шкерин
Корректор М. Н. Угальская
Оригинал-макет подготовлен Е. Г. Ивлевой в пакете LATEX 2𝜀
Подписано к использованию 11.08.16.
Формат 125×200 мм
Издательство «Лаборатория знаний»
125167, Москва, проезд Аэропорта, д. 3
Телефон: (499) 157-5272, e-mail: info@pilotLZ.ru, http://www.pilotLZ.ru
ЛЭНС
ФОРТНОУ

ЗОЛОТО
Й БИЛЕ
ʖ˃ˇ˃˚

Т
˃ˍˑˏ
ˏˋ˅ˑ
ˢˉˈ
ʞˑˋ˔ ˓˃ ‹
ˍˏ˃ˍ ʟ˃˔
˔ˋˏ˃ˎ ˍ˓˃˔ˍ˃ˍ˃˓
˟ːˑˌ
ˍˎˋˍ ˕ ‹ʠ˖ˇˑˍ
ˋ ˖

P, NP
ʗʒʟʏʜʗʥʪ
ʑʝʖʛʝʕʜʝʒʝ
Задача «P против NP» является самой важной открытой про-
блемой компьютерных вычислений и чуть ли не всей мате-
матики. Заключается она в следующем. Допустим, мы можем
быстро проверить на компьютере уже найденное решение
некоторой задачи. Можно ли в этом случае быстро решить
эту задачу с помощью компьютера?
«Золотой билет» — великолепное введение в P/NP-пробле-
му, в котором описаны история этой задачи и ее влияние на
нашу жизнь. В этой информативной и занимательной книге
Лэнс Фортноу прослеживает работу, которая велась над зада-
чей во времена холодной войны по обе стороны «железного
занавеса», и приводит примеры ее возникновения во множе-
стве дисциплин, включая экономику, физику и биологию. Он
исследует задачи, несущие в себе сложность P/NP-дилеммы,
от поиска кратчайшего пути по всем аттракционам Дисней-
ленда до нахождения больших групп друзей в Facebook.
Однако сложность P/NP-проблемы имеет и свои преимуще-
ства. Не решаемые с помощью компьютера задачи позволя-
ют нам безопасно осуществлять электронные платежи и со-
хранять конфиденциальность в сети.
Книга предлагает задуматься о том, что мы в действительно-
сти можем и чего не можем в плане вычислений, описывает
преимущества жизни в «совершенном
мире», где P=NP, и те неожиданные
Georgia Tech College of Computing

вызовы, что бросает нам эта притяга-


тельная задача.

Лэнс Фортноу — профессор и глава


Школы информатики Технологическо-
го института Джорджии, основатель
и ведущий блога «Сложность вычисле-
ний».

Вам также может понравиться