2. Экспертные системы как один из видов программ искусственного интеллекта




Скачать 293.91 Kb.
Название2. Экспертные системы как один из видов программ искусственного интеллекта
страница1/2
Дата12.02.2013
Размер293.91 Kb.
ТипДокументы
  1   2
ВВЕДЕНИЕ В ЭКСПЕРТНЫЕ СИСТЕМЫ


1.Что такое экспертная система?


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

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

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

Ниже приводится краткий (и далеко не исчерпываю­щий) список областей, в которых применялись ЭС:

• оценка займов, рисков страхования и капитальных вложений для финансовых организаций;

• помощь химикам в нахождении верной последова­тельности реакций для создания новых молекул;

• отладка программного и аппаратного обеспечения ЭВМ в соответствии с индивидуальными требования­ми заказчика;

диагностика и обнаружение неполадок в телефонной сети на основании тестов и сообщений о неисправ­ностях;

• идентификация и ликвидация неполадок в локомоти­вах;

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

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

• помощь навигаторам в расшифровке данных от под­водных звукоулавливателей, установленных на дне океана;

• получение молекулярной структуры химического вещества на основании опытов;

• изучение и суммирование больших объемов быстро изменяющихся данных, которые не в состоянии - из-за скорости их изменения - прочитать человек, на­пример телеметрических данных с искусственных спутников системы LANDSAT.

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

2.Экспертные системы как один из видов программ искусственного интеллекта


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



Рис. 1. Три стиля программирования. Программирование ЭС является частью области программирования ИИ. Как методы программирования обе эти области значительно отличаются от тради­ционного (процедурного) стиля программирования


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

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

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

Значительные различия имеются также и во внутрен­них механизмах машинных языков, используемых для решения указанных выше проблем. В процедурном про­граммировании акцент делается на применении операто­ра присваивания ("=" или ":=") для перемещения данных в/из фиксированных, предопределенных, поименован­ных мест их нахождения в памяти. Эти поименованные места являются переменными программы. Процедурное программирование также зависит от характерной группы "команд", которые управляют работой машины:

последовательное выполнение (по умолчанию)

вызовы процедуры

if-then-else (переход)

do-while (цикл)

repeat-until (цикл)

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

У программистов есть поговорка, наглядно иллюстри­рующая разницу между языками ИИ и процедурного про­граммирования: если задачу легко решить на Фортране, то ее трудно будет решить на Лиспе; если же задачу легко решить на Лиспе, то ее трудно будет решить на Фортране. Такая же связь, хотя и несколько менее ярко выражен­ная, существует между языками Паскаль и Пролог.

Теперь мы можем более подробно рассмотреть взаимо­отношения между программами ИИ и экспертными сис­темами. Для пояснения различий между программами ИИ и ЭС ниже приводится список известных программ ИИ, которые не являются экспертными системами:

• программа, которая может просмотреть, а затем вы­дать в перефразированной форме текст рассказа ре­бенка и даже дать ответы на некоторые вопросы по тексту. Программа должна в какой-то степени "понимать" язык и причинно-следственные отноше­ния в повседневной жизни;

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

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

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

• программы, которые доказывают или даже открыва­ют математические теоремы автоматически;

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

Заметьте, что для понимания, например, рассказа ре­бенка требуется большой опыт и высокий уровень интел­лекта. Если мы сможем заставить машину делать это эффективно, мы, несомненно, многое узнаем о том, что такое интеллект. Однако такие задачи (понимание рас­сказа и т.п.) не имеет смысла ставить перед экспертом или ЭС, потому что с ними легко справится любой чело­век.

Экспертные системы отличаются от других про­грамм ИИ своей целью и построением. Под целью мы понимаем те задачи для ЭС, которые подходят для чело­века-эксперта, а под построением - создание не просто механической, а интеллектуальной программы. Критери­ями оценки ЭС являются следующие:

• отражает ли внутреннее функционирование програм­мы подход к проблеме со стороны человека;

• может ли программа объяснять свои действия спосо­бом, понятным человеку;

• может ли программа взаимодействовать с операто­ром посредством гибкого диалога, подобного диалогу на естественном языке.

Экспертные системы используют все методы програм­мирования, которые применяются в других программах ИИ.

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

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

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


3. Ориентированный на человека диалог


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

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

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

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

Отметим еще один необходимый атрибут диалога. Ког­да выдается какое-то заключение или задается вопрос, пользователь имеет право спросить: "Как получено такое решение?" или "Зачем это нужно знать?". Система долж­на быть способна ответить на подобные вопросы таким об­разом, чтобы создавалось впечатление интеллектуального характера рассуждений. В зависимости от того, насколько хорошо справится система со своей задачей, пользователь поверит или не поверит тому, что говорит компьютер.

Итак, характерные черты ориентированного на пользо­вателя диалога:

1) способность программы понимать предложения на естественном (английском, русском и т.п.) языке, заданные в свободной форме;

2) способность программы задавать вопросы, соответст­вующие ситуации;

3) способность программы по запросу объяснять свои заключения.

4. Структура экспертных систем

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

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

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

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



Рис. 2. Общая структура экспертной системы.

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

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

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

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

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

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


5. Представление знаний


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

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

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

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

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

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


Страна Столица

США Вашингтон

Англия Лондон

Испания Мадрид


Конечно, подобная таблица используется только для планирования базы зна­ний; в реальных экспертных системах способы представления знаний более соответствуют языку программирования, используемому для разработки системы. Утверждения Турбо-Пролога, содержащие приведенные выше знания, можно записать таким образом:


capital("Washington","USA"). capital("London","England").

capital("Madrid","Spain").

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

Эти же знания можно представить в форме правил "если-то". Правила для предыдущих трех утверждений выглядят так:

capital_is("Washington DC") :-

country(is,"USA"),!.

capital_is("London") :-

country(is,"England"),!.

capita1_is("Madrid") :-

country(is,"Spain"),!.

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

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


6. Методы вывода


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

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

Чтобы продемонстрировать процесс вывода, предположим, что нужно вы­яснить, является ли Мадрид столицей Испании. Для вопроса (В): "Мадрид -столица Испании?" механизм вывода в системе, базирующейся на логике, образует цель:


capita1("Madrid","Spain").


Если сопоставимый факт найден в системе, то она выдает ответ (О), т. е. "верно".

Система, основанная на правилах, ище ответ (О) на вопрос (В), используя правило: "Если в базе знаний есть правило вида "Если <условие> тогда В ", то ищи <условие>, чтобы получить ответ О". Вопрос представ­ляется в виде


capital_is("Madrid"):-

country(is,"Spain"), !.


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


7. Система пользовательского интерфейса


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

  1. Обработка данных, полученных с клавиатуры, и высвечивание вводимых и выводимых данных на экране.

  1. Поддержка диалога между пользователем и системой.

  1. Распознавание ситуации непонимания между пользователем и системой.

  2. Обеспечение "дружественности" по отношению к пользователю.

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

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

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

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

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


medication(Prescription,"a1lergy headache").


Однако несмотря на то, что обработка естественного языка в эксперт­ных системах очень нужна, такую возможность трудно спроектировать и реа­лизовать. Экспертные системы на Турбо-Прологе, представленные здесь, будут использовать меню.


8. Экспертные системы, базирующиеся на правилах


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

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

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

  2. Если можно вызвать более одного правила, то интерпретатор для выбора правила использует механизм разрешения конфликта.

  3. Интерпретатор применяет выбранное правило, чтобы найти ответ на поставленный вопрос.

Этот трехшаговый процесс интерпретации является циклическим и называется циклом распознавание - действие.

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

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

  1. Использовать минимально достаточное множество условий при определении продукционного правила.

  2. Избегать противоречащих продукционных правил.

  3. Конструировать правила, опираясь на структуру, присущую предмет­ной области.

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

Предположим, что пользователь в ответ на вопросы экспертной системы сообщил множество признаков животного. Интерпретатор работает в цикле «распознавание – действие». Если признаки сопоставимы с признаками животного, составляющими часть базы знаний, тогда вызывается соответствующее продукционное правило и в результате животное идентифици­руется. Затем результат сообщается пользователю. Аналогично, если животное не идентифицировано, это тоже сообщается пользователю.

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

animal_is("гепард") if

it_is("млекопитающее") and

it_is("плотоядное") and

positive("имеет","рыжевато-коричневый цвет") and

positive("имеет","темные пятна").

animal_is("тигр") if

it_is("млекопитающее") and

it_is("плотоядное") and

positive("имеет","рыжевато-коричневый цвет") and

positive("имеет","темные полосы").

В этих правилах цвет может быть представлен с помощью предиката positive в виде

positive (“имеет”, " рыжевато-коричневый цвет ").

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

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



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


9. Рекомендации по разработке экспертных систем


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

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

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

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

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

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

Похожие:

2. Экспертные системы как один из видов программ искусственного интеллекта iconПрименение принципов организации интернет-конференций при разработке экспертных систем
Экспертные системы (ЭС) возникли как значительный практический результат в применении и развитии методов искусственного интеллекта...
2. Экспертные системы как один из видов программ искусственного интеллекта icon«шаг за шагом» создание искусственного интеллекта гашева Светлана
Интеллект рассматривают как прикладную область исследований, связанных с имитацией отдельных функций интеллекта человека [6]. Распознавание...
2. Экспертные системы как один из видов программ искусственного интеллекта iconРабочая программа дисциплины Основы искусственного интеллекта Специальность «030100. 32 информатика»
К экспертным системам отнесены как собственно экспертные системы, решающие задачи в конкретной предметной области, так и оболочки...
2. Экспертные системы как один из видов программ искусственного интеллекта iconКонспект лекций по дисциплине «Системы искусственного интеллекта»
Место среди других наук, первые шаги и современные направления искусственного интеллекта
2. Экспертные системы как один из видов программ искусственного интеллекта iconРабочая программа дисциплины "Основы искусственного интеллекта " для подготовки специалиста по cпециальности 030100 "Информатика"
Большое внимание уделяется такой важной области, как построение моделей знаний. Подробно рассматриваются экспертные системы. Вводится...
2. Экспертные системы как один из видов программ искусственного интеллекта iconДжексон П. Введение в экспертные системы. Пер с англ
Овладение основными понятиями, идеями и методами искусственного интеллекта и интеллектуальных систем, которые являются наиболее перспективным...
2. Экспертные системы как один из видов программ искусственного интеллекта iconРабочая программа дисциплины «Системы искусственного интеллекта»
Рабочая программа основана на требованиях Федерального государственного стандарта высшего профессионального образования по направлению...
2. Экспертные системы как один из видов программ искусственного интеллекта iconВ. К. Финн к структурной когнитологии: феноменология сознания с точки зрения искусственного интеллекта
Ки и искусственного интеллекта – полигона экспериментальной проверки научных средств имитации рациональности и продуктивного мышления....
2. Экспертные системы как один из видов программ искусственного интеллекта iconОтражение системы понятий искусственного интеллекта в содержании образовательных программ подготовки будущего учителя информатики

2. Экспертные системы как один из видов программ искусственного интеллекта icon1. интеллектуальные системы
Системы искусственного интеллекта, решающие задачи по обработке знаний и при этом проявляющие черты, сходные с чертами естественного...
Разместите кнопку на своём сайте:
Библиотека


База данных защищена авторским правом ©lib.znate.ru 2014
обратиться к администрации
Библиотека
Главная страница