Экспертная система "Злой разум"

Автор работы: Пользователь скрыл имя, 08 Ноября 2011 в 22:42, курсовая работа

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

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

Содержание работы

Введение 3
1. База знаний для предметной области “Образование” 4
2. Общая схема алгоритма цепочки рассуждений 6
3. Экспертная система, реализующая алгоритм прямой цепочки рассуждений 7
4. Экспертная система, реализующая алгоритм обратной цепочки рассуждений 10
Заключение 11
Список литературы 12

Содержимое работы - 2 файла

Содержание.doc

— 295.00 Кб (Скачать файл)

СОДЕРЖАНИЕ 

 

     ВВЕДЕНИЕ

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

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

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

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

    Каждая из этих функций может оказаться очень сложной, а способ их реализации может зависеть от проблемной области и практических требований. К тому же разработка и реализация проекта такой системы часто требует решения разнообразных и сложных проблем. К ним относится выбор способа представления знаний и соответствующих средств проведения рассуждений. В данной главе рассматриваются наиболее важные понятия в этой области, которые могут стать основой для дальнейшего усовершенствования. В главе 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('Да ты же Вездесущий  Журналюга!'+#13+'Как я сразу-то не заметил?! :)')

      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('Знаю я вас Барыг!'+#13+'Сам  на него учился! :)')

      else if (CheckBox2.Checked) and (CheckBox10.Checked)  then

      showmessage('Так и знал, Что ты Крутой Хацкер!'+#13+'Помоги сайт Вконтакте взломать! :)')

      else if (CheckBox12.Checked)  then

     showmessage('Так и знал, Что ты Блондинка!'+#13+'Узнал  по цвету волос! :)'+#13+'Ты брюнетка?! Видимо перекрасилась и надеешься  на искусственный интелект?')

       else if (CheckBox11.Checked)  then

     showmessage('И чему же он равен? '+#13+'На  электрика пойдешь! :)')

        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('Такое же страшное слово,  как и сам предмет! '+#13+'Лучше  бы ты закон Ома знал! :)')

        else if (CheckBox2.Checked)  then

     showmessage('Правда?? '+#13+'Спрограмь мне словарь побольше! :)')

Злой Разум.zip

— 423.68 Кб (Скачать файл)

Информация о работе Экспертная система "Злой разум"