- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания Золотой билет - Лэнс Фотноу
Шрифт:
Интервал:
Закладка:
Рис. 7.4. Программа
А нельзя ли примерно таким же способом доказать, что некоторые задачи не могут быть решены эффективно, т. е. не принадлежат классу P, в котором для любой задачи существует эффективный алгоритм? Конечно же, можно!
Для начала определим алгоритм Q, который принимает на вход код программы R и решает следующую задачу:
• Если программа R, получив на вход свой собственный код, за полиномиальное время выдает ответ «Да», ответить «Нет».
• В противном случае ответить «Да».
Теперь возьмем произвольный эффективный алгоритм S. Очевидно, что Q(S) ответит «Да» в том и только в том случае, когда S(S) ответит «Нет», а это значит, что ни один эффективный алгоритм никогда не совпадет с алгоритмом Q.
Несмотря на это, алгоритм Q вполне корректный, и задача, которую он выполняет, разрешима, – вот только за полиномиальное время с ней не справиться.
Раз Q не принадлежит классу P, тогда, если бы мы доказали, что Q лежит в NP, т. е. любое заданное решение быстро проверяется, это означало бы, что P ≠ NP, и проблема тысячелетия была бы решена.
Никто не знает, принадлежит ли Q классу NP; на самом деле это очень мало вероятно. По этой причине (а также по ряду других) любой «парадоксальный» подход к решению проблемы P и NP почти наверняка потерпит неудачу – по крайней мере, если с его помощью пытаться так вот «в лоб» доказать неравенство P и NP.
Схемы
В основе любого современного вычислительного устройства лежит интегральная схема.
Интегральные схемы состоят из миллионов и даже миллиардов крошечных транзисторов, предназначенных для усиления и преобразования электрических сигналов. На базе транзисторов создаются так называемые вентили – логические элементы, выполняющие простейшие операции с входными сигналами.
Для начала рассмотрим один электрический провод, на который подается либо высокое напряжение, либо низкое. Возможны только два значения, интерпретируемые обычно как наличие тока или его отсутствие; эти значения кодируют два состояния – единицу и ноль, или «истину» и «ложь». Количество информации, передаваемое таким двузначным сигналом, получило название «бит» (англ. bit – сокращение от binary digit, т. е. «двоичная цифра»).
Рис. 7.5. Интегральная схема. Фото любезно предоставлено Пенсильванским университетом
Сам по себе провод – или даже несколько отдельных проводов – мало на что способны. Если мы хотим организовать какое-нибудь вычисление, то должны преобразовывать идущие по проводам сигналы. Простейший метод – инвертировать входное напряжение, т. е. реализовать логический вентиль «НЕ».
Рис. 7.6. Вентиль «НЕ»
Если на входе вентиля, т. е. слева от элемента «НЕ», будет высокое напряжение, на выходе оно станет низким, и наоборот.
Занимаясь каждым проводом в отдельности, полноценную схему не составить: на самом деле провода нужно специальным образом комбинировать. Вентиль «И» принимает на вход два или более сигнала и преобразует их в один; на выходе будет единица, если на все входы подается единица. Вентиль «ИЛИ» также принимает на вход два или более сигнала и преобразует их в один; на выходе будет единица, если хотя бы на один из входов подается единица.
Рис. 7.7. Вентили «И» и «ИЛИ»
Из таких простейших базовых элементов можно строить схемы, реализующие более сложные операции. Например, «исключающее ИЛИ» выдает единицу, когда ровно на один из входов подается единица.
Рис. 7.8. Вентиль «Исключающее ИЛИ»
Любую, даже самую сложную, функцию можно реализовать схемой из элементов «И», «ИЛИ» и «НЕ». Вернемся к вопросу о клике – группе жителей Королевства, в которой все дружат между собой. Чтобы определить, дружат ли Алекс, Боб и Венди, мы можем воспользоваться вентилем «И».
Рис. 7.9. «И» с тремя входами
Чтобы узнать, есть ли в компании из пяти человек – Алекс, Боб, Венди, Гарри и Диана – клика размера три, мы можем построить схему, изображенную на рис. 7.10.
В этой схеме десять элементов «И». Каждый элемент соответствует одной из десяти потенциальных клик размера три в нашей группе. А что, если в группе не 5 человек, а 20000? И нам нужно найти клику размера 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
элементов «И».
Рис. 7.10. Схема для клики размера три
Вы спросите, причем тут классы P, NP и вопрос об их равенстве? Дело в том, что для любой задачи из P, т. е. задачи, для которой существует эффективный алгоритм, существует также относительно небольшая схема из элементов «И», «ИЛИ» и «НЕ», которая ее решает. Если мы докажем, что некоторую задачу из NP (например, задачу о клике) нельзя решить при помощи небольшой схемы, это будет означать, что P ≠ NP.
Существуют ли маленькие схемы для задачи о клике? Равны классы P и NP или не равны? Вопросы эти очень тесно взаимосвязаны, и ответа на них ученые пока не знают; однако сейчас уже мало кто верит, что задача о клике реализуется маленькой схемой, как, впрочем, и в то, что P = NP.
Вернемся к схемам для поиска клики, которые мы только что построили. Заметьте, что в них нет ни одного вентиля «НЕ». Вообще-то некоторые схемы реализовать без отрицания нельзя: оно необходимо даже для такой простой операции, как «исключающее ИЛИ». А вот в задаче о клике можно обойтись одними только «И» и «ИЛИ» – правда, размер подобных схем будет просто устрашающий.
В 1985 году Александр Разборов – студент Математического института им. В. А. Стеклова в Москве – доказал, что любая схема, реализующая алгоритм для задачи о клике при помощи одних лишь вентилей «И» и «ИЛИ» (т. е. без использования «НЕ»), обязательно содержит огромное число элементов. Конечно, проблему равенства P и NP это не снимало; использование элемента «НЕ» вполне могло бы привести к значительному сокращению размера схемы, хотя для задачи о клике он совсем не обязателен.
Тем не менее результат Разборова сочли огромным прорывом на пути к решению вопроса о P и NP. В то время я учился в аспирантуре, и мой научный руководитель Майкл Сипсер сказал, что решение это уже почти у нас в руках: осталось лишь придумать, как модифицировать доказательство Разборова таким образом, чтобы в него можно было «подсунуть» элементы отрицания. Если это удастся, то любая схема, реализующая задачу о клике при помощи полного набора базовых операций – «И», «ИЛИ», «НЕ», – обязана будет содержать огромное число элементов. Поскольку эффективные алгоритмы реализуются небольшими схемами, отсюда будет следовать, что NP-полная задача о клике эффективного алгоритма не имеет, а значит, не принадлежит классу P. Таким образом, неравенство P и NP будет доказано. К сожалению, в реальной жизни все обстоит несколько сложнее.
В Соединенные Штаты ранние работы Разборова попали непереведенными. Сипсер привлек к делу несколько русских студентов; вместе они в ожидании чуда скрупулезно переводили текст на английский и с каждой следующей статьей надеялись, что вопрос о равенстве P и NP вот-вот будет закрыт. Авторству Разборова принадлежит целый ряд замечательных работ, однако ключ к доказательству неравенства P и NP они не дают.
В третьей главе мы разбирали задачу о числе паросочетаний и составляли из дружеских пар романтические. Как и в случае с кликой, для решения задачи о паросочетаниях можно строить схемы, содержащие только операции «И» и «ИЛИ». Для оценки общего числа элементов подходят те же методы, что были использованы в задаче о клике. Поэтому схемы, решающие задачу о паросочетаниях при помощи одних лишь «И» и «ИЛИ», всегда содержат огромное число элементов.
Впрочем, для паросочетаний, в отличие от клики, эффективные алгоритмы все же существуют, а значит, существуют и небольшие схемы из элементов «И», «ИЛИ» и «НЕ». Конечно, отрицание использовать совсем не обязательно, однако с его помощью число элементов схемы можно значительно уменьшить. Простой и скромный вентиль «НЕ» на самом деле гораздо мощнее, чем кажется.
Все это практически сводит на нет любые попытки разобраться с классами P и NP, основываясь на результатах Разборова относительно клики. Если для решения некоторой задачи при помощи одних лишь «И» и «ИЛИ» требуется схема из огромного числа элементов, то отсюда вовсе не следует, что при добавлении «НЕ» ситуация останется прежней. В более поздних работах Разборов этот вопрос прояснил; он четко показал, почему для схем с отрицанием его методы не годятся, и почему их почти наверняка невозможно будет переделать.