В последние несколько дней я думал об этой проблеме, не находя оптимального решения, отсюда и этот вопрос.
Допустим, у нас есть набор из N переменных, которые пользователь может составить, чтобы создать список правил и выполнить следующее действие, например:
variables V_1,V_2,V_3
V_1 > 5 -> "Turn left"
V_2 < 6 -> "Turn right"
1 < V_1 < 4 -> "Continue straight"
V_1 = 0 AND V_2 > 6 AND V3 > 5 -> "Go backwards"
default -> "Stay"
Переменные не обязательно должны быть целыми числами, и предположим, что все правила состоят из списка предложений AND, за которыми следует действие.
То, что я хочу сделать, - это построить дерево решений, которое позволило бы мне быстро обработать ввод (0,7,9) и вернуть правильное действие.
На данный момент моя единственная идея состоит в том, чтобы разделить пространство переменных и посмотреть, куда подходит состояние ввода, но это кажется медленным решением: кто-нибудь знает что-то, что может быть быстрее?