Написание экспертной системы на языке Turbo-Prolo icon

Написание экспертной системы на языке Turbo-Prolo



НазваниеНаписание экспертной системы на языке Turbo-Prolo
Дата конвертации03.08.2012
Размер99,22 Kb.
ТипРеферат
Написание экспертной системы на языке Turbo-Prolo


Задание: Создать экспретную систему по породам дерева Теория: Структура экспертных систем Чтобы проводить эспертизу, компьютерная программа должна быть способнарешать задачи посредством логического вывода и получать при этом достаточнонадежные результаты. Программа должна иметь доступ к системе фактов,называемой базой знаний. Программа также должна во время консультации выводить заключения изинформации, имеющейся в базе знаний. Некоторые экспертные системы могуттакже использовать новую информацию, добавляемую во время консультации.Экспертную систему, таким образом, можно представлять состоящей из трехчастей: 1. База знаний (БЗ). 2. Механизм вывода (МВ). 3. Система пользовательского интерфейса (СПИ). База знаний - центральная часть экспертной системы. Она содержитправила, описывающие отношения или явления, методы и знания для решениязадач из области применения системы. Можно представлять базу знанийсостоящей из фактических знаний и зна ний, которые используются для выводадругих знаний. Утверждение "Джон Ф. Кеннеди был 35-м президентомСоединенных Штатов" - пример фактического знания. "Если у вас болитголова,то примите две таблетки цитрамона" - пример знания для вывода. Самабаза знаний обычно располагается на диске или другом носителе. Механизм вывода содержит принципы и правила работы. Механизм вывода"знает", как использовать базу знаний так, чтобы можно было получатьразумно согласующиеся заключения (выводы) из информации, находящейся в ней. Когда экспертной системе задается вопрос, механизм вывода выбирает способприменения правил базы знаний для решения задачи, поставленной в вопросе.Фактически, механизм вывода запускает экспертную систему в работу,определяя какие правила нужно вызвать и организуя к ним доступ в базузнаний. Механизм вывода выполняет правила, определяет когда найденоприемлемое решение и передает результаты программе интерфейса с пользователем. Когда вопрос должен быть предварительно обработан, то доступ к базезнаний осуществляется через интерфейс с пользователем. Интерфейс - эточасть экспертной системы, которая взаимодействует с пользователем. Система интерфейса с пользователем принимает информацию от пользователя ипередает ему информацию. Просто говоря, система интерфейса должнаубедиться, что, после того как пользователь описал задачу, вся необходимаяинформация получена. Интерфейс, основываясь на виде и природе информации,введенной пользователем, передает необходимую информацию механизму вывода.Когда механизм вывода возвращает знания, выведенные из базы знаний, интерфейспередает их обратно пользователю в удобной форме. Ин терфейс спользователем и механизм вывода могут рассматриваться как "приложение" кбазе знаний. Они вместе составляют оболочку экспертной системы. Для базызнаний, которая содержит обширную и разнообразную информацию, могут бытьразработаны и реализованы несколько разных оболочек. Хорошо разработанные оболочки экспертных систем обычно содержат механизмдля добавления и обновления информации в базе знаний. Как видем , экспертная система состоит из трех основных частей.Взаимосвязь между частями может быть сложной, зависящей от природы иорганизации знаний, а также от методов и целей вывода. Следующие разделыописывают эти аспекты экспертных сис тем. Сначала описывается представлениезнаний вместе с некоторыми простыми примерами. Это описание применимо как ксистемам, основанным на правилах,так и к системам, базирующимся на логике.Затем рассматриваются методы вывода. Далее следует описание системинтерфейса с пользователем вместе с примерами обработки ввода и вывода.Затем предполагается, что читатель готов к рассмотрению двух конкретныхметодик проектирования экспертных систем: систем, базирующихся на правилах,и систем, базирующихся на логике. Представление знаний Представление знаний - это множество соглашений по синтаксису исемантике, согласно которым описываются объекты. Хорошее правило припроектировании представления знаний - это организация знаний в такой форме,которая позволяет легко осуществлять доступ с помощью естественных ипростых механиз мов. "Чем проще, тем лучше" - правило, которое нужнопомнить, при работе с представлением знаний. Экспертные системы часто создаются "инженером по знаниям"(илипроектировщиками экспертных систем), которые работают с человеком-экспертом, чтобы закодировать знания эксперта в базе знаний. Первый способ - это классификация и помещение фактов и чисел (фрагментовфактического знания) в правила Турбо-Пролога. Это представление подходит для использования в экспертных системах,базирующихся на правилах. Другой способ - это организация фактов и числовойинформации в утверждениях, которые образуют базу знаний на утверждениях. Представление знаний в утверждениях подходит для использования вэкспертных системах, базирующихся на логике. Система пользовательского интерфейса Система пользовательского интерфейса обеспечивает взаимодействие междуэкспертной системой и пользователем. Это взаимодействие обычно включаетнесколько функций: 1. Обработка данных, полученных с клавиатуры, и высвечивание вводимых ивыводимых данных на экране. 2. Поддержка диалога между пользователем и системой. 3. Распознавание ситуации непонимания между пользователем и системой. 4. Обеспечение "дружественности" по отношению к пользователю. Система интерфейса с пользователем должна эффективно обрабатывать вводи вывод. Для этого необходимо обрабатывать вводимые и выводимые данныебыстро, в ясной и выразительной форме. Необходимо также включитьвозможность работы с дополнительными средствами такими, как печатающиеустройства, магнитные диски и дополнительные файлы данных. Кроме того, система интерфейса должна поддерживать соответствующийдиалог между пользователем и системой. Диалог - это общая формаконсультации с экспертной системой. Консультация должна завершаться ясным утверждением, выдаваемым системой,и объяснением последовательности вывода, приведшей к этому утверждению. Система пользовательского интерфейса должна также распознаватьнепонимание, между пользователем и системой, возникшее либо из-за ошибки,либо на принципиальной основе . Система должна реагировать соответствующимобразом на эту ситуацию. Например, не должно произойти сбоя системы, еслипользователь вводит 1, когда ожидается "да" или "нет", или когдапользователь задает бессмысленный вопрос. Способность экспертной системы моделировать человека эксперта можетменяться от простых познавательных процессов до включения новых знаний илиновых способов решения задачи. Система интерфеса должна информироватьпользователя о методике работы системы и ее развитии, если такое развитиепредусмотрено в системе. Наконец, система пользовательского интерфейса должна быть "дружелюбной"к пользователю. Например, последовательность меню, показывающая задачи,которые пользователь может выбрать, является необходимой чертой экспертнойсистемы. Пользователь также должен иметь возможность взаимодействовать сэкспертной системой естественным образом. В идеале пользователь должениметь возможность использовать естественный язык Экспертная система на правилах Во всех экспертных системах существует зависимость между входным потокомданных и данными в базе знаний. Во время консультации входные данныесопоставляются с данными в базе знаний. Результатом сопоставления являетсяотрицательный или ут вердительный ответ. В системе, базирующейся направилах утвердительный результат является действием одного изпродукционных правил. Эти продукционные правила определяются входнымиданными. Таким образом, экспертная система, базирующаяся на правилах (на Турбо-Прологе) содержит множество правил, которые вызываются посредством входныхданных в момент сопоставления. Экспертная система также содержитинтерпретатор в механизме вывода, который выбирает и активизирует различныемодули системы. Работу этого интерпретатора можно описать последовательностью трехшагов: 1. Интерпретатор сопоставляет образец правила с элементами данных в базезнаний. 2. Если можно вызвать более одного правила,то интерпретатор используетмеханизм разрешения конфликта для выбора правила. 3. Интерпретатор применяет выбранное правило , чтобы найти ответ навопрос. Этот трехшаговый процесс интерпретации является циклическим и называетсяциклом "распознавание-действие". В системе, базирующейся на правилах, количество продукционных правилопределяет размер базы знаний. Некоторые наиболее сложные системы имеютбазы знаний с более чем 5000 продукционных правил. 1. Использовать минимально достаточное множество условий при определениипродукционного правила. 2. Избегать противоречащих продукционных правил. 3. Конструировать правила, опираясь на структуру присущую предметнойобласти. Экспертные системы, базирующиеся на логике В экспертных системах, базирующихся на логике, база знаний состоит изутверждений в виде предложений логики предикатов. Такие предложения могут группироваться, образуя базу данных Турбо-Пролога. Правила могут либо описывать данные либо управ лять процессомвнутренней унификации Турбо-Пролога. Так же как и в системе на правилах экспертная система, базирующаяся налогике, имеет множество правил, которые могут вызываться с помощью данныхиз входного потока. Система имеет также интерпретатор, который можетвыбирать и активизировать модули, включаемые в работу системы. Интерпретатор выполняет различные функции внутри системы на основеследующей схемы: 1. Система имеет предложения в базе знаний, которые управляют поиском исопоставлением. Интерпретатор сопоставляет эти предложения с элементамиданных в базе данных. 2. Если может быть вызвано более одного правила , то система используетвозможности Турбо-Пролога для разрешения конфликта. Следовательнопользователю/программисту не нужно рассматривать потенциально возможныеконфликты. 3. Система получает результаты унификационного процесса автоматически,поэтому они могут направляться на нужное устройство вывода информации. Так же как и в системе, базирующейся на правилах, данный циклическийпроцесс является процессом распознавание-действие. Красота и большие возможности системы, основанной на логике, заключаютсяв том, что она отражает структуру самого Турбо-Пролога. Этим объясняетсятот факт, что она очень эффективна в работе. Наиболее важным аспектом для базы знаний в системе, осно ванной налогике, является проектирование базы знаний, ее утверждений и их структуры.База знаний должна иметь недвусмысленную логическую организацию, и онадолжна содержать минимум избыточной информации. Так же как и в системе,базирующейся на правилах, минимально достаточное количество данных образуютнаиболее эффективную систему. Структура базы знаний экспертной системы для выбора породы дерева. Для идентификации породы внутри каждого подмножества можно использоватьсписок атрибутов. Количество характеристик будет определять степеньточности классификации. Различающей не обязательно является какая-нибудьединственная характеристика - все множество атрибутов используется длядостижения целей в строящихся правилах. Все перечисленные ниже атрибуты являются необходимыми, так как ни один изних не характерен для всех пород одновременно. 1) лиственная; 2) хвойная; 3) мягкая; 4) твердая; 5) очень твердая; 6) серо-коричневая; 7) светло-красная; 8) светлая; 9) темная;10) смолистая;11) очень смолистая;12) Крупная текстура;13) Мелкая текстура. Каждая характеристика для конкретной породы либо верна, либо не верна. Длякаждой породы справедливы следующие характеристики: Порода Характеристики Дуб 1,4,6,13 Бук 1,4,7,12 Осина 1,3,8,13 Тис 1,5,9 Ель 2,3,8,10 Сосна 2,3,8,11 Способ использования этой информации зависит от реализации экспертнойсистемы. В нашем случае при проектировании базы знаний древовидная структура,множество идентифицирующих характеристик и наборы номеров характеристик длякаждой породы составляют рабочую модель базы знаний для выбора породы. Заметьте, что номера характеристик являются искусственными фактами,необходимыми проектировщику, и введены они для того, чтобы функциональныммодулям экспертной системы было легче идентифицировать характеристики иманипулировать ими. Проектирование и реализация системы, базирующейся на правилах. Сначала необходимо сделать декларации базы данных. База данных будетхранить ответы пользователя на вопросы системы пользовательского интерфейса(СПИ). Эти данные являются утвердительными или отрицательными ответами. Далее нужно объявить предикаты для выполнения вывода (машина вывода) идля взаимодействия с пользователем (система пользовательского интерфейса). Все вместе это следующие декларации: database xpositive(symbol,symbol) xnegative(symbol,symbol) predicates do_expert_job do_consulting ask(symbol,symbol) dog_is(symbol) it_is(symbol) positive(symbol,symbol) negative(symbol,symbol) remember(symbol,symbol,symbol) clear_facts Предикаты базы данных xpositive и xnegative используются для храненияутвердительных и отрицательных ответов пользователя. Первые четырепредиката нужны для взаимодействия с пользователем, а остальные шесть - длямеханизма вывода. Должны быть составлены восемь продукционных правил : по одному длякаждой породы. Каждое правило должно идентифицировать породу по признакупринадлежности к группе длинношерстных или короткошерстных. Правило it_is производит эту идентификацию. Затем правило positiveидентифицирует характеристики собаки в каждом случае. И it_is и positive используются механизмом вывода. Ниже приведено полноепродукционное правило для дуба: tree_is("Дуб"):- positive(tree,"Лиственная"), positive(tree,"Твердая"), positive(tree,"Серо_Коричневая"), positive(tree,"Мелкая_текстура"),!. Механизм вывода должен иметь правила для управления данными вводимымипользователем, для сопоставления их с продукционными правилами и сохранения"трассы" (или запоминания) отрицательных и утвердительных ответов. Правилаpositive и negative используются для сопоставления данных пользователя сданными в продукционных правилах. Правило remember (запоминание) производитдобавление предложений с ответами yes (да) и no (нет), для использованияпри сопоставлении с образцом: positive(X,Y) :- xpositive(X,Y),!. positive(X,Y) :- not(negative(X,Y)),!, ask(X,Y). negative(X,Y) :- xnegative(X,Y),!. remember(X,Y,yes) :- asserta(xpositive(X,Y)). remember(X,Y,no) :- asserta(xnegative(X,Y)), fail. clear_facts :- retract(xpositive(_,_)), fail. clear_facts :- retract(xnegative(_,_)), fail. Назначение системы пользовательского интерфейса (СПИ) - связь вводимыхпользователем данных с системой логического вывода. Главный модульdo_expert_job (выполни экспертную работу) и модуль do_consulting (выполниконсультацию) осуществляют эту связь. Модуль ask(X,Y) (спроси) запрашивает данные упользователя и сохраняет ответы в базе знаний. Кроме того, окнообеспечивает дополнительное удобство во время консультации. Системапользовательского интерфейса полностью приведена ниже: do_expert_job :- setup_window, do_consulting, write("Press space bar."),nl, readch(_), removewindow, exit. setup_window :- makewindow(1,7,7,"AN EXPERT SYSTEM",1,16,22,58), nl,write("* * * * * * * * * * * * * * * * * * * *"), nl,write(" аTree Expert "), nl,write(" "), nl,write("This is a tree identification system. "), nl,write("Please answer the question about "), nl,write("the dog you would like by typing in "), nl,write("'yes' or 'no'. "), nl,write("* * * * * * * * * * * * * * * * * * * *"), nl,nl. do_consulting :- dog_is(X),!,nl, write("the tree you have indicated is a(n)",X,"."),nl, clear_facts. do_consulting :- nl,write("Sorry I can't help you ! "), clear_facts. ask(X,Y) :- write(" Question :- ",X," it ",Y," ?"), readln(Reply), remember(X,Y,Reply). Заметьте, что главный модуль do_expert_job вызывает модулиsetup_window (установи окно) и do_consulting (выполни консультацию).Консультирующий модуль имеет две альтернативные формы. Перваявзаимодействует с механизмом вывода; если результат цикла "распознавание -действие" положительный, то результат сообщается пользователю. Вторая формасообщает о негативном результате. Теперь можно соединить отдельные компоненты и сформировать полнуюэкспертную систему на правилах для выбора породы дерева. Эта программа просит пользователя выбрать режим консультации или выходиз программы. Затем экспертная система выбирает породу собаки на основанииответов пользователя на вопросы, или в конце неудачного поиска выдаетсообщение “Sorry!”Реализация:domainsdatabase xpositive(symbol,symbol) xnegative(symbol,symbol)predicates do_expert_bird. do_consulting ask(symbol,symbol) tree_is(symbol) positive(symbol,symbol) negative(symbol,symbol) remember(symbol,symbol,symbol) clear_factsgoal do_expert_bird.clauses do_expert_bird:- makewindow(1,7,7,"Expert System",1,3,22,71), nl,write(" ---------------------------------------------------"), nl,write(" аTree Expert "), nl,write(" "), nl,write(" Please answer the questions 'yes' or 'no'."), nl,write(" ---------------------------------------------------"), nl,nl, do_consulting, write("Press space bar."),nl, readchar(_), removewindow, exit. do_consulting:- tree_is(X),!,nl, write("Tree ",X,"."),nl, clear_facts. do_consulting:- nl,write("Sorry !"), clear_facts. ask(X,Y):- write(" expert> ",X," ",Y," ?"), readln(Reply), remember(X,Y,Reply). positive(X,Y):- xpositive(X,Y),!. positive(X,Y):- not(negative(X,Y)),!, ask(X,Y). negative(X,Y):- xnegative(X,Y),!. remember(X,Y,yes):- asserta(xpositive(X,Y)). remember(X,Y,no):- asserta(xnegative(X,Y)), fail. clear_facts:- retract(xpositive(_,_)), fail. clear_facts:- retract(xnegative(_,_)), fail.tree_is("Дуб"):- positive(tree,"Лиственная"), positive(tree,"Твердая"), positive(tree,"Серо_Коричневая"), positive(tree,"Мелкая_текстура"),!.tree_is("Бук"):- positive(tree,"Лиственная"), positive(tree,"Твердая"), positive(tree,"Светло_Красная"), positive(tree,"Крупная_текстура"),!.tree_is("Осина"):- positive(tree,"Лиственная"), positive(tree,"Мягкая"), positive(tree,"Светлая"), positive(tree,"Мелкая_текстура"),!.tree_is("Тис"):- positive(tree,"Лиственная"), positive(tree,"Очень_твердая"), positive(tree,"Темная"),!.tree_is("Ель"):- positive(tree,"Хвойная"), positive(tree,"Мягкая"), positive(tree,"Светлая"), positive(tree,"Смолистая"),!.tree_is("Сосна"):- positive(tree,"Хвойная"), positive(tree,"Мягкая"), positive(tree,"Светлая"), positive(tree,"Очень_Смолистая"),!.tree_is("Столб"):- positive(tree,"Не_дерево"), positive(tree,"Очень_Твердый"),!.




Нажми чтобы узнать.

Похожие:

Написание экспертной системы на языке Turbo-Prolo iconНаписание экспертной системы на языке Turbo-Prolo
Чтобы проводить экспертизу, компьютерная программа должна быть способна решать задачи посредством логического вывода и получать при...
Написание экспертной системы на языке Turbo-Prolo iconПонятие алгоритма, его свойства. Описание алгоритмов с помощью блок схем на языке Turbo Pascal студент: Чижов Н. А. группа: 02-са9(2) Калининград 2003 Содержание:| Введение |3 ||Алгоритм. Свойства алгоритма |4 ||Описание алгоритмов на естественном языке |5 ||Описание алгоритмов с помощью блок-схем |
Понятие алгоритма, его свойства. Описание алгоритмов с помощью блок схем на языке Turbo Pascal
Написание экспертной системы на языке Turbo-Prolo iconПрограмма сделана по типу знаменитой игры Марио. Она написана на языке программирования Turbo Pascal Пользователю предлагается пройти заданные (или собственные
Программа сделана по типу знаменитой игры Марио. Она написана на языке программирования Turbo Pascal Пользователю предлагается пройти...
Написание экспертной системы на языке Turbo-Prolo iconЗаключение экспертной комиссии о благоустройстве и оснащении
Наличие работающей системы холодного и горячего водоснабжения (включая локальные системы), обеспечивающей необходимый санитарный...
Написание экспертной системы на языке Turbo-Prolo iconМинистерство экономического развития и торговли Российской Федерации
Подготовка и написание академических текстов на английском языке в гуманитарной сфере
Написание экспертной системы на языке Turbo-Prolo iconВопросы к экзамену по дисциплине «Основы искусственного интеллекта»
Интегрированная среда языка Turbo Prolog. Структура программы языка Turbo Prolog
Написание экспертной системы на языке Turbo-Prolo iconКазпотребсоюза Карагандинский экономический университет Кафедра ивс тематика курсовых работ по курсу «Базы данных и экспертные системы»
Разработка экспертной системы с применением субд производства продукции промышленного класса
Написание экспертной системы на языке Turbo-Prolo iconКазпотребсоюза Карагандинский экономический университет Кафедра ивс тематика курсовых работ по курсу «Базы данных и экспертные системы»
Разработка экспертной системы с применением субд производства продукции промышленного класса
Написание экспертной системы на языке Turbo-Prolo iconРазработка фрагментов оболочки экспертной системы

Написание экспертной системы на языке Turbo-Prolo iconЗаключение экспертной комиссии о благоустройстве и оснащении моу проводниковская сош
Наличие работающей системы холодного и горячего водоснабжения (включая локальные системы), обеспечивающей необходимый санитарный...
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©rushkolnik.ru 2000-2015
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы