Правила и условия формирования кадров эпизодической памяти (ЭП)
1. Общая схема эпизодической памяти
ЭП — массив кадров в строгой исторической последовательности. Порядок не перемешивается; допускаются только изменение и удаление без нарушения порядка.
Правило (кадр эпизода):
Стимул (образ FinalImage) → ответное действие (образ действия, ОД) → эффект (Effect) → ответный стимул оператора (при наличии).
Содержимое кадра:
perceptionNodeId— ID конечной ветки дерева восприятия (условия);stimulusImageId— ID образа стимулов (FinalImage), вызвавшего реакцию;actionImageId— ID образа ответного действия (ОД);effect— разностьgetDiffImportance()«после» минус «до» (до активации стимула);responseStimulusImageId— ID образа ответного стимула оператора (если появился в период ожидания).
Ответное действие + ответный стимул образуют «учительское» правило: как оператор отвечает на действие Beast.
Время ожидания ответа — response_waiting_period в пульсах (по умолчанию 15). Закрытие по таймауту в EpisodicMemory_onPulse. Кадры с незаполненным effect остаются на оптимизацию.
2. Условия запуска формирования кадра ЭП
Формирование кадра ЭП запускается только через ориентировочный рефлекс (ОР). Кадр создаётся когда: ОР сработал, выполнены условия ОР (порог OR_well_known и др.), не идёт период ожидания (иначе стимул трактуется как ответный). Вызов save_episodic_memory выполняется из ОР; кадр и прогресс-бар создаются при каждом таком срабатывании ОР (не только в тестовом режиме).
3. Жизненный цикл кадра
Создание (при срабатывании ОР):
- Закрывается предыдущий незакрытый кадр (если есть и не истёк период ожидания — текущий стимул записывается как ответный; иначе кадр закрывается без ответного стимула).
- В массив ЭП добавляется «пустой» кадр: заданы
perceptionNodeId,stimulusImageId,diffBefore(значениеgetDiffImportance()до активации стимула, изPrevDiffForEpisode),actionImageId = null,effect = null,responseStimulusImageId = null. - Устанавливаются счётчик пульсов и
EpisodicMemory_waitingStartedAt; закрытие по пульсам вEpisodicMemory_onPulse. Прогресс-бар виден только при активном ожидании в этой сессии.
Заполнение ответным действием:
Когда Beast выполняет реакцию (генетическую или условную), в последний кадр записываетсяactionImageId(образ действия) черезEpisodicMemory_setLastFrameActionFromActionId(actionId). ИспользуетсяstimulusImageIdуже записанный в кадре (чтобы кадр заполнялся и при отложенной реакции или снятых стимулах).Завершение кадра:
- Ответный стимул в период ожидания: ОР сначала проверяет
isInWaitingPeriod(). Если истинно — стимул считается ответом оператора, вызываетсяcloseLastFrameWithResponse(winnerId). Порог OR_well_known для ответного стимула не проверяется. - Истечение периода без ответного стимула: в
EpisodicMemory_onPulseкадр закрывается. ЕслиactionImageId === null, кадр удаляется; иначе остаётся с вычисленнымeffect.
- Ответный стимул в период ожидания: ОР сначала проверяет
Во время периода ожидания любой стимул трактуется только как ответ оператора (без проверки samplesCount).
4. Ориентировочный рефлекс (ОР) и условия для ЭП
Порядок проверок: (1) Нет активных стимулов — выход без сообщения (деактивация). (2) Нет ветки / нет победителя — выход. (3) Регистрация в СЗ. (4) Сначала isInWaitingPeriod() — если true, закрытие кадра с ответом, порог OR_well_known не применяется. (5) Затем проверка samplesCount >= OR_well_known для начала нового процесса. (6) Иначе — save_episodic_memory, кадр и прогресс-бар создаются всегда. Период ожидания только при waitingStartedAt != null (загруженный незакрытый кадр не даёт «в ожидании»).
5. Режим тестирования формирования ЭП
Включается кнопкой «т» в блоке «Активная ветка дерева восприятия». Флаг: global.EpisodicMemory_testMode.
В тестовом режиме:
- При деактивации (нет активных стимулов) сообщение не показывается.
- При отказе в создании нового кадра (когда период ожидания не активен) выводятся причины; ответный стимул в период ожидания не проверяется на OR_well_known.
- нет функций дерева или образов; не найдена ветка; не выявлен победитель; слабый опыт (samplesCount < OR_well_known) — только для начала нового процесса.
- При начале формирования кадра — «Начат процесс формирования кадра ЭП. Стимул: (детализация). Ожидание ответа или реакции.»
- При фиксации ответного действия (реакция Beast) — «Активирован образ стимула: (детализация). Вызвавшая реакция: (детализация). Период ожидания ответа начат.»
- При появлении ответного стимула в период ожидания — «Стимул в периоде ожидания: (детализация). Кадр эпизода завершен и записан.»
- При истечении периода без реакции — кадр удаляется и выводится: «На стимул (детализация) реакция не возникла. Эпизод памяти не формируется.»
В тестовом режиме кадр ЭП создаётся и при наличии семантической значимости (runEpisodic = !hasSignificance || EpisodicMemory_testMode), чтобы можно было пошагово наблюдать процесс.
6. Условные рефлексы в контексте ориентировочного рефлекса
Правило: если стимул привлёк ориентировочный рефлекс, по нему не запускается процесс образования условного рефлекса.
Механизм:
- ОР при срабатывании блокирует выполнение генетического (или условного) рефлекса на 2 пульса (
OR_BLOCK_PULSES). Рефлекс не выполняется сразу, а помещается в очередь отложенных рефлексов (delayedReflexes). - При постановке в очередь и при последующем выполнении отложенного рефлекса в событие записывается флаг
noConditionalReflex: true. - Когда отложенный рефлекс выполняется, в
startActionпередаётся опцияnoConditionalReflex: true. При этой опции не вызываетсяsynonyms_onGeneticActionFired— подсистема условных (синонимических) рефлексов не получает сигнал для формирования или усиления условного рефлекса по данному стимулу.
Таким образом, стимул, который привлёк ОР (т.е. по которому рефлекс был задержан), не участвует в образовании условного рефлекса; условные рефлексы формируются только по стимулам, по которым рефлекс сработал без блокировки ОР.
7. Сводка ключевых констант и флагов
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
response_waiting_period |
Длительность периода ожидания ответа (в пульсах) | 15 |
OR_well_known |
Порог для начала нового процесса ОР/ЭП (не для ответного стимула) | 10 |
EpisodicMemory_testMode |
Режим пошаговых сообщений по формированию ЭП | false |
OR_BLOCK_PULSES |
Число пульсов блокировки рефлекса после ОР | 2 |
Файлы реализации: _10_Episodic_memory/episodic_memory.js, _8_Hippocampus/orientation_reflex.js, _5_Genetic__reflexes/genetic_reflexes_engine.js.