КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Список використаної літератури. Представлення результатів роботи програми
Вхідні дані Представлення результатів роботи програми. Цей шлях 0-10-9-8 Аналіз результатів розв’язання задачі. Розв’язання задачі на контрольному прикладі
Де 0-∞
Зробивши 11- ітерацій отримали результат Матриця відстаней:
Матриця шляхів:
Розрахувавши задачу методом Флойда, ми знайшли мінімальну відстань від заводу збірного бетону до будівельних майданчиків. До п.8- найкоротша відстань 17. Найдовший шлях до п.8 -21
Інтерфейс програми:
Результат: Для порівняння даних розрахуємо шлях до вершини 8 на Дейкстра:
1. Г.А.Гайна навчальний посібник з дисципліни «Методи оптимізації:алгоритми,приклади,задачі»К.:КНУБА,2005.-144с. 2. Культин Н. Б. Программирование в Turbo Pascal 7.0 – Спб.: БХВ – Санкт-Петербург, 1999 – 240 с.
Додаток 1. Текст програми procedure TForm1.DejkstraClick(Sender: TObject); var v:integer; fl:array[0..100] of boolean; mas:array[0..100] of real; i,j,min:integer;
begin v:=StrToInt(LabeledEdit1.Text);
for j:=1 to n do begin fl[j]:=false; mas[j]:=10000; end;
for i:=1 to n do for j:=1 to n do if x[i,j]=0 then x[i,j]:=1000000;
fl[0]:=true; mas[v]:=0; //mas[0]:=10000+1;
for i:=1 to n do begin min:=1; for j:=1 to n do if (mas[j]<mas[min]) and (not fl[j]) then min:=j; fl[min]:=true; for j:=1 to n do if (mas[j]>mas[min]+x[min,j]) then mas[j]:=mas[min]+x[min,j]; end;
StringGrid4.RowCount:=3; StringGrid4.ColCount:=n+1; for i:=1 to n do begin StringGrid4.Cells[i,1]:=IntToStr(i); StringGrid4.Cells[i,2]:=FloatToStr(mas[i]); end; end; //****************************************************************************** procedure TForm1.SavDejkClick(Sender: TObject); var i,j:integer; FN:string; Fl:TextFile; begin SaveDialog1.Execute; FN:=SaveDialog1.FileName; AssignFile(Fl,FN); Rewrite(Fl); writeln(Fl,'Результат обчислення! Алгоритм Дейкстри'); for i:=1 to StringGrid4.ColCount do begin for j:=0 to StringGrid4.RowCount do begin write(Fl,StringGrid4.Cells[i,j]); write(Fl,' '); end; writeln(Fl,' '); end; CloseFile(Fl); end;
//*********************************Алгоритм Флойда****************************** procedure TForm1.FlojdClick(Sender: TObject); var s:array[1..50,1..50] of integer; d:array[1..50,1..50] of real; i,j,k:integer; besk:real; begin // besk:=100000; for i:=1 to n do for j:=1 to n do begin if (i<>j) and (x[i,j]=0) then d[i,j]:=besk else d[i,j]:=x[i,j]; if i=j then s[i,j]:=0 else s[i][j]:=j; end; for k:=1 to n do for i:=1 to n do for j:=1 to n do if d[i,j]>(d[i,k]+d[k,j]) then begin d[i,j]:=d[i,k]+d[k,j]; s[i,j]:=k; end;
StringGrid2.ColCount:=n+1; StringGrid2.RowCount:=n+1; StringGrid3.ColCount:=n+1; StringGrid3.RowCount:=n+1; for i:=1 to n do for j:=1 to n do begin StringGrid2.Cells[j,i]:=FloatToStr(d[i,j]); StringGrid3.Cells[j,i]:=IntToStr(s[i,j]); end; end;
Дата добавления: 2015-08-31; Просмотров: 349; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |