Theoretical Computer Science: взгляд математика
АрхивIt is very easy to use this thing. Just imagine you have a Turing machine with random access [1].
Из объяснения экскурсоводом Филадельфийского музея изящных искусств правил пользования аудиогидом
Александр Разборов - член-корреспондент РАН, работает в Математическом институте им. Стеклова РАН, в настоящий момент - в Институте перспективных исследований (Принстон, США). В 1990 году за работы в области теории сложности вычислений был удостоен премии Неванлинны Международного математического союза [2].
Часть историческая
Научная дисциплина с неоднозначно переводимым на русский язык названием Theoretical Computer Science (теоретическая компьютерная наука? или все-таки информатика? я в любом случае буду для краткости использовать аббревиатуру TCS) существует в виде, более-менее напоминающем современный, около сорока лет. Как подсказывают и название, и возраст, ее развитие, по существу, началось с появлением первых ЭВМ, и это, разумеется, не случайно. Именно тогда и именно по этой причине интерес многих специалистов по абстрактной теории алгоритмов (и в их числе нескольких выдающихся математических логиков того времени) начал постепенно смещаться от вопросов существования алгоритмов для тех или иных алгоритмических задач к изучению их эффективности и пригодности с практической точки зрения. Этот переход во многом стимулировался пониманием того, что даже для наиболее базисных задач эти две вещи далеко не одно и то же.
Например, имеются универсальные алгоритмы, позволяющие проверять истинность любого утверждения о вещественных числах (которое можно записать в стандартном языке математической логики первого порядка - отметим, что путем введения декартовых координат к такому виду можно привести, например, любую задачу элементарной геометрии). Первый такой алгоритм был придуман американским логиком Альфредом Тарским (Alfred Tarski) еще в 1948 году. Однако алгоритм Тарского оказался неэффективен со всех мыслимых точек зрения, а в 1974 году было строго доказано, что время работы любого алгоритма для этой задачи зависит по крайней мере экспоненциально от длины исходного утверждения.
Этот пример относится к области применения ЭВМ, считавшейся в 60-е годы чуть ли не единственной, которую я буду условно называть классические вычисления, в наиболее широком смысле этого термина. Отличительными чертами классического вычисления являются традиционная схема
Программа P + входные данные x ® вычислительное устройство ® ответ P(x)
и отсутствие интерактивности. Короче, классическое вычисление - это все, для чего вы можете использовать такие почтенные языки, как Алгол или Фортран, и не испытывать при этом существенных неудобств.
Общеизвестно, что изучение любого явления математическими методами становится возможным лишь после некоторых допущений, позволяющих абстрагироваться от ненужных деталей и при этом по возможности не утратить суть изучаемого явления. К числу наиболее важных допущений, принятых в теории сложности классических вычислений в 60-е годы и надолго определивших ее последующее развитие, относятся, в частности, следующие принципы.
ПЕРВЫЙ ПРИНЦИП. При фиксированном размере входных данных n сложность алгоритма (в этой роли могут выступать время работы, используемая память и т. д.) чаще всего измеряется «в наихудшем случае», то есть берется максимум по всем входным данным длины n. Постулируется, что для большинства разумных алгоритмов качество их работы не должно сильно зависеть от структуры исходных данных (коль скоро известна их битовая длина), а если это оказывается не так, то скорее всего плоха изначальная постановка задачи (не учтена какая-либо важная специфика).
ВТОРОЙ ПРИНЦИП. Алгоритмы изучаются с точки зрения их асимптотической сложности, то есть когда n стремится к бесконечности. Постулируется, что асимптотическое поведение в подавляющем большинстве случаев адекватно отражает поведение алгоритма для тех малых значений n, которые на самом деле представляют интерес.
ТРЕТИЙ ПРИНЦИП. Особое внимание уделяется алгоритмам, время работы которых ограничено некоторым полиномом от n. Постулируется, что в подавляющем большинстве случаев требование полиномиальности достаточно адекватно отражает «практическую осуществимость» алгоритма.
Как мы знаем, виртуальная реальность оказалась намного сложнее прогнозов, сделанных на заре компьютерной эры, и классические вычисления стали далеко не единственной сферой применения компьютеров. Все большее место завоевывала идея использования вычислительной техники в качестве удобного инструмента для реализации разнообразных интерактивных процессов: сетевых и криптографических протоколов, баз данных и т. д. Развитие TCS отражало эту эволюцию, как в зеркале, а во многих случаях предвосхищало и определяло ее.
Точно так же, как в реальном мире в настоящий момент наблюдается огромное стилевое разнообразие приложений, для которых используются компьютеры, TCS является весьма протяженной и в некотором смысле буферной дисциплиной, непрерывно заполняющей целый спектр между чистой логикой/математикой, с одной стороны, и, скажем так, реальными задачами, решаемыми системщиками, - с другой. Наиболее существенная разница между настоящими вычислительными процессами и их теоретическими моделями, в какой бы части спектра это ни происходило, состояла (и состоит) в том, что достижения TCS по определению имеют форму математических теорем, удовлетворяющих всем стандартам строгости классической математики.
Принципы, сформулированные выше для классических вычислений, в общем и целом оказались вполне адекватными для изучения интерактивных процессов, уже лишь отдаленно напоминающих вычисления. Справедливости ради, впрочем, следует отметить, что чем менее математичными являются потребители идей и результатов данной области TCS, тем более низкий уровень абстрагирования характерен для самой области. Поэтому по мере продвижения от математического конца спектра к прикладному происходит определенная ревизия сформулированных выше основных принципов. Например, сделав всего один шаг в сторону от теории сложности (классических) вычислений, мы оказываемся в области построения алгоритмов для конкретных задач дискретной оптимизации. Здесь наш третий принцип (полиномиальные алгоритмы тождественны практичным) уже не имеет такого решающего значения, и, соответственно, огромное внимание уделяется улучшению существующих полиномиальных алгоритмов.
Часть полемическая [3]
Такое протяженное и по меньшей мере двойственное положение TCS, помимо очевидных преимуществ, предоставляемых междисциплинарностью, навлекает на ее голову поток критических замечаний, местами даже яростных. Любопытно (хотя и предсказуемо) при этом то, что сыплющиеся с двух сторон замечания имеют строго противоположную направленность и, соответственно, предлагают прямо противоположные действия по исправлению ситуации.
Любая честная и осмысленная дискуссия по этому поводу довольно быстро упирается в более общие вопросы о предназначении и путях развития любой фундаментальной науки, ожидаемой от нее отдачи, зачастую непростых взаимоотношениях с практикой и т. д. О таких деликатных материях лучше не писать вообще, чем делать это впопыхах, а даже самое сжатое изложение лишь нескольких соображений автора по этому поводу моментально превысило объем, отведенный под данное эссе. Поэтому я отсылаю заинтересованного читателя к его полной версии [0], а здесь ограничусь лишь парой примеров (призванных иллюстрировать тезис об относительной полезности TCS как фундаментальной науки).
Концепция криптографии с публичным (открытым) ключом возникла в TCS в рамках все той же «асимптотической» идеологии, на которой основана теория сложности вычислений. В частности, криптосистема RSA впервые появилась в 1978 году в строго математической статье, написанной тремя теоретиками Р. Ривестом (Rivest), А. Шамиром (Shamir) и Л. Адлеманом (Adleman). Хотя современная криптография давно является самостоятельной областью, в ней не существует ярко выраженного деления на «теоретическую» и «практическую», и значительная часть практически ценных результатов по сей день инициируется теоретическими исследованиями в рамках сформулированных нами общих принципов. В частности, среди статей, написанных всеми тремя авторами схемы RSA в 1999-2000 гг., добрая половина является строго математическими.
Создателем одной из самых известных и удачливых Интернет-компаний - Akamai - является профессор Массачусетского технологического института Том Лейтон (Tom Leighton), работающий в TCS-группе, а сама компания основана на одной из его математических теорем (см. www.akamai.com/html/en/ia/our_roots.html). Лейтон продолжает публиковать теоретические статьи и вообще остается активным членом TCS-сообщества, а добрая половина штатных сотрудников и внештатных консультантов Akamai привлечена из числа теоретиков (от полных профессоров [4] до студентов), работающих в лучших американских университетах.
[i37930]
1 (обратно к тексту) - Этой штукой очень легко пользоваться. Просто представьте себе, что у вас - машина Тьюринга с произвольным доступом.
2 (обратно к тексту) - Эта премия учреждена сравнительно недавно и вручается на Международных конгрессах математиков, проходящих раз в четыре года, наравне с Филдсовской медалью (аналогом Нобелевской премии для математиков) за достижения в области компьютерно-ориентированной математики. В скобках замечу, что Александру Разборову нет еще и сорока (то есть в 1990-м не было и тридцати…). - Л.Л.-М.
3 (обратно к тексту) - Печатается в сокращении.
4 (обратно к тексту) - Full professors. - Л.Л.-М.
Перспективы
Как я уже говорил, развитие TCS происходит параллельно изменениям в реальном компьютерном мире. Вряд ли кто-нибудь сейчас возьмется всерьез предсказывать, скажем, состояние Интернета через пять лет; точно так же и я не буду даже пытаться делать какие-либо долгосрочные прогнозы относительно развития TCS. В этом заключительном разделе читатель найдет всего лишь описание нескольких «точек роста», в которых в настоящий момент происходят наиболее интересные вещи. Нет нужды повторять, что выбор тем сильно обусловлен личными вкусами и пределами компетенции автора и в основном концентрируется вокруг математического ядра TCS, то есть теории сложности (классических) вычислений.
Первое, что необходимо отметить даже в нашем кратком обзоре, это то, что проблема №1 в TCS переходит в XXI век. Читатель, по-видимому, уже догадался, что я говорю о P=NP-проблеме, которая, между прочим, в известном списке центральных нерешенных задач всей математики [1] занимает почет ное третье место, сразу вслед за гипотезами Римана и Пуанкаре. Эта проблема удивительно многолика, и одна из ее популярных формулировок состоит в следующем: можно ли в общем случае устранить трудоемкий (то есть экспоненциальный по n) перебор вариантов из произвольного алгоритма? Более того, в настоящее время известны тысячи так называемых NP-полных задач (возникающих в самых разных областях человеческой деятельности), которые решаются очевидным «переборным» алгоритмом и обладают тем свойством, что полиномиальный алгоритм для любой из них влечет за собой полиномиальный алгоритм для всех остальных.
Значительную часть современной TCS можно довольно успешно классифицировать в соответствии с ее отношением к феномену перебора, квинтэссенцией которого является P=NP-проблема. Наиболее теоретические разделы этот феномен изучают, другие области основаны на предположении, что P№NP, то есть устранение перебора в общем случае невозможно. Наконец, в строгом соответствии со знаменитым местом из Стругацких (о решении задач, не имеющих решения) теоретики пытаются понять, что же делать, если P№NP, а решать те или иные алгоритмические задачи все равно надо.
Очень важная область, основанная на предположении, что P№NP, - это современная криптография с открытым ключом. Если противник имеет доступ к экспоненциальному перебору вариантов (то есть, в частности, умеет разлагать числа на множители, брать дискретный логарифм в конечном поле и т. д.), все известные протоколы моментально теряют смысл. К сожалению, рассказ об этой увлекательной дисциплине выходит далеко за рамки нашего эссе, и я лишь могу порекомендовать книгу [2] для более подробного знакомства с предметом.
Наиболее бурно развивающаяся область, где специалисты пытаются понять, что и как можно вычислить несмотря на неравенство P№NP, - это, конечно, квантовые вычисления. «Компьютерра» уже подробно писала о них (см. #224, 1997 г.), поэтому я ограничусь лишь парой кратких замечаний. По-видимому, центральная открытая проблема здесь состоит в получении внутреннего (то есть не зависящего от принципов квантовой механики) описания всех тех классических задач, которые можно эффективно решать на квантовом компьютере. Кроме того, квантовые вычисления - пример благополучной области, в которой теория и практика (которую пока, впрочем, в основном представляют физики) гармонично взаимодействуют с взаимным уважением к интересам и особенностям партнера. Результат, как говорится, налицо.
Совершенно фантастические результаты получаются в области вероятностно проверяемых доказательств (PCP, от Probabilistically Checkable Proofs) и их приложений к сложности аппроксимации оптимизационных задач. Все началось с концепции интерактивного доказательства (1987 г.), которая на самом деле очень близка многим жизненным процессам. Представьте себе ответ студента на устном экзамене преподавателю, которому лень проверять знание доказательства целиком; вместо этого он подбрасывает монетку и в соответствии с результатами бросания задает выборочные вопросы, пытаясь поймать студента на противоречии. С помощью интерактивных доказательств можно эффективно доказывать очень многие вещи, пока не поддающиеся доказательствам обычным.
Это привело к целой революции в наших представлениях о том, что такое доказательство вообще (кстати, довольно точно отражающей возврат к изначальному древнегреческому определению «рассуждение, которое убеждает») и, после довольно изрядной петли в развитии, к так называемой основной PCP-теореме ( [0] содержит некоторые дополнительные детали).
Все это может показаться (и казалось до 1990 года) забавным, но далеким от жизни занятием, пока не обнаружилось следующее. Большое число переборных задач на самом деле являются задачами оптимизации какой-либо целевой функции на множестве всех допустимых решений. За редкими исключениями такие задачи вообще не поддавались никакой классификации, пока не выяснилось, что PCP-техника замечательно приспособлена для этой цели. За прошедшие десять лет на ее основе фактически с нуля была создана стройная схема классификации оптимизационных задач (с точки зрения их приближенного решения), неизмеримо более богатая, чем обычная теория NP-полноты, и пока изобилующая многочисленными белыми пятнами. В процессе этой работы открываются новые важные алгоритмы; я могу отметить в этой связи недавний алгоритм С. Ароры (S. Arora) для приближенного решения задачи коммивояжера на плоскости. По-видимому, от этой области в ближайшие годы можно ждать новых сюрпризов.
Еще одна важная «точка роста» - это дерандомизация алгоритмов. Многие алгоритмы (в частности, основанные на методе Монте-Карло) существенно используют генераторы случайных чисел. Так как наличие таких генераторов в природе - вещь далеко не саморазумеющаяся, возникает естественный вопрос, в каких случаях их можно из алгоритма устранить (полная дерандомизация) или хотя бы заменить генератором псевдослучайных чисел, к которым предъявляются требования менее строгие, чем полная случайность. Вот пример лишь одной удивительной конструкции, экстракторов (от английского слова «extract»), которую теоретики активно изучают в настоящее время.
Пусть у вас есть устройство, генерирующее n псевдослучайных битов, про которые известно лишь одно: никакое двоичное слово длины n не наблюдается со слишком большой вероятностью. Это крайне слабое ограничение называется оценкой снизу на слабую энтропию. Оказывается, что, используя в качестве «катализатора» лишь порядка log n по-настоящему случайных битов, можно «выжать» практически всю случайность, содержащуюся в любом устройстве с достаточно большой слабой энтропией. Например, можно построить битов, отличие которых от полностью случайных экспоненциально мало. Такие конструкции и называются экстракторами.
Наконец, к настоящему моменту стало понятно, что решить P=NP-проблему одним наскоком, по-видимому, не удастся, и TCS постепенно переходит к тому, что в таких случаях делают все нормальные математики, то есть планомерной осаде и попыткам проникнуть в суть трудностей, с которыми мы сталкиваемся. Перспективной областью с этой точки зрения выглядит теория сложности доказательств, которая, грубо говоря, изучает, какие факты обладают эффективным (полиномиальной длины) и классическим (без привлечения интерактивности) доказательством. Попытки установить, что утверждение P№NP не обладает по крайней мере эффективным доказательством (пока в этом направлении есть лишь частные результаты), привели к более глубокому пониманию природы самой проблемы, и примечательно, что все большую роль в этом анализе играют генераторы псевдослучайных чисел.
Цитированная литература
[0] (обратно к тексту) Полная версия настоящего эссе: www.mi.ras.ru/~razborov/computerra.ps.
[1] (обратно к тексту) S. Smale, «Mathematical problems for the next century», Mathematical Intelligencer, 1998, vol. 20, number 2, pages 7-15.
[2] (обратно к тексту) А. Саломаа, «Криптография с открытым ключом», М.: «Мир», 1996.
Литература, использованная при подготовке эссе
[3] С. Кук, «Вычислительная сложность функций высшего типа», Международный конгресс математиков в Киото, М.: «Мир», 1996, стр. 78-100.
[4] O. Goldreich and A. Wigderson, «Theory of Computation: A Scientific Perspective», http://theory.lcs.mit.edu/~oded/toc-sp.html.
[5] А. Разборов, «О сложности вычислений», Математическое Просвещение, сер. 3, том 3, стр. 127-141, www.mi.ras.ru/~razborov/lecture.ps.
[6] А. Разборов, «P=NP, или Проблема перебора: взгляд из 90-х», www.mi.ras.ru/~razborov/phasis.ps.