Этапы создания экспертной системы

 

Введение

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

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

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

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

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

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

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

     Цель  курсовой работы – ознакомиться с экспертной системой, со структурой экспертных систем и назначением экспертных систем.

     Задачи  курсовой работы:

    • ознакомиться с понятием «экспертная система»;
    • выявить этапы создания экспертной системы;
    • рассмотреть средства построения экспертной системы.
 
 
 
 
 
 
 
 
 

     Обзор литературы

     В данной работе я использовала следующую  литературу:

    1. Джексон Питер «Введение в экспертные системы». В данной книге

рассматриваются базовые концепции технологии экспертных систем. Анализируются инструментарий и структура программного обеспечения экспертных систем.

    1. Частиков А.П., Гаврилова Т.А., Белов Д.Л. «Разработка экспертных

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

    1. www.Wikipedia.ru – основная часть справочной информации о

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

    1. www.Google.com – система поиска информации в сети интернет

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

1. Понятие и обобщенная структура экспертной системы.1

     1.1 Понятие экспертной  системы.

     Экспе́ртная систе́ма (ЭС, expert system) – компьютерная программа, способная частично заменить специалиста – эксперта в разрешении проблемной ситуации.

     Современные ЭС начали разрабатываться исследователями  искусственного интеллекта в 1970–х годах, а в 1980–х получили коммерческое подкрепление. Предтечи экспертных систем были предложены в 1832 году С. Н. Корсаковым, создавшим механические устройства, так называемые «интеллектуальные машины», позволявшие находить решения по заданным условиям, например определять наиболее подходящие лекарства по наблюдаемым у пациента симптомам заболевания.

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

     Похожие действия выполняет такой программный  инструмент как Мастер (Wizard). Мастера  применяются как в системных  программах так и в прикладных для упрощения интерактивного общения  с пользователем (например, при установке ПО). Главное отличие мастеров от ЭС – отсутствие базы знаний – все действия жестко запрограммированы. Это просто набор форм для заполнения пользователем.

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

     Структура экспертных систем состоит из следующих основных компонентов:

    • решателя (интерпретатора);
    • рабочей памяти (РП), называемой также базой данных (БД);
    • базы знаний (БЗ);
    • компонентов приобретения знаний;
    • объяснительного компонента;
    • диалогового компонента.

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

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

     Решатель  используя исходные данные из рабочей  памяти и знания из БЗ, формирует  такую последовательность правил, которые, будучи примененными к исходным данным, приводят к решению задачи.

     Компонент приобретения знаний автоматизирует процесс  наполнения ЭС знаниями, осуществляемый пользователем-экспертом.

     Объяснительный  компонент объясняет, как система  получила решение задачи (или почему она не получила решение) и какие знания она при этом использовала, что облегчает эксперту тестирование системы и повышает доверие пользователя к полученному результату.

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

     В разработке ЭС участвуют представители  следующих специальностей:

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

      Необходимо  отметить, что отсутствие среди участников разработки инженеров по знаниям (т. е. их замена программистами) либо приводит к неудаче процесс создания ЭС, либо значительно удлиняет его.

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

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

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

      Экспертная  система работает в двух режимах:

    1. режим приобретения знаний;
    2. режим решения задачи (называемом также режимом консультации или режимом использования ЭС).

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

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

      2 Средства построения  экспертных систем.2

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

  • языки программирования;
  • среды программирования;
  • пустые ЭС (оболочки).

      

      Рис.1–  Таблица языков программирования. 
 
 
 

      С точки зрения разработчика экспертных систем, наибольший интерес

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

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

      Пролог  – язык высокого уровня, ориентированный  на использование концепций и  методов математической логики. Как  следует из его названия, Пролог предназначен для программирования в терминах логики. Основной особенностью Пролога, отличающей его от всех других языков, является декларативный характер написанных на нем программ. Язык Лисп изобретен в Массачусетском технологическом институте и обладает способностью обрабатывать списковые структуры. Языки программирования Лисп и Пролог имеют встроенные механизмы для манипулирования знаниями.

      Помимо  Лиспа и Пролога создано множество  других языков, ориентированных на обработку символьной информации и  разработку ЭС: Smalltalk, FRL, Interlisp. Кроме этих специализированных языков для разработки экспертных систем используются и обычные языки программирования общего назначения: Си, Ассемблер, Паскаль, Turbo Pascal,Фортран, Бейсик и др.  
 
 
 
 
 
 
 
 

      Табл.1

Язык  программирования Достоинства Недостатки
Turbo Pascal Удобная среда разработки, включающая функциональный отладчик, доступный в любой момент.

Контекстная справочная система, по которой можно  изучать язык без обращения к  сторонним источникам.

Высокая скорость компиляции, высокая скорость выполнения откомпилированных программ.

Встроенная  возможность использовать вставки  на языке ассемблера.

Компилятор рассчитан на реальный режим DOS, применение которого сходит на нет. Однако в последних версиях компилятора и среды введена поддержка защищённого режима вместе с соответствующим отладчиком (TD).

В модуле CRT имеется ошибка (некорректный подсчёт  количества циклов для функции delay, не рассчитанный на быстрые процессоры, процессоры с переменной частотой и многозадачные среды), из-за которой при запуске программы на компьютерах с тактовой частотой более 200 MHz сразу происходило аварийное завершение с сообщением «Runtime error 200 at…». Существуют разные варианты исправления модуля CRT.[2][3][4] В варианте Клауса Хартнегга ошибка 200 не возникает, но длительность Delay на быстрых компьютерах меньше желаемой, и эта проблема по незнанию иногда тоже считается недостатком Turbo Pascal.

 

      

      Рис.2– Язык программирования Turbo Pascal. 

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

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

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

      Типичным  представителем второй и третьей  групп инструментальных средств  является пакет EXSYS Professional 5.0 for Windows (оболочка – по определению разработчика – компании MultiLogic Inc., США) и его последующая модификация Exsys Developer 8.0, предназначенный для создания прикладных экспертных систем в различных предметных областях. Система построена на использовании сложных правил вида ЕСЛИ-ТО-ИНАЧЕ. Для выбора стратегии получения заключения в системе по умолчанию используется обратная цепочка вывода. Прямая цепочка может быть задана при настройке системы. Система обладает развитым графическим интерфейсом, способна обращаться к внешним базам данных, проверять правила на непротиворечивость. При определенной настройке может работать с русскоязычными текстами.

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

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

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

3.Этапы создания экспертной системы.3

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

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

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

  • информационный поиск;
  • сложные расчеты;
  • графика;
  • обработка текстов.

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

      3.1 Этап выбора подходящей проблемы

      Этот  этап включает деятельность, предшествующую решению начать разрабатывать конкретную ЭС. Он включает:

  1. определение проблемной области и задачи;
  2. нахождение эксперта, желающего сотрудничать при решении проблемы, и назначение коллектива разработчиков;
  3. определение предварительного подхода к решению проблемы;
  4. анализ расходов и прибыли от разработки;
  5. подготовку подробного плана разработки.

     Рис.3 – Этапы разработки ЭС. 

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

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

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

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

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

     После того как инженер по знаниям убедился, что:

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