Скачиваний:
28
Добавлен:
11.03.2015
Размер:
650.62 Кб
Скачать

Идея алгоритма унификации

Рассмотрим выражения P(a) и P(x).

Они не тождественны, т. к. в P(a) встречается константа a, а в P(x) на её месте переменная x.

Найдём рассогласование, а затем исключим его.

В данном случае рассогласование будет fa; xg.

Т. к. x переменная, а a константа, то можно заменить x на a и рассогласование будет устранено.

41 / 101

Идея алгоритма унификации

Рассмотрим выражения P(a) и P(x).

Они не тождественны, т. к. в P(a) встречается константа a, а в P(x) на её месте переменная x.

Найдём рассогласование, а затем исключим его.

В данном случае рассогласование будет fa; xg.

Т. к. x переменная, а a константа, то можно заменить x на a и рассогласование будет устранено.

42 / 101

Идея алгоритма унификации

Рассмотрим выражения P(a) и P(x).

Они не тождественны, т. к. в P(a) встречается константа a, а в P(x) на её месте переменная x.

Найдём рассогласование, а затем исключим его.

В данном случае рассогласование будет fa; xg.

Т. к. x переменная, а a константа, то можно заменить x на a и рассогласование будет устранено.

43 / 101

Идея алгоритма унификации

Рассмотрим выражения P(a) и P(x).

Они не тождественны, т. к. в P(a) встречается константа a, а в P(x) на её месте переменная x.

Найдём рассогласование, а затем исключим его.

В данном случае рассогласование будет fa; xg.

Т. к. x переменная, а a константа, то можно заменить x на a и рассогласование будет устранено.

44 / 101

Идея алгоритма унификации

Рассмотрим выражения P(a) и P(x).

Они не тождественны, т. к. в P(a) встречается константа a, а в P(x) на её месте переменная x.

Найдём рассогласование, а затем исключим его.

В данном случае рассогласование будет fa; xg.

Т. к. x переменная, а a константа, то можно заменить x на a и рассогласование будет устранено.

45 / 101

Множество рассогласований

Рассмотрим сначала процедуру нахождения множества рассогласований D непустого множества

выражений W = fE1; : : : ; Ek g. 1 Пусть сначала D = ?.

2Найти первую слева позицию, на которой не для всех выражений из W стоит´ один и тот же символ.

3Для каждого Ei 2 W : добавить в D подвыражение из Ei , которое начинается с символа, занимающего найденную позицию.

Пример

Для W =

P

x; f (y; z); a ;

P(x; a; y); P x; g

h k(x)

; f (a; x)

первая

 

 

 

 

 

 

 

позиция, на которой не все выражения состоят из одинаковых

символов пятая.

n o

Находим множество рассогласований: D = f (y; z); a; g h k(x) .

46 / 101

Множество рассогласований

Рассмотрим сначала процедуру нахождения множества рассогласований D непустого множества

выражений W = fE1; : : : ; Ek g. 1 Пусть сначала D = ?.

2Найти первую слева позицию, на которой не для всех выражений из W стоит´ один и тот же символ.

3Для каждого Ei 2 W : добавить в D подвыражение из Ei , которое начинается с символа, занимающего найденную позицию.

Пример

Для W =

P

x; f (y; z); a ;

P(x; a; y); P x; g

h k(x)

; f (a; x)

первая

 

 

 

 

 

 

 

позиция, на которой не все выражения состоят из одинаковых

символов пятая.

n o

Находим множество рассогласований: D = f (y; z); a; g h k(x) .

47 / 101

Множество рассогласований

Рассмотрим сначала процедуру нахождения множества рассогласований D непустого множества

выражений W = fE1; : : : ; Ek g. 1 Пусть сначала D = ?.

2Найти первую слева позицию, на которой не для всех выражений из W стоит´ один и тот же символ.

3Для каждого Ei 2 W : добавить в D подвыражение из Ei , которое начинается с символа, занимающего найденную позицию.

Пример

Для W =

P

x; f (y; z); a ;

P(x; a; y); P x; g

h k(x)

; f (a; x)

первая

 

 

 

 

 

 

 

позиция, на которой не все выражения состоят из одинаковых

символов пятая.

n o

Находим множество рассогласований: D = f (y; z); a; g h k(x) .

48 / 101

Множество рассогласований

Рассмотрим сначала процедуру нахождения множества рассогласований D непустого множества

выражений W = fE1; : : : ; Ek g. 1 Пусть сначала D = ?.

2Найти первую слева позицию, на которой не для всех выражений из W стоит´ один и тот же символ.

3Для каждого Ei 2 W : добавить в D подвыражение из Ei , которое начинается с символа, занимающего найденную позицию.

Пример

Для W =

P

x; f (y; z); a ;

P(x; a; y); P x; g

h k(x)

; f (a; x)

первая

 

 

 

 

 

 

 

позиция, на которой не все выражения состоят из одинаковых

символов пятая.

n o

Находим множество рассогласований: D = f (y; z); a; g h k(x) .

49 / 101

Множество рассогласований

Рассмотрим сначала процедуру нахождения множества рассогласований D непустого множества

выражений W = fE1; : : : ; Ek g. 1 Пусть сначала D = ?.

2Найти первую слева позицию, на которой не для всех выражений из W стоит´ один и тот же символ.

3Для каждого Ei 2 W : добавить в D подвыражение из Ei , которое начинается с символа, занимающего найденную позицию.

Пример

Для W =

P

x; f (y; z); a ;

P(x; a; y); P x; g

h k(x)

; f (a; x)

первая

 

 

 

 

 

 

 

позиция, на которой не все выражения состоят из одинаковых

символов пятая.

n o

Находим множество рассогласований: D = f (y; z); a; g h k(x) .

50 / 101