Математики - грёбаные читеры

Как ответить на вопрос, не ответив на вопрос

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

Если подробнее, то автор задаёт вопрос так: "Существуют ли проблемы, которые компьютер никогда не сможет решить, даже если предоставить ему всевозможные вычислительные ресурсы и всё время вселенной (но не бесконечное)?"

Ответ такой: допустим мы создали программу "Halts", которая может взять код другой программы и определить, остановиться ли данная ему программа когда-либо или же нет, уйдёт в бесконечный цикл. Программы вообще легко могут уйти в бесконечный цикл, когда ты случайно перепутал какой-то знак или неправильно задал начальное значение условной переменной. Так что проблема актуальна вполне.

Ну так вот. Создадим мы эту программу (возможность создания такой программы и конкретную её реализацию вынесем за скобки), а потом приставим на её выходе определённый инвентор: если программа Halts возвращает "Остановится", то инвентор запускает бесконечный цикл. Если Halts возвращает "Не остановится", то инвентор ничего не делает. Назовём такую программу из двух модулей "Opposite".

Теперь, если мы возьмём полный код программы Opposite и засунем его внутрь самого себя для анализа, указав за входные данные ту же самую Opposite. Как-то это должно выглядеть так: Op1 -> Op2 -> Op3. Если Op2 остановится, то Op1 (которая полностью аналогична Op2 и получает те же самые данные на входе) не остановится. И наоборот, если Op2 не остановится, то Op1 остановится. Что, вообще-то, противоречие.

Пока писал это, понял, что ролик плохо объясняет и эту часть тоже, потому что о входных данных там ничего не указано, а это вообще-то критическая часть для понимания.

Ладно, к чему это всё. Ну окей, нашли мы возможное противоречие в программе-инвенторе. Дальше-то что? Да, формально ответ дан, на свете действительно существуют проблемы, которые компьютер разрешить не способен. Но конкретно эта проблема высосана из пальца.

Наверняка ведь, когда кто-то задавал вопрос о том, "способен ли компьютер вычислить всё на свете?", он имел в виду какие-то трансцендентальные проблемы типа "можно ли по текущему состоянию пространства вычислить его прошлое?" или "можно ли по этому же состоянию предсказать будущее?". А может "можно ли предвосхитить случайные процессы?". Но вместо этого нам сунули какой-то абстрактный парадокс. Который ещё и может разрешиться, если вдруг окажется, что написание программы Halts невозможно.

Это как если бы вы пришли к доктору с вопросом: "Доктор, что мне делать, у меня зуб болит?", а он вам "Не ложитесь по 30-тонный пресс - вас раздавит". Да, формально это полезный ответ, но по факту он ничего не меняет.

К сожалению, математики зачастую этим страдают. Их годами учат абстрагироваться от контекста, формулируя задачу максимально обособленно и универсально. Но эта оторванность от контекста их же и губит, потому что единожды отказавшись от деталей перед решением задачи, они забывают учесть их после, когда решение найдено.

33
1 комментарий

Что за хуйню я сейчас прочитал? Опять нейронов тестируете что ли? 

Ответить