Математическая и программная реализация теории принятия решений
Установим два факта (образца): товар прошел государственные экспертизы; цена приемлемая. Исходя из данных фактов программа должна, в поле построения вывода, выдать запись, о том, что товар качественный (т.к. товар прошел государственные экспертизы => товар качественный).Окно программы представлено на рисунке Контрольный пример 2(см. Рис.П.3.2). П. 5.2.Описание информации П. 5.2.1.Входная… Читать ещё >
Математическая и программная реализация теории принятия решений (реферат, курсовая, диплом, контрольная)
Математическая и программная реализация теории принятия решений
СОДЕРЖАНИЕ математическая программная решение реализация ВВЕДЕНИЕ
1.ОПИСАНИЕ ПОСТАНОВКИ ЗАДАЧИ
1.1 Характеристика задачи
1.2 Математическая постановка задачи
2.ОПИСАНИЕ ИНФОРМАЦИИ
2.1 Входная информация
2.2 Выходная информации
3. ИЕРАРХИЧЕСКАЯ СХЕМА
3.1 Иерархическая схема
3.2 Спецификация
4.ОПИСАНИЕ АЛГОРИТМА ФУНЦИИ checkBox_Checked ()
4.1 Назначение и характеристика
4.2 Используемая информация
4.3 Результаты решения
4.4 Алгоритм решения
5.ОПИСАНИЕ АЛГОРИТМА ФУНЦИИ обработка ()
5.1 Назначение и характеристика
5.2 Используемая информация
5.3 Результаты решения
5.4 Алгоритм решения ЗАКЛЮЧЕНИЕ ПРИЛОЖЕНИЯ
ВВЕДЕНИЕ
Знаниеэто сила. Всем известное утверждение как никогда становится актуальным наше время, так как прогресс не стоит на месте и технологии постоянно развиваются. Вследствии чего становится затруднительным сделать логический вывод на основании тех или иных фактов (условий), для облегчения процесса установления вывода необходимо формализовать знания, упорядочить и представить в виде некой структуры, удобной для хранения и отображения информации.
За такую структуру можно принять Базу знаний, представляющую из себя набор фактов и действий, возникающий при утверждении того или иного условия.
1.ОПИСАНИЕ ПОСТАНОВКИ ЗАДАЧИ
1.1 Характеристика задачи
Цель:
Необходимо разработать и реализовать программу, позволяющую выбрать поставщика товаров. Программа должна представлять собой аналог продукционной модели представления знаний, а именно:
1) Сопоставление фактов и условий.
2) Построение логического вывода, исходя из полученных данных в ходе выполнения алгоритма программы.
1.2 Математическая постановка задачи Приведем таблицу фактов и действий (образцов и консиквентов) (см. Таблица 1.2.1.).
Таблица 1.2.1.Таблица фактов и действий
Условие, образец | Действие, консиквент | ||||
Условие 1 | Условие 2 | Условие 3 | |||
Поставщик проверенный (1.1) | Товар качественный (1.2) | Цена приемлемая (1.3) | Поставщик подходит (Д1) | ||
Поставщик давно на рынке (2.1) | Жалоб на поставщика не было (2.2) | Поставщик проверенный (Д2) | |||
Есть рекомендации от других заказчиков (3.1) | Поставка производится в срок (3.2) | Товар не имеет дефектов (3.3) | Жалоб на поставщика не было (Д3) | ||
Товар сертифицирован (4.1) | Товар прошел государственные экспертизы (4.2) | Товар качественный (Д4) | |||
Цена чуть ниже чем у других поставщиков (5.1) | Цена приемлемая (Д5) | ||||
Исходя из данных приведенных в таблице (см. таблица 1.2.1.) математическую модель алгоритма построения логического вывода опишем следующим образом:
1) У1.1 and У1.2 and У1.3=>Д1
2) У2.1 or У2.2=>Д2
3) Д2=>У1.1
4) У3.1 or (У3.2 and У3.3)=>Д3
5) Д3=>У2.2.=>Д2=>У1.1
6) У4.1 or У4.2=>Д4
7) Д4=>У1.2.
8) У5.1=>Д5
9) Д5=>У1.3.
10) Д2 and Д4 and Д5 =>Д1
11) Д5 and (У4.1. or У4.2.)and (У2.1 or У2.2) =>Д1
12) У5.1 and (У4.1. or У4.2) and ((У3.1 or (У3.2 and У3.3)) or У2.1) =Д1
Где:
У1,У2,У3 — условия (факты) необходимые для выполнения некоторого действия Д — действие которое возникает при выполнении необходимых условий.
2.ОПИСАНИЕ ИНФОРМАЦИИ
2.1 Входная информация Входной информацией для программы в целом, является модуль data_base.cs (который хранит в себе описание структуры базы знаний, непосредственно саму базу данных и функции инициализации и констатации фактов), а так же отмеченные утверждения (см. Рис. 2.1.1.).
Рис. 2.1.1.Панель выбора фактов
2.2 Выходная информации В качестве выходной информации (для программы в целом) выступает логический вывод (см. Рис.2.2.1), и панель отображения текущего состояния фактов (вывод данных об активности условий см. Рис.2.2.2.).
Рис. 2.2.1.Построение вывода Рис. 2.2.2Активность условий
3. ИЕРАРХИЧЕСКАЯ СХЕМА
3.1 Иерархическая схема представлена в виде граф — схемы (см. Рис.3.1.1)
Рис. 3.1.1.Граф-схема Иерархия функций
3.2 Спецификация
Кurs_TPR — основная программа
checkbox_checked() — функция отвечающая за передачу образцов, выбранных пользователем, функции data. Констотация_факта ().
exit() — функция реализует выход из программы.
data.Констотация_факта () — занесение изменений состояния образца в базу знаний.
обновить () — обновление панели отображения состояний фактов (образцов) базы знаний.
обработка () — функция реализует обработку базы знаний вызванную внесенными изменениями в базу знаний, а так же функция отвечает за построение и отображение логического вывода, полученного в ходе обработки образцов и консиквентов.
4.ОПИСАНИЕ АЛГОРИТМА ФУНЦИИ checkBox_Checked ()
4.1 Назначение и характеристика Алгоритм предназначен для обработки выбранных пользователем фактов и передачи их модулю data_base.cs (передачи данных базе знаний);
4.2 Используемая информация В алгоритме используются «форма"(form1) с прикрепленными к ней элементами (checkBox1−11), позволяющими пользователю выбрать необходимый «факт»;
4.3 Результаты решения Результатом является передача необходимых параметров модулю data_base и вызов функций обработка () и обновить ().
4.4 Алгоритм решения Представим алгоритм решения в виде граф-схемы (Рис. 4.4.1.).
Граф-схема checkBox_Checked ()
Функция обработки выбора образцов Рис. 4.4.1.
5.ОПИСАНИЕ АЛГОРИТМА ФУНЦИИ обработка ()
5.1 Назначение и характеристика Функция реализует обработку базы знаний вызванную внесенными изменениями в базу знаний, а так же функция отвечает за построение и отображение логического вывода, полученного в ходе обработки образцов и консиквентов.
5.2 Используемая информация В алгоритме используется база знаний описанная в модуле data_base.cs, данные которой можно представить в виде таблицы (см. Таблица 5.2.1.)
Таблица 5.2.1.Структура базы знаний
Имя объекта/элемента | тип | Допустимые значения/элементы в составе | |
BD[] | struct DATA | yslovie1, yslovie1, yslovie1, deistvie | |
yslovie1, yslovie2, yslovie3 | struct Yslovie | yslovie, ActivE | |
yslovie | string | А-я, A-z и символы разделители | |
ActivE | bool | true/false | |
deistvie | string | А-я, A-z и символы разделители | |
Где:
BD[] - база знаний
yslovie1, yslovie2, yslovie3 — составные части образца
yslovieполе части образца
ActivE — состояние (активность) части образца
Deistvie — консиквент (действие при выполнении условия)
5.3 Результаты решения Результатом решения выступает построение логического вывода (получение консиквента).
5.4 Алгоритм решения Представим алгоритм решения в виде граф-схемы (Рис. 5.4.1.).
Граф-схема обработка ()
Функция обработки базы знаний Рис. 5.4.1.
ЗАКЛЮЧЕНИЕ
В ходе выполнения курсовой работы была разработана и реализована программа, позволяющая выбрать поставщика товаров. Программа представляет собой аналог продукционной модели представления знаний (сопоставление образцов и консиквентов).
ПРИЛОЖЕНИЕ Приложение 1
ТЕКСТ ПРОГРАММЫ
using System;
using System.Collections.Generic;
using System. ComponentModel;
using System. Data;
using System. Drawing;
using System. Text;
using System.Windows.Forms;
using data_base;
namespace Kurs_TPR
{
public partial class Form1: Form
{
public DatA Data = new DatA ();
public Form1()
{
InitializeComponent ();
Data.инициализация_БД ();
}
private void label3_Click (object sender, EventArgs e)
{this.Close ();}
private void move_exit (object sender, MouseEventArgs e)
{label3.ForeColor = Color. BlueViolet;}
private void move_form (object sender, MouseEventArgs e)
{label3.ForeColor = Color. Maroon;}
public void move_title (object sender, MouseEventArgs e)
{panel4.Visible = true;}
private void move_title_end (object sender, MouseEventArgs e)
{panel4.Visible = false;}
public void обработка ()
{listBox1.Items.Clear ();listBox1.Refresh ();
bool изменение=true;
while (изменение == true)
{ изменение = false;
if ((Data.BD[0]. yslovie1. ActivE == true) && (Data.BD[0]. yslovie2. ActivE == true) && (Data.BD[0]. yslovie3. ActivE == true))
{ listBox1.Items.Add (Data.BD[0]. yslovie1. yslovie);
listBox1.Items.Add (Data.BD[0].yslovie2.yslovie);
listBox1.Items.Add (Data.BD[0].yslovie3.yslovie);
listBox1.Items.Add («ВЫВОД: «+ Data. BD[0]. deistvie);
listBox1.Items.Add («<—-X—->»);
}else
{if (Data.BD[0]. yslovie1. ActivE == false)
{
if ((Data.BD[1]. yslovie1. ActivE == true) || (Data.BD[1]. yslovie2. ActivE == true))
{ if (Data.BD[1]. yslovie1. ActivE == true) listBox1.Items.Add (Data.BD[1]. yslovie1. yslovie);
else listBox1.Items.Add (Data.BD[1]. yslovie2. yslovie);
listBox1.Items.Add («ВЫВОД: «+ Data. BD[1]. deistvie);
listBox1.Items.Add («<—-X—->»);
Data.BD[0].yslovie1.ActivE = true;
checkBox1.Checked = true;
изменение = true;
}
else if (((Data.BD[2]. yslovie2. ActivE == true) && (Data.BD[2]. yslovie3. ActivE == true)) || (Data.BD[2]. yslovie1. ActivE == true))
{ if ((Data.BD[2]. yslovie1. ActivE == true) && (Data.BD[2]. yslovie2. ActivE == false))
listBox1.Items.Add (Data.BD[2]. yslovie1. yslovie);
else
{ listBox1.Items.Add (Data.BD[2]. yslovie2. yslovie);
listBox1.Items.Add (Data.BD[2].yslovie3.yslovie);
};
listBox1.Items.Add («ВЫВОД: «+ Data. BD[2]. deistvie);
listBox1.Items.Add («<—-X—->»);
Data.BD[1].yslovie2.ActivE = true;
checkBox3.Checked = true;
изменение = true;
}
}
if (Data.BD[0]. yslovie2. ActivE == false)
{if ((Data.BD[3]. yslovie1. ActivE == true) || (Data.BD[3]. yslovie2. ActivE == true))
{if (Data.BD[3]. yslovie1. ActivE == true) listBox1.Items.Add (Data.BD[3]. yslovie1. yslovie);
else listBox1.Items.Add (Data.BD[3]. yslovie2. yslovie);
listBox1.Items.Add («ВЫВОД: «+Data.BD[3]. deistvie);
listBox1.Items.Add («<—-X—->»);
Data.BD[0].yslovie2.ActivE = true;
checkBox7.Checked = true;
изменение = true;
}
}
if (Data.BD[0]. yslovie3. ActivE == false)
{if (Data.BD[4]. yslovie1. ActivE == true)
{ listBox1.Items.Add (Data.BD[4]. yslovie1. yslovie);
listBox1.Items.Add («ВЫВОД: «+Data.BD[4]. deistvie);
Data.BD[0].yslovie3.ActivE = true;
checkBox10.Checked = true;
изменение = true;
}
}
}
}
}
public void Обновить ()
{ listBox2.Items.Clear ();
for (int i = 0; i < 5; i++)
{listBox2.Items.Add (Data.BD[i]. yslovie1.ActivE.ToString () +" «+ Data. BD[i]. yslovie2.ActivE.ToString () +» «+ Data. BD[i]. yslovie3.ActivE.ToString ());
}
listBox2.Refresh ();
}
public void checkBox1_CheckedChanged (object sender, EventArgs e)
{ if (sender == checkBox1)
{ Data. Констотация_факта (1);
if (Data.BD[0]. yslovie1. ActivE == true)
{checkBox2.Enabled=checkBox3.Enabled=checkBox4.Enabled=checkBox5.Enabled=checkBox6.Enabled=false;
}else checkBox2. Enabled = checkBox3. Enabled = checkBox4. Enabled = checkBox5. Enabled = checkBox6. Enabled = true;
};
if (sender == checkBox2) {Data.Констотация_факта (4); };
if (sender == checkBox3)
{ Data. Констотация_факта (5);
if (Data.BD[1]. yslovie2. ActivE==true)
{checkBox4.Enabled = checkBox5. Enabled = checkBox6. Enabled = false;
}else checkBox4. Enabled = checkBox5. Enabled = checkBox6. Enabled = true;
};
if (sender == checkBox4) {Data.Констотация_факта (7); };
if (sender == checkBox5) {Data.Констотация_факта (8); };
if (sender == checkBox6) {Data.Констотация_факта (9); };
if (sender == checkBox7)
{ Data. Констотация_факта (2);
if (Data.BD[0]. yslovie2. ActivE==true)
{checkBox8.Enabled = checkBox9. Enabled = false;
}else checkBox8. Enabled = checkBox9. Enabled = true;
};
if (sender == checkBox8) {Data.Констотация_факта (10); };
if (sender == checkBox9) {Data.Констотация_факта (11); };
if (sender == checkBox10)
{ Data. Констотация_факта (3);
if (Data.BD[0]. yslovie3. ActivE==true)
{checkBox11.Enabled=false;
}else checkBox11. Enabled=true;
};
if (sender == checkBox11) {Data.Констотация_факта (13); };
Обновить ();
обработка ();
}
}
}
Приложение 2
ТЕКСТ МОДУЛЯ data_base.cs
using System;
using System.Collections.Generic;
using System. ComponentModel;
using System. Data;
using System. Drawing;
using System. Text;
namespace data_base
{ public class DatA
{ public struct DATA
{ public struct Yslovie { public string yslovie; public bool ActivE;}
public Yslovie yslovie1;
public Yslovie yslovie2;
public Yslovie yslovie3;
public string deistvie;};
public DATA. Yslovie yslovie1 = new DATA. Yslovie ();
public DATA. Yslovie yslovie2 = new DATA. Yslovie ();
public DATA. Yslovie yslovie3 = new DATA. Yslovie ();
public DATA[] BD = new DATA[5];
public void инициализация_БД ()
{ BD[0]. yslovie1. yslovie = «поставщик проверенный»; BD[0]. yslovie1. ActivE = false;
BD[0]. yslovie2. yslovie = «товар качественный»; BD[0]. yslovie2. ActivE = false;
BD[0]. yslovie3. yslovie = «цена приемлемая»; BD[0]. yslovie3. ActivE = false;
BD[0]. deistvie = «Поставщик подходит» ;
BD[1]. yslovie1. yslovie = «поставщик давно на рынке»; BD[1]. yslovie1. ActivE = false;
BD[1]. yslovie2. yslovie = «жалоб на поставщика не было»; BD[1]. yslovie2. ActivE = false;
BD[1]. yslovie3. yslovie = null; BD[1]. yslovie3. ActivE = false;
BD[1]. deistvie = «поставщик проверенный» ;
BD[2]. yslovie1. yslovie = «есть рекомендации от других заказчиков»; BD[2]. yslovie1. ActivE = false;
BD[2]. yslovie2. yslovie = «поставка производится в срок»; BD[2]. yslovie2. ActivE = false;
BD[2]. yslovie3. yslovie = «товар не получает дефектов в ходе транспатрировки»; BD[2]. yslovie3. ActivE = false;
BD[2]. deistvie = «жалоб на поставщика не было» ;
BD[3]. yslovie1. yslovie = «товар сертифицирован»; BD[3]. yslovie1. ActivE = false;
BD[3]. yslovie2. yslovie = «товар прощел государственные экспертизы»; BD[3]. yslovie2. ActivE = false;
BD[3]. yslovie3. yslovie = null; BD[3]. yslovie3. ActivE = false;
BD[3]. deistvie = «товар качественный» ;
BD[4]. yslovie1. yslovie = «цена чуть ниже чем у других поставщиков»; BD[4]. yslovie1. ActivE = false;
BD[4]. yslovie2. yslovie = null; BD[4]. yslovie2. ActivE = false;
BD[4]. yslovie3. yslovie = null; BD[4]. yslovie3. ActivE = false;
BD[4]. deistvie = «цена приемлемая» ;
}
public void Констотация_факта (int i)
{ switch (i)
{ case 1: if (BD[0]. yslovie1. ActivE == true) BD[0]. yslovie1. ActivE = false;
else BD[0]. yslovie1. ActivE = true; break;
case 2: if (BD[0]. yslovie2. ActivE == true) BD[0]. yslovie2. ActivE = false;
else BD[0]. yslovie2. ActivE = true; break;
case 3: if (BD[0]. yslovie3. ActivE == true) BD[0]. yslovie3. ActivE = false;
else BD[0]. yslovie3. ActivE = true; break;
case 4: if (BD[1]. yslovie1. ActivE == true) BD[1]. yslovie1. ActivE = false;
else BD[1]. yslovie1. ActivE = true; break;
case 5: if (BD[1]. yslovie2. ActivE == true) BD[1]. yslovie2. ActivE = false;
else BD[1]. yslovie2. ActivE = true; break;
case 6: if (BD[1]. yslovie3. ActivE == true) BD[1]. yslovie3. ActivE = false;
else BD[1]. yslovie3. ActivE = true; break;
case 7: if (BD[2]. yslovie1. ActivE == true) BD[2]. yslovie1. ActivE = false;
else BD[2]. yslovie1. ActivE = true; break;
case 8: if (BD[2]. yslovie2. ActivE == true) BD[2]. yslovie2. ActivE = false;
else BD[2]. yslovie2. ActivE = true; break;
case 9: if (BD[2]. yslovie3. ActivE == true) BD[2]. yslovie3. ActivE = false;
else BD[2]. yslovie3. ActivE = true; break;
case 10: if (BD[3]. yslovie1. ActivE == true) BD[3]. yslovie1. ActivE = false;
else BD[3]. yslovie1. ActivE = true; break;
case 11: if (BD[3]. yslovie2. ActivE == true) BD[3]. yslovie2. ActivE = false;
else BD[3]. yslovie2. ActivE = true; break;
case 12: if (BD[3]. yslovie3. ActivE == true) BD[3]. yslovie3. ActivE = false;
else BD[3]. yslovie3. ActivE = true; break;
case 13: if (BD[4]. yslovie1. ActivE == true) BD[4]. yslovie1. ActivE = false;
else BD[4]. yslovie1. ActivE = true; break;
case 14: if (BD[4]. yslovie2. ActivE == true) BD[4]. yslovie2. ActivE = false;
else BD[4]. yslovie2. ActivE = true; break;
case 15: if (BD[4]. yslovie3. ActivE == true) BD[4]. yslovie3. ActivE = false;
else BD[4]. yslovie3. ActivE = true; break;}
}}}
Приложение 3
КОНТРОЛЬНЫЕ ПРИМЕРЫ Интерфейс программы состоит из трех основных частей: панель утверждения фактов (образцов), панель построения логического вывода, панель отображения активности образцов. Интерфейс представлен на рисунке Контрольный пример 1 (интерфейс)(см. Рис.П.3.1.).
Контрольный пример 1 (интерфейс) Рис.П.3.1.
Установим два факта (образца): товар прошел государственные экспертизы; цена приемлемая. Исходя из данных фактов программа должна, в поле построения вывода, выдать запись, о том, что товар качественный (т.к. товар прошел государственные экспертизы => товар качественный).Окно программы представлено на рисунке Контрольный пример 2(см. Рис.П.3.2).
Контрольный пример 2
Рис.П.3.2.
Установим следующие факты (образцы): поставка происходит в срок; товар не получает дефектов в ходе транспортировки; товар прошел государственные экспертизы; цена приемлемая. Исходя из данных фактов программа должна, в поле построения вывода, выдать запись, о том, что товар качественный (т.к. товар прошел государственные экспертизы => товар качественный), после чего обрабатывая образцы «поставка происходит в срок», «товар не получает дефектов», программа должна сделать вывод о том что жалоб на поставщика не было, а исходя из этого факта (из того что жалоб не было), программа должна сделать вывод о том что поставщик проверенный, в следствии чего следует вывод о том что поставщик подходит (т.к. Поставщик проверенный и товар качественный и цена приемлемая => поставщик подходит).Окно программы представлено на рисунке Контрольный пример 3(см. Рис.П.3.3.).
Контрольный пример 3
Рис.П.3.3.
Установим следующие факты (образцы): есть рекомендации от других заказчиков; товар прошел государственные экспертизы; цена приемлемая. Исходя из данных фактов программа должна, в поле построения вывода, выдать запись, о том, что товар качественный (т.к. товар прошел государственные экспертизы => товар качественный), после чего обрабатывая образец «есть рекомендации от других заказчиков», программа должна сделать вывод о том что жалоб на поставщика не было, а исходя из этого факта (из того что жалоб не было), программа должна сделать вывод о том что поставщик проверенный, в следствии чего следует вывод о том что поставщик подходит (т.к. Поставщик проверенный и товар качественный и цена приемлемая => поставщик подходит).Окно программы представлено на рисунке Контрольный пример 4(см. Рис.П.3.4.).
Контрольный пример 4
Рис.П.3.4.
Установим следующие факты (образцы): поставщик давно на рынке; товар сертифицирован; цена приемлемая. Исходя из данных фактов программа должна, в поле построения вывода, выдать запись, о том, поставщик проверенный (т.к. поставщик давно на рынке => поставщик проверенный), после чего обрабатывая образец «товар сертифицирован», программа должна сделать вывод о том что товар качественный, а исходя из этого факта (из того что тавр качественный) в следствии чего следует вывод о том что поставщик подходит (т.к. Поставщик проверенный и товар качественный и цена приемлемая => поставщик подходит).Окно программы представлено на рисунке Контрольный пример 5(см. Рис.П.3.5.).
Контрольный пример 5
Рис.П.3.5.
Приложение 4
РУКОВОДСТВО ПРОГРАММИСТА П. 4.1.Назначение программы Программа предназначена для построения вывода, исходя из данных введенных пользователем.
П. 4.2.Описание информации П. 4.2.1.Входная информация Входной информацией для программы в целом, является модуль data_base.cs (который хранит в себе описание структуры базы знаний, непосредственно саму базу данных и функции инициализации и констатации фактов), а так же отмеченные утверждения (см. Рис. 2.1.1.).
Панель выбора фактов Рис. 2.1.1.
П. 4.2.2. Выходная информации В качестве выходной информации (для программы в целом) выступает логический вывод (см. Рис.2.2.1), и панель отображения текущего состояния фактов (вывод данных об активности условий см. Рис.2.2.2.).
Построение вывода Рис. 2.2.1.
Активность условий Рис. 2.2.2
П. 4.3Требования необходимые для работы программы Для работы программы необходимым и достаточным является установленная операционная система windows xp, seven, vista.
Для отладки и внесения изменений необходимым и достаточным является установленная на ПК среда разработки Microsoft visual studio 2008 года (девятая версия продукта).
П. 4.4 Известные ошибки В процессе тестирования программы ошибок обнаружено не было.
П. 4.5 Общее представление модуля data_base.cs
Модуль содержит определение структуры базы знаний, функции её инициализации и констатации фактов (утверждения образцов).
П. 4.5.1.Разработанная структура
public struct DATA
{ public struct Yslovie { public string yslovie; public bool ActivE;}
public Yslovie yslovie1;
public Yslovie yslovie2;
public Yslovie yslovie3;
public string deistvie;
};
П. 4.5.2.Описание структуры Структура DATA содержит в своем составе четыре элемента (yslovie1, yslovie2, yslovie3, deistvie), а элементы yslovie1, yslovie2 и yslovie3 являются объектами структуры Yslovie, и содержат поля yslovie и ActivE. Поле yslovie содержит факт, поле ActivE содержит состояние факта.
База знаний представляет собой последовательность записей структурой DATA, для создания базы необходимо добавить определение объектов yslovie1, yslovie2 и yslovie3, и создать объект записей структуры DATA. Для этого необходимо добавить следующие строки:
public DATA. Yslovie yslovie1 = new DATA. Yslovie ();
public DATA. Yslovie yslovie2 = new DATA. Yslovie ();
public DATA. Yslovie yslovie3 = new DATA. Yslovie ();
public DATA[] BD = new DATA[5];
Итоговое представление базы знаний на языке программирования C# будет выглядеть следующим образом:
public struct DATA
{ public struct Yslovie { public string yslovie; public bool ActivE;}
public Yslovie yslovie1;
public Yslovie yslovie2;
public Yslovie yslovie3;
public string deistvie;
};
public DATA. Yslovie yslovie1 = new DATA. Yslovie ();
public DATA. Yslovie yslovie2 = new DATA. Yslovie ();
public DATA. Yslovie yslovie3 = new DATA. Yslovie ();
public DATA[] BD = new DATA[5];
Подключение модуля происходит путем указания его имени, в списке подключаемых модулей и библиотек, в коде программы. При этом код программы в которой используется модуль должен быть написан на языке программирования C#.
Приложение 5
РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ П. 5.1.Назначение программы Программа предназначена для построения вывода, исходя из данных введенных пользователем.
П. 5.2.Описание информации П. 5.2.1.Входная информация Входной информацией для программы в целом, является модуль data_base.cs (который хранит в себе описание структуры базы знаний, непосредственно саму базу данных и функции инициализации и констатации фактов), а так же отмеченные утверждения (см. Рис. 5.2.1.1.).
Панель выбора фактов Рис. 5.2.1.1.
П. 5.2.2. Выходная информации В качестве выходной информации (для программы в целом) выступает логический вывод (см. Рис.5.2.2.1), и панель отображения текущего состояния фактов (вывод данных об активности условий см. Рис.5.2.2.2.).
Построение вывода Рис. 5.2.2.1.
Активность условий Рис. 5.2.2.2
П. 4.3.Требования необходимые для работы программы Для работы программы необходимым и достаточным является установленная операционная система windows xp, seven, vista.