Раскладывание понятия "я" на части с точки зрения алгоритмов

В предыдущих рассуждениях я остановился на том, что представил алгоритм простого агента в играх и задался некоторыми вопросами о его структуре.

Давайте попробуем расширить понятие «я» для этого самого алгоритма. Мы попробуем раздробить «я» внутри модели другим способом, чем в прошлый раз.

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

цель = "сохранить состояние оперативной памяти этого алгоритма во времени, но оперативная память модели и истории входов может меняться — однако они должны меняться только самим этим алгоритмом" // Опишем модель мира в нашем псевдостиле, словесно модель_мира = "в процессе, где находится этот алгоритм, окружающая среда может переписать его код, получив доступ к ячейкам его оперативной памяти, и цель этого алгоритма — этому сопротивляться (выживать)" повторяем() { вход_сейчас = вход_сейчас() история_входов.добавляем(вход_сейчас) модель = создаём_модель(история_входов) if ( исследуем_мир ) действия = исследовательские_действия() else действия = модель.предсказываем_лучший_набор_действий_до_цели(цель) выход_сейчас(действия) }

Как видно, в этом случае мы сталкиваемся с ещё одной концепцией «я», а именно с той памятью, которую надо защищать от изменений и которая относится к самому алгоритму — боту. В прошлом посте, чтобы разбить «я» на два «я», мы делили модель; в этом же посте модель у нас единая, но мы можем изменить цель этого бота так, что он может начать считать собой те части мира вокруг, которые им не являются. То есть, кроме модельного определения «я», мы добавляем логическое определение «я».