- •Балтийский государственный технический университет "военмех"
- •Содержание
- •Введение
- •1 Описание технического задания
- •2.2 Формализованное описание предметной области
- •Заключение
- •Список использованных источников
- •Приложение 1. Руководство пользователя программного продукта
- •Приложение2. Текст программы
1 Описание технического задания
1.1 Постановка задачи
В данном курсовом проекте необходимо создать демонстрационный прототип экспертной системы в выбранной предметной области: «система выдачи рекомендаций по приобретению видеокамеры».
1.2 Функциональное назначение
Демонстрационный прототип экспертной системы должен определить наиболее подходящую видеокамеру по параметрам, полученным от пользователя, или дать ответ, что такой видеокамеры в базе знаний нет.
1.3 Условия применения программного продукта
Программа, реализующая демонстрационный прототип экспертной системы, должна быть применима на персональных компьютерах с операционной системой Windows.
1.4 Сведения о среде разработки
Интерфейс реализован на языке C++ в среде C++Builder 6. Для разработки базы знаний был использован инструментальный пакет - AMZI-Prolog, так как он предоставляет средства для встраивания программ на языке Пролог в другие языки программирования, в которых можно реализовать графический интерфейс.Пролог машина, реализована в компоненте LSEngine (Logical server engine) - движок логического сервера от компании Amzi.
1.5 Руководство пользователя программного продукта
Руководство пользователя программного продукта приведено в приложении 1.
2 Обоснование детализации предметной области
2.1 Выбор модели представления знаний
Выбор способа представления знаний в интеллектуальной системе является ключевым моментом разработки. С точки зрения человека, желательно, чтобы описательные возможности используемой модели были как можно выше. С другой стороны, сложное представление знаний требует специальных способов обработки (усложняется механизм вывода), что затрудняет проектирование и реализацию системы.
При реализации данной системы было принято во внимание, что рынок видеокамер не стоит на месте, база знаний должна постоянно пополняться, поэтому модель представления знаний должна иметь легкость модификации базы знаний и независимость её основной единицы.
Для реализации данной системы была выбрана продукционная модель представления знаний. Продукции, с одной стороны, близки к логическим моделям, что позволяет организовать на них эффективные процедуры вывода, а с другой стороны, отражают знания более наглядно, чем классические логические модели.[4] Такое представление знаний обладает рядом преимуществ:
- простота и ясность основной единицы БЗ - продукции;
- независимость продукций и легкость модификации БЗ;
- строгость, простота и изученность механизма логического вывода;
- асинхронность и естественный параллелизм функционирования, что дает возможность использовать параллельные вычисления.
- конкретно в данной системе - знание удобно представлять в виде продукций.
Преимущества продукционной модели представления знаний сыграли решающую роль в выборе модели для реализации системы.
В продукционных системах БЗ состоит из базы данных и базы правил. База данных содержит факты, описывающие вводимые данные и состояние системы. Они могут иметь различную форму, но у всех продукционных систем представлены как группа данных, содержащая имя данных, имена атрибутов, значения атрибутов .[1, 2]
Продукционная модель привлекает своей наглядностью, высокой модульностью, легкостью внесения дополнений и изменений и простотой механизма логического вывода. [5]
Архитектура программы следующая: логический сервер подгружает метапрограмму, которая использует нами созданную базу знаний для совершения логических выводов. База знаний построена по принципу логических выводов "если-то".
Данная экспертная система выдает рекомендации по выбору видеокамеры. В результате работы программы выводится одна или несколько моделей видеокамер, которые экспертная система рекомендует пользователю.
В данной программе реализован поиск вперед (прямая цепочка рассуждений), но не реализован поиск назад (обратная цепочка рассуждений). Ведь выбирая, что купить, пользователь обращается за рекомендацией и итога рекомендации он еще не знает (поиск по цепочке вперед). Обратный же случай бывает очень редко, ведь пользователь крайне редко может знать, что он хочет, чтобы посоветовала ему экспертная система, то есть поиск по цепочке назад для данной системы рекомендаций, реализовывать не имеет необходимости.
