Пакет psy_self-perception


Самоощущение - структура SelfPerception, объединяющая все то, что обеспечивает определение значимости состояния (смысл) и мотивационную цель.

Это поддерживает ТЕМУ (разговора, размышления) - Цели текущей Доминанты, ради чего идет разговор.
В каждый момент времени пульса Боту доступна вся картина для получения прогноза StepOfModifeCurrentSelfPerception
и осуществления произвольности (выбора активации Дерева и замены мотор.автоматизма на предположительный).

В каждый момент пульса у Бота уточняется текущее состояние SelfPerception,
которое по мере необходимость модифицируется, но стараясь удерживать текшую ТЕМУ - Цель Доминанты.
При этом старая SelfPerception остается в памяти и возникает новая, становящаяся тёкшей.
При засыпании или при выключении Бота все SelfPerception гасятся.
В отличие от эпизод.памяти SelfPerceptionSequence - память эпизодов смены Темы.
Отличается от эпизодической памяти кратковременностью и полнотой общей текущей картины понимания,
а так же тем, что в EpisodeMemory есть Type int - объективный образ или субъективный.
Ну и не может эпизодическая память хранить адреса объектов, которыми богата SelfPerception.
При воспоминании кадра EpisodeMemory может восстанавливаться вся картинка SelfPerceptionSequence
НО В ТОМ состоянии уровней мотивационных контекстов, которые возникают в текущем самоощущении.
Самоощущение структура, содержащее реальные объекты других структур, очень объемная и по\тому не сохраняется в файле и после сна.

СТРУКТУРА:
type SelfPerception struct {
	ID int
	LastNode *levelModel // последний узел верки дерева (может быть посредине более длинной ветки)
	Episod *EpisodeMemory // кадр эпизодической памяти
	Motivation1level int  // далее - три уровня мотивационных контекстов из psy_motivation_targets.go и их веса
	Motivation1levelWeight int
	Motivation2level int
	Motivation2levelWeight int
	Motivation3level int
	Motivation3levelWeight int

	Purpose  *EpisodeMemory // поставленная осознаваемая цель, если она есть

// текущая доминанта нерешенной проблемы для данного самоощущения
	CurDominanta *Dominanta 

//__________________ Поддержка мент.автоматизмов второго типа _________________________
/* Необязательный целевой параметр для запуска ментального действия типа 2. Пояснение:
В MentAutomatizm последовательность для второго типа автоматизмов
Sequence="2:1001" - запустить мент.действие с ID=10001 - Вспомнить самоощущение по узлу Дерева 
при этом в текущем самоощущении CurrentSelfPerception 
прописывается целевой параметр MentalAutomatizmParameter=322 - 
т.е. в данном случае функция RememberSelfPerceptionFromNodeID должна брать оттуда nodID=322
*/
MentalAutomatizmParameter int

/* Необязательные результаты запуска ментального действия типа 2. Пояснение:
В MentAutomatizm последовательность для второго типа автоматизмов
Sequence="2:1002" - запустить мент.действие с ID=10002 - Прогноз по эпиз.памяти от активной ветки Дерева 
при этом в текущем самоощущении CurrentSelfPerception 
прописывается целевой параметр MentalAutomatizmResult строка результата 
и Бот знает какой формат у MentalAutomatizmResult в зависимости от MentalAutomatizmParameter 
В данном случае функция вернет строку с числом - результатом прогноза.
*/
MentalAutomatizmResult string
//___________________ Конец поддержки мент.автоматизмов второго типа___________________


// предыдущий объект самоощущения после создании нового
	PrevID *SelfPerception 
}
///////////////////////////////////////////////////

ПЕРЕМЕННЫЕ:
// последовательность адресов эпизодов кратковременной памяти самоощущений
var SelfPerceptionSequence=make(map[int]*SelfPerception)

// текущий эпизод самоощущения
var CurrentSelfPerception *SelfPerception
/* Если появилась более важная задача и было открыто новое самоощущение,
то InterrauptedTaskSelfPerception - это стек для хранения отложенных самоощущений.
Здесь храняться 10 важных самоощущений, к к оторым нужно вернуться.
Возвращаются, вспомнив (RememberInterruppedSelfPerception(sp *SelfPerception)) всегда самую последнюю задачу
и после свпоминания она удаляется из стека InterrauptedTaskSelfPerception[i]=nil

!!! при появлении ОЧЕНЬ ВАЖНОЙ ЗАДАЧИ вызывать sp:=SaveCurrentSelfPerceptionForMoreImportantTask()
и инициализировать вновь созданную sp !!!
 */
var InterrauptedTaskSelfPerception[10] *SelfPerception

ФУНКЦИИ:
•	сохранение текущей SelfPerception в InterrauptedTaskSelfPerception если возникла более важная задача
•	Создание нового самоощущения в "кратковременной памяти" Бота на основе любой (но имеющейся) ветки Дерева и любого(но имеющегося) фрагмента эпизод.памяти
•	уточняется текущее состояние SelfPerception,
•	которое в более важные ммоенты, чем текущий, модифицируется (отложенная Тема сохраняется в предыдущем SelfPerception), но стараясь удерживать текушую ТЕМУ - Цель Доминанты.
•	Вспомнить отложенный из-за более важной задачи SelfPerception после решения этой важной задачи
•	Вспомнить произвольно пережитый SelfPerception
•	Вспомнить самоощущение для ветки Дерева