Мне нужно реализовать то, что для меня выглядит как дерево решений (хотя поиск по этому термину возвращает сообщения о выявлении влияющих факторов в процессе принятия решений - а это не то, что мне нужно).
Система, которую я создаю, будет отрабатывать гарантийные сроки, чтобы обеспечить установку продукта на основе некоторых критериев.Требуется создать набор возможных векторов (например, шаг установки, профиль, местоположение, тип материала и т. Д.) И чтобы эти векторы были собраны пользователем в древовидную структуру:
-- Profile == corrugate (warranty = 20 years)
-- Pitch >= 0 && < 5 (warranty = 2 years)
-- Pitch >= 5 && < 20 (warranty = 10 years)
-- Environment == coastal && distance <= 500 meters (warranty 2 years)
Это простой случай, но теория заключается в том, что я могу затем пройтись по этому дереву, когда придет время выяснить гарантийный срок, а затем выбрать наименьшее значение, которое дерево производит с учетом предоставленной информации.
Прямо сейчас я могу видеть, что это хранится в виде дерева в базе данных (это приложение Rails) и просто написать какой-то метод, чтобы пройтись по дереву и решить, но я хотел знать, есть ли лучший способ решения этой проблемы?
Мне придется повторить себя позже в проекте, когда я также реализую другое дерево решений, которое решит, нуждается ли гарантийное приложение в дальнейшей проверке нашей командой по гарантии.В этом случае результат для каждого узла будет просто истинным или ложным.
Поскольку это довольно важная часть приложения, я бы хотел, чтобы структура была правильной в первый раз :) И, возможно, узнать что-то новое вместекстати :) 1012 *