Скачиваний:
103
Добавлен:
10.08.2013
Размер:
537.6 Кб
Скачать

6.10.1 Представление знаний в экспертных системах

В экспертных системах используют практически все классические формы представления знаний. Это объясняется тем, что они предназначены не только для использования заложенных в них (как правило, a priori) различных знаний, но и для их накопления, обновления и корректировки. Таким образом, экспертные системы, являются системами накопления и использования знаний. Концентрируя знания различных экспертов в данной предметной области, экспертная система выполняет обычно функции консультанта при принятии решения в сложных ситуациях, где оно либо зависит от большого количества факторов, либо принимается в условиях нечеткой информации или в экстремальных условиях. При этом, как правило, решение всегда является трудноформализуемым. Ключевыми вопросами при построении любой экспертной системы являются принципы представления знаний и работы управляющего механизма (механизма вывода, рассуждения), определяющего способы применения разнообразных знаний.

Остановимся подробнее на представлении знаний в экспертных системах.

Наиболее характерны представления декларативных знаний в виде фреймов, семантических сетей и реляционных моделей.

Фрейм – это структура данных для представления стереотипной ситуации. Как правило, он представляет собой несколько видов информации, включающей описания данных, характеризующих ситуацию, и действия, связанные с различным ее развитием. Следовательно, фреймы содержат структуры, являющиеся совокупностью декларативных и императивных (процедурных) конструкций.

Для задания только декларативных конструкции используют понятие ролевого фрейма, который формально может быть определен как структура:

[F;A1,A2,...,Ai, Ai+1,.....,Аn],

где F – имя фрейма;

А1 – Ai –обязательные роли;

Аi+1 – An – необязательные роли.

Такой фрейм представляет собой абстрактную конструкцию, описывающую взаимосвязи между его элементами (слотами), и поэтому получил название фрейма-прототипа:

ИМЯ: РУКОВОДИТЕЛЬ

СПЕЦИАЛЬНОСТЬ: СЛУЖАЩИЙ

ИМЯ:

ВОЗРАСТ:

АДРЕС:

ОТДЕЛ:

ЗАРАБОТНАЯ ПЛАТА:

Он перестанет быть абстракцией, если каждый его слот будет содержать определенное значение из некоторого наперед заданного множества — домена. Такой фрейм называется фреймом-экземпляром:

ИМЯ: РУКОВОДИТЕЛЬ

СПЕЦИАЛЬНОСТЬ: СЛУЖАЩИЙ

ИМЯ: ИВАНОВ И. И.

ВОЗРАСТ: 56

АДРЕС: адрес

ОТДЕЛ: 28

ЗАРАБОТНАЯ ПЛАТА: ЗАРПЛАТА

Характерно, что значением слота наряду с элементом данных определенного типа может быть и ссылка на другой фрейм, который в свою очередь может ссылаться на следующий. Таким образом реализуется построение сложных древовидных или сетевых структур, моделирующих взаимосвязи реального мира.

Основное достоинство представления декларативных знаний в виде фрейма заключается в том, что те элементы, которые традиционно присутствуют в описании объекта или события, группируются, благодаря чему могут извлекаться и обрабатываться как единое целое. Кроме того, можно указывать фасеты (facets) для каждого слота фрейма — допустимые значения (домен значения, минимум, максимум, значение по умолчанию), тексты содержательного наименования и др.

Другим понятием, часто применяемым для представления знаний в автоматизированных системах, является понятие семантической сети. Этот формализм достаточно хорошо развит для представления многих классов знаний, используемых в различных предметных областях. К таким областям относятся пространственные связи в простых физических системах, операции по управлению механизмами, причинные и функциональные связи в приборах, взаимосвязи между симптомами в медицине и др.

Базовым функциональным элементом семантической сети служит структура из двух компонентов—узлов и связывающих их дуг. Каждый узел представляет некоторое понятие, а дуга — отношение между парами понятий. Можно считать, что каждая из таких пар представляет простой факт. Узлы помечаются именами соответствующих понятий, а дуга — именем соответствующего отношения. С позиций логики базовую структуру семантической сети можно рассматривать в качестве эквивалента бинарного предиката. При этом аргументы представляются узлами сети, а собственно предикат — дугой, их связывающей.

Более строго семантическую сеть можно определить следующим образом. Пусть заданы конечные множества символов

А=[A1,....,Ar],

называемых атрибутами, и конечное множество отношений

R=[R1,...., Rm].

Схемой или интенсионалом отношения R называют набор пар

INT(Ri) = [..., [Aj, DOM(Aj)],...],

где Ri – имя отношения;

DOM(Aj) – домен Aj, т.е. множество значений (или алфавит), из которого принимает свои значения атрибут Aj отношения Ri.

Объединение всех доменов называют базовым множеством модели или множеством объектов, на которых задаются отношения Ri.

Экстенсионалом отношения Ri называют множество

EXT(Ri) = [F1,F2,...,Fp],

где Fk (k=1,р) – факт отношения, который, в свою очередь, представляется парой:

Fk = [Ak,ak, ЄDOM(Ak)],

т. е. парой вида «атрибут – значение», называемой атрибутивной парой. Под фактом, таким образом, понимают конкретизацию определенного отношения между указанными объектами. В графической интерпретации факт—это подграф семантической сети, имеющий звездообразную структуру. Из вершин факта выходят ребра, помеченные именами атрибутов данного факта, ведущие в вершины базового множества, которые являются значениями этих атрибутов.

Наряду с фреймами и семантическими сетями в интеллектуальных системах часто для представления декларативных знаний о предметной области применяют концептуальные схемы используемых ими баз данных. Наибольший интерес представляет реляционный подход, при котором каждый объект, понятие или факт представляется в виде отношения г со схемой R, которая может быть представлена в виде

[R, А1, A2,..., An],

где R — имя схемы отношения;

A1...An — атрибуты отношения.

Графически отношение rЄR может быть представлено таблицей из n столбцов, которые поименованы названиями атрибутов A1...An. Каждая строка такой таблицы называется кортежем отношения г, а каждый столбец — доменом.

Как видно из приведенного определения, оно напоминает определение ролевого фрейма. При этом фрейм-прототип в некоторой степени аналогичен схеме отношения R, а фреймы-экземпляры — кортежам отношения. Однако формализм реляционной теории существенно богаче фреймового с точки зрения выполняемых операций. Так, множество операций над отношениями, кортежами и доменами, определяемое в рамках реляционной теории, образует математическое понятие, называемое алгеброй. Определенная таким образом алгебра получила название реляционной алгебры Кодда. С другой стороны, аппарат фреймов имеет свои преимущества благодаря присущей ему динамичности. Операции с фреймами легче отражают изменения в структуре и ситуациях предметной области, в противоположность отношениям в реляционной модели, структура (схема) которых более статична.

Совершенно очевидно, что на абстрактном уровне определение, данное для схем с точки зрения реляционного подхода, полностью идентично определению, приведенному выше для семантической сети. Например, мы можем говорить об интенсионале, который представлен некоторой схемой S, и об экстенсионале, выраженном произвольным отношением Rs с такой схемой. Ясно, что приведенные выше абстракции имеют между собой много общего, отражая в той или иной мере реальную действительность. Однако с прагматической точки зрения каждый из рассмотренных аппаратов имеет свою специфику, поэтому для каждого конкретного случая практического применения выбирается тот способ представления знаний, который в наибольшей степени удовлетворяет потребности разработчиков и пользователей системы обработки знаний.

Наряду с декларативными знаниями, описывающими структуру и факты предметной области, экспертные и многие другие системы искусственного интеллекта хранят проектные процедуры, сведения о методах и принципах принятия решения в различных ситуациях, т. е. совокупность информации, объединяемой под общим названием процедурных знаний.

Можно выделить следующие основные принципы представления процедурных знаний: правила продукции, предикатная логика, ПРОЛОГ-программы и программы на специализированных языках представления знаний.

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

γ:α → β;δ,

где γ – некоторое условие, выполнение которого позволяет использовать продукцию;

α — фрагмент той структуры, которая подвергается преобразованию, заключающемуся в замене фрагмента α на новый фрагмент β (это может быть и правило перехода от ситуации α к ситуации β); предполагается, что в рамках решения задачи фрагмент β должен быть в определенном смысле богаче фрагмента α, т. е. в целом приближать нас к поставленной цели при решении задачи;

δ — некоторый модификатор условия у, который после применения продукции может менять условие применимости данного правила или оставлять его неизменным.

С прагматической точки зрения продукцию можно представить как программу из одного оператора принятия решения вида:

ЕСЛП <УСЛОВИЕ> ТО <ДЕЙСТВИЕ>.

Системы продукции имеют ряд особенностей:

- автономность – любая продукция может быть изъята из системы и добавлена в нее, причем все остальные продукции остаются при этом неизменными, т. е. система продукции становится гибкой и легко адаптируемой к любым изменениям;

- асинхронный вид процедур преобразования – каждая из процедур теоретически может выполняться независимо от других, что, однако, может привести к неоднозначности результата преобразования;

- простота отображения продукции в виде операторов языка программирования (некоторые языки программирования имеют продукции в качестве своих основных операторов – РЕФАЛ, ПРОЛОГ).

Значительная популярность систем продукций среди специалистов по экспертным системам и искусственному интеллекту объясняется тем, что этот формализм охватывает достаточно широкий класс порождающих моделей, в который входят такие известные модели, как формальные грамматики, исчисления высказываний и предикатов, сетевые модели и др.

Развитием принципа представления знаний в виде систем продукций является использование для этой цели исчисления предикатов первого порядка. Предикат представляет собой логическую функцию ряда аргументов произвольной природы. Примерами предикатов в префиксной нотации могут служить

СТОЛИЦА (х, у)

ДОЧЬ (а, b)

НАЧАЛЬНИК (m, n)

ПОДЧИНЕННЫЙ (N, m).

При подстановке вместо переменных конкретных аргументов предикат превращается в логическое высказывание, которое может иметь значение «истина» или «ложь». В этом случае приведенные выше предикаты могут принять, например, такой вид:

ИСТИННЫЕ ВЫСКАЗЫВАНИЯ

СТОЛИЦА (МОСКВА, РОССИЯ)

ДОЧЬ (АННА, ЕЛЕНА)

НАЧАЛЬНИК (ПЁТР, ПАВЕЛ)

ПОДЧИНЕННЫЙ (ПАВЕЛ, ПЁТР).

ЛОЖНЫЕ ВЫСКАЗЫВАНИЯ

СТОЛИЦА (ЛЕНИНГРАД, СССР)

ДОЧЬ (СЕРГЕЙ, ПЕТР)

НАЧАЛЬНИК (ПАВЕЛ, ПЕТР)

Отличительная черта такого аппарата представления знаний – возможность группирования, причем между элементами знаний можно устанавливать различные связи (в т. ч. причинно-следственные). Выполняется это с помощью логических операций дизъюнкции, конъюнкции, импликации и отрицания для создания правильно построенных формул над предикатами. Большую роль при этом играет также применение кванторов общности и существования.

Важнейшей характеристикой, отличающей данную модель знаний от других, является возможность преобразования предикатов, формул над предикатами и систем предикатов для получения предикатов, ранее в системе не существовавших. Для этого применяют правила равносильных преобразований и вывода классической логики, а именно: modus ponendo ponens, modus tollendo tollens, reductio ad absurdum.

Именно существование формальной системы вывода новых предикатов на основе исходных позволяет экспертным системам, построенным на их базе, выполнять действия, которые человек часто называет формированием умозаключений. Использование такого аппарата в значительной мере определяет высокие интеллектуальные способности таких систем.

Широкое использование предикатов в практике экспертных систем и систем искусственного интеллекта привело к разработке специализированных языков, в основе которых лежат эти и другие достижения современной математической логики. Одним из таких языков, получившим особенную известность в связи с проектом ЭВМ пятого поколения, является язык ПРОЛОГ, теоретической базой которого является обобщение и развитие методов оперирования системами предикатов первого порядка и формулами над ними, завершившиеся разработкой так называемого метода резолюции. При применении этого метода для автоматизированных систем искусственного интеллекта система оказывается способной к самостоятельной генерации выводов на основе некоторых посылок. При этом метод резолюции обеспечивает в достаточной мере эффективную однородную процедуру получения таких выводов, а точнее, доказательства их выводимости или невыводимости из исходных посылок. При применении метода резолюции вместо поиска вывода некоторого утверждения F ищется доказательство невыводимости утверждения F (т.е. его отрицания). Эквивалентность обеих задач вытекает из замкнутости исчисления предикатов первого порядка, в котором используется метод резолюции. Это означает, что в силу закона исключенного третьего в таких исчислениях из ложности F следует истинность F.

Основная идея языка ПРОЛОГ состоит в том, что нужно грамотно и подробно на точном логическом языке описать условие задачи, а решение ее получается в этом случае как результат некоторого формального процесса, который исполняется на ЭВМ. Это позволяет ограничиваться лишь логическим проектированием программ, т. е. описывать то, что нужно сделать, не уделяя существенного внимания тому, как, это выполнить. Другими словами, логические возможности языка ПРОЛОГ позволяют построить систему, максимально приближенную к системе, обладающей знаниями.

Обычно условие задачи представляет собой множество формул специального вида на языке логики предикатов первого порядка. Одна из формул при этом выделяется и называется целью, а остальные – посылками. Тогда упомянутый формальный процесс состоит в построении доказательства цели из посылок в исчислении, единственным правилом вывода которого является правило резолюции.

Таким образом, представление знаний в виде моделей, написанных на языке ПРОЛОГ, является естественным развитием принципов, основанных на системах продукций и предикатов. Достаточно обратить внимание на то, что оба принципа, трансформируемые друг в друга, имеют вполне адекватные средства представления в рамках этого языка. Однако существует достаточно распространенное мнение о сложности использования языка ПРОЛОГ для представления знаний в области его практического промышленного использования. Это объясняется следующими недостатками языка:

- слабые средства защиты от незначительных ошибок в написании команд, которые могут приводить к исключительно нежелательным последствиям в работе программ;

- пользователю необходимо понимать детали реализации встроенного механизма возврата при написании программы, т.е. это не чисто «логическое программирование»;

- порядок предложений существенен для их точной интерпретации – принцип, противоречащий самому смыслу логического программирования;

- многие из встроенных предикатов дают побочные эффекты, вследствие чего язык не пригоден для параллельной обработки;

- объем памяти реляционной СУБД, неявно реализуемой исполняющей системой ПРОЛОГ, ограничен размером оперативной памяти ЭВМ;

- все данные носят глобальный характер, моделирование локальных фактов затруднительно;

- изначальная ориентация внутреннего механизма языка на «поиск в глубину» при реализации задач принятия решений на некотором ситуационном дереве; сложность моделирования более изощренных стратегий;

- наличие множества нестандартных модификаций;

- лишь преданная ему элита в состоянии овладеть его элегантными суперсложностями.

В работе [8] делается столь же верный, сколь и радикалистский вывод: «Что касается языка ПРОЛОГ, то мой совет – забудьте о нем.... Заявление, что это язык логического программирования просто не выдерживает серьезного анализа». Он же приводит в защиту своей позиции высказывание: «Специалист по использованию знаний лишь в самую последнюю очередь доверит управление «автоматическому» процессу..., осуществляющему массивный поиск без контроля шаг за шагом со стороны знаний, находящихся в базе знаний».

Любая система, хранящая знания и управляемая знаниями, сталкивается с проблемами приобретения этих знаний, т. е. получения их от специалистов в конкретной предметной области. Проблема самостоятельного наполнения базы знаний силами самих специалистов приобретает особое значение в связи с массовостью применения систем принятия решений и проектных систем, а также общей тенденцией ориентации ЭВМ именно на конечного пользователя (персонализация и профессионализация систем). В этих условиях попытка обязать конечного пользователя-профессионала (медика, администратора, конструктора или технолога) выражать свои знания в виде клозов (дизъюнктов) языка со всеми его особенностями, знакомиться для точного его понимания с теоретическими принципами и деталями реализации методов опровержения (сколемизация предикатов, универсум Эрбрана и т. п.) обречена на очевидный провал.

Существует еще несколько причин, по которым применение рассмотренных традиционных для искусственного интеллекта средств представления процедурных знаний является не слишком удобным. Общий недостаток, присущий приведенным выше подходам, состоит в том, что указанные средства рассчитаны исключительно на узких специалистов по обработке знаний. Существует множество приложений, где для решения задачи наряду со средствами, относящимися к технологии знаний, необходимы также и более традиционные средства программирования, ориентированные на работу с данными (средства выполнения вычислений, представления алгоритмов, создания таблиц и отчетов, графические средства). Кроме того, языки искусственного интеллекта не слишком удобны для реальных приложений, имеющих характер «промышленного продукта», еще и потому, что их применение вызывает большую потерю времени работы системы. Часть исследователей в США считает, что указанным языкам (Лисп, ПРОЛОГ) должна быть отведена роль некоторого исходного средства, позволяющего создать черновые варианты экспертных систем, которые для повышения рабочей эффективности системы в дальнейшем будут переписаны на таких языках, как, например, Бейсик, ФОРТРАН или СИ. Это определит большую практическую направленность реализации такой системы.

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

Такая задача решается в различных промышленных системах, объединяющих в себе современные достижения в области представления знаний с относительной простотой использования, большей эффективностью реализации, повышенной наглядностью средств представления знаний и зачастую с большей процедурной ориентацией таких средств.

Примером подобного решения вопроса о средствах представления знаний в промышленной системе является внутренний язык системы REVEAL, которая представляет собой программный продукт, ориентированный на два основных направления использования – поддержку процесса решения и построение экспертных систем. Язык системы имеет следующие возможности:

- алгоритмически полный набор средств процедурной ориентации на уровне современных достижений в области процедурно-ориентированных языков программирования высокого уровня;

- средства моделирования и испытания моделей;

- аппарат спецификации и использования нечетких понятий и нечеткой логики;

- средства представления и использования правил продукции и осуществления логической дедукции.

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

Использование такого развитого набора возможностей с широким спектром применения представляет собой серьезный шаг вперед от представления знаний, ориентированных только на получение выводов, выдачу рекомендаций или принятие элементарных решений, к системам промышленного применения, где наряду с принятием решений и дедукцией зачастую возникает потребность в использовании традиционных процедурных или численных алгоритмов. Именно соединение в единой лингвистической системе универсальных процедурных средств, дающих возможность описания произвольных алгоритмов проектирования, расчета, поиска, оптимизации и т. д., с дедуктивными средствами и средствами представления нечетких понятий, превращают ее в мощный инструмент создания различных промышленных автоматизированных систем (в т.ч. и систем проектирования), ориентированных на промышленную эксплуатацию, в которых принятие решений и получение экспертных выводов может сочетаться с различными расчетами и выполнением практически любых проблемных программ.

Язык системы REVEAL является мощным средством представления процедурных знаний, однако для многих автоматизированных систем, в частности для САПР, представление декларативных знаний является отнюдь не менее важным. К числу недостатков языка следует отнести практически полное отсутствие средств представления декларативных знаний, что существенно снижает его возможности по моделированию предметной области. Отсутствует -какой бы то ни было аппарат хранения фактов, понятий предметной области и их структур в базе метазнаний для доступа к ним из модулей пользователя. Второй существенный недостаток—отсутствие средств работы с информацией, содержащейся в базах данных. В настоящий момент редкая сколько-нибудь развитая промышленная автоматизированная система обходится без накопления, ведения или поиска больших массивов информации. Наличие подобных средств в языке разработки экспертных систем также чрезвычайно полезно, особенно для системы REVEAL, являющейся замкнутой, т.е. системой, с которой связать отдельно разработанный программный продукт практически невозможно.

В заключение следует отметить, что среди декларативных средств представления знаний в современных промышленных системах наиболее распространены ролевые фреймы и реляционные модели данных, а среди процедурных – системы продукций и программы на специализированных языках представления знаний. Поскольку разработка экспертных систем и так называемая инженерия знаний являются относительно молодыми областями программирования и вычислительных наук и четких критериев оптимального применения тех или иных средств пока не выработано, то в каждом конкретном случае разработчик самостоятельно принимает решение об их использовании. Однако общая тенденция заключается в комбинированном применении различных принципов, т. к. каждый из них в отдельности часто не может удовлетворить разнообразных потребностей в сложных условиях реальной промышленной эксплуатации автоматизированных систем.

Соседние файлы в папке Автоматизация технологического проектирования (пособие)