Автор работы: Пользователь скрыл имя, 05 Мая 2014 в 19:21, курсовая работа
Одним из наиболее значительных достижений искусственного интеллекта стала разработка мощных компьютерных систем, получивших название "экс-пертных" или основанных на "знаниях" систем. В современном обществе при решении задач управления сложными многопараметрическими и сильносвязанными системами, объектами, производственными и технологическими процессами приходится сталкиваться с решением неформализуемых либо трудноформализуемых задач.
Введение 3
1. Общие сведения о PROLOG 9
2. Разработка экспертной системы 12
2.1 Формирование базы знаний 15
2.2 Структура программы ЭС 17
2.2.1 Раздел описания предикатов внутренней базы данных 17
2.2.2 Раздел описания предикатов 18
2.2.3 Раздел описания предложений 19
2.2.4 Раздел описания внутренней цели 19
Заключение 23
Библиография
СОДЕРЖАНИЕ
Введение 3
1. Общие сведения о PROLOG 9
2. Разработка экспертной системы 12
2.1 Формирование базы знаний
2.2 Структура программы ЭС 17
2.2.1 Раздел описания предикатов внутренней базы данных 17
2.2.2 Раздел описания предикатов 18
2.2.3 Раздел описания предложений 19
2.2.4 Раздел описания внутренней цели 19
Заключение 23
Библиография 24
Приложение 25
ВВЕДЕНИЕ
Одним из наиболее значительных достижений
искусственного интеллекта стала разработка
мощных компьютерных систем, получивших
название "экспертных" или основанных
на "знаниях" систем. В современном
обществе при решении задач управления
сложными многопараметрическими и сильносвязанными
системами, объектами, производственными
и технологическими процессами приходится
сталкиваться с решением неформализуемых
либо трудноформализуемых задач. Такие
задачи часто возникают в следующих областях:
авиация, космос и оборона, нефтеперерабатывающая
промышленность и транспортировка
Под экспертной системой (ЭС) будем понимать программу, которая использует знания специалистов (экспертов) о некоторой конкретной узко специализированной предметной области и в пределах этой области способна принимать решения на уровне эксперта-профессионала.
Осознание полезности систем, которые могут копировать дорогостоящие или редко встречающиеся человеческие знания, привело к широкому внедрению и расцвету этой технологии в 80-е, 90-е годы прошлого века. Основу успеха ЭС составили два важных свойства, отмечаемые рядом исследователей:
- в ЭС знания отделены от данных, и мощность экспертной системы обусловлена в первую очередь мощностью базы знаний и только во вторую очередь используемыми методами решения задач;
- решаемые ЭС задачи являются неформализованными или слабоформализованными и используют эвристические, экспериментальные, субъективные знания экспертов в определенной предметной области.
Основными категориями решаемых ЭС задач являются:
- извлечение информации из первичных данных (таких как сигналы, поступающие от гидролокатора);
- диагностика неисправностей (как в технических системах, так и в человеческом организме);
- структурный анализ сложных объектов (например, химических соединений);
- выбор конфигурации сложных многокомпонентных систем (например, распределенных компьютерных систем);
- планирование
Для классификации ЭС используют следующие признаки:
- способ формирования решения;
- способ учета временного признака;
- вид используемых данных;
- число используемых источников решения знаний.
По способу формирования решения ЭС можно разделить на анализирующие и синтезирующие. В системах первого типа осуществляется выбор решения из множества известных решений на основе анализа знаний, в системах второго типа решение синтезируется из отдельных фрагментов знаний.
В зависимости от способа учета временного признака ЭС делят на статические и динамические. Статические ЭС предназначены для решения задач с неизменяемыми в процессе решения данными и знаниями, а динамические ЭС допускают такие изменения.
По видам используемых данных и знаний различают ЭС с детерминированными и неопределенными знаниями. Под неопределенностью знаний и данных понимаются их неполнота, ненадежность, нечеткость.
ЭС могут создаваться с использованием одного или нескольких источников знаний.
Экспертные системы делятся на различные виды в зависимости от решаемых задач. Задачи, которые решают экспертные системы:
Интерпретация – описание ситуации по информации, поступающей от датчиков и других источников.
Наблюдение – сравнение результатов интерпретации с ожидаемыми результатами.
Мониторинг – наблюдение в определенные промежутки времени.
Прогноз – это определение вероятных последствий заданных ситуацией, системы прогнозирования основываются на имитационном моделировании, которое отражает связи в реальный мир.
Диагностика – выявление причин неправильного функционирования системы по результатам наблюдения.
Ремонт – выполнение последовательности предписанных исправлений.
Планирование – построение последовательности действий для достижения желаемого результата.
Проектирование – построение конфигурации объектов с учетом ограничений.
Отладка – составление рецептов исправления неправильного функционирования системы, настройка отладочной системы.
Управление – адаптивное руководство поведения системы в целом (наблюдает, чтобы отследить на протяжении времени, классифицирует, диагностирует это отклонение, находит рецепт его устранения и осуществляет его применение).
Обучение – диагностирование, отладка, ремонт поведения обучаемого.
Важную роль при создании ЭС играют инструментальные средства. Среди инструментальных средств для создания ЭС наиболее популярны такие языки программирования, как LISP и PROLOG, а также экспертные системы-оболочки (ЭСО): KEE, CENTAUR, G2 и GDA, CLIPS, АТ_ТЕХНОЛОГИЯ, предоставляющие в распоряжение разработчика - инженера по знаниям широкий набор для комбинирования систем представления знаний, языков программирования, объектов и процедур.
В качестве языка программирования в данной курсовой работе был выбран PROLOG.
1 ОБЩИЕ СВЕДЕНИЯ О PROLOG
Название языка " PROLOG " происходит от слов логическое программирование (PROgramming in LOGic — в английском).
В истории возникновения и развития языка PROLOG можно выделить следующие этапы.
В 1965 году в работе "A machine oriented logic based on the resolution principle", опубликованной в 12 номере журнала "Journal of the ACM", Дж Робинсон представил метод автоматического поиска доказательства теорем в исчислении предикатов первого порядка, получивший название "принцип резолюции".
В 1973 году "группа искусственного интеллекта" во главе с Аланом Колмероэ создала в Марсельском университете программу, предназначенную для доказательства теорем. Эта программа использовалась при построении систем обработки текстов на естественном языке. Программа доказательства теорем получила название PROLOG (от Programmation en Logique). Программа была написана на Фортране и работала довольно медленно.
В 1976 г. Роберт Ковальский вместе с его коллегой Маартеном ван Эмденом предложил два подхода к прочтению текстов логических программ: процедурный и декларативный.
В 1977 году в Эдинбурге Уоррен и Перейра создали очень эффективный компилятор языка PROLOG для ЭВМ DEC–10, который послужил прототипом для многих последующих реализаций PROLOG. Что интересно, компилятор был написан на самом PROLOG. Эта реализация PROLOG, известная как "эдинбургская версия", фактически стала первым и единственным стандартом языка. Алгоритм, использованный при его реализации, послужил прототипом для многих последующих реализаций языка. Как правило, если современная PROLOG-система и не поддерживает эдинбургский PROLOG, то в ее состав входит подсистема, переводящая прологовскую программу в "эдинбургский" вид. Имеется, конечно, стандарт ISO/IEC 13211– 1:1995, но его поддерживают далеко не все PROLOG- системы.
В 1980 году Кларк и Маккейб в Великобритании разработали версию PROLOG для персональных ЭВМ.
В 1981 году стартовал вышеупомянутый проект Института по разработке методов создания компьютеров нового поколения.
Традиционно под программой
понимают последовательность операторов
(команд, выполняемых компьютером). Этот
стиль программирования принято называть императивным. Программируя в императивном
стиле, программист должен объяснить компьютеру, как нужно решать задачу.
Противоположный ему стиль
программирования — так называемый декларативный
стиль, в котором программа
представляет собой совокупность утверждений,
описывающих фрагмент предметной области
или сложившуюся ситуацию. Программируя
в декларативном стиле, программист должен
описать, что нужно решать. Соответственно и языки
программирования делят на императивные
и декларативные.
В основе декларативных языков лежит формализованная человеческая логика. Человек лишь описывает решаемую задачу, а поиском решения занимается императивная система программирования. В итоге получаем значительно большую скорость разработки приложений, значительно меньший размер исходного кода, легкость записи знаний на декларативных языках, более понятные, по сравнению с императивными языками, программы.
Известна классификация языков программирования по их близости либо к машинному языку, либо к естественному человеческому языку. Те, что ближе к компьютеру, относят к языкам низкого уровня, а те, что ближе к человеку, называют языками высокого уровня. В этом смысле декларативные языки можно назвать языками сверхвысокого или наивысшего уровня, поскольку они очень близки к человеческому языку и человеческому мышлению.
К императивным языкам относятся такие языки программирования, как Паскаль, Бейсик, Си и т. д. В отличие от них, PROLOG является декларативным языком.
При программировании на Прологе усилия программиста должны быть направлены на описание логической модели фрагмента предметной области решаемой задачи в терминах объектов предметной области, их свойств и отношений между собой, а не деталей программной реализации.
Программа на PROLOG не является таковой в классическом понимании, поскольку не содержит явных управляющих конструкций типа условных операторов, операторов цикла и т. д. Она представляет собой модель фрагмента предметной области, о котором идет речь в задаче. И решение задачи записывается не в терминах компьютера, а в терминах предметной области решаемой задачи, в духе модного сейчас объектно-ориентированного программирования.
Наиболее известная у нас в стране и довольно эффективная версия PROLOG — TURBO PROLOG. Его начинала разрабатывать фирма Borland International в содружестве с датской компанией Prolog Development Center (PDC). Первая версия вышла в 1986 году. Последняя совместная версия имела номер 2.0 и была выпущена в 1988 году.
Самое существенное отличие TURBO PROLOG от эдинбургской версии — наличие в нем строгой типизации данных для повышения скорости трансляции и выполнения программ.
К достоинствам Турбо Пролога относится возможность присоединять к программе на этом языке процедуры, написанные на Паскале, Си, Фортране или ассемблере.
2 РАЗРАБОТКА ЭКСПЕРТНОЙ СИСТЕМЫ
Чтобы проводить экспертизу, компьютерная программа должна быть способна решать задачи посредством логического вывода и получать при этом достаточно надежные результаты. Программа должна иметь доступ к системе фактов, называемой базой знаний.
Программа также должна во время консультации выводить заключения из информации, имеющейся в базе знаний.
Экспертную систему, таким образом, можно представлять состоящей из трех частей:
1. База знаний (БЗ).
2. Механизм вывода (МВ).
3. Система пользовательского
База знаний - центральная часть экспертной системы. Она содержит правила, описывающие отношения или явления, методы и знания для решения задач из области применения системы. Можно представлять базу знаний состоящей из фактических знаний и знаний, которые используются для вывода других знаний.
Механизм вывода содержит принципы и правила работы. Механизм вывода «знает», как использовать базу знаний так, чтобы можно было получать разумно согласующиеся заключения (выводы) из информации, находящейся в ней.
Когда экспертной системе задается вопрос, механизм вывода выбирает способ применения правил базы знаний для решения задачи, поставленной в вопросе. Фактически, механизм вывода запускает экспертную систему в работу, определяя какие правила нужно вызвать и организуя к ним доступ в базу знаний. Механизм вывода выполняет правила, определяет когда найдено приемлемое решение и передает результаты программе интерфейса с пользователем.
Когда вопрос должен быть предварительно обработан, то доступ к базе знаний осуществляется через интерфейс с пользователем. Интерфейс - это часть экспертной системы, которая взаимодействует с пользователем.
Система интерфейса пользователя принимает информацию от пользователя и передает ему информацию. Просто говоря, система интерфейса должна убедиться, что, после того как пользователь описал задачу, вся необходимая информация получена. Интерфейс, основываясь на виде и природе информации, введенной пользователем, передает необходимую информацию механизму вывода. Когда механизм вывода возвращает знания, выведенные из базы знаний, интерфейс передает их обратно пользователю в удобной форме.