DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Алгоритм максимінної відстані

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Факультет комп’ютерних наук
Кафедра:
Системи автоматизованого проектуваня

Інформація про роботу

Рік:
2008
Тип роботи:
Лабораторна робота
Предмет:
Основи проектування систем штучного інтелекту
Група:
КН-3
Коротко про документ

Про що ця робота

Звіт до лабораторної роботи присвячено вивченню алгоритму максимінної відстані для кластеризації даних. Наведено код програми мовою Pascal та результати її виконання.

У роботі розглядаються

  • Алгоритм максимінної відстані
  • Кластеризація даних
  • Штучний інтелект
  • Розпізнавання образів
  • Програмування мовою Pascal

Зміст і розділи

  1. Текст програми
  2. Результат виконання програми
  3. Висновок
Для кого:Студенти технічних спеціальностей, які вивчають системи штучного інтелекту.
Викладачі:Не вказано

Ключові поняття

максимінна відстанькластеризаціяцентр кластерарозпізнавання образіввідстаньпрограмамасивінтерфейсалгоритмзначення

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” іНСТИТУТ КОМП’ютерних НАУК та ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ Кафедра “Системи автоматизованого проектування”  ЗВІТ до лабораторної роботи №2 на тему «Алгоритм максимінної відстані» з курсу «Системи штучного інтелекту» Львів-2008 Текст програми: Program Laba_1; Uses CRT; const q = 17 ; type dis = record v:array [1..q] of real; end; var x : array [1..q] of integer; y : array [1..q] of integer; j,i,k:integer; n:array [1..q] of integer; d: array [1..q] of dis; ser:real; t:string; min:array [1..q] of real; dmax_Z:array[1..q] of real; centre: array [1..q] of integer; centrex: array [1..q] of integer; centrey: array [1..q] of integer; xg:real; Label next,quit; BEGIN clrscr; writeln; x[1]:= 1 ; y[1]:=1;x[2]:= 0 ; y[2]:=3; x[3]:= 0 ; y[3]:=4;x[4]:= 4 ; y[4]:=1; x[5]:= 5 ; y[5]:=1;x[6]:= 5 ; y[6]:=2; x[7]:= 5 ; y[7]:=3;x[8]:= 6 ; y[8]:=9; x[9]:= 8 ; y[9]:=6;x[10]:=9 ; y[10]:=2; x[11]:=9 ; y[11]:=5;x[12]:=9 ; y[12]:=6; x[13]:=9 ; y[13]:=7;x[14]:=10; y[14]:=1; x[15]:=10; y[15]:=2;x[16]:=10; y[16]:=3; x[17]:=11; y[17]:=3; t:=' '; textcolor(8); writeln; n[1]:=1; centre[1]:=1; centrex[1]:=x[1]; centrey[1]:=y[1]; textcolor(14); writeln(' Z1(',centrex[1],';',centrey[1],')'); textcolor(15); For i:=1 to q do begin if i<10 then write(' x',i,' (',x[i],';',y[i],')',' ') else if i=12 then write(' x',i,'(',x[i],';',y[i],')',' ') else write(' x',i,'(',x[i],';',y[i],')',' '); d[1].v[i]:=sqrt(sqr((centrex[1]-x[i]))+sqr((centrey[1]-y[i]))); writeln(d[1].v[i]:2:1); end; dmax_z[1]:=d[1].v[1]; centre[2]:=1; For i:=1 to q do if d[1].v[i]>dmax_z[1] then begin dmax_z[1]:=d[1].v[i]; centre[2]:=i; end; textcolor(3); writeln(' NOVYJ CENTR = X(',centre[2],') d_max = ',dmax_z[1]:2:1); textcolor(15); centrex[2]:=x[centre[2]]; centrey[2]:=y[centre[2]]; writeln; textcolor(14); writeln(' Z1(',centrex[1],';',centrey[1],')',' Z2(',centrex[2],';',centrey[2],')'); textcolor(15); For i:=1 to q do begin if i<10 then write(' x',i,' (',x[i],';',y[i],')',' ',d[1].v[i]:2:1,t) else if i=12 then write(' x',i,'(',x[i],';',y[i],')',' ',d[1].v[i]:2:1,t) else write(' x',i,'(',x[i],';',y[i],')',' ',d[1].v[i]:2:1,t); d[2].v[i]:=sqrt(sqr((centrex[2]-x[i]))+sqr((centrey[2]-y[i]))); writeln(d[2].v[i]:2:1); end; For i:=1 to q do begin if d[1].v[i]>d[2].v[i] then min[i]:=d[2].v[i] else min[i]:=d[1].v[i]; end; writeln; dmax_z[2]:=min[1]; For i:=1 to q do if min[i]>dmax_z[2] then begin dmax_z[2]:=min[i]; centre[3]:=i; end; if dmax_z[2] >= 0.5*(dmax_z[1]/1) then begin textcolor(3); writeln(' NOVYJ CENTR = X(',centre[3],') d_max = ',dmax_z[2]:2:1); textcolor(15); end else begin textcolor(4); writeln('***NEMAJE BILSHE KLASTERIV*** !!!'); textcolor(15); goto quit; end; k:=3; NEXT:; readln; centrex[k]:=x[centre[k]]; centrey[k]:=y[centre[k]]; textcolor(14); writeln(' min',' Z',k,'(',centrex[k],';',centrey[k],')'); textcolor(15); For i:=1 to q do begin if i<10 then write(' x',i,' (',x[i],';',y[i],')',t,min[i]:2:1,t) else if i=12 then write(' x',i,'(',x[i],';',y[i],')',' ',min[i]:2:1,t) else write(' x',i,'(',x[i],';',y[i],')',t,min[i]:2:1,t); d[k].v[i]:=sqrt(sqr((centrex[k]-x[i]))+sqr((centrey[k]-y[i]))); writeln(d[k].v[i]:2:1); end; For i:=1 to q do if d[k].v[i]<min[i] then min[i]:=d[k].v[i]; writeln; dmax_z[k]:=min[1]; For i:=1 to q do if min[i]>dmax_z[k] then begin dmax_z[k]:=min[i]; centre[k+1]:=i; end; ser:=0; j:=0; For i:=k-1 downto 1 do begin ser:=ser+dmax_z[i]; j:=j+1; end; ser:=ser/j; ser:=0.5*ser; if dmax_z[k] >= ser then begin textcolor(3); writeln(' NOVYJ CENTR = X(',centre[k+1],') d_max = ',dmax_z[k]:2:1); textcolor(15); k:=k+1; goto next; end else begin textcolor(4); writeln(' ***NEMAJE BILSHE KLASTERIV*** '); textcolor(15); goto quit; end; quit:; writeln; readln; END. Результат виконання програми NOVYJ CENTR = X(17) d_max = 10.2 Z1(1;1) Z2(11;3) x1 (1;1) 0.0 10.2 x2 (0;3) 2.2 11.0 x3 (0;4) 3.2 11.0 x4 (4;1) 3.0 7.3 x5 (5;1) 4.0 6.3 x6 (5;2) 4.1 6.1 x7 (5;3) 4.5 6.0 x8 (6;9) 9.4 7.8 x9 (8;6) 8.6 4.2 x10(9;2) 8.1 2.2 x11(9;5) 8.9 2.8 x12(9;6) 9.4 3.6 x13(9;7) 10.0 4.5 x14(10;1) 9.0 2.2 x15(10;2) 9.1 1.4 x16(10;3) 9.2 1.0 x17(11;3) 10.2 0.0 NOVYJ CENTR = X(8) d_max = 7.8 Висновок На цій лабораторній роботі я вивчив принципи роботи алгоритму k-внутрішніх групових середніх розпізнавання образів. Написав програму реалізації алгоритму.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!