Автор работы: Пользователь скрыл имя, 08 Ноября 2011 в 22:42, курсовая работа
Дополнительным свойством, которое также часто требуется от экспертной системы, является способность функционировать в условиях неопределенной и неполной информации. Информация о задаче, требующей решения, может быть неполной или ненадежной, а отношения в проблемной области могут быть определены приближенно. Все эти обстоятельства требуют, чтобы система проводила свои рассуждения в условиях неопределенности.
Введение 3
1. База знаний для предметной области “Образование” 4
2. Общая схема алгоритма цепочки рассуждений 6
3. Экспертная система, реализующая алгоритм прямой цепочки рассуждений 7
4. Экспертная система, реализующая алгоритм обратной цепочки рассуждений 10
Заключение 11
Список литературы 12
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
Экспертная система - это программа, которая действует как эксперт в некоторой, обычно узкой прикладной области. К типичным ее приложениям относятся такие задачи, как медицинская диагностика, поиск причин неисправностей оборудования или интерпретация результатов измерений. Экспертные системы должны быть способными решать задачи, для которых требуются специальные знания в определенной области. Они должны обладать этими знаниями, представленными в определенной форме. Поэтому такие системы называют также системами, основанными на знаниях. Но не каждую систему, основанную на знаниях, можно рассматривать как экспертную. Экспертная система должна быть способна в определенной степени объяснять свое поведение и свои решения пользователю, как это делают люди-эксперты. Такие функции объяснения особенно необходимы в областях, характеризующихся значительной неопределенностью, поскольку они позволяют укрепить доверие пользователя к рекомендациям системы и дают возможность обнаружить возможную ошибку в ее рассуждениях. Поэтому экспертные системы должны обладать способностью дружественного взаимодействия с пользователем, благодаря которому ход рассуждений системы становится прозрачным для пользователя.
Дополнительным свойством, которое также часто требуется от экспертной системы, является способность функционировать в условиях неопределенной и неполной информации. Информация о задаче, требующей решения, может быть неполной или ненадежной, а отношения в проблемной области могут быть определены приближенно. Все эти обстоятельства требуют, чтобы система проводила свои рассуждения в условиях неопределенности.
Для формирования полноценной экспертной системы необходимо, как правило, реализовать в ней следующие функции.
Каждая из этих функций может оказаться очень сложной, а способ их реализации может зависеть от проблемной области и практических требований. К тому же разработка и реализация проекта такой системы часто требует решения разнообразных и сложных проблем. К ним относится выбор способа представления знаний и соответствующих средств проведения рассуждений. В данной главе рассматриваются наиболее важные понятия в этой области, которые могут стать основой для дальнейшего усовершенствования. В главе 16 показано, как реализовать полнофункциональный командный интерпретатор экспертной системы, основанной на правилах. При этом вся сложность состоит в том, как поддерживать бесперебойное взаимодействие с пользователем в процессе проведения рассуждений.
Разработку экспертной системы удобно разделить на следующие три главных модуля: база знаний, машина логического вывода, пользовательский интерфейс (рис. 1).
Рис. 1. Структура типичной экспертной системы
База знаний содержит сведения, которые относятся к рассматриваемой прикладной области, в том числе такие информационные компоненты, как простые факты об этой области, правила или ограничения, которые описывают отношения, или феномены в этой области и возможно также методы, эвристики и идеи для решения задач в данной области. Машина логического вывода обладает способностью активно использовать знания, представленные в базе знаний. Пользовательский интерфейс обеспечивает бесперебойное взаимодействие пользователя и системы, а также дает возможность пользователю получить представление о том, как выполняется процесс решения задачи, осуществляемый машиной логического вывода. Машину логического вывода и пользовательский интерфейс удобно рассматривать как один модуль, который обычно называют командным интерпретатором экспертной системы, или для краткости просто командным интерпретатором.
В описанной выше схеме экспертной системы предусматривается разделение знаний и алгоритмов, с помощью которых используются эти знания. Такое разделение удобно по следующим причинам. С одной стороны, очевидно, что состав базы знаний зависит от приложения, с другой стороны, командный интерпретатор, по крайней мере в принципе, не зависит от проблемной области. Поэтому, если должны быть разработаны экспертные системы для нескольких приложений, целесообразно вначале создать командный интерпретатор универсального назначения, а затем подключать к нему новую базу знаний по мере разработки каждого нового приложения. Безусловно, при таком подходе все базы знаний должны соответствовать одним и тем же формальным требованиям, которые совместимы с командным интерпретатором. Но практический опыт создания сложных экспертных систем показывает, что подход, в котором используются один командный интерпретатор много разных баз знаний, удается реализовать без особых затруднений, только если прикладные области действительно очень похожи друг на друга. Тем не менее, даже если и потребуется вносить изменения в командный интерпретатор при переходе от одной проблемной области к другой, то по крайней мере могут быть сохранены основные принципы формирования экспертных систем.
1. БАЗА ЗНАНИЙ ДЛЯ ПРЕДМЕТНОЙ ОБЛАСТИ “ОБРАЗОВАНИЕ”
Имеется много разнообразных профессий, и как же выбрать именно ту, которая тебе подходит? «Злой разум» поможет в выборе профессии, или подскажет, что ты должен знать, избрав ту или иную профессию.
Рассмотрим базу знаний, показанную на рис. 2. В ней рассматривается задача определения профессии по знаниям и наоборот. Программа писалась в среде Delphi 2010. Использовались компоненты CheckBox и RadioGroup. Переменные как таковые не вводились.
.
2. ОБЩАЯ СХЕМА АЛГОРИТМА ЦЕПОЧКИ РАССУЖДЕНИЙ
Рассматриваемая база знаний представлена на рис. 2 как сеть логического вывода. Узлы в этой сети соответствуют высказываниям, а связи - правилам в базе знаний. Кривые линии, которые соединяют некоторые из связей, обозначают конъюнктивную зависимость между соответствующими высказываниями.
Таким образом, правила, определяющие профессию, в этой сети формулируется следующим образом:
Рис. 2. Схема алгоритма цепочки рассуждения
3. ЭКСПЕРТНАЯ СИСТЕМА,
РЕАЛИЗУЮЩАЯ АЛГОРИТМ ПРЯМОЙ ЦЕПОЧКИ РАССУЖДЕНИЙ
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
CheckBox4: TCheckBox;
CheckBox5: TCheckBox;
CheckBox6: TCheckBox;
CheckBox7: TCheckBox;
CheckBox8: TCheckBox;
CheckBox9: TCheckBox;
CheckBox10: TCheckBox;
Button1: TButton;
CheckBox11: TCheckBox;
CheckBox12: TCheckBox;
Button2: TButton;
RadioGroup1: TRadioGroup;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if (not CheckBox1.Checked) and (not CheckBox2.Checked) and
(not CheckBox3.Checked) and (not CheckBox4.Checked) and
(not CheckBox5.Checked) and (not CheckBox6.Checked) and
(not CheckBox7.Checked) and (not CheckBox8.Checked) and
(not CheckBox9.Checked) and (not CheckBox10.Checked) and
(not CheckBox11.Checked) and (not CheckBox12.Checked) then
showmessage('Прости, но Ты есть - никто типа Неуч!'+#13+'В армии тебя ждут с распростертыми объятьями! :)')
else if (CheckBox1.Checked) and (CheckBox2.Checked) and
(CheckBox3.Checked) and (CheckBox4.Checked) and
(CheckBox5.Checked) and (CheckBox6.Checked) and
(CheckBox7.Checked) and (CheckBox8.Checked) and
(CheckBox9.Checked) and (CheckBox10.Checked) and
(CheckBox11.Checked) and (CheckBox12.Checked) then
showmessage('Ты шибко умный, Однако! Череп не жмет?'+#13+'Или ты студент МГОУ?! :)')
else if (CheckBox1.Checked) and (CheckBox7.Checked) and
(CheckBox8.Checked) then
showmessage('Да ты же
else if (CheckBox3.Checked) and (CheckBox6.Checked) and
(CheckBox11.Checked) then
showmessage('Оп-па Ботан наш Физик-ядерщик!'+#13+'Это сразу видно! :)')
else if (CheckBox4.Checked) and (CheckBox5.Checked) and
(CheckBox9.Checked) then
showmessage('Знаю я вас Барыг!
else if (CheckBox2.Checked) and (CheckBox10.Checked) then
showmessage('Так и знал, Что ты Крутой Хацкер!'+#13+'Помоги сайт Вконтакте взломать! :)')
else if (CheckBox12.Checked) then
showmessage('Так и знал, Что ты Блондинка!'+#13+'Узнал
по цвету волос! :)'+#13+'Ты брюнетка?!
Видимо перекрасилась и
else if (CheckBox11.Checked) then
showmessage('И чему же он
else if (CheckBox10.Checked) then
showmessage('Видимо мало ты их тут видишь.. '+#13+'Раз один выбрал! :)')
else if (CheckBox9.Checked) then
showmessage('А я знаю скока $ будет в 6 рублях? '+#13+'Ни одного! :)')
else if (CheckBox8.Checked) then
showmessage('А я в нем рекламу не люблю! '+#13+'А в армии недобор! :)')
else if (CheckBox7.Checked) then
showmessage('А тебе какие нравятся? '+#13+'Мне - Playboy! :)')
else if (CheckBox6.Checked) then
showmessage('От яблок не умнеют! '+#13+'Книги читать надо! :)')
else if (CheckBox5.Checked) then
showmessage('Я тоже много страшных слов знаю '+#13+'А толку?! :)')
else if (CheckBox4.Checked) then
showmessage('Раз, два, три, четыре, пять.. '+#13+'В армию пойдешь считать! Стой! Раз-Два.. :)')
else if (CheckBox3.Checked) then
showmessage('Такое же
else if (CheckBox2.Checked) then
showmessage('Правда?? '+#13+'Спрограмь мне словарь побольше! :)')