Идеальная топология дерева повторений для механизма правил
Как вы знаете, многие обработчики правил используют алгоритм Rete при обработке правил, и этот алгоритм создает дерево так называемое дерево Rete.
Какая топология идеальна для дерева Rete, чтобы обеспечить лучшую производительность обработки правил? Другими словами, я хочу знать древовидную топологию, которой набор правил должен лучше соответствовать для лучшей производительности.
2 ответа
Короткий ответ заключается в том, что на производительность влияет количество правил и объектов, количество тестов, порядок упорядочения тестов в ваших правилах и количество тестов / условий, общих для правил.
Вы должны переписать правила для оптимальной производительности:
- Переупорядочение тестов и условий так, чтобы самые различающие условия были перенесены в начало правила
- Условия обмена
Смотрите документацию по корректировке условий IBM ODM.
Также следует уменьшить количество объектов, которые должны оцениваться по правилам, и количество тестов.
Для справки о Rete и IBM ODM:
Пример структуры дерева Rete см. В документации по структуре сети RetePlus IBM ODM.
Что влияет на производительность приложения Decision Server: RetePlus
RetePlus предназначен для оптимизации оценки большого количества правил для большого количества объектов. RetePlus фильтрует тесты так, чтобы не относящиеся к делу тесты не оценивались. Тесты могут быть разделены между правилами, которые используют аналогичные тесты, поэтому их не нужно переоценивать для всех правил.
Для лучших результатов:
Общие тесты на разных объектах являются общими.
Количество проведенных испытаний сведено к минимуму.
Производительность ухудшается, когда в одной оценке слишком много переменных определений и условий.
Тест использует меньше памяти.
Проще говоря, если вы хотите использовать RetePlus
алгоритм в вашей оркестровке, используйте только Decision Trees
бизнес правила.
Это намного быстрее, если использовать этот способ. Хотя вы можете использовать в сочетании с другими алгоритмами, а также Sequential
(за Action Rules
, в этом случае).
Таким образом, ваше решение может быть частью правил действий (с Sequential
) и расстаться с Decision Tables
(с RetePlus
).
Надеюсь это поможет.