Системы искусственного интеллекта

Автор работы: Пользователь скрыл имя, 29 Мая 2012 в 23:13, практическая работа

Описание работы

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

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

Введение…………………………………………………………………………………………………………………………………………..……3
База знаний.……………………………………………………………………………………………………………………………………..……4
Описание предметной области……………………………………………………………………………………………………..……..4
Признаки и их значения………………………………………………………………………………………………………………………..4
Список вопросов …………………………………..………………………………………………………………………………………………4
Байесовский подход………………………………………………………………………………………………………………………………5
Расчёт вероятностей……………………………………………………………………………………………………………………………...5
Таблица вероятностей..………………………………………………………………………………………………………………………...6
Разработка Экспертной системы………………………………………………………………………………………………………...7
Взвешивание ответа пользователя..…………………………………………………………………………………………………..…8
Механизм логического вывода…………………………………………………………………………………………………………….9
Опыты……………..………...…………………………………………………………………………………………………………………………10
Заключение………………………………………………………………………………………………………………………………………….12
Список литературы………………

Файлы: 1 файл

ргр.docx

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

 

В идеале, когда  система обращается за конкретной информацией  относительно свидетельств, пользователь дает прямой ответ на вопрос «Да» или  «Нет». Но может быть так, что пользователь не знает, какой ответ ему дать.

В таких случаях  необходимо дать пользователю возможность  отвечать, пользуясь некоторой, например, одиннадцати бальной шкалой, на которой +5 означает «Да», -5 означает «Нет», а 0 –  «Я не знаю». Все остальные варианта располагаются в промежуточных  точках шкалы.

В этом случае апостериорная вероятность P(H|E) заменяется на вероятность P(H|R).

Для вычисления P(H|R) воспользуемся методом кусочно линейной интерполяции между P(H|E) и P(H|) (рис. 1)

Очевидно, что  при ответе «Не знаю» P(H|R)=P(H)

 

 

 

 

 

 

 

 

Рис. 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Механизм логического вывода.

 

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

Обычно устанавливается  два порога для вероятности гипотезы – верхний и нижний. Если вероятность  превосходит верхний порог, то гипотеза принимается как основа для возможного заключения. Если она сказывается  ниже нижнего порога, то гипотеза отвергается  как неправдоподобная.

Верхний и  нижний пороги M1 и M2 могут быть вычислены как некоторая функция максимума и минимума P(H|E), возможных для этой гипотезы при заданном текущем состоянии базы знаний.

Максимальное  значение P(H|E) определяется как максимально достижимая апостериорная вероятность этой гипотезы при условии что все свидетельства в базе знаний в данный момент говорят в пользу гипотезы.

Также определяется и минимальное значение P(H|E) – это минимальная возможная вероятность гипотезы, вычисленная в предположении, что все свидетельства, имеющиеся в базе знаний, говорят против гипотезы.

Для вычисления P(MAX) в выражении (1) вместо вероятностей подставляют следующие значения:

, , (5)

А для вычислений P(MIN) следующие:

,

. (6)

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Опыты

 

Опыт №1

 

   

1

2

3

4

5

Ель

0,2

0,533049

0

0

0

0

Пихта

0,15

0,267189

0,749285

0

0

0

Лиственница

0,1

0,186707

0,652984

0,833829

0,919214

0,953173

Кипарис

0,05

0,098078

0,471273

0,70387

0,8435

0

 

 

 

 

 

 

Опыт №2

 

   

1

2

3

4

5

Дуб

0,2

0,253807

0

0

0

0

Осина

0,15

0,193611

0,337642

0,520821

0,671798

0,845163

Клён

0,1

0,13132

0,242974

0,406298

0,563088

0

Кипарис

0,05

0,033553

0,034554

0,035585

0

0

 

 

Опыт №3

 

   

1

2

3

4

5

Кедр

0.10

0,336587

0

0

0

0

Пихта

0.15

0,2671892

0,7492852

0,7549636

0,822259

0,8640311

Лиственница

0.10

0,1867065

0,6529836

0

0

0

Кипарис

0.05

0,09807768

0,4712731

0,4788688

0,5797849

0

 

Графики изменений

Опыт №1

Опыт №2

Опыт №3

 

Заключение

В ходе данной работы была создана база знаний, и  написана экспертная система.

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

    • Оценка свидетельств
    • Рассчитываемые нижний и верхний пороги гипотез

Были проведены  эксперименты над созданной базой  знаний, их ход и результаты были отражены в виде графиков.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Список литературы.

  1. Фейгина Е.М. Методические указания к выполнению практических работ по курсу «Системы искусственного интеллекта». М.:ОмГТУ,1991. - 10 с.
  2. Википедия – свободная энциклопедия [Электронный ресурс]. -  http://wikipedia.org . - (дата обращения: 16.03.2012).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение 1

Код программы

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

using System.Text.RegularExpressions;

 

namespace rgr

{

    public partial class Form1 : Form

    {

        int vopr,ish,t;

        string fname;

        string[] voprosi = new string[90];

        string[] gipotez = new string[90];

        float[,] no = new float[90, 90];

        float[,] yes = new float[90, 90];

        float[] ver = new float[90];

Информация о работе Системы искусственного интеллекта