Программа проживает одну жизнь одного индивида в условном мире: до 400 дней, шаг времени (такт) равен одному часу. Опыт гл. 32 — это сотни таких жизней, прожитых по очереди. Код программы опубликован на сайте автора; здесь описано, что она делает, без кода.
1. Из чего состоит программа
Схема частей программы и того, что они передают друг другу, — в гл. 32, раздел «Как устроен условный мир и его обитатель».
- Условный мир и тело индивида. Мир знает свои правила: сколько даёт охота, когда наступают трудные времена, насколько опасно дерево. Тело — это голод, усталость, запас еды. Индивид этих правил не знает; он видит только своё тело, что случилось за час и где сейчас его выбор.
- Индивид — две части, работающие одновременно:
- графы с матрицами — память опыта: что делать и чего от этого ждать;
- способность рождать новое — в агонии рождается новый граф.
- Исполнитель — «мышцы». Складывает усилия всех графов, придаёт им силу тела и добавляет постоянный шум.
- Источник шума — аппаратный, из случайности самого компьютера.
- Журнал жизни — запись событий обычными словами.
Части не вызывают друг друга. Каждый час они получают одну и ту же картину и возвращают свои ответы; что пришло раньше, то и сложилось раньше.
2. Один час жизни
- Мир делает шаг. Голод растёт. Тяга к вершине «Голод» усиливается вместе с голодом. Выбор сдвигается под усилием индивида, сделанным в прошлый час; сила усилия уменьшается от усталости и трудности способа и растёт от прилива сил. Растёт или снимается усталость; индивид засыпает или просыпается. Если выбор коснулся вершины способа — добыча (или гибель, если способ опасен). Еда из запаса, порча, отрастание грибов. Иногда — встреча с соседом. Старость. Смерть от голода.
- Выбирается главное событие часа — по важности: смерть, добыча, питьё, увиденное у соседа, падение в сон, еда из запаса, пробуждение, порча.
- Индивид думает. Графы и способность рождать новое одновременно получают одну картину: тело, главное событие, положение выбора, свои графы и их удачи.
- Рождение нового графа, если индивид в агонии: мир предлагает один из ещё не испробованных способов — какой, решает случай.
- Исполнитель складывает усилия, придаёт им силу тела, добавляет шум — это усилие следующего часа.
- Проверки и журнал. Программа проверяет, что выбор остаётся в допустимых пределах, а тело — в своих границах, и записывает события.
3. Как устроен индивид
Выбор
Рисунок «выбор индивида — шарик в треугольнике» — в гл. 32, раздел «Как устроен условный мир и его обитатель».
Выбор — точка (шарик) в треугольнике с вершинами Голод, Охота, Сон. Шарик движется плавно, а поступки и состояния дискретны: коснулся Охоты — добыча; коснулся Голода — смерть; подошёл к Сну — заснул. Каждый рождённый граф (грибы, дерево, вода) добавляет новую вершину.
Графы и матрицы
Граф — какие состояния и переходы есть у дела (охота, сон, дерево…). Матрица — что известно о каждом состоянии. В программе матрица графа хранит его ожидание: сколько облегчения даёт час усилия. У графа «грибы» в матрице есть ещё записи: «гриб А можно есть», «гриб Б опасен».
Врождённое (опыт поколений)
- Порыв к еде. Чуть проголодался — тянет почти в полную силу; только что поел — слабо. Запас еды порыв не гасит (волк в овчарне).
- Ожидание от охоты — столько, сколько охота даёт в благополучные времена. Индивид — охотник: память об охоте не опускается ниже 45 % врождённой.
- Сон. Тянет по усталости; добавочно — если давно не спал.
Как выбирается способ
Порыв к еде отдаётся одному способу. Охота открыта всегда. Другие способы открываются по мере того, как охота «не идёт», то есть её ожидание падает ниже врождённого. Способы соревнуются ожиданиями. Начатое дело держит: пока попытка идёт, её тяга усилена тем больше, чем ближе шарик к цели. Новое решение — после сна или после добычи — принимается только по ожиданиям. Все усилия (еда, сон) складываются без судьи.
Шесть способов учиться (других в программе нет)
- Ожидание способа пересчитывается по часам усилия: добыча — облегчение 1, вода — 1/6, ничего — 0. Часы сна не считаются.
- Длина памяти. Пока опыта мало, каждый час меняет ожидание заметно; с опытом — меньше. Но память не длиннее примерно трёх суток усилия: неделя полных неудач подрывает веру в способ.
- Возврат к охоте. Пока индивид не охотится, его ожидание от охоты само возвращается к врождённому — примерно за неделю. Кончились трудные времена — индивид снова пробует охоту и, если она кормит, возвращается к ней.
- Рождение нового графа. По двум поводам: агония (на краю голода, см. ниже) и новизна (увидел соседа с грибами, а графа «грибы» ещё нет). Новорождённый граф наследует врождённое ожидание охоты с небольшим случайным отклонением.
- Записи в матрице графа «грибы». Увидел, что сосед отравился грибом Б, — «Б опасен»; увидел, что сосед поел гриб А и доволен, — «А можно». Сам поел и остался жив — «этот можно» (бывает и ложный урок: выжил после Б).
- Сноровка. Каждая удача на рискованном способе снижает его опасность для этого индивида.
Рождение нового графа в агонии
Пока жить можно — новых идей нет. Новый граф рождается только на краю: шарик близко к Голоду (порог с шумом), тело голодно, давно не ел, а ни старая охота, ни способ, который уже удавался, не помогли. В миг рождения — озарение: шарик сразу оказывается близко к новой вершине, и новый способ пробуется немедленно. Близость к Голоду вызывает прилив сил (адреналин): усилие сильнее, но и усталость растёт быстрее; прилив спадает медленно, примерно за сутки.
Если индивид лишён способности рождать новое (для сравнения), он может получить новый граф только по новизне — подсмотрев у соседа.
Индивид без памяти (для сравнения)
То же тело и та же способность рождать новое, но графы ничего не помнят: жёсткое правило «старая охота → способ, который уже удавался → новый граф».
4. Как устроен мир
| Что это | Числа | |
|---|---|---|
| Время | такт = час, сутки = 24 такта | предел жизни 400 дней |
| Голод | растёт сам, снижается только едой | без еды тело живёт ~20 дней |
| Охота | основной способ; добыча — 3 порции: одна съедается сразу, две в запас | запас портится за ~10 дней |
| Сон | засыпает, подойдя к вершине Сон; спящее тело неподвижно | без сна не больше 3 суток, потом засыпает поневоле; сон ~6 ч (дольше после бессонницы, короче на голодный желудок) |
| Трудные времена | добыть охотой в 5 раз труднее | ~30 дней раз в ~100 дней, 4 раза за жизнь |
| Дерево | кормит и в трудные времена | риск упасть 15 % на добычу, со сноровкой меньше |
| Вода | не кормит; тело живёт своими запасами (худеет) | каждое питьё — ~2 дня жизни; риск утонуть 20 %, со сноровкой меньше |
| Грибы | кормят; хорошие (А) и ядовитые (Б); грибов мало | грибница — 2 трапезы, одна отрастает за ~3 недели; гриб Б убивает в 80 % случаев |
| Сосед | случайная встреча вместо стада | примерно раз в 15 дней: видит, как сосед ел грибы, отравился, упал, утонул, умер с голоду |
Какой способ предложит мир при рождении нового графа, решает случай. Свойства способов знает только мир.
5. Что задано заранее
Калибровка Агента — величины, которые в живом задаёт опыт поколений, а в программе задаёт её автор:
- край агонии: близость к Голоду 0,4 (программа работает при 0,35–0,45); голод тела выше 0,4; без еды дольше 60 ч (и ещё 120 ч, если есть способ, который уже удавался); между рождениями не меньше 200 ч;
- озарение: шарик переносится к новой вершине на 60 % пути;
- прилив сил: начинается при близости к Голоду 0,3; сила усилия до двух раз; спадает за ~сутки;
- врождённое ожидание охоты; память об охоте не ниже 45 %; горизонт памяти ~3 суток; возврат охоты ~неделя; увлечённость начатым делом;
- сон: «давно не спал» — больше 36 ч.
Мир (раздел 4) задан тоже заранее и во всех опытах один и тот же.
Случайность. Источник шума — аппаратный: случайность самого компьютера; каждое значение новое, поэтому две жизни никогда не повторяются в точности. Шум не реакция на равенство вариантов, а постоянная часть программы: в исполнителе (каждый час), на краю агонии, в выборе способа при рождении графа, в наследовании ожидания новорождённым графом, в длительности сна, в риске способов, в выборе гриба, во встречах с соседом. Для отладки отдельной части поток шума можно записать и подать повторно — тогда результат совпадает до бита.
6. Как повторить
Код и инструкции — на сайте автора (ссылка для скачивания). Каждая таблица и каждый рисунок гл. 32 получаются одной командой; ожидаемые числа совпадают с книгой с точностью до случайного разброса между сериями (около ±10 %).