contact me
alsemno@ya.ru
RU
EN
Идентификаторы
PersonID 19667
Alexei Semenov
ID: semenov.alexei-l
AuthorID: 218197
Spin 2289-1720
alsemenov
0000-0002-1785-2387
S-5268-2018
AuthorID 7402499019
Alexei_Semenov
A. Semenov
AlexeySemenov
Alexei Semenov
Введение в математическую логику и теорию алгоритмов
Ступень 16. Сложность вычислений и объектов
16.1. Колмогоровская сложность

Начнем с неформального примера.

Представьте себе 1 миллион написанных подряд, через запятую и пробел слов «Да». Длина этой цепочки, видимо, 4 миллиона. Но мы ее описали намного короче, из нашего описания видно, что сложность цепочки не так уж велика.

Как мы уже делали иногда раньше, будем считать, что наши объекты — это ограниченные двоичные цепочки.

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

Будем считать, что язык, на котором мы записываем алгоритмы, фиксирован. Код алгоритма получается в результате посимвольного двоичного кодирования текста алгоритма.
Определение 140. Способ описания — любой алгоритм. Мы говорим, что он перерабатывает описание (тоже объект) в объект с этим описанием.

Сложность объекта x при заданном способе описания , обозначение — — это длина кода алгоритма плюс минимальная длина описания этого объекта способом .

Кодом алгоритма мы считаем двоичную его запись, предваренную двоичным числом — длиной этой двоичной записи, в котором все символы повторены, а потом идет .
  • Задача 259. Теорема Колмогорова. Существует способ описания , дающий самые короткие описания в следующем смысле: для всякого способа описания существует число такое, что для любого объекта выполнено:
Заметим, что при разумном выборе языка программирования (языка, на котором мы описываем алгоритмы) длина кода универсального алгоритма может быть выбрана небольшой. Для представляющих интерес способов описания логарифм длины такого способа будет также малой величиной. Сложность же естественно мерить для больших и даже сверхбольших (для человека) объектов. Получается, что Колмогоровская сложность «практически минимальна».

Идея моделирования любого вычисления универсальным также относится к числу больших идей.

Дальнейшее развитие идей Колмогорова о сложности объектов породило алгоритмическую теорию информации. Одним из первых результатов здесь — это ответ на вопрос: как определить случайность бесконечной последовательности?

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

16.2. Сложность вычислений

Начнем с примеров.
  • Задача 260. Рассмотрим множество натуральных чисел: 23, 11, 44, 29, 18, 32, 19, 35, 67 и несколько вопросов (задач) об этом множестве:
  1. Есть ли среди этих чисел число 54?
  2. Есть ли среди этих чисел два числа, сумма которых равна 73?
  3. Можно ли среди этих чисел выбрать несколько, сумма которых (взятых по одному разу каждый) равна 100?
Как сравнить эти задачи по сложности их решения в смысле затрат времени на нахождение ответа? Такое сравнения полезно, в частности, если мы пишем программу для компьютера и выбираем для нее самый быстрый алгоритм.
Можно рассматривать произвольные задачи и произвольные Действия переработки. Однако имеет смысл некоторым образом ограничить сложность одного шага, иначе за один шаг можно было бы решить всю задачу.

Для того, чтобы ограничить сложность одного шага, можно все алгоритмы реализовать как, например, машины Тьюринга.

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

Мы получаем следующие определения.
Определение 141. Время вычисления алгоритма — длина (число шагов) вычисления.

Функция сложности алгоритма (от натурального аргумента ) — максимальное время вычисления для всех исходных данных длины не больше .
Огромный, быстро накопленный опыт построения и использования алгоритмов для реальных компьютеров показал, что класс реально используемых алгоритмов составляют алгоритмы, для которых время вычисления ограничено полиномом от длины исходного данного.
Определение 142. Функция полиномиально вычислима, если существует машина Тьюринга, функция сложности для которой ограничена заданным полиномом от длины исходного данного, а вычисляемая функция — это .
Одно из достоинств приведенного определения состоит в том, что оно, так сказать, инвариантно относительно вычислительной модели (точного определения рассматриваемого класса алгоритмов), лишь бы отдельные шаги вычисления имели не слишком большую сложность (например, тоже ограниченную полиномом). В частности это определение удобно использовать при рассмотрении алгоритмов для реальных компьютеров.
16.3. Переборные задачи

Пример, с которого мы начали лекцию — это так называемая Задача о рюкзаке. Вот ее точная формулировка:
Определение 143. Задача о рюкзаке

Дано: множество натуральных чисел и число .

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

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

Мы видим, что проверка того, что мы нашли решение, занимает полиномиальное время, но поиск решения перебором может потребовать экспоненциального времени. В этом неформальном обсуждении мы не делаем различия между размером исходного данного и количеством элементов в , это не влияет на качественное различие в полиномиально и экспоненциально сложных вычислениях.
Задача 261. Д Предположим, мы можем решать задачу о рюкзаке за полиномиальное время. Как нам тогда за полиномиальное время находить нужное множество номеров?
Определение 144. Переборная задача — это всякое свойство пар двоичных цепочек, вычислимое за полиномиальное время машиной Тьюринга.

Исходное данное: цепочка .

Результат: существует догадка , длина которой не больше длины , для которой выполнено .
Ограничение на длину можно ослабить, например, требуя, чтобы эта длина не превосходили полинома от длины . Это не меняет существа дела, как будет ясно из дальнейшего.

Понятно, что задача о рюкзаке — переборная.

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

Понятно, что задача о рюкзаке — переборная.

Вот еще один пример переборной задачи.
Определение 145. Задача SAT :

Исходное данное: код , формула логики высказываний .

Результат: существует набор значений y для атомов формулы , обращающих формулу в истину.
16.3.1. Универсальная переборная задача

Имеет место замечательный факт, открытый Карпом и Левиным.
  • Задача 262. Если свойство SAT полиномиально вычислимо, то и любая переборная задача решается за полиномиальное время.
Таким образом, задача SAT — универсальна. Таким же свойством универсальности обладают и многие другие естественно возникшие в вычислительной практике переборные задачи. Существуют большие перечни задач, для которых доказана их переборность, и несколько интересных случаев, где она может ожидаться, но не установлена. Современные компьютерные мощности и проблематика искусственного интеллекта ведут к новым соображениям, относящимся к переборным задачам.

Проблема тысячелетия: является ли SAT полиномиально вычислимой?