Попробую реализовать следующую штуку, подобную семантической сети.
База данных на 2 байта индексов, по два байта каждый.
Элементы БД будут содержать индекс байта(0-255), ACSII символа или структуры, которую я опишу ниже.
Массив структур содержащий структуры следующего описания:
node STRUCT
parent dd
weight db
data dw
node ENDS
Что в ней описано - две переменные указывающие на предыдущие данные и данные в БД и две переменные хранящие состояние связи 0 - нет связи.
Алгоритм работы с базой данных:
Ищем соответствие входных данных символу, байту или данным на которые указывает в структуре на которую указывает элемент data и возвращаем индекс найденного элемента.
Если нет соответствий - ищем его среди структур в том же элементе структуры, добавляем в БД элемент с индексом соответствующей структуры, символа или байта.
Алгоритм работы со структурами.
Исходим из принципа "if A then B".
Если после структуры A структура B тогда увеличиваем вес связи, иначе - уменьшаем.
Находим данные(А) в структурах.
Запоминаем индекс структуры.
Принимаем следующие данные(B).
Ищем среди потомков структуру с индексом предка равным индексу предыдущей найденной структуры с имеющую максимальный wtight(вес).
Если находим - смотрим, чему равен элемент data.
Если данные равны B - увеличиваем weight потомка (не переполняя его) и наоборот в противном случае.
Если не находим ничего - добавляем потомка и даём ему weight равный 0.
На данном этапе получиться должна вероятностная сеть из последовательных элементов.
Но это только упорядоченные данные.
Чего не хватает - изменения вероятности одного элемента другими элементами, медиации с помощью глобальных переменных, накопления вероятности.
Что будет если нехватку компенсировать - получится грубая, но правильная вероятностная модель(искусственная нейросеть), в которой все последовательности будут образовывать разветвляющиеся петли(циклы), зависящие от состояния сенсорной карты.
Можно упрощать - добавлять директивы, терминаторы, стимуляторы, угнетатели, классы(например "хорошее дело" и "плохое занятие") для последовательностей, которыми задавать ход обучения сети(изменение весов связей)(например использовать пару слов "хорошо" и "плохо" вызывая определённые реакции сети), использовать текст, последовательности данных или макросы в вместо одиночных байт информации в БД, использовать команды в качестве входной и выходной информации, перекладывая реализацию обработки входной информации и выработки алгоритма действий на иные программные и\или аппаратные средства и т.д.
Что вы думаете по этому поводу?