Экспертные системы породы собак

Экспертные системы породы собак thumbnail



МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РЕСПУБЛИКА КАЗАХСТАН

Рудненский индустриальный институт

Кафедра ИСиТ

КОНТРОЛЬНАЯ РАБОТА

По дисциплине: «Экспертные системы»

Тема: «Создание экспертной системы «Выбор породы собак»»

Руководитель: М. Н. Юдина

«_____» ____________2003г.

                                                             Выполнил:       Крупнева И. В.

Группа:                      ЗИС-5 со

Шифр:                     21201

Рудный 2004

СОДЕРЖАНИЕ

ВВЕДЕНИЕ                                                                                                                              3                                         

1.    ПОСТАНОВКА ЗАДАЧИ                                                                                    5

2.       ОПИСАНИЕ БАЗЫ ЗНАНИЙ                                                                      6

3.       МЕТОД РЕШЕНИЯ                                                                                                  8

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ                                          9             

ПРИЛОЖЕНИЕ Листинг программы                                                                      10             

ВВЕДЕНИЕ

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

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

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

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

ЭС отличаются от других видов программ из области искусственного интеллекта:

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

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

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

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

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

Знания о предметной области, необходимые для работы ЭС, определенным образом формализованы и представлены в памяти ЭВМ в виде базы знаний, которая может изменяться и дополняться в процессе развития системы.

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

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

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

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

ЭС выдают советы, проводят анализ, выполняют классификацию, дают консультации и ставят диагноз.

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

1. ПОСТАНОВКА ЗАДАЧИ

Целью контрольной работы было написание консультирующей экспертной системы «Выбор породы собак», которая позволила бы из множества пород   выбрать ту, которая  удовлетворяла бы  требованиям  пользователя.

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

2.       ОПИСАНИЕ БАЗЫ ЗНАНИЙ

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

В результате этого была разработана формализованная БЗ:

1.       Служебные собаки.

          Характе-        ристики

Порода

собаки

          Проводник

          Спасатель на воде

          Спасатель на снегу

          Пастух

          Поисково-спасательная

          Патрульно-постовая

          Розыскная

          Спортивная

          Домашняя

          Охрана – улица

          Охрана – дом

          Неприхотливая к кл.усл.

          Агрессивная

           Крупная

          Средняя

           Короткая шерсть

           Длинная  шерсть

Немецкая овчарка

+

+

+

+

+

+

+

+

+

Кавказская

овчарка

+

+

+

+

+

+

Шотландская овчарка(колли)

+

+

+

+

+

+

+

+

Среднеазиатская

овчарка

+

+

+

+

+

+

Южнорусская

овчарка

+

+

+

+

+

+

Эрдельтерьер

+

+

+

+

+

+

+

Ротвейлер

+

+

+

+

+

+

+

+

Черный терьер

+

+

+

+

+

Сембернар

+

+

+

+

+

+

Московская сторожевая

+

+

+

+

+

Ризеншнауцер

+

+

+

+

+

+

+

+

Доберман

+

+

+

+

+

+

+

Боксер

+

+

+

+

+

+

Дог

+

+

+

+

Ньюфаундленд

+

+

+

+

+

2.       Охотничьи собаки.

          Характе-        ристики

Порода

собаки

          Охота на птицу

          Скоростная охота

          Универсальная охота

          Норная охота

          Спортивная

          Для дома

           Короткая шерсть

          Длинная  шерсть

           Небольшой рост

           Средний и высокий рост

Лайка

+

+

+

+

Борзые

+

+

+

+

Гончие

+

+

+

+

Легавые

+

+

+

+

Спаниели

+

+

+

+

Фокстерьер

+

+

+

+

Такса

+

+

+

+

Скотч-терьер

+

+

+

+

3.       Декоративные собаки.

          Характе-        ристики

Порода

собаки

          Для детей

          Неприхотливая

          Покладистая

           Короткая шерсть

           Длинная  шерсть

Болонка

+

+

+

+

Пинчер

+

Тойтерьер

+

Карликовый

терьер

+

Японский хин

+

+

+

+

Чау-чау

+

Мопс

+

+

+

Французский

бульдог

+

+

+

+

Карликовый

пудель

+

+

+

+

Источник

Лабораторная работа № 6

Создание экспертных систем, основанных на правилах

? Определите понятие экспертной системы.

? Каковы функции экспертной системы?

? Опишите структуру экспертной системы.

? Что такое база знаний?

? В чем состоит назначение машины логического вывода?

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

Задание 1:

Создать экспертную систему на Visual Prolog для идентификации породы собак:

1) Опишите в ней знания о следующих породах собак:

“Английский бульдог”:

“короткая шерсть”,

“рост 55 см”,

“низко посажен хвост”,

“хороший характер”.

“Гончая”:

“короткая шерсть”,

“рост 55 см”,

“длинные уши”,

“хороший характер”.

“Дог”

“короткая шерсть”,

“низко посажен хвост”,

“хороший характер”,

“вес 45 кг”.

“Коккер-спаниэль”:

“длинная шерсть”,

“рост 55 см”,

“низко посажен хвост”,

“длинные уши”,

“хороший характер”.

“Ирландский сеттер”:

“длинная шерсть”,

“рост 75 см”,

“длинные уши”.

“Сенбернар”:

“длинная шерсть”,

“низко посажен хвост”,

“хороший характер”,

“вес 45 кг”.

2)  Опишите правила обработки «свойств» собаки. При этом положительные и отрицательные ответы пользователя на выбор свойства храните в базе данных database.

Задание 2:

Модифицируйте базирующуюся на правилах экспертную систему для выбора породы собаки:

·  добавив гипотетическую породу;

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

Проверьте программу и убедитесь, что она идентифицирует породу, которую вы “спроектировали”.

Замечание:

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

Индивидуальные задания

Вариант 1.

Разработайте экспертную систему идентификации типа транспортного средства (велосипед, мотоцикл, мотороллер, телега, карета, автобус, грузовик, легковые: пикап, седан, хэтчбек, кабриолет…).

Вариант 2.

Разработайте экспертную систему «Проведение летнего отдыха» (дома, в саду, в пешем походе, в местном санатории, на Черном море, на Средиземном море, в круизе на теплоходе, на горном курорте, в африканских странах и т. д.).

Вариант 3.

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

Вариант 4.

Разработайте экспертную систему «Где поужинать вечером?» (дома, у друзей, в столовой, в кафе, в ресторане, в клубе).

Вариант 5.

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

Вариант 6.

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

Вариант 7.

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

Вариант 8.

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

Вариант 9.

Разработайте экспертную систему по идентификации полевых цветов (лютики, клевер, ромашка и пр.).

Вариант 10.

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

Вариант 11.

Разработать экспертную систему выбора породы дерева.

Вариант 12.

Разработать экспертную систему выбора домашних животных в зависимости от их характеристик (предпочтение в еде, вес, рост и пр.).

Вариант 13.

Описать экспертную систему определения неисправностей автомобильного двигателя.

Вариант 14.

Описать экспертную систему «Справочник врача терапевта».

Вариант 15.

Определение расы человека по заданным характеристикам его внешности (например, европеоидная раса, монголоидная раса и т. д.).

Вариант 16.

Определение эры (периода) Земли по разнообразию растений и животных на планете. Например, если среди животных встречаются динозавры, то в данный момент – эра мезозоя.

Вариант 17.

Определение профессии человека по заданным признакам его работы.

Вариант 18.

Определение темперамента личности по ее проявлениям.

Вариант 19.

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

Вариант 20.

Определение знака зодиака человека.

Источник

Лекции.Орг

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ ГУМАНИТАРНЫЙ УНИВЕРСИТЕТ

ИНСТИТУТ ИНФОРМАЦИОННЫХ НАУК И ТЕХНОЛОГИЙ БЕЗОПАСТНОСТИ

ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ СИСТЕМ И БЕЗОПАСНОСТИ

Лабораторная работа

«Запуск и начало работы Turbo Prolog»

Работу выполнил студент 3 курса:

Шурыгин Е. С.

Проверила: Охапкина Е.П.

Москва 2015

Цель: Изучить среду визуальной разработки Turbo Prolog. Создать проект и запустить его на выполнение, выполнить самостоятельное задание, оформить отчет.

Теоретический материал:

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

Задание: Разработать экспертную систему по указанной тематике в соответствии с изложенной методикой. БЗ должна свидетельствовать о знакомстве разработчика с предлагаемой предметной областью.

Вариант 12.Порода собак. Определение пород собак по указанным признакам.

База знаний программы порода собак.

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

topic(“dog”).

topic(“short-haired dog”).

topic(“long-haired dog”).

rule(1, “dog”, “short-haired dog”, [1] ).

rule(2, “dog”, “long-haired dog”, [2] ).

rule(3, “short-haired dog”,”English Bulldog “, [3,5,7] ).

rule(4, “short-haired dog”,”Beagle”, [3,6,7] ).

rule(5, “short-haired dog”,”Great Dane”, [5,6,7,8] ).

rule(6, “short-haired dog”,”American Foxhound”,[4,6,7] ).

rule(7, “long-haired dog”, “Cocker Spaniel”, [3,5,6,7] ).

rule(8, “long-haired dog”, “Irish Setter”, [4,6] ).

rule(9, “long-haired dog”, “Collie”, [4,5,7] ).

rule(9, “long-haired dog”, “St. Bernard”, [5,7,8] ).

cond(1, “short-haired” ).

cond(2, “long-haired” ).

cond(3, “height under 22 inches” ).

cond(4, “height under 30 inches” ).

cond(5, “low-set tail” ).

cond(6, “longer ears” ).

cond(7, “good natured personality” ).

cond(8, “weight over 100 lb” ).

Дата добавления: 2015-10-01; просмотров: 428 | Нарушение авторских прав | Изречения для студентов

Читайте также:

Рекомендуемый контект:

Поиск на сайте:

© 2015-2020 lektsii.org – Контакты – Последнее добавление

Источник

РАЗРАБОТКА ЭКСПЕРТНЫХ СИСТЕМ В PROLOG

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

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

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

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

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

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

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

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

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

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

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

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

Экспертная система на правилах

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

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

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

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

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

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

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

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

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

dog_is(“Гончая”):– it_is(“короткоерстная собака”),

                            positive(“ее”,”высота в холке не более 57 см”),

                 positive(“у нее”,”длинные уши”),

                positive(“у нее”,”дружелюбный характер”), !.

dog_is(“Great Dane”):– it_is(“длинношерстная собака”),

                               positive(“у нее”,”низко посаженный хвост”),

                    positive(“у нее”,”длинные уши”),

                    positive(“у нее”,”дружелюбный характер”),

                    positive(“ее”,”вес более 45 кг”), !.

Заметим, что в правилах длина шерсти может быть представлена с помощью предиката positive в виде:

positive(“у нее”,”короткая шерсть”).

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

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

Листинг программы экспертной системы на правилах

/* Программа: эксперт по породам собак                            */

/* Это продукционная система, базирующаяся на правилах*/

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

Goal

do_expert_job .

Clauses

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

do_expert_job :– makewindow(1, 7, 7, “ЭКСПЕРТ ПО ПОРОДАМ СОБАК, 1, 16, 22, 58),

    nl,write(” * * * * * * * * * * * * * * * * * * * * * “),

    nl,write(”     ДОБРО ПОЖАЛОВАТЬ!     “),nl,nl,

    nl,write(” Проводится идентификация породы “),nl,nl,

    nl,write(” Отвечайте, пожалуйста, ‘да’ или ‘нет’ “),

    nl,write(” а вопросы о собаке, породу которой “),

    nl,write(” Вы хотите определить “),

    nl,write(” * * * * * * * * * * * * * * * * * * * * * * “),

    nl,nl,do_consulting,write(“Нажмите любую клавишу”),

    nl, readchar(_), removewindow.

do_consulting :– dog_is(X), !, nl, write(“Вероятно Ваша собака – “,X,”.”),

                         nl,clear_facts.

do_consulting :­– nl, write(“Извините, я не смогу помочь Вам!”),

                         clear_facts.

ask(X,Y) :– write(” ?:– “,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. 

/* Продукционные правила */

dog_is(“Английский Бульдог”) :– it_is(“короткошерстная собака”),

                         positive(“ее”,”высота в холке не более 57 см”),

                         positive(“у нее”,”низко посаженный хвост”),

                         positive(“у нее”,”дружелюбный характер”),!.

dog_is(“Гончая”) :– it_is(“короткошерстная собака”),

                         positive(“ее”,”высота в холке не более 57 см”),

                         positive(“у нее”,”длинные уши”),

                         positive(“у нее”,”дружелюбный характер”),!.

dog_is(“Немецкий Дог”) :– it_is(“короткошерстная собака”),

                         positive(“у нее”,”низко посаженный хвост”),

                         positive(“у нее”,”дружелюбный характер”),

                         positive(“ее”,”вес более 45 кг”),!.

dog_is(“Американский Фоксхаунд”) :– it_is(“короткошерстная собака”),

                         positive(“ее”,”высота в холке не более 77 см”),

                          positive(“у нее”,”длинные уши”),

                         positive(“у нее”,”дружелюбный характер”),!.

dog_is(“Кокер Спаниель”) :– it_is(“длинношерстная собака”),

                         positive(“ее”,”высота в холке не более 57 см”),

                         positive(“у нее”,”низко посаженный хвост”),

                         positive(“у нее”,”длинные уши”),

                         positive(“у нее”,”дружелюбный характер”),!.

dog_is(“Ирландский Сеттер”) :– it_is(“длинношерстная собака”),

                         positive(“ее”,”высота в холке не более 77 см”),

                         positive(“у нее”,”длинные уши”),!.

dog_is(“Колли”) :– it_is(“длинношерстная собака”),

                         positive(“ее”,”высота в холке не более 77 см”),

                         positive(“у нее”,”низко посаженный хвост”),

                         positive(“у нее”,”дружелюбный характер”),!.

dog_is(“Сенбернар”) :– it_is(“длинношерстная собака”),

                         positive(“у нее”,”низко посаженный хвост”),

                         positive(“у нее”,”дружелюбный характер”),

                         positive(“ее”,”вес более 45 кг”),!. 

it_is(“короткошерстная собака “) :–

                         positive(“это”,”короткошерстная собака “),!.

it_is(“длинношерстная собака “) :–

                         positive(“это”,”длинношерстная собака “),!.

/* Конец программы */

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

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

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

Интерпретатор выполняет различные функции внутри системы на основе следующей схемы:

1. Система имеет предложения в базе знаний, которые уп­равляют поиском и сопоставлением. Интерпретатор сопоставляет эти предложения с элементами данных в базе данных.

2. Если может быть вызвано более одного правила, то сис­тема использует возможности Турбо-Пролога для разрешения конфликта. Следовательно, пользователю/программисту не нужно рассматривать потенциально возможные конфликты.

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

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

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

rule(1,”Собака”,”Гончая”,[1,2,3,4]).

rule(2,”Собака”,”Немецкий Дог”,[1,5,3,4,6]).

cond(1,”короткошерстная”).

cond(2,”высота в холке не более 57 см”).

cond(3,”длинные уши”).

cond(4,”дружелюбный характер”).

cond(5,”низко посаженный хвост”).

cond(6,”вес более 45 кг”).

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

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

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

Источник