Пакет psy_MentalsAutomatizm


Ментальные автоматизмы - принципы, правила: действия, которые возможны, нужны или недопустимы в данных условиях.
Сопутвут всегда - осознанию текущего понимания.
Мент.автоматизмы - это - "руки" Гомункулуса или действия мысли:
вспомнить образ, поставить задачу (в контексте текущей мотивационной Цели), выполнить моторные действия.

Ребенку: Скажи МАМА! с акцентом на МАМА  Он не понимает, пытается что-то делать в ответ и т.п. но не получает поощрения от этого и не запоминает такой ответ.
Много раз Скажи с разными словами.
Если ребенок вдруг повторит слово, то его поощрят, теперь на слово Скажи он будет знать, что нужно что-то повторять.
И вот так пока не наработается автоматизм на Скажи (если не последует слово, то вопрос: Что сказать?).
В дереве на слово Скажи формируется понимание того, что нужно сделать в ответ в виде мент.автоматизма, а не бессознательного моторного: нужно выдать слово, следующее после Скажи.
Мент.автоматизм выполняет вычленение слова после Скажи и выдает его на Пульт если этому ничего не мешает. Т.е. в мент.автоматизме сформировалась та последовательность действий, которая получила поощрение.
Более элементарные мент.автоматизмы могут выдавать произвольные слова ан Пульт и их сочетания.
Другой автоматизм может связать выдачу слова со словом Скажи: нужно выдать слово.
третий автоматизм делает связь между Скажи и тем, что нужно выдать?
В результате мент.автоматизм по слову Скажи выполняет последовательность этих три более элементарных автоматизмов.

Ментальный автоматизм возникает сначала как прототип моторного, но может развиваться на стороне Гомункулуса.
Мент.автоматизмы второго типа конструируются на уровне творчества.

ПОДДЕРЖИВАЕМЫЕ ТИПЫ МЕНТАЛЬНЫХ АВТОМАТИЗМОВ:

Тип 1. прототип моторного автоматизма, который может быть запущен на исполнение:
Snn:24243,1234,0,24234,11234|Dnn:4,12
(последовательность взята из MotAutomatizm struct)
В автоматизмах типа 1: не может быть уже никаких других видов действий, а только последовательность моторного автоматизма

Тип 2. запуск ментального действия (из terminal_actions_psy.go). 
ПРИМЕР:
Sequence="001" - запустить мент.действие с ID=10001 - Вспомнить самоощущение по узлу Дерева
при этом в текущем самоощущении CurrentSelfPerception 
прописывается целевой параметр MentalAutomatizmParameter=322 - 
т.е. в данном случае функция RememberSelfPerceptionFromNodeID должна брать оттуда nodID=322
ПРИМЕР:
Sequence="1002" - запустить мент.действие с ID=10002 - Прогноз по эпиз.памяти от активной ветки Дерева
при этом в текущем самоощущении CurrentSelfPerception 
прописывается целевой параметр MentalAutomatizmResult строка результата 
и Бот знает какой формат у MentalAutomatizmResult в зависимости от MentalAutomatizmParameter 
В данном случае функция вернет строку с числом - результатом прогноза.
_____________________________

ПОКА НЕ РЕАЛИЗОВАНО Мент.автоматизмы могут быть трех видов:
1. принципы - правила сопоставлений и обобщений - отражение причин и следствий. Берутся из наблюдений
и отзеркаливания чужих действий. Каждое слово имеет свой ExperienceID. Его TnodeID==0
2. правила конструирования ментальных автоматизмов для конструирования 3-го типа мент.автоматизмов. Его TnodeID==0
3. правила конструирования мент.автоматизмов для создания предположительного моторного автоматизма,
в том числе фразы по правилам грамматики для достижения мотивационной цели.
При этом сразу создается и привязывается моторный автоматизм с Result=0

СТРУКТУРА ментального автоматизма:
type MentAutomatizm struct {
	ID int
/* Автоматизм может быть не иметь TnodeID !!!
*/
	TnodeID int

// уверенность в последствии реагирования - после экспериментов
	Result int // -10 0 +10 прибавляем ++ если удачно, убавляем -- если неудачно

// Тип автоматизма (1,2,3...)
	Type int

/* Цепочка последовательности внутренних операций через | в формате:
ID операции : ID параметра операции  Например:
	58|1:12|3:12,14,2|
	*/
	Sequence string

/* после удачного ОКОНЧАНИЯ этого автоматизма запустить следующий
!!! сделать ожидание окончания данного автоматизма в TodoMentAutomatizm запуск TodoNextMotorsAutomatizm
	   - через хомункулуса, т.е. тот может прервать выполнение цепочки
	*/
	NextID int
/* 1 - еще не проверенный опыт:
	   предположительный, сфантазированный или отзеркаленный
	*/
	Hypothesis int
}
/////////////////////////////////////////////////////

ПЕРЕМЕННЫЕ:
// ассоциативный массив м.автоматизмов
var MentalsAutomatizm=make(map[int]*MentAutomatizm)
var RunMentAutomatizmPulsCount=0 // активность ментального автоматизма в чисде пульсов
var RunMentalAutomatizm *MentAutomatizm
var RunMentAutomatizmExperiment=0 // 1 - этот RunMentalAutomatizm – экспериментальный

ФУНКЦИИ:
•	загрузка автоматизмов из файла
•	запись в файл
•	создание нового ментального автоматизма
•	список всех мент.автоматизмов для ID узла Дерева
•	выполнить последовательность ментального автоматизма
•	найти первый попавшийся подходящий по первым двум условиям узла Дерева с точно такой же последовательностью действий