Розробка алгоритму навчання та екзамену для системи прийняття рішень, що навчаєтся

Аспекти вирішення методологічної та теоретичної проблеми проектування інтелектуальних систем керування. Базовий алгоритм навчання СПР за методом функціонально-статистичних випробувань. Критерій оптимізації та алгоритм екзамену системи за цим методом.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 22.09.2011
Размер файла 1,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Курсова робота з дисципліни:

“СИСТЕМИ ТА МЕТОДИ ПРИЙНЯТТЯ РІШЕНЬ”

на тему:

«Розробка алгоритму навчання та екзамену для СПР, що навчається»

ВСТУП

Сучасні автоматизовані системи контролю та керування з моменту введення в їх контур ЕОМ набули властивості інтелектуальних систем керування (ІСК), тобто перестали бути суто технічними. Це обумовило необхідність зміни методів проектування, які б дозволили не тільки синтезувати комп'ютеризовані інтелектуальні системи різного призначення з відповідними просторово-часовими характеристиками, але й перетворили б й сам процес проектування у керовану систему, що здатна розвиватися. Я поділяю точку зору фахівців-системотехніків про наявність, починаючи з 70-х років ХХ століття, меотдологічної кризи у проектуванні складних систем, яка має тенденцію до поглиблення.

Суть такої кризи полягає у неадекватності методів проектування поставленій меті, що обумовлено ускладненням задач проектування. Оскільки уповільнення та прискорення темпів науково-технічного прогресу здійснюється за діалектичними законами, то сучасний період розвитку інтелектуальних систем слід розглядати як період накопичення їх якісних показників, за якими неодмінно відбудеться різке підвищення ефективності проектування цих систем.

Я пов'язую вирішення методологічної та теоретичної проблеми проектування ІСК з розробкою прямих методів їх аналізу та синтезу, здатних оцінювати інформаційну спроможність системи і оптимізувати (у інформаційному розумінні) параметри її функціонування. Саме це і є основною метою курсової роботи.

ПОСТАНОВКА ЗАДАЧІ

Розробити та програмно реалізувати базовий алгоритм навчання СПР для розпізнавання двох класів розпізнавання (М=2) і алгоритм екзамену за методом функціонально-статистичних випробувань (МФСВ). Задано такі параметри:

· кількість ознак розпізнавання 22;

· кількість реалізацій образу одного класу 60;

· інформаційний критерій оптимізації за Кульбаком.

Базовий алгоритм навчання СПР за методом-функціонально-статистичних випробувань (МФСВ)

Призначенням базового алгоритму навчання LEARNING є оптимізація геометричних параметрів контейнерів, яка реалізується операторами контуру оптимізації (2.4.4) згідно з діаграмою (2.4.3) відображення множин, застосованих в процесі навчання. Вхідною інформацією для навчання за базовим алгоритмом є дійсний, в загальному випадку, масив реалізацій образу ; система полів контрольних допусків і рівні селекції , які за умовчанням дорівнюють 0,5 для всіх класів розпізнавання.

Розглянемо етапи реалізації алгоритму LEARNING:

1.Формування бінарної навчальної матриці , елементи якої дорівнюють

(1)

2.Формування масиву еталонних двійкових векторів , елементи якого визначаються за правилом:

(2)

де m рівень селекції координат вектору .

3. Розбиття множини еталонних векторів на пари найближчих сусідів: =<xm , xl >, де xl еталонний вектор сусіднього класу , за таким алгоритмом:

а) структурується множина еталонних векторів, починаючи з вектора x1 базового класу , який характеризує найбільшу функціональну ефективність СПР;

б) будується матриця кодових відстаней між еталонними векторами розмірності M M;

в) для кожної строки матриці кодових відстаней знаходиться мінімальний елемент, який належить стовпчику вектора найближчого до вектора, що визначає строку. При наявності декількох однакових мінімальних елементів вибирається з них будь-який, оскільки вони є рівноправними;

г) формується структурована множина елементів попарного розбиття , яка задає план навчання.

4. Оптимізація кодової відстані dm відбувається за рекурентною процедурою (2.3.4). При цьому приймається .

5.Процедура закінчується при знаходженні максимуму КФЕ в робочій області його визначення: де множина радіусів концентрованих гіперсфер, центр яких визначається вершиною .

Таким чином, базовий алгоритм навчання є ітераційною процедурою пошуку глобального максимуму інформаційного КФЕ в робочій області визначення його функції:

. (3)

На рис. 1 наведено структурну схему базового алгоритму навчання LEARNING. Тут показано такі вхідні дані: {Y[J,I,K]} масив навчальних вибірок, J=1..NM змінна кількості випробувань, де NM мінімальний обсяг репрезентативної навчальної вибірки, I=1..N змінна кількості ознак розпізнавання, K=1..M змінна кількості класів розпізнавання; {NDK[I]}, {VDK[I]} масиви нижніх і верхніх контрольних допусків на ознаки відповідно. Результатом реалізації алгоритму є: {DOPT[K]} цілий масив оптимальних значень радіусів контейнерів класів розпізнавання у кодовій відстані Хеммінга; {EV[K]} масив еталонних двійкових векторів класів розпізнавання; {EM[K]} дійсний масив максимальних значень інформаційного КФЕ процесу навчання; {D1[K]}, {A[K]}, {B[K]}, {D2[K]} дійсні масиви оцінок екстремальних значень точнісних характеристик процесу навчання для відповідних класів розпізнавання: перша вірогідність, помилки першого та другого роду і друга достовірність відповідно. Змінна D є робочою змінною кроків навчання, на яких послідовно збільшується значення радіуса контейнера. У структурній схемі алгоритму (рис. 1) блок 3 формує масив навчальних двійкових вибірок {X[J,I,K]} шляхом порівняння значень елементів масиву {Y[J,I,K]} з відповідними контрольними допусками за правилом (2.3.1.1) і формує масив еталонних двійкових векторів {EV[K]} шляхом статистичного усереднення стовпців масиву {X[J,I,K]} за правилом (2.3.1.2) при відповідному рівні селекції, який за умовчанням дорівнює .

Блок 4 здійснює розбиття множини еталонних векторів на пари “найближчих сусідів”. Блок 11 обчислює на кожному кроці навчання значення інформаційного КФЕ. При невиконанні умови блоку порівняння 12 блок 13 оцінює належність поточного значення критерію робочій області визначення його функції і при позитивному рішенні блоку 13 це значення запам'ятовуєься блоком 14. При негативному рішенні блока порівняння 15, в якому величина дорівнює кодовій відстані між парою сусідніх еталонних векторів, блок 16 здійснює у робочій області пошук глобального максимуму КФЕ - EM[K] і визначає для нього екстремальне значення радіуса гіперсфери - DOPT[K]. Аналогічно будуються оптимальні контейнери для інших класів. Якщо параметри навчання {DOPT[K]} і {EV[K]} є вхідними даними для екзамену, то значення КФЕ та екстремальних оцінок точнісних характеристик використовуються для аналізу ефективності процесу навчання. Таким чином, основною процедурою базового алгоритму навчання за МФСВ є обчислення на кожному кроці навчання інформаційного КФЕ і організація пошуку його глобального максимуму в робочій області визначення функції критерію.

Рисунок 1 Структурна схема базового алгоритму навчання

Критерії функціональної ефективності навчання СПР

Ентропійний КФЕ

Інформаційний підхід природно базується на використанні для оцінки функціональної ефективності інформаційного критерію, який, наприклад, за Шенноном має такий нормований вигляд :

, (4)

де апріорна (безумовна) ентропія:

; (5)

апостеріорна умовна ентропія, яка характеризує залишкову невизначеність після прийняття рішень:

. (6)

Тут - апріорна ймовірність прийняття гіпотези l; p(m/l) - апостеріорна ймовірність появи події m за умови прийняття гіпотези ; М- число альтернативних гіпотез.

На практиці при оцінюванні функціональної ефективності СК, що навчається, можуть мати місце такі допущення:

· рішення є двох альтернативним (М=2);

· оскільки здатна навчатися СК слабо формалізованим процесом функціонує за умови невизначеності, то за принципом Бернуллі-Лапласа виправдано прийняття рівноймовірних гіпотез: .

Тоді критерій (4) з урахуванням виразів (5) і (6) приймає такий частинний вигляд:

. (7)

При двохальтернативному рішенні (M=2) за основну приймемо гіпотезу 1 про знаходження значення ознаки розпізнавання, що контролюється, в полі допусків і як альтернативну їй гіпотезу 2. При цьому мають місце чотири можливих результати оцінки виміру ознаки (рис. 2.2), які характеризуються наступними ймовірностями - точнісними характеристиками: помилка першого роду - (рис. 2.2,а); помилка другого роду - (рис. 2.2б); перша достовірність- (рис. 2.2в) і друга достовірність- (рис. 4.1г), де x, z виміряне та дійсне значення ознаки розпізнавання відповідно.

Размещено на http://www.allbest.ru/

Рисунок 2 Можливі результати оцінки виміру ознак

розпізнавання при М=2

Розіб'ємо множину значень ознак на області та . Область включає значення, що знаходяться в допуску , а - не в допуску.

Тоді можна записати

Виразимо апостеріорні ймовірності через апріорні за формулою Байеса:

та, прийнявши p(1)=p(2)=0,5, отримаємо:

(8)

Після підстановки (8) в (7) отримаємо формулу для обчислення КФЕ за Шенноном:

(9)

Критерій оптимізації

Серед логарифмічних статистичних інформаційних мір широке розповсюдження знайшла міра Кульбака, яка дозволяє оцінювати диференційну інформативність ознак розпізнавання. Здобудемо робочу формулу для обчислення міри Кульбака та встановимо її зв'язок з точнісними характеристиками процесу навчання за МФСВ.

Введемо логарифмічне відношення повної ймовірності правильного прийняття рішень про належність реалізацій класів і k-му контейнеру , побудованому на k-му кроці навчання СПР розпізнати реалізації класу , до повної ймовірності помилкового прийняття рішень , яке для двохальтернативної системи оцінок рішення має такий вигляд:

(10)

де , - гіпотези про належність контейнеру реалізацій відповідно класів і

При допущенні, що , загальна міра Кульбака остаточно набуває вигляду:

(11)

Нормовану модифікацію критерію (11) можна подати у вигляді:

, (12)

де - значення критерію при і для формули (10).

У задачах оптимізації параметрів функціонування СПР в процесі навчання за МФСВ нормування критеріїв оптимізації не є обов'язковим, оскільки тут розв'язується задача пошуку екстремальних значень параметрів навчання, які відповідають глобальному максимуму КФЕ у робочій області його визначення. Але нормування критеріїв оптимізації є доцільним при порівняльному аналізі результатів досліджень і при оцінці ступеня близькості реальної СПР до потенційної.

Алгоритм екзамену за МФСВ

На рис. 3 показано структурну схему алгоритму екзамену для нечіткого розбиття простору ознак розпізнавання, яке характерно для загального випадку.

Алгоритм має такі вхідні дані: масив еталонних двійкових векторів, змінна числа класів розпізнавання; цілий масив оптимальних радіусів контейнерів класів розпізнавання у кодовій відстані Хеммінга; двійкова реалізація образу, що розпізнається. Виходом алгоритму є повідомлення про належність реалізації, що розпізнається, деякому класу із сформованого на етапі навчання алфавіту класів . На рис.3 блок 5 обчислює, починаючи з базового класу, кодову відстань між поточним еталонним вектором і реалізацією ХР. Блок 6 для кожного класу обчислює значення функції належності , яка для гіперсферичного класифікатора має вигляд

алгоритм навчання інтелектуальний керування

(13)

Після виходу із циклу блок 8 визначає клас до якого належить реалізація ХР за максимальним значенням функції належності (13).

Рисунок 3- Структурна схема алгоритму екзамену:

КОРОТКИЙ ОПИС ПРОГРАМИ

1 етап:

Маємо еталоний вектор базового класу і кодову відстань - 8 , на основі цього будуємо еталонні вектор іншого класу. Далі на основі цих векторів будуємо початкові бінарні матриці.

2 етап:

Маючи задані верхній та нижній допуски генеруємо на основі бінарних цілочислельні матриці. Далі ми находимо для них матсподівання і вибираючи нові верхній та нижній допуски складаємо нові бінарні матриці.

3 етап:

Для наших нових бінарни матриць знаходимо еталонні вектори і обраховуємо для кожного класу кодові відстані від еталонних вектрорів до власних реалізацій та реалізацій найближчого сусіда.

4 етап:

Навчання.

Будуємо контейнери для класів. Для цього шукаємо для кожного класу оптимальний радіус. Його ми шукаємо за допомогою коефіцієнта функціональної ефективності за Кульбаком:

5 етап:

Екзамен.

Для будь якої реалізації визначаємо, до якого класу вона належить. Для цього обраховуємо значення функцій належності.

ВИСНОВКИ

На курсовій роботі була реалізована модель системи прийняття рішень що навчається для двох статичних за яскравістю зображень. Був запрограмований алгоритм навчання і алгоритм екзамену за МФСВ.

Як висновок, можна сказати що подібні інтелектуальні системи широко інтегруються в наше повсякденне життя. Їм можна знайти застосування будь-де. Системи розпізнавання образів застосовуються правоохоронними органами для зняття і порівняння відбитків пальців, ланцюгів ДНК, карти сітківки ока. На великих автомагістралях встановлені камери для розпізнавання номерів автомобілів, які знаходяться в розшуку. Військові застосовують інтелектуальні системи для того, щоб підвищити ефективність своєї зброї та захисних систем. В літаках використовуються автопілоти, а це також система прийняття рішень що навчається. Постійно ми наближуємося до розгадки способу побудови штучного інтелекту, який за своїми можливостями буде тотожний людській свідомості, або можливо, навіть кращий від неї.

СПИСОК ЛІТЕРАТУРИ

1. Васильев В.И. Распознающие системы: Справочник.-Киев: Вища школа, 1982.-512 c.

2. Горелик А.Л., Скрипкин В.А. Методы распознавания.- М.: Высш. Школа,1984.

3. Краснопоясовський А.С. Класифікаційний аналіз даних: Навчальний посібник.Суми: Видавництво СумДУ, 2002.159 с.

4. Рідкокаша А.А., Голдер К.К. Основи систем штучного інтелекту: Навчальний посібник.Черкаси: Відлуння Плюс, 2002. 240 с.

5. Сироджа И.Б. Принятие решений: Конспект лекций.-Харьков: Изд-во ХАИ,1992.- 98 с.

6. Ямпольський Л.С., Лавров О.А. Штучний інтелект у плануванні та управлінні виробництва: Підручник.- Вища школа.-1995.-255 с.

ЛІСТІНГ ПРОГРАМИ

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Grids, ComCtrls, ExtCtrls,math, TeeProcs, TeEngine,

Chart, Series;

type

TForm1 = class(TForm)

PageControl1: TPageControl;

TabSheet1: TTabSheet;

Label1: TLabel;

Label2: TLabel;

Label5: TLabel;

Label6: TLabel;

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

StringGrid4: TStringGrid;

Button1: TButton;

Button2: TButton;

StringGrid5: TStringGrid;

TabSheet2: TTabSheet;

Label10: TLabel;

Label9: TLabel;

Label4: TLabel;

Label8: TLabel;

Label12: TLabel;

Label13: TLabel;

Button4: TButton;

StringGrid10: TStringGrid;

StringGrid11: TStringGrid;

Edit5: TEdit;

Edit6: TEdit;

Edit4: TEdit;

Edit3: TEdit;

StringGrid7: TStringGrid;

StringGrid8: TStringGrid;

Edit1: TEdit;

Edit2: TEdit;

Button3: TButton;

TabSheet3: TTabSheet;

Label14: TLabel;

Label15: TLabel;

Label17: TLabel;

Label18: TLabel;

Label19: TLabel;

Label20: TLabel;

StringGrid13: TStringGrid;

StringGrid14: TStringGrid;

StringGrid15: TStringGrid;

StringGrid16: TStringGrid;

Button5: TButton;

StringGrid20: TStringGrid;

StringGrid19: TStringGrid;

TabSheet5: TTabSheet;

TabSheet4: TTabSheet;

Label41: TLabel;

Label42: TLabel;

Label44: TLabel;

Label45: TLabel;

Label46: TLabel;

Button6: TButton;

StringGrid22: TStringGrid;

StringGrid23: TStringGrid;

Edit7: TEdit;

Edit8: TEdit;

Label23: TLabel;

Edit10: TEdit;

Edit11: TEdit;

Label24: TLabel;

Label25: TLabel;

Button7: TButton;

Edit12: TEdit;

StringGrid25: TStringGrid;

Button8: TButton;

Chart1: TChart;

Chart2: TChart;

Series1: TLineSeries;

Series2: TLineSeries;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

const m=60;

n=22;

var

Form1: TForm1;

EV1:array[1..n] of integer;

EV2:array[1..n] of integer;

EV21:array[1..n] of integer;

EV22:array[1..n] of integer;

EV23:array[1..n] of integer;

EV31:array[1..m] of integer;

EV32:array[1..m] of integer;

EV33:array[1..m] of integer;

EV41:array[1..m] of integer;

EV42:array[1..m] of integer;

EV43:array[1..m] of integer;

B1:array[1..n,1..m] of integer;

B2:array[1..n,1..m] of integer;

M1:array[1..n,1..m] of integer;

M2:array[1..n,1..m] of integer;

N1:array[1..n,1..m] of integer;

N2:array[1..n,1..m] of integer;

N3:array[1..n,1..m] of integer;

NDZ,VDZ,Delt,NDZ1,VDZ1,dp1,dp2:integer;

kp1,kp2:string[1];

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var i,r12:integer;

begin

Randomize;

for i:=1 to n do

begin

EV1[i]:=1;

end;

r12:=0;

While r12<>8 do

begin

r12:=0;

for i:=1 to n do

begin

EV2[i]:=random(2);

if EV1[i]<>EV2[i] then inc(r12);

end;

end;

for i:=1 to n do

begin

Form1.StringGrid1.Cells[i,0]:=inttostr(EV1[i]);

Form1.StringGrid2.Cells[i,0]:=inttostr(EV2[i]);

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

var i,j,e1,e2:integer;

begin

Randomize;

for i:=1 to n do

begin

if EV1[i]=1 then

begin

e1:=0;

While e1<>42 do

begin

e1:=0;

for j:=1 to m do

begin

B1[i,j]:=random(2);

if B1[i,j]=1 then inc(e1);

end;

end;

end

else

begin

e1:=0;

While e1<>18 do

begin

e1:=0;

for j:=1 to m do

begin

B1[i,j]:=random(2);

if B1[i,j]=1 then inc(e1);

end;

end;

end;

end;

for i:=1 to n do

if EV2[i]=1 then

begin

e2:=0;

While e2<>42 do

begin

e2:=0;

for j:=1 to m do

begin

B2[i,j]:=random(2);

if B2[i,j]=1 then inc(e2);

end;

end;

end

else

begin

e2:=0;

While e2<>18 do

begin

e2:=0;

for j:=1 to m do

begin

B2[i,j]:=random(2);

if B2[i,j]=1 then inc(e2);

end;

end;

end;

for i:=1 to n do

for j:=1 to m do

begin

Form1.StringGrid4.Cells[i,j]:=inttostr(B1[i,j]);

Form1.StringGrid5.Cells[i,j]:=inttostr(B2[i,j]);

end;

end;

procedure TForm1.Button3Click(Sender: TObject);

var i,j:integer;

begin

NDZ:=strtoint(Form1.Edit1.Text);

VDZ:=strtoint(Form1.Edit2.Text);

Randomize;

for i:=1 to n do

for j:=1 to m do

begin

M1[i,j]:=random(255);

M2[i,j]:=random(255);

end;

for i:=1 to n do

for j:=1 to m do

begin

if B1[i,j]=1 then

M1[i,j]:=random(VDZ-NDZ)+NDZ

else

begin

while (M1[i,j]>=NDZ) and (M1[i,j]<=VDZ) do

M1[i,j]:=random(255);

end;

end;

for i:=1 to n do

for j:=1 to m do

begin

if B2[i,j]=1 then

M2[i,j]:=random(VDZ-NDZ)+NDZ

else

begin

while (M2[i,j]>=NDZ) and (M2[i,j]<=VDZ) do

M2[i,j]:=random(255);

end;

end;

for i:=1 to n do

for j:=1 to m do

begin

Form1.StringGrid7.Cells[i,j]:=inttostr(M1[i,j]);

Form1.StringGrid8.Cells[i,j]:=inttostr(M2[i,j]);

end;

end;

procedure TForm1.Button4Click(Sender: TObject);

var i,j,Sum,S1,S2:integer;

MS,SumV:real;

MSV,NDZV,VDZV:array[1..n] of real;

begin

Delt:=strtoint(Form1.Edit4.Text);

Sum:=0;

SumV:=0;

for i:=1 to n do

begin

for j:=1 to m do

Sum:=Sum+M1[i,j];

MSV[i]:=Sum/m;

SumV:=SumV+MSV[i];

NDZV[i]:=round(MSV[i])-Delt;

VDZV[i]:=round(MSV[i])+Delt;

Sum:=0;

end;

MS:=SumV/n;

NDZ1:=round(MS)-Delt;

VDZ1:=round(MS)+Delt;

for i:=1 to n do

Form1.Edit3.Text:=floattostr(MS);

Form1.Edit5.Text:=inttostr(NDZ1);

Form1.Edit6.Text:=inttostr(VDZ1);

for i:=1 to n do

for j:=1 to m do

begin

if (M1[i,j]>=NDZ1) and (M1[i,j]<=VDZ1) then

N1[i,j]:=1

else

N1[i,j]:=0;

end;

for i:=1 to n do

for j:=1 to m do

begin

if (M2[i,j]>=NDZ1) and (M2[i,j]<=VDZ1) then

N2[i,j]:=1

else

N2[i,j]:=0;

end;

for i:=1 to n do

begin

S1:=0;

for j:=1 to m do

S1:=S1+N1[i,j];

if S1>23 then EV21[i]:=1

else EV21[i]:=0;

end;

for i:=1 to n do

begin

S2:=0;

for j:=1 to m do

S2:=S2+N2[i,j];

if S2>23 then EV22[i]:=1

else EV22[i]:=0;

end;

for i:=1 to n do

for j:=1 to m do

begin

Form1.StringGrid10.Cells[i,j]:=inttostr(N1[i,j]);

Form1.StringGrid11.Cells[i,j]:=inttostr(N2[i,j]);

end;

for i:=1 to n do

begin

Form1.StringGrid19.Cells[i,0]:=inttostr(EV21[i]);

Form1.StringGrid20.Cells[i,0]:=inttostr(EV22[i]);

end;

end;

procedure TForm1.Button5Click(Sender: TObject);

var i,j,Sum1,Sum2,Sum3:integer;

begin

for j:=1 to m do

begin

Sum1:=0;

Sum2:=0;

for i:=1 to n do

begin

if B1[i,j]<>EV1[i] then inc(Sum1);

if B2[i,j]<>EV1[i] then inc(Sum2);

end;

EV41[j]:=Sum2;

kp1:='2';

if Sum2>Sum3 then

begin

EV41[j]:=Sum3;

kp1:='3';

end;

EV31[j]:=Sum1;

end;

for j:=1 to m do

begin

Sum1:=0;

Sum2:=0;

for i:=1 to n do

begin

if N1[i,j]<>EV22[i] then inc(Sum1);

if N2[i,j]<>EV22[i] then inc(Sum2);

end;

EV42[j]:=Sum1;

kp2:='1';

if Sum1>Sum3 then

begin

EV42[j]:=Sum3;

kp2:='3';

end;

EV32[j]:=Sum2;

end;

for j:=1 to m do

begin

Sum1:=0;

Sum2:=0;

for i:=1 to n do

begin

if N1[i,j]<>EV23[i] then inc(Sum1);

if N2[i,j]<>EV23[i] then inc(Sum2);

end;

EV43[j]:=Sum1;

if Sum1>Sum2 then

begin

EV43[j]:=Sum2;

end;

EV33[j]:=Sum3;

end;

for j:=1 to m do

begin

Form1.StringGrid13.Cells[j,0]:=inttostr(EV31[j]);

Form1.StringGrid15.Cells[j,0]:=inttostr(EV32[j]);

Form1.StringGrid14.Cells[j,0]:=inttostr(EV41[j]);

Form1.StringGrid16.Cells[j,0]:=inttostr(EV42[j]);

Label18.Caption:=kp1;

Label20.Caption:=kp2;

end;

end;

function Kulbak(k2,k3:integer):real;

var s:real;

begin

s:=ln((2*m+0.01-(k2+k3))/((k2+k3)+0.01))/ln(2);

result:=(1/m)*(s)*(m-(k2+k3));

end;

procedure TForm1.Button6Click(Sender: TObject);

var i,j,k11,k12,k13,k14,k21,k22,k23,k24:integer;

D11,D12,D21,D22,a1,a2,b1,b2,kfe1,kfe2:real;

kf1,kf2:array[1..m] of real;

begin

kfe1:=0;

for j:=1 to n do

begin

k11:=0;k12:=0;k13:=0;k14:=0;

for i:=1 to m do

begin

if EV31[i]<=j then inc(k11)

else inc(k12);

if EV41[i]<=j then inc(k13)

else inc(k14)

end;

D11:=k11/m;

D12:=k14/m;

a1:=k12/m;

b1:=k13/m;

kf1[j]:=kulbak(k12,k13);

Form1.StringGrid22.Cells[1,j]:=inttostr(k11);

Form1.StringGrid22.Cells[2,j]:=inttostr(k12);

Form1.StringGrid22.Cells[3,j]:=inttostr(k13);

Form1.StringGrid22.Cells[4,j]:=inttostr(k14);

Form1.StringGrid22.Cells[5,j]:=floattostr(D11);

Form1.StringGrid22.Cells[6,j]:=floattostr(D12);

Form1.StringGrid22.Cells[7,j]:=floattostr(a1);

Form1.StringGrid22.Cells[8,j]:=floattostr(b1);

Form1.StringGrid22.Cells[9,j]:=floattostr(kf1[j]);

if (D11>=0.5) and (D12>=0.5) and (kf1[j]>kfe1) then

begin

dp1:=j;

kfe1:=kf1[j];

end;

end;

kfe2:=0;

for j:=1 to m do

begin

k21:=0;k22:=0;k23:=0;k24:=0;

for i:=1 to m do

begin

if EV32[i]<=j then inc(k21)

else inc(k22);

if EV42[i]<=j then inc(k23)

else inc(k24)

end;

D21:=k21/m;

D22:=k24/m;

a2:=k22/m;

b2:=k23/m;

kf2[j]:=kulbak(k22,k23);

Form1.StringGrid23.Cells[0,j]:=inttostr(k21);

Form1.StringGrid23.Cells[1,j]:=inttostr(k22);

Form1.StringGrid23.Cells[2,j]:=inttostr(k23);

Form1.StringGrid23.Cells[3,j]:=inttostr(k24);

Form1.StringGrid23.Cells[4,j]:=floattostr(D21);

Form1.StringGrid23.Cells[5,j]:=floattostr(D22);

Form1.StringGrid23.Cells[6,j]:=floattostr(a2);

Form1.StringGrid23.Cells[7,j]:=floattostr(b2);

Form1.StringGrid23.Cells[8,j]:=floattostr(kf2[j]);

if (D21>=0.5) and (D22>=0.5) and (kf2[j]>kfe2) then

begin

dp2:=j;

kfe2:=kf2[j];

end;

end;

Edit7.Text:=inttostr(dp1);

Edit8.Text:=inttostr(dp2);

Label44.Caption:=kp1;

Label45.Caption:=kp2;

end;

procedure TForm1.FormCreate(Sender: TObject);

var i:integer;

begin

with Stringgrid22 do

begin

cells[0,0]:='k';

cells[1,0]:='K1';

cells[2,0]:='K2';

cells[3,0]:='K3';

cells[4,0]:='K4';

cells[5,0]:='D1';

cells[6,0]:='D2';

cells[7,0]:='a';

cells[8,0]:='b';

cells[9,0]:='kfe';

for i:=1 to 22 do

Stringgrid22.cells[0,i]:=inttostr(i);

end;

with Stringgrid23 do

begin

cells[0,0]:='K1';

cells[1,0]:='K2';

cells[2,0]:='K3';

cells[3,0]:='K4';

cells[4,0]:='D1';

cells[5,0]:='D2';

cells[6,0]:='a';

cells[7,0]:='b';

cells[8,0]:='kfe';

end;

end;

procedure TForm1.Button7Click(Sender: TObject);

var i,d1,d2,r:integer;

f,f1,f2:real;

kl:string[1];

begin

kl:=Edit10.Text;

r:=strtoint(Edit11.Text);

d1:=0; d2:=0;

for i:=1 to n do

begin

if kl='1' then Form1.StringGrid25.Cells[i,0]:=inttostr(N1[i,r])

else

begin

if kl='2' then Form1.StringGrid25.Cells[i,0]:=inttostr(N2[i,r])

end;

if strtoint(Form1.StringGrid25.Cells[i,0])<>EV21[i] then inc(d1);

if strtoint(Form1.StringGrid25.Cells[i,0])<>EV22[i] then inc(d2);

end;

f1:=1-d1/dp1;

f2:=1-d2/dp2;

f:=f1;

Edit12.Text:='Реализация относится к классу 1';

if f<f2 then

begin

f:=f2;

Edit12.Text:='Реализация относится к классу 2';

end ;

end;

procedure TForm1.Button8Click(Sender: TObject);

var x,i:integer; y1,y2:real;

begin

for i:=0 to 21 do

begin

x:= i;

y1:=strtofloat(stringgrid22.Cells[9,i+1]);

y2:=strtofloat(stringgrid23.Cells[8,i+1]);

series1.AddXY(x,y1);

series2.AddXY(x,y2);

end;

end;

end.

Размещено на Allbest.ru


Подобные документы

  • Розробка системи підтримки прийняття рішень для проектування комп’ютерної мережі. Матричний алгоритм пошуку найменших шляхів. Програма роботи алгоритму в MS Excel. Розробка програми навчання нейронної мережі на основі таблиць маршрутизації в пакеті Excel.

    курсовая работа [2,8 M], добавлен 12.12.2013

  • Алгоритм покриття за методом "мінімальній стовпець - максимальний рядок". Підпрограми основного алгоритму. Розробка програми сортування методом простих включень (бульбашковим методом). Словесний опис алгоритму, його контрольний приклад та ефективність.

    курсовая работа [36,4 K], добавлен 06.03.2013

  • Розробка ефективних засобів навчання. Виявлення системи, способів, що сприяють підвищенню активності учнів. Призначення та область використання програми електронний довідник. Розробка алгоритму програми. Обґрунтування вибору мови і системи програмування.

    курсовая работа [161,7 K], добавлен 02.06.2014

  • Розробка структурної схеми системи управління, головні вимоги до основних елементів. Обґрунтування та вибір елементної бази. Блок-схема алгоритму і програми реалізації закону управління (лістинг програми). Зміст програми керування мікроконтроллером.

    курсовая работа [170,7 K], добавлен 28.08.2012

  • Характеристика середовища програмування Microsoft Visual C++ та бібліотеки класів MFC. Знаходження коефіцієнтів при невідомих за допомогою методу найменших квадратів. Створення програми для вирішення задачі обраним методом, її алгоритм та інтерфейс.

    курсовая работа [434,8 K], добавлен 20.01.2014

  • Створення алгоритму програмної моделі розкладу в учбовому закладі для ефективного вирішення завдань автоматичного складання розкладу, шляхом підбору найбільш оптимальних варіантів. Шляхи реалізації розробленого алгоритму в середовищі Mathemetica 5.0.

    дипломная работа [5,0 M], добавлен 25.10.2012

  • Структура системи автоматизованого проектування засобів обчислювальної техніки. Опис життєвого циклу продукту за методом Зейда. Основні поняття про системи автоматизованого виробництва. Проектування інформаційних систем та побудова мережевого графіка.

    реферат [1,5 M], добавлен 13.06.2010

  • Аналіз сучасних підходів та проектних рішень щодо проектування і роозробка системи керування та актуалізації інформації web-сайту національного оператора Енергоринка та вимоги до нього в масштабах Укренерго. Організація захисту данних на різних рівнях.

    дипломная работа [1,1 M], добавлен 29.01.2009

  • Розробка алгоритмічної структури алгоритму керування об’єктом. Вибір конфігурації контролера і схем підключення. Проектування прикладного програмного забезпечення для реалізації алгоритму керування. Проведення розрахунку надійності спроектованої системи.

    курсовая работа [1,3 M], добавлен 16.01.2014

  • Комп’ютерні інформаційні системи СППР (системи підтримки прийняття рішень). Призначення, переваги, компоненти, архітектура. Приклади використовуваних СППР, їх основні види і опис. Нейронні мережі та СППР. Чинники, які сприяють сприйняттю і поширенню СППР.

    курсовая работа [323,7 K], добавлен 28.12.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.