Сеть Rete без бета-сети?

Я пытаюсь нарисовать сеть Rete для примера правила, которое не имеет привязки между переменными в разных шаблонах. Я знаю, что бета-сеть используется, чтобы убедиться, что переменная Bend в разных шаблонах согласована.

(defrule R1
  (type1 c1 c2)
  (type2 c3)
 =>
)

(defrule R2
  (type2 c3)
  (type3 c4 v1)
  (type4 c5 v1)
 =>
) 

В R1 между двумя паттернами нет связанных переменных, как мне тогда объединить их результат в сети Rete? В R2 два правила имеют связанную переменную, а третье — нет. Как совместить три правила в сети? Я искал пример сети Rete для такой ситуации, но не нашел. Я попытался нарисовать сеть, и ниже моя сеть. Это правильно?

ОБНОВЛЕНИЕ: новая сеть основана на ответе Гэри

введите описание изображения здесь Спасибо


person Salahuddin    schedule 26.08.2017    source источник


Ответы (1)


Бета-узлы сохраняют частичные совпадения независимо от того, указаны ли переменные в шаблонах, которые необходимо проверить на непротиворечивость. Привязки переменных служат только для фильтрации частичных совпадений, хранящихся в бета-памяти. Если переменных нет, то все сгенерированные частичные совпадения будут храниться в бета-памяти.

Ваша диаграмма должна выглядеть так:

a1    a2   a3   a4
  \  /  \  /    /
   b1    b2    /
   |       \  /
   r1       b3
            |
            r2
person Gary Riley    schedule 26.08.2017
comment
Спасибо Гэри за ответ. Это проясняет для меня картину. Должна ли быть бета-память после каждого бета-узла или только в том случае, если есть больше операций соединения? Я имею в виду, даже с последним узлом соединения должна быть бета-память? Я обновил свой вопрос с измененной сетью, скажите, пожалуйста, если это прямо сейчас. Большое спасибо - person Salahuddin; 27.08.2017
comment
Я бы не сказал, что существует каноническая реализация алгоритма rete. Есть несколько вещей, таких как совместное использование узлов и частичные совпадения, которые должны присутствовать, но различные инструменты, реализующие rete, используют методы различий. Сопоставление продукции Doorenbos для больших систем обучения, report-archive.adm.cs.cmu.edu/anon/1995/CMU-CS-95-113.pdf содержит действительно хороший обзор различных реализаций rete. С каждым узлом в бета-сети будет связана бета-память, независимо от того, содержат ли связанные шаблоны переменные. - person Gary Riley; 28.08.2017