Экспертные системы (работа 1)
1
Московский государственный институт электроники и математики
(технический университет)
Кафедра ИТАС
Реферат на тему: «Реализация сети фреймов и решения различных вариантов задачи с помощью различных механизмов вывода в экспертных системах».
Группа: АП-101
Студентка: Гусева И.А.
1.Введение.
Инженерия знаний – это область информационной технологий, цель которой – накапливать и применять знания, не как объект обработки их человеком, но как объект для обработки их на компьютере. Для этого необходимо проанализировать знания и особенности их обработки человеком и компьютером, а также разработать их машинное представление. К сожалению точного и неоспоримого определения, что собой представляют знания, до сих пор не дано. Но, тем не менее, цель инженерии знаний – обеспечить использование знаний в компьютерных системах на более высоком уровне, чем до сих пор – актуальна. Но следует заметить, что возможность использования знаний осуществима только тогда, когда эти знания существуют, что вполне объяснимо. Технология накопления и суммирования знаний идет бок о бок с технологией использования знаний, где они взаимно дополняют друг друга, и ведут к созданию одной технологии, технологии обработки знаний.
2. Функции, выполняемые экспертной системой
Экспертная система - это программа, которая ведет себя подобно эксперту в некоторой, обычно узкой прикладной области. Типичные применения экспертных систем включают в себя такие задачи, как медицинская диагностика, локализация неисправностей в оборудовании и интерпретация результатов измерений. Экспертные системы должны решать задачи, требующие для своего решения экспертных знаний в некоторой конкретной области. В той или иной форме экспертные системы должны обладать этими знаниями. Поэтому их также называют системами, основанными на знаниях. Однако не всякую систему, основанную на знаниях, можно рассматривать как экспертную. Экспертная система должна также уметь каким-то образом объяснять свое поведение и свои решения пользователю, так же, как это делает эксперт-человек. Это особенно необходимо в областях, для которых характерна неопределенность, неточность информации (например, в медицинской диагностике). В этих случаях способность к объяснению нужна для того, чтобы повысить степень доверия пользователя к советам системы, а также для того, чтобы дать возможность пользователю обнаружить возможный дефект в рассуждениях системы. В связи с этим в экспертных системах следует предусматривать дружественное взаимодействие с пользователем, которое делает для пользователя процесс рассуждения системы "прозрачным".
Часто к экспертным системам предъявляют дополнительное требование - способность иметь дело с неопределенностью и неполнотой. Информация о поставленной задаче может быть неполной или ненадежной; отношения между объектами предметной области могут быть приближенными. Например, может не быть полной уверенности в наличии у пациента некоторого симптома или в том, что данные, полученные при измерении, верны; лекарство может стать причиной осложнения, хотя обычно этого не происходит. Во всех этих случаях необходимы рассуждения с использованием вероятностного подхода.
В самом общем случае для того, чтобы построить экспертную систему, мы должны разработать механизмы выполнения следующих функций системы:
решение задач с использованием знаний о конкретной предметной области возможно, при этом возникнет необходимости иметь дело с неопределенностью;
взаимодействие с пользователем, включая объяснение намерений и решений системы во время и после окончания процесса решения задачи.
Каждая из этих функций может оказаться очень сложной и зависит от прикладной области, а также от различных практических требований. В процессе разработки и реализации могут возникать разнообразные трудные проблемы.
3. Теория фреймов
Теория фреймов - это парадигма для представления знаний с целью использования этих знаний компьютером. Впервые была представлена Минским, как попытка построить фреймовую сеть, или парадигму с целью достижения большего эффекта понимания. С одной стороны Минский пытался сконструировать базу данных, содержащую энциклопедические знания, но с другой стороны, он хотел создать наиболее описывающую базу, содержащую информацию в структурированной и упорядоченной форме. Эта структура позволила бы компьютеру вводить информацию в более гибкой форме, имея доступ к тому разделу, который требуется в данный момент. Минский разработал такую схему, в которой информация содержится в специальных ячейках, называемых фреймами, объединенными в сеть, называемую системой фреймов. Новый фрейм активизируется с наступлением новой ситуации. Отличительной его чертой является то, что он одновременно содержит большой объем знаний и в то же время является достаточно гибким для того, чтобы быть использованным как отдельный элемент БД. Термин «фрейм» был наиболее популярен в середине семидесятых годов, когда существовало много его толкований, отличных от интерпретации Минского.
Итак, как было сказано выше фреймы – это фрагменты знания, предназначенные для представления стандартных ситуаций. Термин «фрейм» (Frame – рамка) был предложен Минским. Фреймы имеют вид структурированных компонентов ситуаций, называемых слотами. Слот может указывать на другой фрейм, устанавливая, таким образом, связь между двумя фреймами. Могут устанавливаться общие связи типа связи по общению. С каждым фреймом ассоциируется разнообразная информация ( в том числе и процедуры), например ожидаемые процедуры ситуации, способы получения информации о слотах, значение принимаемые по умолчанию, правила вывода.
Формальная структура фрейма имеет вид:
f[<N1, V1>, <N2, V2>, …, <Nk,Vk>],
где f – имя фрейма; пара <Ni, Vi> - i-ый слот, Ni – имя слота и Vi – его значение.
Значение слота может быть представлено последовательностью
<K1><Li>;...; <Kn><Ln>; <R1>; …; <Rm>,
где Ki – имена атрибутов, характерных для данного слота; Li – значение этих атрибутов, характерных для данного слота; Rj – различные ссылки на другие слоты.
Каждый фрейм, как структура хранит знания о предметной области (фрейм–прототип), а при заполнении слотов знаниями превращается в конкретный фрейм события или явления.
Фреймы можно разделить на две группы: фреймы-описания; ролевые фреймы.
Рассмотрим пример.
Фрейм описание: [<программное обеспечение>, <программа 1С бухгалтерия, версия 7.5>, <программа 1С торговля, версия 7.5>, <правовая программа «Консультант +» проф.>].
Ролевой фрейм: [<заявка на продажу>, <что, установка и покупка программы 1С торговля, версия 7.5>, <откуда, фирма ВМИ>, <куда, фирма «Лукойл»>, <кто, курьер Иванова>, <когда, 27 октября 1998г.>].
Во фрейме-описании в качестве имен слотов задан вид программного обеспечения, а значение слота характеризует массу и производителя конкретного вида продукции. В ролевом фрейме в качестве имен слотов выступают вопросительные слова, ответы на которые являются значениями слотов. Для данного примера представлены уже описания конкретных фреймов, которые могут называться либо фреймами – примерами, либо фреймами – экземплярами. Если в приведенном примере убрать значения слотов, оставив только имена, то получим так называемый фрейм – прототип.
Достоинство фрейма – представления во многом основываются на включении в него предположений и ожиданий. Это достигается за счет присвоения по умолчанию слотам фрейма стандартных ситуаций. В процессе поиска решений эти значения могут быть заменены более достоверными. Некоторые переменные выделены таким образом, что об их значениях система должна спросить пользователя. Часть переменных определяется посредством встроенных процедур, называемых внутренними. По мере присвоения переменным определенных значений осуществляется вызов других процедур. Этот тип представления комбинирует декларативные и процедурные знания.
Фреймовые модели обеспечивают требования структурированности и связанности. Это достигается за счет свойств наследования и вложенности, которыми обладают фреймы, т.е. в качестве слотов может выступать система имен слотов более низкого уровня, а также слоты могут быть использованы как вызовы каких-либо процедур для выполнения.
Для многих предметных областей фреймовые модели являются основным способом формализации знаний.
Чтобы лучше понять эту теорию, рассмотрим один из примеров Минского, основанный на связи между ожиданием, ощущением и чувством человека, когда он открывает дверь и входит в комнату. Предположим, что вы собираетесь открыть дверь и зайти в комнату незнакомого вам дома. Находясь в доме, перед тем как открыть дверь, у вас имеются определенные представления о том, что вы увидите, войдя в комнату. Например, если вы увидите какой-либо пейзаж или морской берег, поначалу вы с трудом узнаете их. Затем вы будете удивлены, и в конце концов дезориентированы, так как вы не сможете объяснить поступившую информацию и связать ее с теми представлениями, которые у вас имелись до того. Также у вас возникнут затруднения с тем, чтобы предсказать дальнейший ход событий. С аналитической точки зрения это можно объяснить как активизацию фрейма комнаты в момент открывания двери и его ведущую роль в интерпретации, поступающей информации. Если бы вы увидели за дверью кровать, то фрейм комнаты приобрел бы более узкую форму, и превратился бы во фрейм кровати. Другими словами, вы бы имели доступ к наиболее специфичному фрейму из всех доступных. Возможно, что вы используете информацию, содержащуюся в вашем фрейме комнаты для того чтобы распознать мебель, что называется процессом сверху вниз, или в контексте теории фреймов фреймодвижущим распознаванием . Если бы вы увидели пожарный гидрант, то ваши ощущения были бы аналогичны первому случаю. Психологи подметили, что распознавание объектов легче проходит в обычном контексте, чем в нестандартной обстановке. Из этого примера мы видим, что фрейм - это модель знаний, которая активизируется в определенной ситуации и служит для ее объяснения и предсказания. У Минского имелись достаточно расплывчатые идеи о самой структуре такой БД, которая могла бы выполнять подобные вещи. Он предложил систему, состоящую из связанных между собой фреймов, многие из которых состоят из одинаковых подкомпонентов, объединенных в сеть. Таким образом, в случае, когда кто-либо входит в дом, его ожидания контролируются операциями, входящими в сеть системы фреймов. В рассмотренном выше случае мы имеем дело с фреймовой системой для дома, и с подсистемами для двери и комнаты. Активизированные фреймы с дополнительной информацией в БД о том, что вы открываете дверь, будут служить переходом от активизированного фрейма двери к фрейму комнаты. При этом фреймы двери и комнаты будут иметь одинаковую подструктуру. Минский назвал это явление разделом терминалов и считал его важной частью теории фреймов.
Минский также ввел терминологию, которая могла бы использоваться при изучении этой теории (фреймы, слоты, терминалы и т.д.). Хотя примеры этой теории были разделены на языковые и перцептуальные, и Минский рассматривал их как имеющих общую природу, в языке имеется более широкая сфера ее применения. В основном большинство исследований было сделано в контексте общеупотребительной лексики и литературного языка.
Как наиболее доступную иллюстрацию распознаванию, интерпретации и предположению можно рассмотреть две последовательности предложений, взятых из книг Шранка и Абельсона. На глобальном уровне последовательность А явно отличается от В.
A. John went to a restaurant
He asked the waitress for a hamburger
He paid the tip & left
B. John went to a park
He asked the midget for a mouse
He picked up the box & left
Хотя все эти предложения имеют одинаковую синтаксическую структуру и тип семантической информации, понимание их кардинально различается. Последовательность А имеет доступ к некоторому виду структуры знаний высшего уровня, а В не имеет. Если бы А не имело такой доступ, то ее понимание сводилось бы к уровню В и характеризовалось бы как дезориентированное. Этот контраст является наглядным примером мгновенной работы высшего уровня структуры знаний.
Была предложена программа под названием SAM, которая отвечает на вопросы и выдает содержание таких рассказов. Например, SAM может ответить на следующие вопросы, ответы на которые не даны в тексте, с помощью доступа к записи предполагаемых событий, предшествующих обеду в ресторане.
Did John sit down in the restaurant?
Did John eat the hamburger?
Таким образом, SAM может распознать описанную ситуацию как обед в ресторане и затем предсказать оптимальное развитие событий. В нашем случае распознавание не представляло трудностей, но в большинстве случаев оно довольно непростое и является самой важной частью теории.
Рассмотрим другой пример:
C. He plunked down $5 at the window.
She tried to give him $ 2.50, but he wouldn’t take it.
So when they got inside, she bought him a large bag of popcorn.
Он интересен тем, что у большинства людей он вызывает цикл повторяющихся неправильных или незаконченных распознаваний и реинтерпретаций.
В случаях с многозначными словами многозначность разрешается с помощью активизированного ранее фрейма . Для этих целей необходимо создать лексикон к каждому фрейму. Когда фрейм активизируется, соответствующему лексикону отдается предпочтение при поиске соответствующего значения слова. В контексте ТФ это распознавание процессов, контролируемых фреймами, которые, в свою очередь, контролируют распознавание входящей информации. Иногда это называется процессом сверху - вниз фреймодвижущего распознавания.
Применение этих процессов нашло свое отражение в программе FRAMP, которая может суммировать газетные сводки и классифицировать их в соответствие с классом событий, например терроризм или землетрясения.
Эта программа хранит набор объектов , которые должны быть описаны в каждой разновидности текстов, и этот набор помогает процессу распознавания описываемых событий .
Манипуляция фреймами
Детали спецификации фреймов и их репрезентации могут быть опущены, так же как и алгоритмы, их манипуляции, потому что они не играют большой роли в ТФ.
Такие вопросы, как размер фрейма или доступ к нему, связаны с организацией памяти и не требуют специального рассмотрения.
Распознавание
В литературе имеется много рассуждений по поводу процессов, касающихся распознавания фреймов и доступа к структуре знаний высшего уровня. Несмотря на то, что люди могут распознать фрейм без особых усилий, для компьютера в большинстве случаев это довольно сложная задача. Поэтому вопросы распознавания фреймов остаются открытыми и трудными для решения с помощью ИИ.
Размер фрейма
Размер фрейма гораздо более тесно связан с организацией памяти, чем это кажется на первый взгляд. Это происходит потому, что в понимании человека размер фрейма определяется не столько семантическим контекстом, но и многими другими факторами. Рассмотрим фрейм визита к доктору , который складывается из подфреймов, одним из которых является комната ожидания. Таким образом, мы можем сказать, что размер фрейма не зависит от семантического содержания представленного фрейма (такого, как, например, визит к врачу), но зависит от того, какие компоненты описывающей информации во фрейме (таком, как комната ожидания) используются в памяти. Это означает, что когда определенный набор знаний используется памятью более чем в одной ситуации, система памяти определяет это, затем модифицирует эту информацию во фрейм, и реструктурирует исходный фрейм так, чтобы новый фрейм использовался как его подкомпонент.
Вышеперечисленные операции также остаются открытыми вопросами в ТФ.
Инициализационные категории
Рош предложил три уровня категорий представления знаний: базовую, субординатную и суперординационную. Например, в сфере меблировки концепция кресла является примером категории основного уровня, а концепция мебели - это пример суперординационной категории. Язык представления знаний подвержен влиянию этой таксономии и включает их как различные типы данных. В сфере человеческого общения категории основного уровня являются первейшими категориями, которые узнают человек, другие же категории вытекают из них. То есть суперординационная категория - это обобщение базовой, а субординатная - это подраздел базовой категории.
пример
суперординатная идеи события
базовая события действия
субординатная действия прогулка
Каждый фрейм имеет свой определенный так называемый слот. Так, для фрейма действие слот может быть заполнен только каким-либо исполнителем этого действия, а соседние фреймы могут наследовать этот слот.
Некоторые исследователи предположили, что случаи грамматики падежей совпадают со слотами в ТФ, и эта теория была названа теорией идентичности слота и падежа. Было предложено число таких падежей, от 8 до 20, но точное число не определено. Но если агентив полностью совпадает со своим слотом, то остальные падежи вызвали споры. И до сих пор точно не установлено, сколько всего существует падежей.
Также вызвал трудность тот факт, что слоты не всегда могут быть переходными. Например, в соответствие с ТФ можно сказать, что фрейм одушевленный предмет может иметь слот живой, фрейм человек может иметь слот честный, а фрейм блоха не может иметь такой слот, и он к нему никогда не перейдет.
Другими словами, связи между слотами в ТФ не являются исследованными до конца. Слоты могут передаваться, могут быть многофункциональны, но в то же время не рассматриваются как функции.
Гибридные системы
СФ иногда адаптируются для построения описаний или определений. Был создан смешанный язык, названный KRYPTON, состоящий из фреймовых компонентов и компонентов предикатных исчислений, помогающих делать какие-либо выводы с помощью терминов и предикатов. Когда активизируется фрейм, факты становятся доступными пользователю. Также существует язык Loops, который объединяет объекты, логическое программирование и процедуры.
Существуют также фреймоподобные языки, которые за исходную позицию принимают один тип данных в памяти, какую-либо концепцию, а не две (например, фрейм и слот), и представление этой концепции в памяти должно быть цельным.
Объектно-ориентированные языки
Параллельно с языками фреймов существуют объектно-ориентированные программные языки, которые используются для составления программ, но имеют некоторые свойства языков фреймов, такие, как использование слотов для детальной, доскональной классификации объектов. Отличие их от языков фреймов в том, что фреймовые языки направлены на более обобщенное представление информации об объекте.
Одной из трудностей представления знаний и языка фреймов является отсутствие формальной семантики. Это затрудняет сравнение свойств представления знаний различных языков фреймов, а также полное логическое объяснение языка фреймов.
4. Структура экспертной системы
При разработке экспертной системы принято делить ее на три основных модуля:
база знаний;
машина логического вывода;
интерфейс с пользователем.
База знаний содержит знания, относящиеся к конкретной прикладной области, в том числе отдельные факты, правила, описывающие отношения или явления, а также, возможно, методы, эвристики и различные идеи, относящиеся к решению задач в этой прикладной области.
Машина логического вывода умеет активно использовать информацию, содержащуюся в базе знаний.
Интерфейс с пользователем отвечает за бесперебойный обмен информацией между пользователем и системой; он также дает пользователю возможность наблюдать за процессом решения задач, протекающим в машине логического вывода.
Принято рассматривать машину вывода и интерфейс как один крупный модуль, обычно называемый оболочкой экспертной системы, или, для краткости, просто оболочкой.
В описанной выше структуре собственно знания отделены от алгоритмов, использующих эти знания. Такое разделение удобно по следующим соображениям. База знаний, очевидно, зависит от конкретного приложения. С другой стороны, оболочка, по крайней мере в принципе, независима от приложений. Таким образом, разумный способ разработки экспертной системы для нескольких приложений сводится к созданию универсальной оболочки, после чего для каждого приложения достаточно подключить к системе новую базу знаний. Разумеется, все эти базы знаний должны удовлетворять одному и тому же формализму, который оболочка "понимает". Практический опыт показывает, что для сложных экспертных систем сценарий с одной оболочкой и многими базами знаний работает, не так гладко, как бы этого хотелось, за исключением тех случаев, когда прикладные области очень близки. Тем не менее, даже если переход от одной прикладной области к другой требует модификации оболочки то, по крайней мере основные принципы ее построения обычно удается сохранить.
Для создания оболочки, при помощи которой можно проиллюстрировать основные идеи и методы в области экспертных систем, можно придерживаться следующего плана:
•Выбрать формальный аппарат для представления знаний.
•Разработать механизм логического вывода, соответствующий этому формализму.
•Добавить средства взаимодействия с пользователем.
•Обеспечить возможность работы в условиях неопределенности.
5. Методы приобретения знаний.
Приобретение знаний реализуется с помощью двух функций: получения информации извне и ее систематизации. При этом в зависимости от способности системы обучения к логическим выводам возможны различные формы приобретения знаний, а также различные формы получаемой информации. Форма представления знаний для их использования определяется внутри системы, поэтому форма информации, которую она может принимать, зависит от того, какие способности имеет система для формализации информации до уровня знаний. Если обучающаяся система совсем лишена такой способности, то человек должен заранее подготовить все, вплоть до формализации информации, т. е. чем выше способности машины к логическим выводам, тем меньше нагрузка на человека.
Функции, необходимые обучающейся системе для приобретения знаний, различаются в зависимости от конфигурации системы. В дальнейшем при рассмотрении систем инженерии знаний предполагается, что Существует система с конфигурацией, показанной на рис, 1.1, которая включает базу знаний и механизм логических выводов, использующий эти знания при решении задач. Если база знаний пополняется знаниями о стандартной форме их представления, то этими знаниями также можно воспользоваться. Следовательно, от функций обучения требуется преобразование полученной извне информации в знания и пополнение ими базы знаний.
Рис.1 Базовая структура систем обработки знаний
Можно предложить следующую классификацию систем приобретения знаний, которая будет опираться на способность системы к восприятию знаний в разных форматах, качественно различающихся между собой и способностью к формализации (рис 2).
Рис 2.Классификация методов приобретения знаний.
6. АНАЛИЗ СНИЗУ ВВЕРХ И СВЕРХУ ВНИЗ
“Сверху вниз”, “снизу вверх”, “прямой”, “обратный”, “управляемый данными”, “движимый целью” - три пары определений для таких терминов, как “цепной анализ”, “парсинг”, “синтаксический разбор”, “логический анализ” и “поиск”. В принципе, все эти термины отражают сходные отношения, и различие между ними состоит лишь в том, что они взяты из различных подобластей компьютерной науки и искусственного интеллекта (парсинг, системы с заложенными в них правилами, поисковые системы и системы, направленные на решение проблем и т.д.)
Суть этих противопоставлений можно проиллюстрировать на примере парадигмы поиска. Основная задача любого поиска состоит в том, чтобы определить маршрут, по которому вы будете перемещаться с настоящей позиции к вашей цели. Если вы начнете поиск с текущей позиции и будете продолжать его, пока не наткнетесь на желаемый результат, - это так называемый прямой поиск или поиск снизу вверх. Если вы мысленно ставите себя в то место, где вы хотите очутиться в результате поиска и определяете маршрут, двигаясь в обратном направлении, т.е. туда, где вы действительно находитесь в настоящий момент, - это поиск в обратном направлении или поиск сверху вниз. Обратите внимание на то, что, определив маршрут в результате обратного поиска, вам все же предстоит добраться до своей цели. Несмотря на то, что сейчас вы движетесь вперед, это не является прямым поиском, т.к. поиск уже был осуществлен ранее, причем в обратном направлении.
Эти же противопоставления можно рассмотреть на примере систем с встроенными правилами. Представим себе, что правило состоит из набора антецедентов и набора следствий. Когда система определяет, что все антецеденты определенного правила удовлетворены, это правило вызывается и выполняется (выполняется ли каждое вызванное правило зависит от специфики конкретной системы). После этого в базу знаний заносятся утверждения, полученные в результате выполнения правила, и выполняются соответствующие операции. Данный процесс происходит вышеописанным образом, независимо от того, применяет ли система прямой или обратный логический анализ. Чтобы проиллюстрировать различия между ними, следует отдельно рассмотреть процедуру активации правила. Вызываются только активированные правила. При прямом логическом анализе (снизу вверх), когда в систему добавляются новые данные, они сравниваются со всеми антецедентами всех правил. Если данные соответствуют антецеденту правила, то это правило активируется (если оно еще не является активированным), и если подобраны все антецеденты определенного правила, то оно вызывается. Утверждения, полученные в результате выполнения правила, заносятся в базу знаний и рассматриваются в качестве новых данных, сравниваются с антецедентами и могут вызвать активацию и вызов дополнительных правил. При обратном логическом анализе (сверху вниз) при добавлении данных правила не активируются. Когда система получает запрос, он сравнивается со всеми следствиями всех правил. Если запрос совпадает со следствием, то это правило активируется, а все его антецеденты рассматриваются в качестве вторичных запросов и могут вызвать активацию дополнительных правил. Когда запрос соответствует не ограниченному условием утверждению базы знаний, на него поступает ответ, и если этот запрос исходил от антецедента, считается, что он удовлетворяет последнему. Когда все антецеденты некоторого правила будут удовлетворены, правило вызывается и выполняется. При выполнении правила осуществляется ответ на запросы, которые его активировали, и теперь другие антецеденты считаются удовлетворенными и могут вызываться соответствующие им правила. Обратите внимание на то, что вызов и выполнение правила всегда происходит в прямой последовательности, а отличие прямого цепного анализа от обратного состоит в том, когда активируется правило.
Сравнение
Эффективность. Выбор вида анализа (сверху вниз или снизу вверх) зависит от конфигурации дерева, по которому осуществляется поиск. Если в среднем каждому элементу следует большее количество элементов, нежели предшествует, то анализ сверху вниз (или обратный анализ) будет более эффективным и наоборот. Рассмотрим крайний случай. Допустим, что поисковая область образует дерево с вершиной в начальном состоянии. Тогда при использовании прямого подхода нам придется осуществлять поиск практически по всему дереву, тогда как при обратном подходе - только в его линейной части.
Сравнение и унификация. В системах с заложенными правилами или системах логического анализа выбор прямого или обратного цепного анализа влияет на степень трудности процесса сравнения. При прямом цепном анализе системе постоянно предъявляются новые факты, не имеющие свободных переменных. Таким образом постоянно проводится сравнение антецедентов, вполне вероятно обладающих свободными переменными, с фактами, не обладающими таковыми.
С другой стороны, системам с обратным цепным анализом често задают специальные вопросы. Если правила изложены в логике предикатов, а не логике суждений, тогда производится сравнение вопроса с переменной со следствием с переменными. Вторичные запросы также могут содержать переменные, поэтому, в общем, системы с обратным цепным анализом должны быть разработаны таким образом, чтобы они могли сравнивать две символьные структуры, каждая из которых может содержать переменные, для чего потребуется создание алгоритма унификации.
Смешанные стратегии
Поиск в двух направлениях. Если не ясно, какой вид поиска - прямой или обратный - является наиболее приемлимым для конкретного приложения, следует осуществлять поиск в двух направлениях. В таком случае, отправными точками становятся начальное и конечное состояние, и поиск осуществляется по направлению к центру.
Вывод по двум направлениям. При данном подходе изначальные данные применяются для активирования правил, котоые перебирают другие антецеденты в обратном порядке. Вторичные запросы, которые не соответствуют ни следствиям, ни данным, сохраняются в качестве “демонов”, которые могут быть удовлетворены позднее за счет новых или позднее поступивших данных. Систему можно разработать таким образом, что данные, удовлетворяющие “демонам” (антецеденты активированных правил) не будут активировать дополнительные правила, что “заставит” систему при предстоящем прямом выводе сконцентрироваться на правилах, учитывающих предыдущий контекст.
Разбор с началом в левом углу. Применив вышеописанный метод к парсингу, мы получим так называемый разбор с началом в левом углу. В терминах примера, приведенного в разделе парсинг, система сначала рассмотрит “they”, найдет правило 9 - единственное правило, которое можно применить к этому слову, затем правило 3, объясняющее PRO, а затем правило 1, как единственное правило, следствие которого начинается с NP. Далее система попытается разобрать сверху вниз “are flying planes” как VP.
7. Пример разработки экспертной системы.
Рассмотрим на конкретном примере организацию взаимодействия пользователя с экспертной системой. Предметная область этой экспертной системы – продажи бухгалтерских и правовых систем (режим диалога с пользователем для правильного выбора программного обеспечения). Предположим, что фрагмент базы знаний содержит следующий набор правил:
ЕСЛИ класс – бухгалтерские программы
И форма конфигурирования системы должна быть жесткой (пользователь не будет иметь возможности сам конфигурировать какие-либо входные или выходные документы)
ТО лучше всего для вас подходит бухгалтерская программа 1С версия 6.0.
ЕСЛИ класс – бухгалтерские программы
И форма конфигурирования системы должна быть лояльной (т.е. пользователь может сам конфигурировать какие-либо входные или выходные документы)
И программа разработана под оболочку DOS.
ТО лучше всего для вас подходит система бухгалтерских программ «Бест».
ЕСЛИ класс – бухгалтерские программы
И форма конфигурирования системы должна быть лояльной (т.е. пользователь может сам конфигурировать какие-либо входные или выходные документы)
И программа разработана под оболочку Windows95.
И программа одноуровневая.
ТО лучше всего вам подходит бухгалтерская программа «Инфо Бухгалтер».
ЕСЛИ класс – бухгалтерские программы
И форма конфигурирования системы должна быть лояльной (т.е. пользователь может сам конфигурировать какие-либо входные или выходные документы).
И программа разработана под оболочку Windows95.
И программа не одноуровневая.
ТО лучше всего для вас подходит система бухгалтерских программ «Турбо Бухгалтер».
ЕСЛИ тип – правовые системы.
И пополнение информационной базы происходит еженедельно (минимум), посредством курьера.
ТО лучше всего вам подходит правовая программа «Гарант».
ЕСЛИ тип – правовые системы
И пополнение информационной базы происходит ежемесячно (минимум), через покупку нового CD-ROM.
ТО лучше всего вам подходит правовая программа «Кодекс».
ЕСЛИ тип – правовые системы.
И пополнение информационной базы происходит ежемесячно (минимум), через покупку нового CD-ROM или еженедельно (минимум), посредством курьера.
ТО лучше всего вам подходит правовая программа «Эталон».
ЕСЛИ тип – складские программы.
И форма конфигурирования системы должна быть жесткой (пользователь не будет иметь возможности сам конфигурировать какие-либо входные или выходные документы)
ТО лучше всего вам подходит правовая складская программа «Фолио».
ЕСЛИ тип – складские программы.
И форма конфигурирования системы должна быть лояльной (т.е. пользователь может сам конфигурировать какие-либо входные или выходные документы)
ТО лучше всего вам подходит правовая программа склад «1С версия 7.5».
Предположим, что перед пользователем стоит задача узнать какое обеспечение, из широкого спектра предлагаемого сейчас программного обеспечения ему наиболее подойдет, учитывая специфику ПК на который предполагается установить это ПО. С помощь некоторых базовых правил фирмы «Элком-Информ», составлена некоторая экспертная система, которая поможет пользователю в его нелегком выборе. Сеанс диалога может иметь следующий вид:
ЭС: Какое программное обеспечение вы хотели бы приобрести? (правовое, бухгалтерское, складское).
Пользователь: Бухгалтерское
ЭС: Форма конфигурирования системы должна быть жесткой (пользователь не будет иметь возможности сам конфигурировать какие-либо входные или выходные документы)? (да, нет).
Пользователь: Нет.
ЭС: Форма конфигурирования системы должна быть лояльной (т.е. пользователь может сам конфигурировать какие-либо входные или выходные документы)?
Пользователь: Да
ЭС: Программа должна быть разработана под оболочку Windows95?
Пользователь: Да.
ЭС: Программа должна быть одноуровневая? (да, нет).
Пользователь: Нет.
ЭС: Программа должна быть не одноуровневая?
Пользователь: Да
ЭС: Лучше всего для вас подходит система бухгалтерских программ «Турбо Бухгалтер».
Если пользователь заинтересуется, почему сделаны такие выводы, то экспертная система выдаст эти правила и укажет соответствие между ответами пользователя, правилами и ответом экспертной системы.
8. Правила типа "если-то" для представления знаний.
В качестве кандидата на использование в экспертной системе можно рассматривать, в принципе, любой непротиворечивый формализм, в рамках которого можно описывать знания о некоторой проблемной области. Однако самым популярным формальным языком представления знаний является язык правил типа "если-то" (или кратко: "если-то"-правил), называемых также продукциями. Каждое такое правило есть, вообще говоря, некоторое условное утверждение, но возможны и различные другие интерпретации. Вот примеры:
•если предварительное условие P то заключение (вывод) C
•если ситуация S то действие A
•если выполнены условия C1 и C2 то не выполнено условие C
"Если-то"-правила обычно оказываются весьма естественным выразительным средством представления знаний. Кроме того, они обладают следующими привлекательными свойствами:
Модульность: каждое правило описывает небольшой, относительно независимый фрагмент знаний.
Возможность инкрементного наращивания: добавление новых правил в базу знаний происходит относительно независимо от других правил.
Удобство модификации (как следствие модульности): старые правила можно изменять и заменять на новые относительно независимо от других правил.
Применение правил способствует прозрачности системы.
Последнее свойство - это важное, относительное свойство экспертных систем. Под прозрачностью мы понимаем способность системы к объяснению принятых решений и полученных результатов. Применение "если-то" - правил облегчает получение ответов на следующие основные типы вопросов пользователя:
•Вопросы типа "как": Как вы пришли к этому выводу?
•Вопросы типа "почему": Почему вас интересует эта информация?
"Если-то"-правила часто применяют для определения логических отношений между понятиями предметной области. Про чисто логические отношения можно сказать, что они принадлежат к "категорическим знаниям", "категорическим" - потому, что соответствующие утверждения всегда, абсолютно верны. Однако в некоторых предметных областях, таких как медицинская диагностика, преобладают "мягкие" или вероятностные знания. Эти знания являются "мягкими" в том смысле, что говорить об их применимости к любым практическим ситуациям можно только до некоторой степени ("часто, но не всегда"). В таких случаях используют модифицированные "если-то"-правила, дополняя их логическую интерпретацию вероятностной оценкой. Например:
если условие A, то заключение B с уверенностью F
Вообще говоря, если вы хотите разработать серьезную экспертную систему для некоторой выбранной вами предметной области, вы должны провести консультации с экспертами в этой области и многое узнать о ней сами. Достигнуть определенного понимания предметной области после общения с экспертами и чтения литературы, а затем облечь это понимание в форму представления знаний в рамках выбранного формального языка - искусство, называемое инженерией знаний. Как правило, это сложная задача, требующая больших усилий.
Рассмотрим небольшую базу знаний, которая может помочь локализовать неисправности в простой электрической схеме, состоящей из электрических приборов и предохранителей. Электрическая схема показана на рис. 6. Вот одно из возможных правил:
если
лампа1 включена и
лампа1 не работает и
предохранитель1 заведомо цел
то
лампа1 заведомо неисправна.
Вот другой пример правила:
если
радиатор работает
то
предохранитель1 заведомо цел.
Эти два правила опираются на некоторые факты (относящиеся к нашей конкретной схеме), а именно что лампа1 соединена с предохранитель1 и что лампа1 и радиатор имеют общий предохранитель. Для другой схемы нам понадобится еще один набор правил. Поэтому было бы лучше сформулировать правила в более общем виде (используя прологовские переменные) так, чтобы они были применимы к любой схеме, а затем дополнять их информацией о конкретной схеме. Например, вот одно из полезных правил: если прибор включен, но не работает, а соответствующий предохранитель цел, то прибор неисправен. На формальный язык это транслируется так:
правило поломки:
если
Прибор включен и
не (Прибор работает) и
Прибор соединен с Предохранитель и
Предохранитель заведомо цел
то
Прибор заведомо неисправен.
Заключение
Обычно в системах искусственного интеллекта применяется один из двух видов анализа. Первый - это анализ снизу вверх или прямой анализ, а второй- сверху вниз или обратный. Различие их определяется тем, в каком направлении ведется поиск (от начала в конец или наоборот) и какой элемент (следствие или антецедент) активирует правила.
Фактор эффективности и легкости внедрения может сыграть решающую роль при выборе вида анализа, который будет применяться в определенном приложении, но следует помнить, что использование смешанных стратегий также возможно.
Список литературы.
С. М. Шалютин “Искусственный интеллект”, М.: Мысль, 1985
А. Эндрю “Искусственный интеллект”, М.: Мир, 1985
Н. Винер “Кибернетика”, М.: Наука, 1983
Г. Клаус “Кибернетика и философия”, М.: Иностранная литература, 1963
В.Л. Стефанюк “Экспертные системы и их применение”: Курс лекций.
“Новости искуственного интелекта”, Москва – 1993.
“Вычислительная техника и ее применение”: Москва 1989г. №2