Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Логические модели представления знаний. При традиционном подходе к представлению информации для некоторой задачи приложений системный аналитик составляет алгоритм ее решения в виде процесса, а также явно задает требуемые операции и отношения между сущностями. Причем такое описание задачи неотделимо от процесса ее решения, а соответствующие операции и отношения определяются указанием конкретного способа их вычисления.
Основное отличие логического способа представления знаний о ПО заключается в отделении средств описания задачи от процедур вычисления. Логическое представление не является описанием процесса вычислений. Оно не содержит ни присваиваний, ни условных выражений, ни циклов. Логическое представление фрагмента ПО обычно представляет собой совокупность правил, определяющих понятия и отношения между ними. Таким образом, в основе логического представления лежит идея описания знаний о ПО в виде некоторого множества утверждений, выраженных в виде логических формул, и получение решения построением вывода в некоторой формальной (дедуктивной) системе. Интерпретатор логических выражений, пользуясь логическим выводом, сам строит необходимую цепочку вычислений на основе исходного описания.
Вычисление результата решения проблемы соответствует такому доказательству существования искомого объекта, когда требуемый объект строится явно.
Напомним, что связь между вычислениями и логикой можно кратно выразить следующей формулой:
Алгоритм = Логика + Управление,
где «Логика»» обозначает ту часть программы, которая моделирует структуру предметной области, а «Управление» реализуется интерпретатором, который делает выводы из логической части программы.
Значение логического подхода заключается в возможности построения интерпретатора, работа которого не зависит от логических формул, описывающих ПО, что принципиально отличается от традиционного программирования, когда управляющая структура уникальна для каждой вновь создаваемой программы.
Синтаксис логического способа представления знаний. Правила в логическом представлении имеют вид
Р0←Р1,..,Рп (1)
где Р0, Р1,..., Рn — атомарные формулы.
Определение 1. Логическая формула называется атомарной, если она имеет вид P(t1,…,tn), где Р — n-арный предикатный символ, a t1, t2,…, tn — либо переменная, либо константа, либо составной, терм вида f (t1 t2,…, tn), где f — n-арный функциональный символ.
Определение 2. Термами называют некоторые сущности, которые могут быть простыми (простой терм вида 0 и сложными (составной терм вида f (t1, t2,.., tn)).
В формуле (1) Р0 называют целью, a P1, Р2,…, Рn —телом правила. Предикаты Р1, Р2,…, Рn — условия, которые должны быть выполнены, чтобы достижение цели Р1 стало успешным.
Когда n=0 (тело пусто и отсутствуют предварительные условия достижения цели Р0), правило (1) называется фактом. Если правило имеет вид
←Q1,Q2,...,Qn, (2)
где Q — атомарные формулы и n>0, то оно называется запросом. Запрос интенсионально определяет множество таких объектов, когда формула (2) истинна.
Знания, которые могут быть представлены с помощью логики предикатов, являются либо фактами, либо правилами. Для представления предметной области в виде логических формул прежде всего необходимо выбрать термы-константы, которые будут определять объекты в данной области, функциональные и предикатные символы, которые соответственно задают функциональные связи объектов и отношения объектов.
При использовании логических методов сначала анализируется структура предметной области, затем выбираются соответствующие обозначения и в заключение формируются логические формулы, представляющие закономерности рассматриваемой области. Множество таких формул, по существу, будет являться логической программой, содержащей информацию о ПО. В частности, в качестве языка логического программирования можно использовать ПРОЛОГ, а совокупность логических формул, состоящую из запроса, множества фраз программы и интерпретатора языка, можно рассматривать как алгоритм решения задач приложений. Причем запрос и логические правила программы представляют собой множество начальных формул алгоритма, а интерпретатор обеспечивает правила преобразования этих формул.
Интерпретатор играет активную роль, осуществляя логические выводы и тем самым реализуя отношения, определенные предложениями логической программы.
Семантика логического программирования. Для выяснения смысла логических программ необходимо каждой программе приписать некоторое значение, вычисляемое программой. Возможны три подхода к определению семантики логических программ: декларативная семантика, процедурная (или операционная) семантика и вычислительная семантика.
Декларативная семантика определяет такие значения конкретных отношений, заданных логическими формулами, когда они становятся истинными.
В соответствии с процедурной семантикой условия, входящие в состав логической формулы, специфицируют процесс установления истинного значения данной формулы, т. е. условия трактуются как последовательность шагов, которые необходимо выполнить, чтобы соблюдалось отношение, определяемое формулой.
При выполнении запроса интерпретатор применяет по отношению к множеству логических формул некоторую стратегию решения задачи, которая определяет поведение интерпретатора в процессе обработки логической программы. Смысл логической прот граммы, который проявляется в виде действий интерпретатора, рассматриваемых как поведение некоторой абстрактной машины, определяет вычислительную семантику.
Рассмотрим логическую формулу
P ← Q, R, (3)
где Р, Q и R — некоторые предикаты.
С точки зрения декларативной семантики Р истинно, если Q и R истинны, а с точки зрения процедурной семантики необходимо сначала установить истинность Q (решить подзадачу Q), а затем — установить истинность R (решить подзадачу R). Таким образом, различие между декларативной и процедурной семантикой заключается в том, что процедурная семантика определяет не только логические связи между заголовком логической формулы и условиями в ее теле, но также и порядок, в котором эти условия обрабатываются. Так, для формулы (3) сначала должна быть установлена истинность Q, а затем истинность R.
Декларативный смысл логической программы определяет истинность Р вне зависимости от порядка обработки условий Q и R, так как все условия соединены логической операцией & и должны соблюдаться одновременно.
Логический вывод. Принцип резолюции. Определение 3. Логический вывод — это получение некоторой формулы исходя из множества других логических формул путем применения правил вывода.
Для автоматизации логического вывода используют специальную процедуру, называемую принципом резолюции.
Принцип резолюции применим к двум дизъюнктам, один из которых содержит позитивную литеру, а второй — негативную с тем же предикатом и одинаковым количеством аргументов. Вычеркивая данную литеру, можно сформировать новый дизъюнкт, называемый резольвентой, который является логическим следствием исходных дизъюнктов. Например, если даны два дизъюнкта,
P(a,b) v Q(c,d), (4)
⌐P(a,b) v R(c), (5)
то можно получить их резольвенту в виде
Q(c,d) v R(c). (6)
Фактически принцип резолюции распространяет общепринятое правило вывода modus ponens на дизъюнкты с произвольным числом литер. Действительно, так как P→Q равносильно ⌐P v Q, то исходя из истинности Р в соответствии с принципом резолюции непосредственно следует истинность Q.
Если есть множество логических формул Q и некоторая формула Р, то для проверки выводимости Р из Q следует применить следующую процедуру. Берем отрицание Р исходной формулы и, выбирая некоторую формулу из множества £2, содержащую позитивную литеру Р, строим их резольвенту, которая аналогичным образом может быть использована для построения другой резольвенты, и т. д.
Повторяя данную процедуру, можно в конце концов вывести некоторую формулу F, состоящую из одного предиката, и противоположную формулу ⌐F, резольвента которых даст пустую формулу. Это означает противоречие и, следовательно, выводимость первоначальной формулы Р из множества формул Ω.
Фактически в основе приведенной выше процедуры используется доказательство от противного: если в результате отрицания исходной посылки мы получим противоречие, то это значит, что исходная посылка истинна.
Для сопоставления логических формул, содержащих переменные, необходима специальная процедура, называемая подстановкой. Содержательно подстановка применяется к некоторому логическому выражению и заменяет в нем каждое вхождение переменной Xi на терм ti. Обозначим подстановку символом 0, тогда Θ={х1:=t,х2:=t2,...,xn:=tn}. Подстановка Θ называется унификатором атомарных формул Pi и Р2, если Pi = ΘР2. С помощью процедуры унификации удается провести сопоставление двух атомарных формул Pi и Р2.
Интерпретатор осуществляет построение логического вывода путем последовательного применения правила резолюции к текущему целевому утверждению и к некоторой логической формуле, выбираемой из хранящейся в памяти программы. Если интерпретатору удается вывести «пустую» формулу, то процесс вывода заканчивается, и на выходе в качестве результата выдаются те значения переменных, которые были определены подстановками в результате последовательных унификаций.
В качестве примера рассмотрим множество дизъюнктов вида
P(a,Y) v Q(a,Y), (7)
Q(X,b) v⌐ R(X,b), (8)
W(b), (9)
R(a,b). (10)
Требуется установить выводимость из заданного множества хорновских дизъюнктов формулы Р(а, b). Для этого берем отрицание формулы Р(а, b) и строим ее резольвенту с формулой (7).
Резольвента ⌐Q(a, b) может быть найдена, если использовать подстановку
Θ1 = {Y:= b}.
Полученная формула может быть унифицирована с предикатом Q(X, b) формулы (8) путем использования подстановки
Θ2={Y:=a},
что позволяет вывести новую резольвенту
⌐R(а, b). (11)
Резольвента формул (10) и (11) дает пустой дизъюнкт, что означает противоречие. Так как добавление Р(а,b) к исходному множеству дизъюнктов приводит к противоречию, то это значит, что Р(а, b) является их следствием.
Особенности логических методов представления знаний. Использование логики для представления знаний дает возможность перейти от процедурного способа задания информации о предметной области к спецификации отношений между объектами, которые существуют в реальном мире. При этом программа является логической спецификацией задачи, а конкретное вычисление понимается как запрос к этой программе. База знаний в соответствии с логическим подходом к описанию знаний ПО представляет собой набор логических формул. Добавление или уничтожение логических формул означает модификацию базы знаний. Таким образом, логические формулы могут рассматриваться как неделимые единицы для манипулирования знаниями в таких системах.
Основное преимущество логических представлений — наличие регулярных методов вывода, в терминах которых можно определять процедуры доказательства.
Второе преимущество логических методов состоит в возможности использования семантики, которая допускает разную трактовку в зависимости от целей логических представлений. Декларативная семантика может применяться в том случае, когда требуется решить задачу понимания ПО, а процедурная семантика обеспечивает применение использования вычислительных машин для доказательства выводимости утверждений из логически заданных закономерностей о данной ПО.
Третье достоинство логических представлений заключается в простоте, лаконичности и единообразии употребляемой нотации для представления знаний о ПО, что обеспечивает возможность создания однозначно интерпретируемых описаний баз знаний.
Основной недостаток логических методов состоит в отсутствии принципов структуризации логических формул, составляющих основу базы знаний. Для больших баз знаний данное требование весьма существенно, так как без его соблюдения невозможно обеспечить цельность и непротиворечивость получаемых представлений.
Список используемой литературы
Гаскаров, Д.В. Интеллектуальные информационные системы. Учеб. для вузов. — М.: Высш. шк., 2003. — 431 с: ил.
Дата публикования: 2015-10-09; Прочитано: 197 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!