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

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

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

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

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

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

Файлы: 1 файл

ргр.docx

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

 

        //для отмены

        List<float[]> Otmena = new List<float[]>();

 

        public Form1()

        {

            InitializeComponent();

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            OpenFileDialog adres = new OpenFileDialog();

            adres.Filter = "База знаний (*.mkb)|*.mkb";

            if (adres.ShowDialog() == DialogResult.OK)

            {

                fname = adres.FileName;

                make();

                Otmena.Clear();

 

            }

        }

 

        public void make()

        {

            int i = 5;

            try

            {

                button3.Enabled = true;

                button4.Enabled = true;

                button5.Enabled = true;

                button6.Enabled = true;

                checkBox1.Enabled = true;

                listBox2.Items.Clear();

                Array.Clear(yes, 0, 90 * 90);

                Array.Clear(no, 0, 90 * 90);

                Array.Clear(voprosi, 0, 90);

                Array.Clear(ver, 0, 90);

                Array.Clear(gipotez, 0, 90);

                StreamReader reader = new StreamReader(fname, Encoding.GetEncoding(1251));

                string[] kk = reader.ReadToEnd().Split(new Char[] { '\n' });

                label1.ResetText();

                label1.Text = kk[0] + kk[1] + kk[2];

                //if (kk[4] != "Вопросы:\r") MessageBox.Show("База данных неверно составлена");

                label6.Text = kk[4];

                while (true)

                {

                    if (kk[i] == "\r") break;

                    i += 1;

                }

                label2.ResetText();

                label2.Text = "Количество вопросов: " + (i - 5);

 

                for (int j = 0; j < i - 5; j++)

                {

                    voprosi[j] = kk[j + 5];

                }

                vopr = i - 5;

                i += 1;

                ish = i;

                while (true)

                {

                    if (kk.Count() == i) break;

                    if (kk[i] == "\r") break;

                    i += 1;

                }

                label3.ResetText();

                label3.Text = "Количество исходов:" + (i - ish);

 

                for (int j = 0; j < i - ish; j++)

                {

                    string[] temp = kk[j + ish].Split(new Char[] { ',' });

                    gipotez[j] = temp[0];

                    ver[j] = Convert.ToSingle(temp[1].Replace(".", ","));

                }

                ish = i - ish;

                for (int obsh = 0; obsh < ish; obsh++)

                {

                    string[] temp = kk[obsh + 6 + vopr].Split(new Char[] { ',' });

                    for (int k = 0; k < (temp.Count() - 2) / 3; k++)

                    {

                        yes[obsh, Convert.ToInt32(temp[2 + k * 3]) - 1] = Convert.ToSingle(temp[3 + k * 3].Replace(".", ","));

                        if (yes[obsh, Convert.ToInt32(temp[2 + k * 3]) - 1] == 0) yes[obsh, Convert.ToInt32(temp[2 + k * 3]) - 1] = 2;

                        no[obsh, Convert.ToInt32(temp[2 + k * 3]) - 1] = Convert.ToSingle(temp[4 + k * 3].Replace(".", ","));

                    }

                }

                t = 0;

                textBox1.Text = voprosi[t];

                label7.Text = (t + 1).ToString();

                refresh();

            }

            catch (Exception ex)

            {

                MessageBox.Show("А где файл? Original error: " + ex.Message);

            }

        }

        public void refresh()

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