Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Conspekt.doc
Скачиваний:
11
Добавлен:
31.08.2019
Размер:
1.39 Mб
Скачать

4.4Примеры применения принципа резолюции

ПРИМЕР N1: Введем 2 предиката:

1. OXIDE(x) "соединение x является окисью"

2. COLOR(x,y) "соединение x имеет цвет y"

Даны следующие факты: OXIDE(MgO) и COLOR(MgO,Белый).

Существует ли окись белого цвета ?

Вопрос на языке исчисления предикатов:

? Exist x ( OXIDE(x)/\COLOR(x,Белый) )

Преобразуем:

OXIDE(x) U COLOR(x,Белый)

Запишем исх. утверждения:

OXIDE(Mgo) COLOR(MgO,Белый) OXIDE(x)

U COLOR(x,Белый)

(отрицание ЦУ ) MgO x

OXIDE(MgO)

NIL

Если получим "NIL", то ответ ДА.

Чтобы получить ответ со значением переменной строят модифицированное дерево опровержений . В исх. множество добавляют еще и ЦУ.

OXIDE(Mgo) COLOR(MgO,Белый) OXIDE(x) U COLOR(x,Белый)

U OXIDE(x)/\COLOR(x,MgO)

MgO x

OXIDE(MgO) U OXIDE(MgO)/\COLOR(MgO,Белый)

OXIDE(MgO)/\COLOR(MgO,Белый)

ПРИМЕР N2: Пусть есть объект Х и он состоит из m-частей типа Y и этот объект Y состоит из n-частей Z, то очевидно, что X содержит M*N частей Z.

Предикат HP(X,M,Y) - x содержит М частей типа Y

Можно записать:

Каждый x (HP(x,M,Y)/\HP(y,M,Z)) HP(x,TIMES(M,N),Z)

Факты:

HP(чел,4,кон) -человек имеет 4 конечности

HP(кон,5,п) -конечность имеет 5 пальцев

Вопрос: запишем иначе

Exist x ( HP(чел,W,n) )

HP(X,M,Y) U HP(Y,N,Z) U HP(X,TIMES(M,N),Z)

HP(чел,W,n) U HP(чел,W,n)

@ = {чел=x,TIMES(M,N) W,п z}

HP(чел,M,Y) U HP(Y,N,п) U HP(чел,TIMES(M,N),п)

Факт 1:

HP(чел,4,кон)

4 M

кон Y

HP(кон,N,п) U HP(чел,TIMES(4,N),п)

Факт 2:

HP(кон,5,п)

5 N

HP(чел,TIMES(4,5),п) -т.е. человек содержит

4*5 = 20 пальцев.

На практике прежде чем строить модифицированное дерево доказательств(см.выше)сначала строят обычное дерево докзательства.

ПРИМЕР N3: Решение задач, требующих выполнения некоторых действий рассматриваемых как пр-п резолюций м.б. использован для планирования поведения роботов в пространстве состояний.

Дана следующая схема возможных маршрутов движения робота из т.а в т.d

c b d

   Нужно уметь описывать движение на

участке пути с помощью предикатов

S1 O S2

a  

O - некоторая функция, которая преобразует состояние S1 в состояние S2, т.е. S2=f(S1)

Если сформулируем предикат относительно S1,т.е. P(S1) ==> можно сформулировать и предикат относительно S2, т.е. Q(S2):

P(S1) --> Q(S2)

P(S1) --> Q( f(S1) ) - эта формула и есть запись

перемещения на элементарном

участке графа

Введем обозначения :

1.Предикат AT(x,s) - робот находится в п.(состоянии) x и состоянии S

2.Функция MOVE(x,y,s) -перейти из т. x в т. y

Итак

1.AT(a,S0) -находимся в т. а

2.AT(a,S1)-->AT(b,move(a,b,S1)) Это м.записать как ЦУ:

3.AT(b,S2)-->AT(c,move(b,c,S2)) Exist S AT(c,S)

4.AT(a,S3)-->AT(d,move(a,d,S3))

5.AT(d,S4)-->AT(b,move(d,b,S4)) Существуют ли состояния

при которых робот м.

находиться в т.с

с состоянием S ?

Тогда решение

__

AT(b,S2) U AT(c,move(b,c,S2)) AT(c,S)

S move(b,c,S2)

AT(b,S2)

AT(a,S1) U AT(b,move(a,b,S1))

S2 move(a,b,S1)

AT(a,S1) AT(a,S0)

S1 S0

NIL

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]