Автор работы: Пользователь скрыл имя, 29 Мая 2012 в 23:13, практическая работа
Целью выполнения практической работы по курсу «Системы искусственного интеллекта» является написание программы экспертной системы для любой предметной области, близкой исполнителю.
Существуют различные способы предоставления знаний в экспертных системах и соответственно различные методы построения базы знаний и логического вывода.
Один из возможных методов работы с ненадёжной, неопределенной информацией основанный на применении теории вероятностей, называется байесовский.
Введение…………………………………………………………………………………………………………………………………………..……3
База знаний.……………………………………………………………………………………………………………………………………..……4
Описание предметной области……………………………………………………………………………………………………..……..4
Признаки и их значения………………………………………………………………………………………………………………………..4
Список вопросов …………………………………..………………………………………………………………………………………………4
Байесовский подход………………………………………………………………………………………………………………………………5
Расчёт вероятностей……………………………………………………………………………………………………………………………...5
Таблица вероятностей..………………………………………………………………………………………………………………………...6
Разработка Экспертной системы………………………………………………………………………………………………………...7
Взвешивание ответа пользователя..…………………………………………………………………………………………………..…8
Механизм логического вывода…………………………………………………………………………………………………………….9
Опыты……………..………...…………………………………………………………………………………………………………………………10
Заключение………………………………………………………………………………………………………………………………………….12
Список литературы………………
В идеале, когда система обращается за конкретной информацией относительно свидетельств, пользователь дает прямой ответ на вопрос «Да» или «Нет». Но может быть так, что пользователь не знает, какой ответ ему дать.
В таких случаях необходимо дать пользователю возможность отвечать, пользуясь некоторой, например, одиннадцати бальной шкалой, на которой +5 означает «Да», -5 означает «Нет», а 0 – «Я не знаю». Все остальные варианта располагаются в промежуточных точках шкалы.
В этом случае
апостериорная вероятность P(H|
Для вычисления 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
В ходе данной работы была создана база знаний, и написана экспертная система.
Экспертная
система имеет возможность
Были проведены эксперименты над созданной базой знаний, их ход и результаты были отражены в виде графиков.
Несомненно, экспертные системы крайне удобный механизм для решения специализированных задач, для которых с помощью людей-экспертов и инженеров по базам знаний составлены полные базы знаний в определенных областях. Однако на практике создание базы знаний для экспертной системы крайне долгий и сложный процесс.
Код программы
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.
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];