Автор работы: Пользователь скрыл имя, 10 Мая 2013 в 17:26, курсовая работа
Экспертные системы - прикладные программы ИИ, в которых база знаний представляет собой формализованные знания высококвалифицированных специалистов (экспертов) в определенной области. Целью работы является построение модели экспертной системы прогнозирования результатов выбора телефона на основании анализа запросов покупателя, и ее реализация в языке логического программирования Visual Basic.
Введение 3
ГЛАВА 1. Экспертные системы 5
1.1 Основные понятия экспертной системы 5
1.2 Классификация и структура экспертных систем 6
1.3 Базы знаний и модели представления знаний 8
1.4. Механизмы логического вывода 12
Глава 2. Выбор среды разработки ЭС 13
2.1. Инструментальные средства проектирования и разработки экспертных систем 13
2.2. Оболочки экспертных систем 15
2.3. Языки программирования 17
Глава 3. Предметная область ЭС 20
3.1. Понятие предметной области 20
3.2. Предметная область ЭС «Выбор мобильного телефона 27
Глава 4 Разработка ЭС «Выбор мобильного телефона» 28
Заключение 28
Список использованной литературы: 29
Приложение 1. 30
Приложение 2 30
Понятиями обычно выступают абстрактные или конкретные объекты, а отношения - это связи типа: "это" ("is"), "имеет частью" ("has part"), "принадлежит", "любит" и т.п. Характерной особенностью семантических сетей является обязательное наличие трех типов отношений:
Традиционно в представлении знаний выделяют логические модели, основанные на классическом исчислении предикатов первого порядка, когда предметная область или задача описывается в виде набора аксиом. Основное преимущество использования логики предикатов для представления знаний заключается в том, что обладающий хорошо понятными математическими свойствами мощный механизм вывода может быть непосредственно запрограммирован. С помощью этих программ из известных ранее знаний могут быть получены новые знания.
При использовании продукционной модели база знаний состоит из набора правил. Программа, управляющая перебором правил, называется машиной вывода. Механизм выводов связывает знания .
Два способа использования продукционных правил:
- прямая цепочка рассуждений;
- обратная цепочка рассуждений.
Первый предполагает обработку информации в прямом направлении (метод сопоставления), когда образцом для поиска служит левая часть продукционного правила — условие, то есть задача решается в направлении от исходного состояния к целевому . Это соответствует стратегии «от данных к цели» или стратегии управления данными.
При втором подходе обработка
информации осуществляется в обратном
направлении — метод «
Таким образом, формализованные экспертные системы являются одним из наглядных методов решения задачи выбора мобильного телефона, на основе анализа его характеристик. Поэтому, построение адекватных моделей, а также разработка методов и алгоритмов, позволяющих установить соответствие между параметрами математических моделей и реальными системами, является актуальной научно-прикладной задачей.
Глава 2. Выбор среды разработки ЭС
На проектирование и создание одной экспертной системы ранее требовалось 20-30 человек-лет. В настоящее время имеется ряд средств, ускоряющих их создание. Эти средства называют инструментальными или инструментарием. Использование инструментальных средств разработки экспертных систем сокращает время, затрачиваемое на их создание, в 3-5 раз.
Инструментальное средство разработки экспертных систем – это язык программирования, используемый инженером знаний или (и) программистом для построения экспертной системы. Этот инструмент отличается от обычных языков программирования тем, что обеспечивает удобные способы представления сложных высокоуровневых понятий.
По своему назначению и функциональным возможностям инструментальные программы, применяемые при проектировании экспертных систем, можно разделить на четыре достаточно большие категории.
Системы этого типа создаются, как правило, на основе какой-нибудь экспертной системы, достаточно хорошо зарекомендовавшей себя на практике. При создании оболочки из системы-прототипа удаляются компоненты, слишком специфичные для области ее непосредственного применения, и оставляются те, которые не имеют узкой специализации. Примером может служить система EMYCIN, созданная на основе прошедшей длительную «обкатку» системы MYCIN. В EMYCIN сохранен интерпретатор и все базовые структуры данных – таблицы знаний и связанные с ними механизм индексации. Оболочка дополнена специальным языком, улучшающим читабельность программ, и средствами поддержки библиотеки типовых случаев и заключений, выполненных по ним экспертной системой.
Инструментальные средства этой категории избавляют разработчика от необходимости углубляться в детали реализации системы – способы эффективного распределения памяти, низкоуровневые процедуры доступа и манипулирования данными. Одним из наиболее известных представителей таких языков является OPS5. Этот язык прост в изучении и предоставляет программисту гораздо более широкие возможности, чем типичные специализированные оболочки. Следует отметить, что большинство подобных языков так и не было доведено до уровня коммерческого продукта и представляет собой скорее инструмент для исследователей.
Средства этой категории включают несколько программных модулей, что позволяет пользователю комбинировать в процессе разработки экспертной системы разные стили программирования. Среди первых проектов такого рода была исследовательская программа LOOP, которая допускала использование двух типов представления знаний: базирующегося на системе правил и объектно-ориентированного. На основе этой архитектуры во второй половине 1980-х годов было разработано несколько коммерческих программных продуктов, из которых наибольшую известность получили KEE, KnowledgeCraft и ART. Эти программы предоставляют в распоряжение квалифицированного пользователя множество опций и для последующих разработок, таких как КАРРА и CLIPS, и стали своего рода стандартом. Однако освоить эти языки программистам далеко не так просто, как языки, отнесенные к предыдущей категории.
Средства этой категории представляют собой автономные программные модули, предназначенные для выполнения специфических задач в рамках выбранной архитектуры системы решения проблем.
Класс программ, которые называются оболочкой экспертной системы, создавался с целью позволить непрограммистам воспользоваться результатами работы программистов, решавших аналогичные проблемы. Так, программа EMYCIN позволяет использовать архитектуру системы MYCIN в приложении к другим областям медицины (напомним, что программа MYCIN была ориентирована только на заболевания крови). На базе EMYCIN были разработаны экспертные системы как для медицины (например, система PUFF для диагностики легочных заболеваний), так и для других областей знаний, например программа структурного анализа SACON.
Совершенно очевидно, что оболочки экспертных систем являются программами, ориентированными на достаточно узкий класс задач, хотя и более широкий, чем та программа, на основе которой была создана та или иная оболочка. Автор системы EMYCIN Ван Мелле одним из первых подчеркнул, что оболочки экспертных систем отнюдь не являются универсальной архитектурой для решения проблем. Разработанная им система EMYCIN ориентирована на те проблемы диагностирования с большими объемами данных, которые поддаются решению с помощью дедуктивного подхода в предположении, что пространство диагностических категорий стационарно.
К сожалению, нельзя слишком
доверять рекомендациям о возможности
использования оболочки экспертной
системы для решения конкретных
проблем. Дело в том, что мы еще
не имеем настолько четкого
Большинство коммерческих продуктов типа оболочек экспертных систем подходит только для тех проблем, в которых пространство поиска невелико. Как правило, в них применяется метод исчерпывающего поиска с построением обратной цепочки вывода и ограниченными возможностями управления процессом. Но некоторые современные оболочки, как утверждают их создатели, могут применяться для решения широкого круга задач, поскольку они поддерживают множество функций представления знаний и управления, включая и моделирование прямой цепочки логического вывода, процедуры, передачу сообщений и т.п.
Простота языков представления знаний, применяемых в большинстве оболочек экспертных систем, является, с одной стороны, достоинством, а с другой « недостатком такого рода систем. На это обратила внимание Эйкинс в критическом замечании по поводу реализации экспертной системы PUFF на базе оболочки EMYCIN:
Использованный в EMYCIN формализм порождающих правил затрудняет разделение разных видов знаний – эвристических, управляющих, знаний об ожидаемых значениях параметров.
Недостаточная структурированность набора порождающих правил в EMYCIN также затрудняет и восприятие новых знаний, поскольку добавление в базу знаний нового правила требует внесения изменений в различные компоненты системы. Например, нужно вносить изменения в таблицы знаний, содержащие информацию о медицинских параметрах. Это одна из проблем, решением которой гордятся создатели системы TEIRESIAS.
Другое критическое замечание Эйкинс касается не столько конкретной системы PUFF или EMYCIN, сколько функциональных возможностей систем, базирующихся на правилах, в общем, а, следовательно, и всех оболочек экспертных систем, в которых порождающие правила используются в качестве основного языка представления знаний. Значительная часть экспертности – это знания о типовых случаях, т.е. довольно часто встречающихся в предметной области. Эксперты легко распознают известные типовые случаи и способны без особого труда классифицировать их в терминах идеальных прототипов даже при наличии определенных помех или неполных данных. Они интуитивно различают подходящие случаю или необычные значения исходных данных и принимают адекватное решение о том, как поступить в дальнейшем при решении проблемы. Такие знания практически невозможно представить в экспертной системе, если пользоваться только правилами в форме «условие-действие». Для этого потребуется значительно более сложный формализм, который сведет на нет одно из главных достоинств использования порождающих правил в качестве основного средства принятия решений.
В оболочках экспертных систем существует также проблема с реализацией механизма обработки неопределенности. Некоторые оболочки уже включают в себя определенный формальный механизм работы с неопределенностью, например основанный на использовании коэффициентов уверенности. Однако большинство, если не все использованные в оболочках экспертных систем механизмы такого рода, не согласуются с выводами теории вероятностей и обладают свойствами, которые с трудом поддаются анализу. Конечно, конкретному методу обработки неопределенности при решении конкретной задачи в данной предметной области можно дать прагматическое обоснование, как поступил, например, Шортлифф по отношению к схеме обработки коэффициентов уверенности в системе MYCIN. Но вряд ли оправданно распространять этот аппарат на другие области применения, встроив его в оболочку.
По сравнению с первыми разработками современные оболочки экспертных систем более гибкие, по крайней мере, в том, что без особого труда могут быть интегрированы в большинство операционных сред, доступных на рынке программного обеспечения, и оснащены достаточно развитыми средствами пользовательского интерфейса.
Для разработки экспертных систем используются те же языки и системы программирования, что и для обычных программ, но наличие таких специфических для искусственного интеллекта структурных частей, как логический вывод, естественно-языковый интерфейс, делает предпочтительным использование для разработки экспертных систем таких языков искусственного интеллекта, как Лисп, Пролог, Клипс и специальных средств поддержки разработки.
Особенно перспективной для экспертных систем оказалась реализация языка Пролог. Основная идея логического программирования состоит в отделении логики программы от управления ходом вычислений, что делает процесс создания программы более прозрачным.
Пролог – язык высокого уровня, ориентированный на использование концепций и методов математической логики. Он был создан во Франции в Марсельском университете в 1972 году. Основной особенностью Пролога, отличающей его от всех других языков, является декларативный характер написанных на нем программ.
Он предназначен для разработки систем и программ искусственного интеллекта; относится к категории языков пятого поколения. При работе с ним программистам не требуется расписывать шаг за шагом процедуры — достаточно определить множество фактов и установить отношения между ними. С помощью этих соотношений процедуры, встроенные в язык, получают логические выводы. Эта особенность делает Пролог удобным для написания экспертных систем.
Язык Лисп разработан в Массачусетском технологическом институте в начале 60-х годов. Языки программирования Лисп и Пролог имеют встроенные механизмы для манипулирования знаниями. Лисп является универсальным языком программирования высокого уровня и обладает способностью обрабатывать списковые структуры. Он относится к декларативным языкам функционального типа и предназначен для обработки символьных данных, представленных в виде списков.
Клипс был разработан в центре космических исследований NASA в середине 80х годов. Клипс (Clips) является аббревиатурой от C Language Integrated Production System. Он включает в язык представления порождающих правил и язык описания процедур.
Клипс использует продукционную модель представления знаний и поэтому содержит три основных элемента:
Принципиальным отличием данной системы от аналогов является то, что она полностью реализована на языке С. Причем исходные тексты ее программ опубликованы в Интернет.
Информация о работе Разработка Экспертной системы «Выбор мобильного телефона»