Скользящие блоки завершены по Тьюрингу


Алгоритмы и вычисления лежат в основе всего. Когда клетки подчиняются программе ДНК, они становятся человеком — но как все они могут следовать одним и тем же инструкциям, но при этом делать разные вещи? Это вопрос, который рассматривается в этом видео, и если вы посмотрите только одно видео в этом году, убедитесь, что это именно он.

Его название

Tilt: The Video — Создание миров для управления роями роботов с помощью только глобальных сигналов

и это может оставить вас в замешательстве относительно того, о чем идет речь. Без сомнения, многие люди только что прошли мимо этого на том основании, что это что-то эзотерическое, связанное с роями роботов. В некотором роде это так, но оно имеет гораздо большее значение и привлекательность.

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

Есть несколько очевидных распределенных параллельных программ. Например, если вы вообразите, что каждый пиксель в черно-белом изображении является вычислительной единицей, то вы можете дать команду «все белые пиксели рядом с черным пикселем, поднимите руку». Если бы у пикселей были руки, вы бы увидели край любого объекта.

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

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

А теперь посмотрите хотя бы первую часть видео:

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

Ключевой идеей является реализация основных логических вентилей:

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

Тот факт, что эта вычислительная схема является полной по Тьюрингу, более или менее следует из существования универсальных вентилей — И-НЕ или ИЛИ-ИЛИ.

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

Затем у нас есть реализация перестановки матриц, которая затем приводит к пузырьковой сортировке — да, пузырьковой сортировке!

В заключительной части видео объясняется, почему разветвление ворот затруднено, даже невозможно, если ограничиться фиксированными блоками. Чтобы создать разветвленные ворота, вам понадобится движущийся блок как часть ландшафта.

После того, как у вас есть разветвление, вы можете создать полный сумматор, и приведенный пример является счетчиком.

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

Кажется, есть связь с клеточными автоматами.

А кто первым построит компьютер с выдвижным блоком в Майнкрафт?

Вычисления действительно повсюду.


Добавить комментарий