У меня есть задача сопоставить несколько событий (фактов) друг с другом некоторыми их свойствами. В результате события, соответствующие некоторому действию, должны быть сгенерированы. Действие может быть создано при сопоставлении событий всех существующих типов.Множественный алгоритм сопоставления событий
Есть ли какой-либо алгоритм, который можно было бы использовать для такой задачи? Или в любом направлении?
Благодаря
Пример: У нас есть несколько событий с различными типами и свойствами. Тип SEEN is Накопительное Событие (возможно объединение нескольких событий для соответствия) и типа НАЙТИ.
Event 1 (SEEN):
DATE="2009-09-30"
EYES_COLOR="BLUE"
LEFT_SOCK_COLOR="RED"
Event 2 (SEEN):
DATE="2009-09-30"
EYES_COLOR="BLUE"
RIGHT_SOCK_COLOR="GREEN"
Event 3 (FOUND):
DATE="2009-09-30"
EYES_COLOR="BLUE"
LEFT_SOCK_COLOR="BLUE"
RIGHT_SOCK_COLOR="GREEN"
PLACE="MARKET"
Event 4 (FOUND):
DATE="2009-09-30"
EYES_COLOR="BLUE"
LEFT_SOCK_COLOR="GREEN"
PLACE="SHOP"
Event 5 (FOUND):
DATE="2009-09-30"
EYES_COLOR="BLUE"
PLACE="AIRPORT"
Для вышеуказанных событий таких действий должны быть сформированы (сочинение совпавших событий):
Action 1_2_3:
DATE="2009-09-30"
EYES_COLOR="BLUE"
LEFT_SOCK_COLOR="RED"
RIGHT_SOCK_COLOR="GREEN"
PLACE="MARKET"
Action 2_4:
DATE="2009-09-30"
EYES_COLOR="BLUE"
LEFT_SOCK_COLOR="GREEN"
PLACE="SHOP"
Средство:
Event 1 + Event 2 + Event 3 => Action 1_2_3
Event 2 + Event 4 => Action 2_4
Event 5 does not match with anything.
Вы не достаточно точно определяете значение «ВИДЕО» и «НАЙДЕННО». Ваш пример неверен. Событие 1 вызывает LEFT_SOCK_COLOR = "RED". Событие 3 вызывает LEFT_SOCK_COLOR = "BLUE". Я не понимаю, как вы объединили эти два события. –
Пожалуйста, объясните правила, с помощью которых событие 3 может соответствовать действию 1_2_3. –
Извините за этот беспорядок, на самом деле событие с типом «SEEN» является кумулятивным событием. Это означает, что во время процесса сопоставления мы можем составить любое количество таких событий. –