deep-econom (deep_econom) wrote,
deep-econom
deep_econom

Category:

примеры простых саморепликаторов

примеры простых саморепликаторов
Модели клеточных автоматов
https://neerc.ifmo.ru/wiki/index.php?title=Модели_клеточных_автоматов
https://neerc.ifmo.ru/wiki/index.php?title=Линейный_клеточный_автомат,_эквивалентность_МТ

https://ru.wikipedia.org/wiki/Муравей_Лэнгтона
https://ru.wikipedia.org/wiki/Автомат_фон_Неймана

Космические саморепликаторы
https://astronomy.ru/forum/index.php/topic,99146.0.html

Нашествие репликаторов фон Неймана
https://astronomy.ru/forum/index.php/topic,64769.0.html

---
саморепликаторы, квайны, жизнь, квайны как абстрактная модель жизни
https://alex-semenov.livejournal.com/1797.html

Конечно квайн можно было бы построить и проще. Написать исполнимый файл, который бы брал с диска свою копию и записывал ее туда же. Ничего особо сложного. Но тогда вы не увидите, как это происходит. Наш пример тем и хорош. Он достаточно прост и одновременно сложен. Весь код - в памяти, но мог бы быть в некой среде, скажем первородном бульоне. Он печатает фрагменты себя, но мог бы изготавливать. Фактически он очень сжатая, очень абстрактная модель жизни. То, что делает наш квайн и есть вся без остатка суть живого.
Больше ничего там нет!
---

The Quine Page http://www.nyx.net/~gthompso/quine.htm
квайны= "самовоспроизводящиеся программы" = программа, которая выдаёт на выходе точную копию своего исходного текста.
---

-------------------

Я все-таки покажу сходство между тем самым саморепликатором с памятью (я выше вывел его картинку) и типичной куайн-программой.
Возьмем исторически мне близкий пример квайн-программы:

--
Program selfprint;
var a: array[1..11]of string; i: integer;
begin


a[1]:=' Program selfprint;';
a[2]:=' var a: array[1..11]of string; i: integer;';
a[3]:=' begin ';
a[4]:=' for i:=1 to 3 do writeln(a);';
a[5]:=' for i:=1 to 11 do begin';
a[6]:=' write(chr(97), chr(91), i);';
a[7]:=' write(chr(93), chr(58), chr(61));';
a[8]:=' writeln (chr(39), a, chr(39), chr(59));';
a[9]:=' end; ';
a[10]:=' for i:=4 to 11 do wtiteln(a);';
a[11]:=' end. ';

for i:=1 to 3 do writeln(a);


for i:=1 to 11 do begin
write(chr(97), chr(91), i);
write(chr(93), chr(58), chr(61));
writeln (chr(39), a, chr(39), chr(59));
end;

for i:=4 to 11 do wtiteln(a);

end.
--


Я выделил красным ту часть программы, где объявляется "цифровое описание". В случае программы это просто описание. То есть, тут находится собственно чертеж. Самоописание. Полное и исчерпывающее! Та часть кода которая ничего не делает, а только помнит "как делать". Описание репликатора внутри себя.

Синим я выделил ту часть кода, где этот красный чертеж распаковывается собственно в текст на принтере. То есть МАТЕРИАЛИЗУЕТСЯ. Три цикла "фор". Это соответствует уже " физическое тело" репликатора.

При этом, обратите внимание. Первый и последний цикл распаковывает физическое тело (первый раздел объявлений где строится по-сути массив памяти). А средний цикл воспроизводит само описание. Он делает копию с памяти в память копии.

То есть это похоже на программный червь. Должна быть голова и хвост. И одно опирается на другое.
Если посмотреть тот ролик, там происходит нечто похожее только в виртуальном пространстве кубиков.

Самое главное. Можно видеть как же удается впихнуть целое в часть (строчек всех цветов больше чем красных строчек -описания и тем не менее на принтере распечатываются все строчки).

Кстати, и в чем же тут секрет?
https://astronomy.ru/forum/index.php/topic,99146.msg2083813.html#msg2083813
---

Зеленый - алгоритм, который не участвует в репликации (здесь можно добавочно расположить что угодно, в том числе стразики, копирайт, или алгоритм изготовления звездолёта, для языка программирования обычно нужно декларировать переменные).

Красный - данные, структура которых кодирует ВСЕ части алгоритма, но не содержит повторно данных (иначе бы получили рекурсию - у попа была собака...).

Синий - алгоритм, который глядя на данные делает копию алгоритма.

Пурпурный - алгоритм, который глядя на данные делает копию данных.

источник
----
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 0 comments