РАЗРАБОТКА ЭКСПЕРТНОЙ СИСТЕМЫ «ВОЕННАЯ ТЕХНИКА» НА ЯЗЫКЕ ПРОЛОГ - Студенческий научный форум

VII Международная студенческая научная конференция Студенческий научный форум - 2015

РАЗРАБОТКА ЭКСПЕРТНОЙ СИСТЕМЫ «ВОЕННАЯ ТЕХНИКА» НА ЯЗЫКЕ ПРОЛОГ

Цесаренков В.А. 1
1БИТТиУ (филиал СГТУ)
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

ВВЕДЕНИЕ

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

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

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

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

1 КЛАССИФИКАЦИЯ ЭКСПЕРТНЫХ СИСТЕМ

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

  • диагностика состояния систем, в том числе мониторинг (непрерывное отслеживание текущего состояния);

  • прогнозирование развития систем на основе моделирования прошлого и настоящего;

  • планирование и разработка мероприятий в организационном и технологическом управлении;

  • проектирование или выработка четких предписаний по построению объектов, удовлетворяющих поставленным требованиям;

  • автоматическое управление (регулирование);

  • обучение пользователей и др.

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

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

По степени сложности экспертные системы делят на поверхностные и глубинные. Поверхностные экспертные системы представляют знания в виде правил «если-то». Условием выводимости решения является безобрывность цепочки правил. Глубинные экспертные системы обладают способностью при обрыве цепочки правил определять (на основе метазнаний) какие действия следует предпринять для продолжения решения задачи. Кроме того, к сложным относятся предметные области, в которых текст записи одного правила на естественном языке занимает более 1/3 страницы.

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

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

  • подсистема моделирования внешнего мира;

  • подсистема связи с внешним окружением.

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

Механизм логического вывода (МЛВ) предназначен для получения новых фактов на основе сопоставления исходных данных из рабочей памяти и знаний из базы знаний. Механизм логического вывода во всей структуре экспертной системы занимает наиболее важное место. Он реализует алгоритмы прямого и / или обратного вывода и формально может быть представлен четверкой:

  • V – процедура выбора из базы знаний и рабочей памяти правил и фактов;

  • S – процедура сопоставления правил и фактов, в результате которой определяется множество фактов к которым применимы правила для присвоения значений;

  • K – процедура разрешения конфликтов, определяющая порядок использования правил, если в заключении правила указаны одинаковые имена фактов с разными значениями;

  • W – процедура, осуществляющая выполнение действий, соответствующих полученному значению факта (заключению правила).

Рабочая память предназначена для хранения исходных и промежуточных фактов решаемой в текущий момент задачи. Как правило, размещается в оперативной памяти ЭВМ и отражает текущее состояние предметной области в виде фактов с коэффициентами уверенности (КУ) в истинности этих фактов.

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

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

Подсистема приобретения и пополнения знаний автоматизирует процесс наполнения экспертной системы знаниями, осуществляемый пользователем-экспертом, и адаптации базы знаний системы к условиям ее функционирования. Адаптация экспертной системы к изменениям в предметной области реализуется путем замены правил или фактов в базе знаний.

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

  • повышается доверие пользователей к полученным результатам;

  • облегчается отладка системы;

  • создаются условия для пользователей по вскрытию новых закономерностей предметной области;

  • объяснение полученных выводов может служить средством поиска точки в парето-оптимальном множестве решений.

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

2 КЛАССИФИКАЦИЯ ПРОГРАММНЫХ СРЕДСТВ ДЛЯ РАЗРАБОТКИ ЭКСПЕРТНЫХ СИСТЕМ

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

2.1 Оболочки экспертных систем (expert system shells). Системы этого типа создаются, как правило, на основе какой-нибудь экспертной системы, достаточно хорошо зарекомендовавшей себя на практике. При создании оболочки из системы-прототипа удаляются компоненты, слишком специфичные для области ее непосредственного применения, и оставляются те, которые не имеют узкой специализации. Примером может служить система EMYCIN, созданная на основе прошедшей длительную "обкатку" системы MYCIN. В EMYCIN сохранен интерпретатор и все базовые структуры данных — таблицы знаний и связанный с ними механизм индексации. Оболочка дополнена специальным языком, улучшающим читабельность программ, и средствами поддержки библиотеки типовых случаев и заключений, выполненных по ним экспертной системой. Дальнейшим развитием оболочки EMYCIN явились системы S.1 и М.4, в которых механизм построения цепочки обратных рассуждений, заимствованный в EMYCIN, объединен с фреймоподобной структурой данных и дополнительными средствами управления ходом рассуждений.

2.2 Языки программирования высокого уровня. Инструментальные средства этой категории избавляют разработчика от необходимости углубляться в детали реализации системы — способы эффективного распределения памяти, низкоуровневые процедуры доступа и манипулирования данными. Этот язык прост в изучении и предоставляет программисту гораздо более широкие возможности, чем типичные специализированные оболочки. Следует отметить, что большинство подобных языков так и не было доведено до уровня коммерческого продукта и представляет собой скорее инструмент для исследователей.

2.3 Среда программирования, поддерживающая несколько парадигм (multiple-paradigm programming environment). Средства этой категории включают несколько программных модулей, что позволяет пользователю комбинировать в процессе разработки экспертной системы разные стили программирования. Среди первых проектов такого рода была исследовательская программа LOOP, которая допускала использование двух типов представления знаний: базирующегося на системе правил и объектно-ориентированного (см. об этой программе в главе 5). На основе этой архитектуры во второй половине 1980-х годов было разработано несколько коммерческих программных продуктов, из которых наибольшую известность получили KEE, KnowledgeCraft и ART. Эти программы предоставляют в распоряжение квалифицированного пользователя множество опций и для последующих разработок, таких как КАРРА и CLIPS, и стали своего рода стандартом. Однако освоить эти языки программистам далеко не так просто, как языки, отнесенные нами к предыдущей категории.

2.4 Дополнительные модули. Средства этой категории представляют собой автономные программные модули, предназначенные для выполнения специфических задач в рамках выбранной архитектуры системы решения проблем. Хорошим примером здесь может служить упоминавшийся в главе 15 модуль работы с семантической сетью, использованный в системе VT. Этот модуль позволяет отслеживать связи между значениями ранее установленных и новых параметров проектирования в процессе работы над проектом. Подобные модули управления семантической сетью можно использовать для распространения внесенных изменений на все компоненты системы.

3 РАЗРАБОТКА ЭС «ВЫБОР СТРАНЫ ДЛЯ ОТДЫХА»

3.1 Формализация задачи – дерево решения задачи

Наиболее важным этапом при создании базы знаний является этап приобретение знаний.

На данном этапе информация должна быть представлена в виде обобщенной структуры – «Дерево решений».

Рисунок 1 – Дерево решений

3.2 Формирование дерева правил

Представим дерево решений в виде правил, выполнив перевод дерева решений из «вопросов-ответов» в «утверждения-факты».

Рисунок 2 – Дерево правил

3.3 Таблица «атрибут-предикат-значение»

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

Таблица 1 - Атрибут-предикат-значение

1

Атрибут

Предикат

Значение

2

Космическая техника

IS

Спутники ПРО

3

Не космическая техника

IS

Сверхбольшой дальности поражения

4

Сверхбольшой дальности поражения

IS

Баллистические ракеты

5

Не сверхбольшой дальности поражения

IS

Поражение по большой площади

6

Поражение по большой площади

IS

РСЗО

7

Нет поражения по большой площади

IS

Подводная техника

8

Подводная техника

IS

Подводная лодка

9

Не подводная техника

IS

Надводная техника

10

Надводная техника

IS

Боевые корабли

11

Не надводная техника

IS

Наземная техника

12

Наземная техника

IS

САУ, танки, БМП/Д

13

Не наземная техника

IS

Воздушная техника

14

Воздушная техника

IS

Вертолеты, истребители

Продолжение таблицы

Продолжение таблицы

15

Не воздушная

IS

Ошибка

16

Большой дальности поражения

IS

САУ, истребители

17

Не большой дальности поражения

IS

Перевозка пехоты

18

Перевозка пехоты

IS

Вертолеты, БМП/Д

19

Не перевозит пехоту

IS

Тяжело бронированная

20

Тяжело бронированная

IS

Танки

3.4 Листинг программы

DOMAINS

A,B,C,D,E,F,G,H,R,Z=symbolPREDICATESlang(A,B,C,D,E,F,G,H,R,Z)clauseslang(A,_,_,_,_,_,_,_,_,_):-A="1", write("it`s "),write("Space System PRO").lang(A,B,_,_,_,_,_,_,_,_):-A="2", B="1", write("it`s "),write("Ballistic Rocket").lang(A,B,C,_,_,_,_,_,_,_):-A="2", B="2", C="1", write("it`s "),write("RSZO").lang(A,B,C,D,_,_,_,_,_,_):-A="2", B="2", C="2", D="1", write("it`s "),

write("Subwater ship").lang(A,B,C,D,E,_,_,_,_,_):-A="2", B="2", C="2", D="2", E="1", write("it`s "),

write("Warship").lang(A,B,C,D,E,F,G,H,R,Z):-A="2", B="2", C="2", D="2", E="2", F="1", G="2",

H="2", R="2", Z="1", write("it`s "),write("Tanks").lang(A,B,C,D,E,F,G,H,R,Z):-A="2", B="2", C="2", D="2", E="2", F="1", G="2",

H="1", R="2", Z="2", write("it`s "),write("SAU").lang(A,B,C,D,E,F,G,H,R,Z):-A="2", B="2", C="2", D="2", E="2", F="1", G="2",

H="2", R="1", Z="2", write("it`s "),write("BMP/D").lang(A,B,C,D,E,F,G,H,R,Z):-A="2", B="2", C="2", D="2", E="2", F="2", G="1",

H="2", R="1", Z="2", write("it`s "),write("Helicopter").lang(A,B,C,D,E,F,G,H,R,Z):-A="2", B="2", C="2", D="2", E="2", F="2", G="1",

H="1", R="2", Z="2", write("it`s "),write("Istrebitel'").goal write("Space Machinery?"),nl, write("1)Da "),write("2)Net"),readln(X),nl,write("Sverhbolshoi dalhosti porazhenia?"),nl, write("1)Da "),write("2)Net"),readln(Y),nl,write("Porazhenie po bolshoi ploshadi?"),nl, write("1)Da "),write("2)Net"),readln(Z),

nl,write("Subwater?"),nl, write("1)Da "),write("2)Net"),readln(U),nl,write("Nadvodnaya?"),nl, write("1)Da "),write("2)Net"),readln(T),nl,write("Nazemnaya?"),nl, write("1)Da "),write("2)Net"),readln(R),nl,write("Vozdushnaya?"),nl, write("1)Da "),write("2)Net"),readln(E),nl,write("Bolshoi dalnosti porazheniya?"),nl, write("1)Da "),write("2)Net"),readln(W),nl,write("Perevozka pehotbl?"),nl, write("1)Da "),write("2)Net"),readln(Q),nl,write("Tyazhelo bronirovannaya?"),nl, write("1)Da "),write("2)Net"),readln(M),nl,lang(X,Y,Z,U,T,R,E,W,Q,M)

3.5 Проверка логических выводов

1) Проверка логического вывода «Спутники ПРО».

Рисунок 3 - Результат проверки логического вывода «Спутники ПРО»

2) Проверка логического вывода «Баллистические ракеты».

Рисунок 4 - Результат проверки логического вывода «Баллистические ракеты»

3) Проверка логического вывода «РСЗО».

Рисунок 5 - Результат проверки логического вывода «РСЗО»

4) Проверка логического вывода «Подводные лодки».

Рисунок 6 - Результат проверки логического вывода «Подводные лодки»

5) Проверка логического вывода «Корабли».

Рисунок 7 - Результат проверки логического вывода «Корабли»

6) Проверка логического вывода «Танки».

Рисунок 8 - Результат проверки логического вывода «Танки»

7) Проверка логического вывода «САУ».

Рисунок 9 - Результат проверки логического вывода «САУ»

8) Проверка логического вывода «БМП/Д».

Рисунок 10 - Результат проверки логического вывода «БМП/Д»

9) Проверка логического вывода «Вертолеты».

Рисунок 11 – Результат запроса проверки логического вывода «Вертолеты»

10) Проверка логического вывода страны «Истребители».

Рисунок 12 - Результат проверки логического вывода «Истребители»

4 СОЗДАНИЕ БАЗЫ ДАННЫХ

4.1 Краткое описание

Создана база данных о технике, которая хранит в себе некоторую информацию о представленной технике. Данная информация представлена в структурированном виде в таблице 2.

Таблица 2 - Таблица структуры базы данных

Техника

Вооружение

Бронирование

Транспортировка

Спутники ПРО

Нет

Нет

Нет

Баллистические ракеты

Нет

Нет

Нет

РСЗО

Да

Нет

Нет

Подводные лодки

Да

Да

Да

Боевые корабли

Да

Да

Да

Танки

Да

Да

Нет

САУ

Да

Да

Нет

БМП/Д

Да

Да

Да

Вертолеты

Да

Да

Да

Истребители

Да

Нет

Нет

4.2 Листинг

DOMAINSname,weapons,armor,transp=symbolPREDICATESart(name,weapons,armor,transp)clausesart(space_system_pro,no,no,no).art(ballistic_rocket,no,no,no).art(rszo,yes,no,no).art(suwater_ship,yes,yes,yes).art(warship,yes,yes,yes).art(tanks,yes,yes,no).art(sau,yes,yes,no).art(bmp_d,yes,yes,yes).art(helicopter,yes,yes,yes).art(istrebitel,yes,no,no).

4.3 Запросы

1) Выполним запрос на проверку существующей техники. Предикат: art(tanks, yes, yes, no).

Рисунок 13 – Результат выполнения запроса: запрашиваемая техника найдена

2) Выполним запрос на проверку стран, требующих наличие бронирования и вооружения. Предикат: art(X,yes,yes,Z).

Рисунок 14 – Результат выполнения запроса: вывод данных о технике, требующих наличие бронирования и вооружения

3) Выполним запрос на проверку техники, не удовлетворяющей требованию транспортировки груза. Предикат: art(X,_,_,Y), Y=no.

Рисунок 15 – Результат выполнения запроса: вывод техники, не удовлетворяющей требованию транспортировки груза

4) Выполним запрос: вывод перечня техники, с отсутствием бронирования. Предикат: art (X,_,Y,_), Y=no.

Рисунок 16 – Результат запроса: вывод перечня техники, с отсутствием бронирования

5) Выполним запрос: вывод перечня стран, требующих наличие вооружения и бронирования. Предикат: art(X,yes,_,_) and art(X,_,yes,_).

Рисунок 17 – Результат запроса: вывод перечня стран, требующих наличие вооружения и бронирования

5 ЗАДАЧА: ОРИЕНТИРОВАННЫЙ ГРАФ

5.1 Краткое описание

Программа, которая описывает ориентированный граф, содержащий многоугольник и двунаправленные связи.

Рисунок 18 - Ориентированный граф

5.2 Листинг

domainspoint=symbolpredicatesarc_(point,point)line_(point,point)tr_(point,point,point)clausesarc_(a,b).arc_(b,c).arc_(c,a).arc_(b,d).arc_(d,b).arc_(c,d).arc_(d,c).arc_(a,d).arc_(d,a).line_(A,B):-arc_(A,B),arc_(B,A).tr_(X,Y,Z):-arc_(X,Y),arc_(Y,Z),arc_(Z,X).

5.3 Запросы

1) Выполним запрос на проверку о существующих дугах. Предикат: arc_(X,Y)

Рисунок 19 - Результат запроса: вывод сведений о существующих дугах

2) Выполним запрос на проверку о существующих линиях. Предикат: line_(X,Y)

Рисунок 20 - Результат запроса: вывод сведений о существующих линиях

3) Выполним запрос на проверку существующей линии. Предикат: line_(d, c)

Рисунок 21 - Результат запроса: вывод сведений о существовании заданной линии

4) Выполним запрос на проверку существовании треугольника. Предикат: tr_( a, b, c)

Рисунок 22 - Результат запроса: вывод сведений о существовании треугольника

5) Выполним запрос на проверку о существующих треугольниках. Предикат: tr_(X,Y,Z)

Рисунок 23 - Результат запроса: вывод сведений о существующих треугольниках

ЗАКЛЮЧЕНИЕ

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

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

Результатом выполнения курсовой работы стала экспертная система на тему «Военная техника». Данная работа представлена деревом решений, таблицей «атрибут-предикат-значение» и кодом самой программы.

Также в ходе выполнения курсовой работы были разработаны база данных «Военная техника» и ориентированный граф. Функционирование проверено с помощью запросов.

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Форсайт Р. Экспертные системы. Принцип работы и примеры. – С-Пб.: Радио и связь. – 1987. – 224с.

2. Джарратано Д. Экспертные системы: принцип разработки и программирование. – М.: Вильямс. - 2006.-1152с.

3. Малпас Д. Реляционный язык Пролог и его применение. – М.: Наука. - 1990.

4. Норвиг П. Современный подход к искусственному интелекту. – С-Пб.: Дрофа. - 2007. – 1408 с.

5. Уотермен Д. Руководство по экспертным системам. - М.: Мир. - 1989. – 388 с.

6. Стерлинг Л., Шапиро Э. Искусство программирования на языке Пролог. /Пер. с англ. — М.: Мир, 1990.

7. Фуззи М. Когнитивная карта Фуззи. — М.: Феникс.- 2003.- 213с.

8. Братко И. Алгоритмы искусственного интеллекта на языке PROLOG. – С-Пб.: Вильямс. – 2004. – 640с.

9. Цуканова Н. Логическое программирование на языке Visual Prolog. – М.: Горячая Линия - Телеком. – 2008. – 144с.

10. Шрайнер П. Основы программирования на языке Пролог. – С-Пб.: Интернет-университет информационных технологий. – 2005. – 176с.

Просмотров работы: 1591