Рассуждения о том, как собрать супербота из других ботов
В этом посте я задаюсь вопросом, можно ли собрать бота для игр из подботов и что для этого нужно. Мы определяли бота через этот псевдокод из прошлых постов:
Если мы подумаем, что такое этот бот по сути, то бот — это алгоритм, который старается менять будущее своими действиями, чтобы выполнялся его набор целей. Соответственно, и у супербота должен быть набор целей.
Цели с точки зрения алгоритма — это записанное в памяти желаемое будущее состояние мира вокруг. Соответственно, в суперботе для задания цели не обязателен отдельный бот — хранитель этой цели. Таким же образом для основного скелета алгоритма супербота не обязательно использовать других (внутренних) ботов. Обязательны они будут для поддержания или создания структуры супербота.
Например, люди чинят город, в котором они живут, чтобы он не развалился, или меняют его, добавляя или убирая улицы, поддерживая его структуру. Довольно интересно, что если люди уйдут из города или разбредутся, город как алгоритм или система перестанет существовать. У каждого человека есть свои цели и своя модель мира вокруг.
Соответственно, существует сила и действия, которые заставляют людей в городе образовывать большие системы. То есть над людьми в городе происходит внешнее управление, которое через модель их мира говорит о том, что чтобы выполнить их собственные цели выживания и развития, необходимо выполнять цели города тоже.
Кстати, в каком-то смысле даже интересно, что даже самые стабильные структуры в нашем мире держатся немного на статистике и случайностях. Экономика держится на том, что большинство покупателей заплатят продавцам (хотя они могут этого не делать, если вдруг захотят). Заводы держатся на том, что рабочие придут на работу, а не вдруг все захотят не выходить на работу.
Природа силы, удерживающей людей в коллективе, может быть как отрицательной — рабство, так и положительной — материальное стимулирование через зарплату.
В начале рассуждений я сделал вывод о том, что если строение супербота напоминает строение каждого отдельного бота, то, так как многие части (кроме функции создания модели мира) алгоритма ботов не требуют функции управления, для которой боты вообще-то и созданы, то управление может быть использовано для поддержания структуры супербота либо создания этой структуры, но не для работы этой структуры в качестве супербота (кроме функции создания модели мира). В этом смысле, если не брать в расчёт необходимость поддержания или создания структуры, это было бы похоже на то, что можно написать компьютерную игру-градосимулятор, поместить в неё супербота (он тоже алгоритм), и никакие бы обычные боты, симулирующие людей на улицах, не понадобились, чтобы этот бот играл в эту игру. Так, скажем, упрощённая модель.
С точки же зрения поиска модели внутри супербота боты как запчасти в принципе могли бы понадобиться. Потому что у модуля модели существует цель — цель модели лучше объяснять историю входных данных минимальной порождающей программой. Лучшую модель мира можно пытаться находить, составляя лучшие модели его частей. (Приводил пример того, как сообщество математиков может быстрее найти доказательство теоремы Римана, чем один.)