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?
Как сравнить эти задачи по сложности их решения в смысле затрат времени на нахождение ответа? Такое сравнения полезно, в частности, если мы пишем программу для компьютера и выбираем для нее самый быстрый алгоритм.