русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Применение метода резолюций.


Дата добавления: 2015-08-31; просмотров: 748; Нарушение авторских прав


Рассмотрим применение метода резолюций в доказательстве теорем и при планировании действий.

Доказательство теорем. Применим метод резолюций в доказательстве одной простой теоремы из теории групп.

В качестве исходной возьмем следующую аксиоматику теории групп:

F1: ("x,y,z)[(xy)z=x(yz)], F2: ("x,y)($z)(zx=y), F3: ("x,y)($z)(xz=y).

Предположим, что нам надо доказать теорему G: ($x)("y)(yx=y), т.е. что в группе существует правая единица.

Наша задача–установить, что формула G есть логическое следствие формул F1, F2, F3. Прежде, чем решать эту задачу, перейдем к другой сигнатуре. Введем символ трехместного предика P, который интерпретируется следующим образом:

P(x,y,z) означает, что xy=z.

В новой сигнатуре формулы F1, F2, F3 и G запишутся так:

F1/=("x,y,z)[(x,y,u)&H(y,,z,v)&P(x,v,w)®P(x,z,w)], F2/=("x,y)($z)P(z,x,y), F3/=("x,y)($z)P(x,z,y), G/=($x)("y)P(y,x,y).

Сформулируем множество T={F1,F2,F3,ØG}, каждую из формул этого множества приведем к сколемовской нормальной форме и удалим кванторы общности (конъюнкция в сколемовских нормальных формах не появится). Получим множество дизъюнктов D1,D2,D3,D4:

D1=ØP(x,y,u)ÚØP(y,z,v)ÚØP(x,v,w)ÚP(u,z,w), D2=P(f(x,y),x,y), D3=P(x,g(x,y)y), D4=ØP(h(x),x,h(x)).

Построим вывод пустого дизъюнкта из множества дизъюнктов D1,...,D4. Пусть эти дизъюнкты–первые дизъюнкты вывода. Заменим переменные в дизъюнкте D2, получим дизъюнкт D2/=P(f(x/,y/),x/,y/). Литералы P(x,y,u) и D2/ унифицируются подстановкой s1={x=f(x/,y/),y= x/, u=y/}. Применим правило резолюций к D1 и D2 (и указанным литералам), получим дизъюнкт

D5="P(x/,,z,v)ÚØP(f(x/,y/)v,w)ÚP(y/,z,w).



Далее, литерал P(f(x/,y/),v,w) и D2 унифицируются подстановкой s2={x/=x,y/=y,v=x,w=y}. Правило резолюций, примененное к D1 и D2, дает дизъюнкт

D6=ØP(x,z,x)ÚP(y,z,y).

Резольвентой дизъюнктов D3 и D6 будет дизъюнкт

D7=P(y,g(y/,y/),y).

(Для получения этой резольвенты заменим переменные в D3, получим D3=P(x/,g(x/,y/),y/) и используем подстановку s3={x=y/,z=g(y/,y/)}. Наконец, из дизъюнктов D4 и D7 с помощью подстановки s4={y=h(g(y/,y/)), x=g(y/,y/)} получаем пустой дизъюнкт.

Планирование действий. Отметим вначале одно свойство метода резолюций. Пусть сигнатура t состоит из двух символов двухместных предикатов P и Q, которые интерпретируются следующим образом: P(x,y) означает, что х–сын y, Q(x,z) означает, что х–внук z. Рассмотрим формулы:

F1=("x,y,z)[P(x.y)&P(y,x)®Q(x,z)], F2=("x)($y)P(x,y), G=("x)($z)Q(x,z),

смысл которых достаточно ясен.

Используя метод резолюций, покажем, что G есть логическое следствие F1 и F2. Приведем формулы F1,F2 и ØG к сколемовской нормальной форме, получим дизъюнкты:

D1=ØP(x,y)ÚØP(y,z)ÚQ(x,z), D2=P(x,f(x)), D3=ØQ(a,z).

Вывод пустого дизъюнкта получается довольно просто:

D4=ØP(a,y)ÚØP(y,z) ((D1 D3, {x=a}),
D5=ØP(f(a),z) (D2 D4 {x=a, y=f(a)}),
D6=□ ( D2 D5, {x=f(a),z=f(a))}.

Подстановка z=f(f(a)) означает, что дед элемента a есть отец элемента a. Таким образом, метод резолюций не только устанавливает факт логического следствия формулы G из формул F1 и F2, но еще и «подсказывает», как по данному х получить z такой, чтобы формула Q(x,z) была истинна.

Довольно часто интересующая нас переменная участвует не в одной подстановке, как в этом примере переменная z, а в нескольких. Для того, чтобы отследить все подстановки, в которых может изменить значение переменная, к формуле ØG добавляют литерал ответа ANS(z) и заканчивают вывод не пустым дизъюнктом, а литералом ответа.

В качестве примера использования метода резолюций в задачах планирования действий рассмотрим известную в теории искусственного интеллекта задачу об обезьяне и бананах. В задаче говорится об обезьяне, которая хочет съесть бананы, подвешенные к потолку комнаты. Рост обезьяны недостаточен, чтобы достать бананы. Однако в комнате есть стул, встав на который обезьяна может достать бананы. Какие ей надо совершить действия, чтобы достать бананы?

Задачу формализуем следующим образом. Комнату с находящимися в ней обезьяной, стулом и бананами будем называть предметной областью. Конкретной местонахождение в комнате обезьяны, стула и бананов будем называть состоянием предметной области. Рассмотрим два предиката P(x,y,z,s) R(z). Пусть

P(x,y,z,s) означает, что в состоянии s обезьяна находится в точке x, стул – в y, бананы – в z,
R(s) означает, что в состоянии s обезьяна взяла бананы.

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

ИДТИ(x,y,s) – состояние, которое получится из s, если обезьяна из точки x перешла в y,
НЕСТИ(x,y,s) – состояние, которое получится из s, если обезьяна перенесла стул из точки x в y,
БРАТЬ(s) – состояние, которое получится из s, если обезьяна взяла бананы.

Условия задачи запишутся в виде следующих формул:

F1=("x,y,z,s))[P(x,y,z,s)®P(u,y,z, (x,,,u,s))],

F2=("x,z,s)[P(x,x,z,s)®P(u,u,s, (x,u,s)],

F3=("x)[P(x,x,x,s)®R( (s))].

Пусть в начальном состоянии s0 обезьяна находилась в точке а, стул–в точке b, бананы–в точке c. Следовательно, к написанным формулам надо добавить формулу

F4=P(a,b,c,s0).

Надо показать, что формула G=($s)R(s) есть логическое следствие формул F1,F2,F3,F4. Из множества формул F1,F2,F3,F4,ØG получим множество дизъюнктов D1–D5 (к дизъюнкту, полученному из ØG добавлен литерал ответа ANS(s)):

D1=ØP(x,y,z,s)ÚP(u,y,z,ИДТИ(x,u,s)), D2=ØP(x,x,z,s,)ÚP(u,u,z,НЕСТИ(x,u,s)), D3=ØP(x,x,x,s)ÚR(БРАТЬ(s)), D4=P(a,b,c,s0), D5=ØR(s)ÚANS(s).

Последовательность дизъюнктов D1–D5 продолжаем до вывода литерала ответа:

D6=ØP(x,x,x,s)ÚANS(БРАТЬ(s)) (из D3 D5),
D7=ØP(x,x,u,s)ÚANS(БРАТЬ(НЕСТИ(x,u,s))) (из D2 и D6),
D8=ØP(x,y,z,s)ÚANS(БРАТЬ(НЕСТИ((y,z,ИДТИ(x,y,s)))) (из D1 и D7),
D9=ANS(БРАТЬ(НЕСТИ(b,c,ИДТИ((a,b,s0)))) (из D4 и D8).

Итак, для того, чтобы обезьяне взять бананы, надо сначала из точки а идти в точку b, затем из точки b нести стул в точку с и в точке с, встав на стул, взять бананы.



<== предыдущая лекция | следующая лекция ==>
Стратегии метода резолюций | 


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.87 сек.