Здесь будут описаны идеи о том, как можно реализовать коммуникацию между ботами в "искусственной жизни".
Кто не в теме, что бы понять, о чём речь, стоит прочитать первую статью
Создание своих миров с "искусственной жизнью"
Как боты могут общаться? Здесь я опишу три варианта, вы можете в комментариях высказывать свои идеи.
- пассивный
- активный
- феромоны
Пассивный и активный варианты похожи друг на друга.
При пассивном варианте бот записывает некоторое число в свою ячейку, которая доступна для считывания всем соседям.
В активном варианте бот записывает некоторое число в публичные ячейки соседей.
Предполагается, что числам изначально не присвоены никакие значения и боты сами должны сформировать свой язык. При этом у разных колоний он может быть свой. Естественно, это будет не высокоуровневый язык для манипуляции абстрактными понятиями, для филосовствования и размышлении о создателе. Это будут простейшие сигналы для других ботов, например такие, как "опасность", "много еды", "пароль" и так далее.
Приведу пример, как могут закрепиться в геноме смысловая нагрузка для разных чисел. Например, в геноме некоторой группы сформировалась последовательность, выставлять число «30», когда бота атакует хищник. При этом все, кто, прочитал у соседа число «30» и убежал, сможет оставить потомство. Для тех, кто остался на месте, шансы оставить потомство значительно уменьшились. Если бот нашел много еды и крикнул «20», то все, кто последовал по направлению кричащего, наелись и оставили больше потомство, чем равнодушные к крику «20». И так далее. Всё это может быть подхвачено естественным отбором и закреплено в геноме.
Возможно боты начнут использовать эти новые возможности для каких то других целей. И это прекрасно. Например, определять свой-чужой по числу, записанному в публичной ячейке или для дифференцировки функций ботов в колонии или начнут копировать себе число из ячейки соседа и нам предстоит наблюдать переливающиеся узоры, бегущие по поверхности колонии. Для этого нужно будет создать режим отображения "коммуникация". Если использовать для коммуникаций три ячейки, то получится полноцветный узор.
Что бы всё это заработало, нужно добавить ботам ячейки (регистры), часть из них будут доступны для чтения или записи соседями, остальные доступны только для бота. Также нужны команды записи/чтения своих/чужих ячеек, возможно сложение/вычитание/перестановки/инкремент/декремент и, обязательно, команды сравнения с условным переходом.
Ну и последний вариант — феромоны.
Здесь возможны варианты, например:
- Бот может записывать/считывать число в клетку, на которой стоит. Число хранится вечно, либо исчезает через некоторое время
- Бот подкидывает феромоны в клетку, на которой находится. При этом число, записанное в клетку (количество феромона) увеличивается, но с каждым ходом уменьшается на единичку.
В первом варианте это будет именно сообщение, оставленное для всех в виде определённого числа. Во втором варианте бот узнает только, что эта клетка активно используется. Возможно сформируются тропинки, помеченные феромоном, которые будут появляться и исчезать в зависимости от частоты использования.
Кстати, во втором варианте можно не делать команду «брызнуть феромоном», просто в клетке всегда будет увеличиваться количество феромона, пока там находится бот. Ботам сделать только команду «Считать количество феромона в клетке». Правда это уже не коммуникация, зато у ботов появится осязание.
Предлагайте свои варианты в комментариях, возможно что то будет реализовано в очередном искусственном мире.
Подписывайтесь на канал,
ставьте лайки,
пишите в комментариях ваши мысли и идеи.
foo52ru