Введение
Алгоритмы стали повсеместными. Они оптимизируют наши поездки на работу, обрабатывают платежи и координируют поток интернет-трафика. Кажется, что для каждой проблемы, которую можно сформулировать в точных математических терминах, существует алгоритм, способный ее решить, по крайней мере в принципе.
Но это не так: некоторые, казалось бы, простые проблемы никогда не могут быть решены алгоритмически. Выдающийся ученый-компьютерщик Алан Тьюринг доказанный существование таких «невычислимых» проблем почти столетие назад, в той же статье, где он сформулировал математическая модель вычислений что положило начало современной информатике.
Тьюринг доказал этот новаторский результат, используя контринтуитивную стратегию: он определил проблему, которая просто отвергает все попытки ее решить.
«Я спрашиваю вас, что вы делаете, а потом говорю: «Нет, я собираюсь сделать что-то другое», — сказал Рахул Иланго, аспирант Массачусетского технологического института, изучающий теоретическую информатику.
Стратегия Тьюринга была основана на математическом методе диагонализации, имеющем выдающуюся историю. Вот упрощенное изложение логики его доказательства.
Теория струн
Диагонализация возникла из хитроумного трюка для решения обыденной проблемы, включающей строки битов, каждая из которых может иметь значение либо 0, либо 1. Имея список таких строк одинаковой длины, можете ли вы сгенерировать новую строку, которой нет в список?
Самая простая стратегия — рассмотреть каждую возможную строку по очереди. Предположим, у вас есть пять строк длиной пять бит каждая. Начните со сканирования списка на предмет 00000. Если его там нет, можете остановиться; если это так, вы переходите к 00001 и повторяете процесс. Это достаточно просто, но медленно для длинных списков длинных строк.
Диагонализация — это альтернативный подход, который постепенно наращивает недостающую строку. Начните с первого бита первой строки в списке и инвертируйте его — это будет первый бит вашей новой строки. Затем инвертируйте второй бит второй строки и используйте его как второй бит новой строки и повторяйте, пока не дойдете до конца списка. Биты, которые вы переворачиваете, гарантируют, что новая строка будет отличаться от каждой строки исходного списка хотя бы в одном месте. (Они также образуют диагональную линию через список строк, что дало технике название.)
При диагонализации необходимо проверять только один бит каждой строки в списке, поэтому зачастую это намного быстрее, чем другие методы. Но его истинная сила заключается в том, насколько хорошо он играет с бесконечностью.
«Строки теперь могут быть бесконечными; список может быть бесконечным — он все равно работает», — сказал Райан Уильямс, ученый-теоретик в Массачусетском технологическом институте.
Первым, кто использовал эту силу, был Георг Кантор, основатель математического раздела теории множеств. В 1873 году Кантор использовал диагонализацию, чтобы доказать, что некоторые бесконечности равны. больше, чем другие. Шесть десятилетий спустя Тьюринг адаптировал версию диагонализации Кантора к теории вычислений, придав ей явно противоположный оттенок.
Ограниченная игра
Тьюринг хотел доказать существование математических проблем, которые не может решить ни один алгоритм, то есть проблем с четко определенными входными и выходными данными, но без надежной процедуры перехода от ввода к выводу. Он сделал эту расплывчатую задачу более выполнимой, сосредоточившись исключительно на задачах принятия решений, где входными данными может быть любая строка из 0 и 1, а выходными — либо 0, либо 1.
Определение того, является ли число простым (делится только на 1 и само на себя), является одним из примеров проблемы принятия решения: учитывая входную строку, представляющую число, правильный результат равен 1, если число простое, и 0, если это не так. Другой пример — проверка компьютерных программ на наличие синтаксических ошибок (эквивалент грамматических ошибок). Там входные строки представляют собой код для разных программ — все программы могут быть представлены таким образом, поскольку именно так они хранятся и выполняются на компьютерах — и цель состоит в том, чтобы вывести 1, если код содержит синтаксическую ошибку, и 0, если это не так. т.
Алгоритм решает проблему только в том случае, если он выдает правильный результат для каждого возможного ввода — если он терпит неудачу хотя бы один раз, это не алгоритм общего назначения для этой проблемы. Обычно вы сначала указываете проблему, которую хотите решить, а затем пытаетесь найти алгоритм, который ее решает. Тьюринг в поисках неразрешимых проблем перевернул эту логику с ног на голову — он вообразил бесконечный список всех возможных алгоритмов и использовал диагонализацию, чтобы построить упрямую проблему, которая помешала бы каждому алгоритму в списке.
Представьте себе сфальсифицированную игру из 20 вопросов, в которой вместо того, чтобы начинать с конкретного объекта, отвечающий придумывает оправдание, чтобы сказать «нет» на каждый вопрос. К концу игры они описали объект, полностью определяемый качествами, которых ему не хватает.
Доказательство диагонализации Тьюринга — это версия этой игры, в которой вопросы проходят через бесконечный список возможных алгоритмов, неоднократно спрашивая: «Может ли этот алгоритм решить проблему, которую мы хотели бы доказать невычислимой?»
«Это что-то вроде «вопросов на бесконечность», — сказал Уильямс.
Чтобы выиграть игру, Тьюрингу нужно было придумать задачу, ответом на которую для каждого алгоритма будет «нет». Это означало определение конкретного входного сигнала, который заставляет первый алгоритм выдавать неверный ответ, другого входного сигнала, который приводит к сбою второго, и так далее. Он нашел эти специальные входные данные, используя трюк, похожий на тот, который недавно использовал Курт Гёдель. доказывать что самореферентные утверждения типа «это утверждение недоказуемо» создают проблемы для основ математики.
Ключевой вывод заключался в том, что каждый алгоритм (или программу) можно представить в виде строки из 0 и 1. Это означает, как и в примере с программой проверки ошибок, что алгоритм может принимать на вход код другого алгоритма. В принципе, алгоритм может даже использовать в качестве входных данных собственный код.
Обладая этим пониманием, мы можем определить невычислимую задачу, подобную той, что содержится в доказательстве Тьюринга: «Для входной строки, представляющей код алгоритма, выведите 1, если этот алгоритм выводит 0, когда его собственный код является входными данными; в противном случае выведите 0». Каждый алгоритм, который пытается решить эту проблему, выдаст неверный результат хотя бы на одном входе, а именно на входе, соответствующем его собственному коду. Это означает, что эту извращенную проблему невозможно решить никаким алгоритмом.
Чего не может сделать отрицание
Ученые-компьютерщики еще не закончили с диагонализацией. В 1965 году Юрис Хартманис и Ричард Стернс адаптировали аргумент Тьюринга к доказывать что не все вычислимые задачи одинаковы — некоторые из них по своей сути сложнее других. Этот результат положил начало развитию теории сложности вычислений, которая изучает сложность вычислительных задач.
Но теория сложности также выявила ограничения противоположного метода Тьюринга. В 1975 году Теодор Бейкер, Джон Гилл и Роберт Соловей. доказанный что многие открытые вопросы в теории сложности никогда не могут быть решены только с помощью диагонализации. Главной из них является знаменитая проблема P и NP, которая спрашивает, легко ли решить все проблемы с легко проверяемыми решениями с помощью правильного хитроумного алгоритма.
Слепые пятна диагонализации являются прямым следствием высокого уровня абстракции, который делает ее такой мощной. Доказательство Тьюринга не включало в себя какую-либо невычислимую проблему, которая могла бы возникнуть на практике — вместо этого оно придумало такую проблему на лету. Другие доказательства диагонализации также далеки от реального мира, поэтому они не могут решить вопросы, в которых важны детали реального мира.
«Они выполняют вычисления на расстоянии», — сказал Уильямс. «Я представляю себе парня, который имеет дело с вирусами и получает к ним доступ через какой-то бардачок».
Неудача диагонализации была ранним признаком того, что решение проблемы P и NP будет трудным. долгое путешествие. Но, несмотря на свои ограничения, диагонализация остается одним из ключевых инструментов в арсенале теоретиков сложности. В 2011 году Уильямс использовал его вместе с множеством других методов, чтобы доказывать что определенная ограниченная модель вычислений не может решить некоторые чрезвычайно сложные проблемы — результат, который ускользал от исследователей в течение 25 лет. Это было далеко от решения проблемы P и NP, но все же представляло собой значительный прогресс.
Если вы хотите доказать, что что-то невозможно, не стоит недооценивать силу простого отказа.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Автомобили / электромобили, Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- ПлатонЗдоровье. Биотехнологии и клинические исследования. Доступ здесь.
- ЧартПрайм. Улучшите свою торговую игру с ChartPrime. Доступ здесь.
- Смещения блоков. Модернизация права собственности на экологические компенсации. Доступ здесь.
- Источник: https://www.quantamagazine.org/alan-turing-and-the-power-of-negative-thinking-20230905/
- :имеет
- :является
- :нет
- :куда
- ][п
- $UP
- 1
- 20
- 2011
- 25
- a
- абстракция
- Учетная запись
- тому назад
- Алан
- Алан Тьюринг
- алгоритм
- алгоритмически
- алгоритмы
- Все
- в одиночестве
- причислены
- среди
- an
- и
- Другой
- ответ
- любой
- подхода
- МЫ
- аргумент
- возникать
- Арсенал
- AS
- спросить
- At
- пекарь
- основанный
- BE
- становиться
- за
- Немного
- Коробка
- строит
- но
- by
- под названием
- Кембридж
- CAN
- случаев
- века
- определенный
- контроль
- главный
- код
- сложность
- вычисление
- компьютер
- Информатика
- компьютеры
- Рассматривать
- строить
- содержит
- вопреки
- координировать
- исправить
- соответствующий
- выработать
- создали
- занимавшийся
- десятилетия
- решение
- определять
- определенный
- описано
- Несмотря на
- подробнее
- различный
- Трудность
- направлять
- расстояние
- Выдающийся
- do
- не
- дело
- Dont
- каждый
- Рано
- легко
- легко
- или
- конец
- достаточно
- обеспечивать
- полностью
- равный
- одинаково
- Эквивалент
- ошибка
- ошибки
- Даже
- Каждая
- исследовать
- пример
- исключительно
- выполненный
- существование
- чрезвычайно
- FAIL
- не удается
- Ошибка
- знаменитый
- далеко
- Большая разница
- быстрее
- поле
- Найдите
- Во-первых,
- 5
- кувырок
- поток
- фокусировка
- Что касается
- форма
- найденный
- Устои
- основатель
- от
- игра
- общее назначение
- порождать
- получить
- получающий
- данный
- Отдаете
- цель
- будет
- выпускник
- новаторским
- Парень
- было
- обрабатывать
- Жесткий
- Сильнее
- упряжь
- Есть
- he
- High
- его
- история
- Как
- HTTPS
- i
- идентифицирующий
- IEEE
- if
- картина
- представить
- in
- индикация
- Бесконечный
- Infinity
- вход
- затраты
- понимание
- вместо
- Институт
- Интернет
- в действительности
- включать в себя
- IT
- ЕГО
- саму трезвость
- John
- всего
- Основные
- курт
- новее
- запустили
- наименее
- уровень
- лежит
- такое как
- ограничение
- недостатки
- рамки
- линия
- Список
- Списки
- логика
- Длинное
- сделанный
- журнал
- основной
- ДЕЛАЕТ
- управляемый
- многих
- Массачусетс
- Массачусетский Технологический Институт
- математический
- математика
- Вопрос
- означает
- означает,
- метод
- методы
- может быть
- против
- отсутствующий
- ошибки
- MIT
- модель
- Модерн
- БОЛЕЕ
- самых
- двигаться
- много
- имя
- а именно
- почти
- необходимый
- потребности
- отрицательный
- никогда
- Новые
- нет
- сейчас
- номер
- объект
- of
- .
- on
- консолидировать
- ONE
- только
- открытый
- Оптимизировать
- or
- оригинал
- Другое
- Другое
- в противном случае
- наши
- выходной
- собственный
- бумага & картон
- особый
- платежи
- человек
- Новаторская
- Часть
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- играет
- возможное
- мощностью
- мощный
- практика
- необходимость
- Простое число
- принцип
- Проблема
- проблемам
- процедуры
- процесс
- производит
- производит
- FitPartner™
- Программы
- Прогресс
- доказательство
- доказательства
- Доказывать
- доказанный
- качества
- Квантовый журнал
- вопрос
- Вопросы
- скорее
- реальные
- реальный мир
- недавно
- остатки
- повторять
- НЕОДНОКРАТНО
- представлять
- представленный
- представляющий
- исследователи
- решен
- решения
- ограниченный
- результат
- Показали
- Ричард
- сфальсифицировано
- правую
- РОБЕРТ
- Run
- Сказал
- то же
- сообщили
- поговорка
- сканирование
- Наука
- Ученый
- Ученые
- Поиск
- Во-вторых
- по-видимому
- кажется
- набор
- Сиам
- аналогичный
- Аналогичным образом
- просто
- упрощенный
- просто
- с
- ШЕСТЬ
- медленной
- So
- Решения
- РЕШАТЬ
- Решает
- Решение
- некоторые
- удалось
- особый
- пятна
- Начало
- Начало
- заявление
- стебли
- По-прежнему
- Stop
- хранить
- простой
- Стратегия
- строка
- "Студент"
- исследования
- изучение
- такие
- синтаксис
- взять
- Сложность задачи
- снижения вреда
- Технологии
- terms
- чем
- который
- Ассоциация
- Их
- тогда
- теоретический
- теория
- Там.
- Эти
- они
- мышление
- этой
- те
- Через
- пресекать
- в
- вместе
- инструменты
- трафик
- беда
- правда
- стараться
- Тьюринга
- ОЧЕРЕДЬ
- Оказалось
- вездесущий
- до
- использование
- используемый
- через
- версия
- Против
- вирусы
- хотеть
- стремятся
- законопроект
- Путь..
- we
- WebP
- ЧТО Ж
- вполне определенный
- Что
- когда
- будь то
- , которые
- КТО
- будете
- Уильямс
- выиграть
- работает
- Мир
- бы
- Неправильно
- лет
- еще
- Ты
- ВАШЕ
- зефирнет