Применение информационных технологий в теории дифференциальных уравнениях

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

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 05.10.2013
Размер файла 224,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

1

Размещено на http://www.allbest.ru/

  • Построение экспертных систем
  • Содержание
  • Введение
  • 1. Анализ предметной области
    • 1.1 Функции, выполняемые экспертной системой
    • 1.2 Теория фреймов
    • 1.3 Структура экспертной системы
    • 1.4 Методы приобретения знаний
    • 1.5 Анализ снизу вверх и сверху вниз
    • 1.5.1 Сравнение
    • 1.5.2 Сравнение и унификация
    • 1.5.3 Смешанные стратегии
  • 2. Пример разработки экспертной системы
    • 2.1 Теория построения экспертных систем
    • 2.1.1 Основные понятия
    • 2.2 Организация взаимодействия пользователя с экспертной системой
    • 2.3 Правила типа "если-то" для представления знаний
  • 3. Методика преподавания и обучения построению экспертных систем
    • 3.1. Постановка задачи
    • 3.2 Технология и основные этапы построения экспертных систем
    • 3.2.1 Понятия, категории, компоненты, архитектура экспертных систем
    • 3.1.2 Подход к представлению знании: декларативное и процедурное представление
    • 3.2 Проведение опроса экспертов и обработка его результатов
    • 3.3 Оценка эффективности методики
  • Заключение
  • Литература

Введение

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

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

Эти изменения были подготовлены всем развитием теории и практики искусственного интеллекта (ИИ), наиболее существенным результатом которого явился переход к так называемой новой информационной технологии и создание «экспертных систем (ЭС).

Первые ЭС - медицинские mycin и dendral для приложений по химии появились в середине 70-х годов в рамках исследовательских программ по искусственному интеллекту. Уже первые ЭС оказались полезными. Медицинская система mycin успешно вписалась в клиническую практику, помогая в выборе лекарств больным с бактеремией, менингитом, циститом.

Идеологию ЭС можно выразить формулой: знание+ вывод=система. ЭС предполагает взаимодействие блоков. Главные из них - база знаний и механизм вывода.

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

1. Анализ предметной области

1.1 Функции, выполняемые экспертной системой

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

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

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

Решение задач с использованием знаний о конкретной предметной области возможно, при этом возникнет необходимости иметь дело с неопределенностью;

Взаимодействие с пользователем, включая объяснение намерений и решений системы во время и после окончания процесса решения задачи.

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

1.2 Теория фреймов

Теория фреймов - это парадигма для представления знаний с целью использования этих знаний компьютером. Впервые была представлена Минским, как попытка построить фреймовую сеть, или парадигму с целью достижения большего эффекта понимания. С одной стороны Минский пытался сконструировать базу данных, содержащую энциклопедические знания, но с другой стороны, он хотел создать наиболее описывающую базу, содержащую информацию в структурированной и упорядоченной форме. Эта структура позволила бы компьютеру вводить информацию в более гибкой форме, имея доступ к тому разделу, который требуется в данный момент. Минский разработал такую схему, в которой информация содержится в специальных ячейках, называемых фреймами, объединенными в сеть, называемую системой фреймов. Новый фрейм активизируется с наступлением новой ситуации. Отличительной его чертой является то, что он одновременно содержит большой объем знаний и в то же время является достаточно гибким для того, чтобы быть использованным как отдельный элемент БД. Термин «фрейм» был наиболее популярен в середине семидесятых годов, когда существовало много его толкований, отличных от интерпретации Минского.

Итак, как было сказано выше фреймы - это фрагменты знания, предназначенные для представления стандартных ситуаций. Термин «фрейм» (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, который объединяет объекты, логическое программирование и процедуры.

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

· Объектно-ориентированные языки

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

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

1.3 Структура экспертной системы

При разработке экспертной системы принято делить ее на три основных модуля:

База знаний;

Машина логического вывода;

Интерфейс с пользователем.

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

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

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

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

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

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

· *Выбрать формальный аппарат для представления знаний.

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

· *Добавить средства взаимодействия с пользователем.

· *Обеспечить возможность работы в условиях неопределенности.

1.4 Методы приобретения знаний

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

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

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

1

Размещено на http://www.allbest.ru/

Рисунок 1.1 Базовая структура систем обработки знаний

1

Размещено на http://www.allbest.ru/

Рисунок 1.2 Классификация методов приобретения знаний

1.5 Анализ снизу вверх и сверху вниз

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

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

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

1.5.1 Сравнение

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

1.5.2 Сравнение и унификация

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

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

1.5.3 Смешанные стратегии

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

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

Разбор с началом в левом углу. Применив вышеописанный метод к парсингу, мы получим так называемый разбор с началом в левом углу. В терминах примера, приведенного в разделе парсинг, система сначала рассмотрит “they”, найдет правило 9 - единственное правило, которое можно применить к этому слову, затем правило 3, объясняющее PRO, а затем правило 1, как единственное правило, следствие которого начинается с NP. Далее система попытается разобрать сверху вниз “are flying planes” как VP.

2. Пример разработки экспертной системы

2.1 Теория построения экспертных систем

2.1.1 Основные понятия

Начнем с канонического определения, которое приводят в своей широко известной книге "Программирование экспертных систем" Б. Сойер и Д. Фостер (в переводе на русский язык она вышла в 1998 г. в Москве в издательстве "Финансы и статистика", и настоятельно рекомендуется тем читателям, которые не боятся математики и сухого научного стиля изложения).

Итак, современные экспертные системы (ЭС) - особые компьютерные программы, моделирующие действия эксперта-человека при решении задач в какой-либо предметной области на основе накопленных знаний, составляющих БАЗУ ЗНАНИЙ (БЗ).

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

Прошло еще полтора века, прежде чем стала актуальной задача моделирования умственной деятельности. В научных работах этого направления выделяются исследования советских психологов, направленные на описание механизма принятия решения человеком (O.K. Тихомиров и др.), а также труды нашего выдающегося шахматиста и математика М.М. Ботвинника по моделированию игры шахматиста. Собственно шахматы долгое время оставались основным полигоном для отработки тех алгоритмов, которые легли в основу экспертных систем.

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

Может показаться странным, что такие примитивные системы именовались экспертными, однако это лишь показывает темпы технического прогресса, и с позиций завтрашнего дня сегодняшние революционные разработки, возможно, также будут нескладными. Но вернемся к рассматриваемым системам. Довольно быстро разработчики ЭС первого поколения поняли, что путь тупого перебора вариантов - длинный и непродуктивный. Человек никогда не перебирает все варианты, он отсекает заведомо нереальные. Так возникли ЭС второго поколения, имеющие встроенные алгоритмы для скорейшего нахождения требуемого варианта, т.е. имеющие пусть примитивную, но все же "Базу Знаний". Говоря современным языком, их БЗ включала Базу данных и алгоритмы по работе с этими данными, заложенные экспертами-разработчиками.

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

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

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

За краткостью журнальной статьи опустим описание обстоятельств возникновения ЭС 4-го поколения. Заметим лишь, что их создание стало возможным благодаря стремительному прогрессу в разработке компьютеров (и, в частности, повышение их быстродействия), а также совершенствованию математического аппарата. В итоге создателям ЭС по обе стороны океана (в США, Европе и России) удалось изготовить принципиально иные ЭС - они не только выполняли сложные расчеты и поиски, а, извлекая данные из памяти, выдавали рекомендации и ПРИНИМАЛИ РЕШЕНИЯ. Т.е. ПОЧТИ являлись экспертными системами в современном смысле этого слова (важность этого "почти" применительно к кадровой работе Вы увидите ниже).

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

Естественно, подобные системы попытались использовать и при отборе и расстановке кадров. И - получили весьма посредственные результаты. Современные потомки подобных систем встречаются сегодня и в России - как правило, их базы знаний содержат от нескольких тысяч до нескольких десятков тысяч неких констант, именуемых производителями "переменными", "постоянными", "правилами" и т.п. Но сути это не меняет - подобные системы не могут обеспечить высокую точность результатов в кадровой работе по одной простой причине - они ЛИНЕЙНЫ по своей природе, т.е. имеют свод жестких правил и на его основе принимают всегда ЛОГИЧНЫЕ решения. И как бы ни старались авторы подобных программ, увеличивая число правил в Базе Данных или привлекая профессиональных психологов к составлению этих правил, как говорят англичане "из свиного уха не сделаешь бисерного кошелька".

Не сделаешь в данном случае потому, что человек является объектом а) активным и б) нелинейным. На этом принципиальном вопросе остановимся подробнее. Давайте сравним два объекта экспертных систем - человека и, скажем, крылатую ракету.

Итак, крылатая ракета. Для управления ее движением используются экспертные системы 4-го поколения. Что такое полет такой ракеты? Это необходимость для экспертной системы одновременно и с высокой скоростью учитывать множество факторов (рельеф местности, силу ветра, действия противника и т.д. и т.п.) и принимать решения по управлению ракетой. Для таких задач экспертная система 4-го поколения подходит как нельзя, лучше, поскольку ракета а) пассивна и б) линейна. Пассивна - т.е. не изменяет сама условий расчета, линейна - т.е. она всегда реагирует на одни и те же изменения одинаково.

Однако человек - совершенно иной объект. Он активен, т.е. действует самостоятельно, постоянно меняя тем самым условия расчета; он нелинеен, т.е. может реагировать на одни и те же изменения совершенно по-разному. Т.е. человек не руководствуется законами формально-логическими, используемыми при построении математических моделей. Говоря словами М. Ботвинника, человек с точки зрения математики алогичен и поэтому неформализуем. Линейная система лишена нелогичности по определению и поэтому траекторию крылатой ракеты просчитывает отлично, а деятельность человека - нет.

Подлинный прорыв (а фактически - появление тех самых экспертных систем, которые и работают с кадрами сегодня), произошел во второй половине 90-х годов, когда резко увеличился объем памяти, сохраняемой на диске компьютера, и упала ее цена. Это дало возможность сначала в США (фирма "American Research"), а спустя некоторое время в России, (НПО "Эталон", а для гражданских нужд - Центр "Хобби") разработать экспертные системы 5-го поколения - прецедентные экспертные системы. Такие системы в корне отличаются от своих предшественниц тем, что их Базу знаний образуют не только логические правила, а и т.н. "база прецедентов" - результаты обследования реальных людей и информация о последующей успешности / неуспешности их деятельности.

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

Помимо этого, лучшие экспертные системы 5-го поколения могут сами выделять наиболее характерные для группы работников качества, степень их выраженности и т.п. и создавать нелинейные модели должностей (т.н. "многомерные многофакторные профили").

Не описывая сложнейший математический аппарат подобных систем, отмечу, что в итоге для пользователя они получились намного более простыми, чем предыдущие. Применение прецедентов позволило уменьшить число диагностируемых параметров, а использование факторного анализа в сочетании с возможностями последних поколений процессоров Pentium - автоматизировать практически все функции системы. Ручной режим в таких системах сохранен только для специалистов - HR-менеджеров, психологов и т.п.

При всех своих достоинствах, прецедентные экспертные системы трудны в изготовлении и эффективно работают, имея базу прецедентов (т.е. результаты обследований) в несколько сот тысяч человек. Для примера, база прецедентов экспертной системы Нью-Йоркской полиции - 786 000 чел., НПО "ЭТАЛОН" - 542 000 чел., причем, по словам специалистов этого НПО, ЭС заработала с ожидаемой точностью, только когда база перевалила за 200 000 чел. Подобные системы в мире изготавливает менее двух десятков фирм, на их создание уходит не меньше 5-6 лет.

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

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

Следует отметить, что принцип "прецедентов" оказался эффективным не только в кадровых экспертных системах, но и в других областях - в частности, бортовой компьютер американского самолета-невидимки "Стелс" содержит прецедентную экспертную систему на случай нештатных ситуаций, а профессиональные модели фотоаппаратов "Nikon" - прецедентную экспертную систему с 30 тыс. реальных съемочных ситуаций [8].

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

1. База знаний (БЗ)

2. Механизм вывода (МВ)

3. Система пользовательского интерфейса (СПИ)

База знаний - центральная часть экспертной системы. Она содержит правила, описывающие отношения или явления, методы и знания для решения задач из области применения системы. Можно представлять базу знаний состоящей из фактических знаний и знаний, которые используются для вывода других знаний. Утверждение "Джон Ф. Кеннеди был 35-м президентом Соединенных Штатов" - пример фактического знания. "Если у вас болит голова, то примите две таблетки цитрамона" - пример знания для вывода. Сама база знаний обычно располагается на диске или другом носителе.

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

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

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

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

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

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

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

Задумайтесь над таким вопросом: "При выполнении каких условий компьютерную программу можно назвать экспертом?"

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

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

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

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

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

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


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.