ЛМвИИ (1086253), страница 15
Текст из файла (страница 15)
Тогда он представляет один конкретизированныйлитерал, например: Рисует(Миша). Такой дизъюнкт назовется фактом. Таквыражаются факты в Пролог-программах, конкретизации отношений в реляционныхбазах данных.• Литерал Q содержит переменные. Тогда он представляет более общую информацию отермах (переменные рассматриваются универсально квантифицированными).• Негативные хорновские дизъюнкты.Дизъюнкт, не содержащий ни одного позитивного литерала назовется негативным.Если в таком дизъюнкте один негативный литерал ¬Р, то он представляет элементарнуюнегативную информацию. Возможны два случая:• Негативный литерал не содержит переменных. В этом случае он представляет собойэлементарный негативный факт. Например, ¬Рисует(Миша).• Негативный литерал содержит переменные.
В этом случае он представляет негативнуюинформацию о всех индивидных константах. В базах данных такой литерал долженобрабатываться как ограничение целостности.Дизъюнкт, содержащий более одного негативного литерала, отражает более сложнуюнегативную информацию. Например, ¬(Летает(х)^Ползает(х)). Интерпретация этогодизъюнкта такова: "ни один объект не может быть одновременно и летающим и ползающим".В логическом программировании негативный хорновскии дизъюнкт представляется ввиде вопроса, задаваемой системе вывода. Чаще позитивная информация, для которойсформулировано отрицание, обосновывается методом от противного.Пустой дизъюнкт.При m=0 и n=0 имеем пустой дизъюнкт, значение истинности которого всегда ложно, ипоэтому никогда не представлен в базе данных.В логическом программировании системы выводимости, использующие методдоказательства от противного, ориентированы на установлении противоречия путем полученияпустого дизъюнкта.Заметим, что в логическом программировании используется более выразительный язык,чем язык хорновских дизъюнктов.
Например, разрешается внутри условных частей дизъюнктовиспользовать оператор отрицания через конечную неудачу. Кроме того могут включаться такназываемые расширенные дизъюнкты, которые в антецеденте импликации могут содержатьнегативные литералы.Особенность применения метода резолюции к хорновским дизъюнктам определяетсятем, что правила в Прологе представляются именно в виде хорновских дизъюнктов, иэффективность метода резолюции в этом частном случае обеспечивается.Задача вывода может быть сведена к проверке какой-то формулы, называемой целью,логически выводимой из фактов и правил. Для хорновских дизъюнктов метод резолюции посуществу не претерпевает никаких изменений, только рассуждения ведутся в понятиях фактов,правил и цели (отрицания цели).
Тогда выполнимость множества хорновских дизъюнктовможет быть проверена с помощью следующего алгоритмаВ множестве S выбираем факт Р и какой-то дизъюнкт С из S, содержащий ¬Р.Очевидно, будем иметь резольвенту, скажем, R. Заменяем исходное множество S на новое,представляющее логическую разность S с С и объединение с резольвентой:(S\{С})∪({R}).На каждом этапе удаляется одна литера. По существу R - это дизъюнкт С, из которогоудален символ ¬Р.
Отсюда следует, что как бы ни выбирались (т.е. начало алгоритма) Р и Свыполнение алгоритма конечно. Если число литер в исходном множестве S равно N, то циклбудет выполняться не более N раз.В результате выполнения алгоритма возможны два варианта:• либо порождается пустой дизъюнкт,• либо получено новое множество S'', не содержащее дизъюнктов, равных Р и С. Поолькурезольвенты получаются из дизъюнктов, принадлежащих S, т.е. резольвенты являютсяследствиями из S-дизъюнктов, вывод пустого дизъюнкта (всегда ложного) означаетневыполнимость S.Второй случай означает невозможность достижимости пустого дизъюнкта, а значитвыполнимость S.
Тогда множество дизъюнктов, полученных в результате выполненияалгоритма, называется канонической моделью S.В заключение этой главы заметим, что системы логического программирования,подобные языку Пролог, пользуются языком хорновских дизъюнктов. Пролог-программасостоит из точных хорновских дизъюнктов. Интерпретатор Пролога является системойвыводимости, которая в качестве правила вывода использует правило резолюций.Доказательства (обоснования вывода) осуществляется от противного. Чтобы установить, чтоформула ∃y1 ...yK (Р1^...^Pm ) является логическим следствием программы на Прологе,интерпретатор пытается доказать, что присоединение отрицания этой формулы крассматриваемой базе знаний, которую обрабатывает Пролог-программа, приводит кпротиворечию.Это эквивалентно тому, что добавление к программе хорновского дизъюнкта безконсеквента ¬P1v...v¬Pm (а он эквивалентен формуле ¬(P1^...^Pm )) позволяет вывести пустойдизъюнкт.Импликативная форма хорновского дизъюнкта, как отмечалось, соответствует правилуПролог-программы, а конкретизированный позитивный литерал - факту.
Тогда из следующихформул можно сформировать следующую элементарную Пролог-программу:исходные формулы Пролог-программапианист(X)→музыкант(Х)музыкант(X):-пианист(X).пианист(н_петров).пианист(н_петров).На вопрос является ли Н. Петров музыкантом на основе метода резолюции будет сделанследующий вывод:1. ¬пианист(Х)\/музыкант(Х)2. пианист(н_петров)3. ¬музыкант(н_петров)4. пианнст(н_петров) - резольвента из 1 и 3.5.
□ из 2 и 4.Ответ системы - да.Для достижения большей выразительности языка, Допускают, как уже отмечалось,присутствие негативных выражений в антецедентах правил. С этой целью используютспециальный предикат not. Эта конструкция использует принцип отрицания через конечнуюнеудачу, который формулируется так: если задан позитивный литерал R, то предикат not(R)достигается и принимает значение истинности И тогда, когда не удается найти конечногодоказательства для R на основе информации, имеющейся в рассматриваемой системе. Востальных случаях предикат not(R) принимает значение Л.музыкант(X):-пианист(X), not(аномалия(X)).аномалия(X) :-нет_слуха(Х).пианнст(н_петров).?- музыкант(н_петров).
(Вопрос к системе, т.е. доказываемая теорем).Первое правило может быть интерпретировано так: "всякий X считается музыкантом,если он пианист (играет на рояли) и у него нет аномалий в виде отсутствия, в частности,музыкального слуха".На поставленный вопрос система ответит да, поскольку значение (аномалия(X)) неудается вывести из имеющейся информации, но предикат not(аномалия(н_петров)) достигаетсяи получает значение И.Добавим к программе факт - нет_слуха(д_федюшин):музыкант(X):-пианист(X), not(аномалия(X)).аномалия(X) :-нет_слуха(Х).пианнст(н_петров).нет_слуха(д_федюшин)?- музыкат(д_федюшин).Ответ системы: нет.Предикат not(аномалия(д_федкшин)) потерпит неудачу, так как предикатаномалия(д_федюшин) будет достигнут.
И, таким образом, будет отвергнуто утверждениемузыкант(д_федюшин).Упражнения.Звездочками отмечены задания, для которых приведены Решения.* Записать на языке предикатов:a) все студенты учатся;b) некоторые студенты отличники;c) для любого числа можно найти большее число;d) х+у=ze) всякий предмет обладает свойством А;f) нечто обладает свойством А ;g) всякий предмет не обладает свойством А;h) нечто не обладает свойством А;i) каждое рациональное число есть действительное число;j) некоторые рациональные числа не являются действительными.2. * Попытайтесь объяснить, почему в упражнениях 1a и 1i использована импликация, а в1j — конъюнкция.3. * Записать на языке предикатов:a) детям до 16 лет D(x) и роботам R(x) входить В(х) запрещено;b) всем детям до 16 лет D(x) и роботам R(x) надлежит получить справки С(х).4.
* Записать на языке предикатов:a) всякое число, делящееся на 12, делится на 2, 4 и 6;b) каждый студент выполнил, по крайней мере, одну лабораторную работу;c) через две разные точки проходит единственная прямая.5. Записать на языке предикатов:a) если нельзя решить задачу на данной ЭВМ, а задача важна для пользователя, тосуществует возможность разбить эту задачу на подзадачи или убедитьпользователя, что решать задачу не имеет смысла;b) * каждый студент (С(х)) - спортсмен (S(x)) имеет какого-нибудь кумира у (В(х, у))среди киноартистов (К(у));c) не всегда из того, что х лучше у, а у лучше z следует, что х лучше z,d) "Мой дядя самых честных правил,Когда не в шутку занемог,Он уважать себя заставилИ лучше выдумать не мог".6.
* При каких условияхa) ∀хP(x)≡∃xP(x);b) ∃xP(x)≡0, a ∀xP(x)≡l.7. Построить возможные варианты отрицаний предложений:a) все студены - отличники;b) есть студенты - отличники;c) существует число, которое больше всех остальных чисел.8. * Этот ставший классическим пример, иллюстрирует дополнительные сложности,связанные с отрицанием: известно, что предложение "Нынешний король Франции лыс"не соответствует действительности.
Как это записать на языке предикатов?9. Придумать содержательные интерпретации формул:a) ∀x(∃y(P(x, y)&Q(y)→R(х, у));b) ∃х(Р(х)→R(x));c) ∀x(P(x)^R(x));d) ∀x(P(x) ↔ ∀х(∃уQ(x, y)→R(x)).10. Доказать, что в общем случае разноименные кванторы нельзя переставлять местами( т.е. нельзя доказать, что ∀x∃yP(x, y) ≡ ∃y∀xP(x, y)).1.11. Получить дизъюнкты для аксиом:a) * ∀xP(x)↔∃yQ(y).b) ∃x(∀yP(x, y)→∃z(Q(x, z)→R(z)).c) ∀x(∀y, z, v(R(x, y, z, v)^L(y, z)d) ∀x, y, z(P(x)^Q(x, y)v¬R(z)).e) ∃x, y, z(P(x)v¬Q(x, y)→R(z)vM(y)).f) ∀хР(х) ^ ∃хQ(x) v ∀x(R(x) → Р(х)).g) * ∃хР(х) ^ ∃х R(x).h) ∀хР(х) ^ ∀xR(x).i) ∃хP(x)v∃xR(x).j) * ∀xP(x)v∀xR(x).k) (∃xP(x)v∀yQ(y))^(∀x, yR(x, y)v∃yL(y)).12.
Для данной системы аксиом доказать теорему,a) A1 . ∀x, y(P(a, x, x)vP(b, y, y)).Доказать теоремуВ2 . ∃x∀y∃zP(x, y, z).b) * A1. ∀x(¬P(x)vR(x)vQ(g(x)));A2 . ∀х(Rх)→L(х)^М(х));А3 . ∀x(q(x)→L(x)^D(x)),A4 . ∀x(P(φ(x))vR(η(x))).Доказать теорему:B5 . ∃х, y((L(х)^М(х))v(D(у)^L(у))).c) * A1 . ∀x(∃y(S(x, y)^M(y)→∃y(L(y)^R(x, y))).Доказать теорему:B2 . ¬∃xL(x)→∀x, y(S(x, y)→¬M(y)).d) A1 . ∀y(S(y)→C(y)).Доказать теорему:B2. ∀x(∃y(S(y)^R(x, y)) → ∃z(C(z)^R(x, z))).e) * A1 .
∀x(P(x)→P(f(x)))Доказать теорему:В2 . ∃х¬Р(х).f) A1 . ∀xB(x);A2 . ∀x(B(x)→C(x));А3 . C(x)→D(b);A4 . ¬∃x(D(x)^E(y)).Доказать теорему:B5 . ∀х, у(С(х)^¬Е(у)).13. Для упражнений п.2 преобразовать теоремы в вопросы и получить ответы с помощьюметода резолюции.14. Получить ответ с помощью метода резолюции:a)1. Все студенты — люди.2. Петя - студент.Вопрос: Кто человек?b)1. Все, что обладает свойством Р, имеет свойство R.2. Все, что обладает свойством R, имеет свойство Q.Вопрос: Существует ли нечто, что обладает свойством Р или обладает свойствомQ?c)1. Если х есть часть у и у есть часть z, то х есть часть z.2.
Палец есть часть кисти руки.3. Кисть есть часть руки.d) Вопрос: Частью кого является рука ?e) *1. Все отличники не имеют "хвостов".2. Некоторые двоечники имеют "хвосты".Вопрос: Существует ли двоечник, который не является отличником ?f)1. Кто ходит в гости по утрам, тот поступает мудро.2. Если у кого угодно есть воздушный шарик, то он ходит в гости по утрам.3. У Пятачка есть воздушный шарик.Вопрос: Кто поступает мудро ?g)1. Если робот обработал деталь, то ее забирает штабелер.2.
Если деталь поступила на обработку, то ее обработает робот.3. Если человеку нужна деталь, то она поступит на обработку4. Человеку нужна втулка.Вопрос: Что заберет штабелер ?h)1. Если пассажир сел в самолет, на который ему удалось купить билет, и этотсамолет взлетел, то пассажир думает, что данный самолет разобьется.2. Если пассажир не сел ни на какой самолет или самолет не взлетел, тобезопасность пассажира гарантируется.3. Безопасность пассажира Васи не гарантируется.Вопрос: Кто думает, что самолет, на который ему удалось купить билет,разобьется ?i) *1. Всякая большая программа содержит подпрограммы.2.
Для всех программ существуют программы такие, что если программанебольшая, неструктурированная и не содержит подпрограмм, то программа иподпрограмма все равно не соизмеримы по сложности.3. Если программы и подпрограммы соизмеримы по сложности, то значитподпрограммы структурные или большие.4. Существуют программы, соизмеримые по сложности с подпрограммами.5. Программа pI неструктурная.6. Если программа содержит подпрограммы, то они находятся в однойбиблиотеке.Вопрос1: Какая программа большая ?Вопрос2: Какая подпрограмма находится в одной библиотеке с pI ?j) Придумать новые вопросы и получить ответы для задачи 4,з.15.
Доказать теорему и получить ответ ОТВ.a) * Аксиомы:1. Некоторые пациенты любят своих докторов.2. Ни один пациент не любит знахаря.Доказать терему:3. Никакой доктор не является знахарем.b) Аксиомы:1. Если х ребенок (дитя) для у, то у родитель х.2. Каждый ребенок является ребенком своего родителя.Вопрос:3.
Для любого л кто является его родителем?c) Аксиомы:1. Каждый объект а, находящийся в некоторой точке у в каком-то состоянии z,может быть перемещен в другую точку (без промежуточных точек) поднекоторым воздействием.2. Конкретный объект находится в фиксированной точке в определенномсостоянии.Вопрос:3. 3. Каково действия по перемещению объекта из точки а в точку b?.