Студопедия

КАТЕГОРИИ:


Архитектура-(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-∞

       
   
 


                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
0                    
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     

 

                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     

                     
0                    
                     
                     
                     
                     
                     
                     
                     
                     
                     

 


 


 

                     
                     
                     
0                    
                     
                     
                     
                     
                     
                     
                     

 

 


                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     

 

 


                     
                     
                     
                     
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; Просмотров: 336; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.095 сек.