Автор работы: Пользователь скрыл имя, 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
Библиография
Интерфейс с пользователем и механизм вывода могут рассматриваться как «приложение» к базе знаний. Они вместе составляют оболочку экспертной системы. Для базы знаний, которая содержит обширную и разнообразную информацию, могут быть разработаны и реализованы несколько разных оболочек.
В качестве примера экспертной системы на правилах была разработана система по установлению типа темперамента человека. Она помогает человеку не эксперту в данной области определить свой темперамент личности в соответствии с определенными критериями.
Знание природных энергодинамических характеристик личности (ее темперамента) необходимо во многих аспектах жизни:
- личностный темперамент является важным фактором психологической совместимости партнеров в семейной жизни или профессиональной деятельности;
- идентификация темперамента нужна для оптимизации жизненного распорядка, для повышения эффективности труда и отдыха. Она незаменима в профессиональном отборе, если вид деятельности связан с определенными требованиями к психомоторике и свойствам нервной системы. Например, если работа связана с постоянными сильными или частыми раздражителями;
- личностный темперамент важно учитывать при занятиях тем или иным видом спорта. В частности, при определении вида спорта, в котором индивидуум может добиться наибольших успехов, при выборе оптимальной и благоприятной физической нагрузки во время тренировок или занятий физкультурой. Это позволяет представителям получить максимум удовлетворения от физической нагрузки, а представителям других — избежать перегрузок и накопленного стресса;
- помощь родителям в воспитании детей. Например, эта методика поможет вам определить, чем стоит заниматься вашему ребенку: хоккеем или фигурным катанием;
- многие наверняка замечали, что уроки дети могут делать быстро и с радостью, а могут сидеть часами без особых успехов. Дети по-разному воспринимают обучение. Ведь каждый ребенок обладает индивидуальным темпераментом, заложенным природой. Одних увеличение нагрузок лишь заводит, другие впадают в уныние и слезы. Зная особенности своего темперамента, вы можете сделать своё обучение и проведение досуга эффективнее, познавательней.
Темперамент человека - качество биологическое, врожденное, а не приобретенное. Только на 25% из 100% темперамент поддается коррекции. И эта коррекция - наша подстройка под требования социума.
Пользователю предлагается ответить на 20 вопросов. Ответы пользователя сопоставляются с характеристиками темперамента, составляющими часть базы знаний, тогда вызывается соответствующее продукционное правило и в результате идентифицируется тип темперамента. Затем результат сообщается пользователю. Если тип не идентифицирован, пользователь относится к смешанному типу темперамента, что тоже сообщается.
2.1 Формирование базы знаний.
Выделяют четыре простых типа темперамента: сангвинический, холерический, меланхолический и флегматический.
Базу знаний заполняем характеристиками четырех типов темперамента.
Сангвиник - живой, горячий, подвижный человек, с частой сменой настроения, впечатлений, с быстрой реакцией на все события, происходящие вокруг него, довольно легко примиряющийся со своими неудачами и неприятностями. Обычно сангвиники обладают выразительной мимикой. Он очень продуктивен в работе, когда ему интересно, приходя в сильное возбуждение от этого, если работа не интересна, он относится к ней безразлично, ему становится скучно.
Холерик - быстрый, страстный, порывистый, однако совершенно неуравновешенный, с резко меняющимся настроением с эмоциональными вспышками, быстро истощаемый. У него нет равновесия нервных процессов, это его резко отличает от сангвиника. Холерик, увлекаясь, безалаберно растрачивает свои силы и быстро истощается.
Меланхолик - человек легко ранимый, склонный к постоянному переживанию различных событий, он мало реагирует на внешние факторы. Свои астенические переживания он не может сдерживать усилием воли, он чересчур впечатлителен, легко эмоционально раним.
Флегматик неспешен, невозмутим, имеет устойчивые стремления и настроение, внешне скуп на проявление эмоций и чувств. Он проявляет упорство и настойчивость в работе, оставаясь спокойным и уравновешенным. В работе он производителен, компенсируя свою неспешность прилежанием.
Для определения типа темперамента пользователю предлагается ответить на следующий ряд вопросов:
1) Вы живо откликаетесь на то, что привлекает ваше внимание?
2) Вы хорошо контролируете свои эмоции?
3) У Вас плавная и уверенная походка?
4) Вы много жестикулируете?
5) Для Вас наиболее характерным является состояние бодрости?
6) Легко ли ВЫ приспосабливаетесь к новой обстановке?
7) Ваша речь громкая и отчетливая?
8) Вы упорны, даже упрямы?
9) Ритм вашей деятельности неравномерный, скачкообразный?
10) Вы любите рисковать?
11) У Вас бывают вспышки раздражительности?
12) Вы застенчивый человек?
13) Одиночество не тяготит вас?
14) Вам свойственна некоторая мнительность и подозрительность?
15) Вам приятно, когда окружающие сопереживают вам?
16) У Вас завышенные требования к себе и окружающему миру?
17) В своих словах и делах вы отличаетесь последовательностью?
18) С другими людьми у вас ровные, хорошие отношения?
19) Вы аккуратны, педантичны в мелочах?
20) Вы грамотно распределяете свои силы?
Ответ «да» на первые 7 вопросов характерен для сангвиников
На вопросы 8-11 ответ «да» характерен для холериков.
Положительный ответ на вопросы 12-16 описывает меланхолический тип темперамента, а на 17-20 вопросы – флегматический тип темперамента.
2.2 Структура программы ЭС
Созданная на TURBO PROLOG ЭС состоит из следующих разделов:
- database - раздел описания предикатов внутренней базы данных;
- predicates - раздел описания предикатов;
- clauses - раздел описания предложений;
- goal - раздел описания внутренней цели.
Порядок разделов может быть произвольным, но при этом предикаты должны быть определены до их использования.
2.2.1 Раздел описания предикатов внутренней базы данных.
Внутренние базы данных так называются потому, что они обрабатываются исключительно в оперативной памяти компьютера.
Внутренняя база данных состоит из фактов, которые можно динамически, в процессе выполнения программы, добавлять в базу данных и удалять из нее, сохранять в файле, загружать факты из файла в базу данных. Эти факты могут использовать только предикаты, описанные в разделе описания предикатов базы данных.
Если раздел описания предикатов базы данных в программе только один, то он может не иметь имени. В этом случае он автоматически получает стандартное имя dbasedom.
Описание предикатов базы данных совпадает с их описанием в разделе описания предикатов predicates.
В базе данных могут содержаться только факты, а не правила вывода, причем факты базы данных не могут содержать свободных переменных. Есть существенное преимущество в использовании таких баз данных. Дело в том, что факты, использующие предикаты, заданные в разделе database, могут добавляться и удаляться во время выполнения программы.
Для добавления фактов во внутреннюю базу данных в нашей ЭС использовались встроенные предикаты asserta и assertz.
Разница между этими предикатами заключается в том, что предикат asserta добавляет факт перед другими фактами (в начало внутренней базы данных), а предикат assertz добавляет факт после других фактов (в конец базы данных).
В качестве параметра у этих предикатов указывается добавляемый факт.
Для удаления фактов из базы данных служат предикат retract.
Предикат retract удаляет из внутренней базы данных первый с начала факт, который может быть отождествлен с его первым параметром.
2.2.2 Раздел описания предикатов.
В разделе, озаглавленном зарезервированным словом predicates, содержатся описания определяемых пользователем предикатов. В традиционных языках программирования подобными разделами являются разделы описания заголовков процедур и функций.
Домены аргументов должны быть либо стандартными, либо объявленными в разделе описания доменов. Имя предиката в должно быть идентификатором, т.е. оно должно состоять только из английских букв, цифр и символа подчеркивания, причем не может начинаться с цифры.
Например, предикат, описывающий отношение «temperament», который использовался в ЭС, может быть описан следующим образом:
predicates
temperament(string)
Это описание означает, что у предиката один аргумент строкового типа.
2.2.3 Раздел описания предложений.
Этот раздел можно считать основным разделом программы, потому что именно в нем содержатся факты и правила, реализующие пользовательские предикаты. Начинается этот раздел со служебного слова clauses.
При попытке удовлетворения цели TURBO PROLOG работает с самого начала раздела clauses, просматривая в процессе поиска последовательно каждый факт или правило. По мере прохождения раздела clauses TURBO PROLOG устанавливает внутренние указатели после каждого выражения, которое удовлетворяет текущей подцели. Если такое выражение не является частью ведущего к решению логического пути, то TURBO PROLOG возвращается к установленному указателю и ищет другое соответствие. Такой процесс называется поиском с возвратом ( backtracking ).
2.2.4 Раздел описания внутренней цели.
С зарезервированного слова goal начинается раздел описания внутренней цели программы.
В ЭС «Тип темперамента» в самом теле программы мы использовали внутреннюю цель:
goal
makewindow(1,10,12," Экспертная система : Тип темперамента ",0,0,25,80),
write("ЭС разработана
write("Кучеренко Надеждой"),nl,
write("-----------------------
run.
Само предложение, определяющее цель, состоит из семи подцелей, разделенных запятыми.
Первая подцель:
makewindow(1,10,12," Экспертная система : Тип темперамента ",0,0,25,80),
Предикат makewindow создает новое окно на экране. Когда окно создано, оно становится активным (текущим), и вся выводимая информация автоматически направляется в него.
Предикат makewindow имеет формат:
makewindow(WNo,ScrAttr,FrAttr,
Описания аргументов этого предиката приведены в таблице 2, атрибуты цветов образуются из значений, приведенных в таблице 3.
Таблица 2 - Описания аргументов предиката makewindow
Аргумент |
Описание |
Wno |
Номер окна |
ScrAttr |
Атрибут цвет букв. |
FrAttr |
Атрибут цвета рамки окна. |
Heading |
Текст заголовка окна. |
Row,Col |
Определяет левый верхний угол окна. |
Height |
Высота окна, включая рамку |
Width |
Ширина окна, включая рамку. |
Таблица 3 - Описание атрибуты цветов предиката makewindow
Цвет букв |
Величина |
Цвет рамки |
Величина |
Черный |
0 |
Черный |
0 |
Серый |
8 |
Голубой |
16 |
Голубой |
1 |
Зеленый |
32 |
Светлоголубой |
0 |
Синий |
48 |
Зеленый |
2 |
Красный |
64 |
Светлозеленый |
10 |
Алый |
80 |
Синий |
3 |
Коричневый |
96 |
Светлосиний |
11 |
Белый |
112 |
Красный |
4 |
||
Светлокрасный |
12 |
||
Алый |
5 |
||
Светлоалый |
13 |
||
Коричневый |
6 |
||
Желтый |
14 |
||
Белый |
7 |