пытается реализовать соответствие, которое является ограниченной формой унификации.Соответствие искусственному интеллекту, унификация
пытается совместить две формулы, если мы сможем найти замены для переменных, входящих в формулы, так что они синтаксически эквивалентны .
Мне нужно написать функцию, которая определяет, соответствует ли константа , соответствующая основному термину, такой как Brother (George) и шаблон , соответствующий количественной формуле, такой как Brother (x). Если они соответствуют функции, возвращает набор подстановок, называемых привязками , которые преобразуют переменные в термины. Постоянная соответствует другой константе, если они равны . Несвязанная переменная (в настоящее время без привязки) соответствует любой формуле. Связанная переменная соответствует константе, если константа и значение , к которым привязана переменная, равны.
примеров:
матч (Любление (собака (Fred), Фред)
Любления (х, у))
верно с й = Dog (Fred) и у = Фред
еще один
матч (Loves (Dog (Fred), Фред)
Loves (х, х)
терпит неудачу
Почему бы вам не использовать пролог? Он поставляется с унификацией бесплатно – dpalma
Реализовать как регулярное выражение? На каком языке? Sed? Perl? Grep? К сожалению, для нас существуют различные варианты регулярных выражений. – Beta
пытается сделать в Python? – user3769499