raquo ;, 6 raquo ;, 14, false);
graph.AddLinkToNode ( 2 raquo ;, 3 raquo ;, 10, false);
graph.AddLinkToNode ( 2 raquo ;, 4 raquo ;, 15, false);
graph.AddLinkToNode ( 3 raquo ;, 4 raquo ;, 11, false);
graph.AddLinkToNode ( 3 raquo ;, 6 raquo ;, 2, false);
graph.AddLinkToNode ( 4 raquo ;, 5 raquo ;, 6, false);
graph.AddLinkToNode ( 5 raquo ;, 6 raquo ;, 9, false);
graph.AddLinkToNode ( 6 raquo ;, 7 raquo ;, 11, false);
graph.AddLinkToNode ( 7 raquo ;, 9 raquo ;, 9, false);
graph.AddLinkToNode ( 8 raquo ;, 4 raquo ;, 4, false);
graph.AddLinkToNode ( 8 raquo ;, 5 raquo ;, 6, false);
graph.AddLinkToNode ( 9 raquo ;, 5 raquo ;, 14, false);
graph.AddLinkToNode ( 9 raquo ;, 6 raquo ;, 16, false);
graph.AddLinkToNode ( 9 raquo ;, 10 raquo ;, 15, false) ;. AddLinkToNode ( 10 raquo ;, 5 raquo ;, 18, false) ;. Write ( Маршрутіз 1 в 2=) ;. WriteLine (graph.FindShortestDistance ( 1 raquo ;, 2 ));.Write ( Laquo; Маршрутіз 1 в 3=) ;. WriteLine (graph.FindShortestDistance ( 1 raquo ;, 3 ));.Write ( Laquo; Маршрутіз 1 в 4=) ;. WriteLine (graph.FindShortestDistance ( 1 raquo ;, 4 ));.Write ( Laquo; Маршрутіз 1 в 5=) ;. WriteLine (graph.FindShortestDistance ( 1 raquo ;, 5 ));.Write ( Laquo; Маршрутіз 1 в 6=) ;. WriteLine (graph.FindShortestDistance ( 1 raquo ;, 6 ));.Write ( Laquo; Маршрутіз 1 в 7=) ;. WriteLine (graph.FindShortestDistance ( 1 raquo ;, 7 )) ;. Write ( Маршрутіз 1 в 8=) ;. WriteLine ( graph.FindShortestDistance ( 1 raquo ;, 8 )) ;. Write ( Маршрутіз 1 в 9=) ;. WriteLine (graph.FindShortestDistance ( 1 raquo ;, 9 )) ;. Write ( Маршрутіз 1 в 10=) ;. WriteLine (graph.FindShortestDistance ( 1 raquo ;, 10 )) ;. ReadKey ();
}
}
}
. 1.1 Таблиця найкоротших шляхів і маршрутів
Маршрут з 1 в 2=7
Маршрут з 1 в 3=9
Маршрут з 1 в 4=20
Маршрут з 1 в 5=20
Маршрут з 1 в 6=11
Маршрут з 1 в 7=22
Маршрут з 1 в 8=24
Маршрут з 1 в 9=27
Маршрут з 1 в 10=38
Рис. 26. Граф. Приклад мережі для алгоритму Дейкстри.
. 2 Розробка алгоритму маршрутизації Флойда
Рис. 27.Блок схема алгоритму Флойда.
Алгоритму Флойда реалізований на мові програмування C #.
using System; Алгорітм_Флойда
{Program
{void Main ()
{[,] array=new int [6, 6]
{// 1 2 3 4 5 6
/* 1 */{0, 2, 9999, 3, 6, 9999},
/* 2 */{9999, 0, 4, 7, 9999, 4},
/* 3 */{3, 9, 0, 5, 9 999, 2},
/* 4 */{9999, 6, 9999, 0, 2, 9999},
/* 5 */{7, 9 999, 2, 4, 0, 7},
/* 6 */{5, 2, 9 999, 9 999, 2, 0}
} ;, j, k; (i=0; i lt; 6; i ++) (j=0; j lt; 6; j ++) (k=0; k lt; 6; k ++) (array [i, k] gt; array [i, j] + array [j, k]) [i, k]=array [i, j] + array [j, k];
//Висновок зміненої матриці суміжності
Console.WriteLine ( Алгоритм Флойда: n );
for (i=0; i lt; 6; i ++)
{(j=0; j lt; 6; j ++). Write (array [i, j] + ) ;. WriteLine ();
} Console.ReadLine ();
}}}
. 2.1 Таблиця найкоротших шляхів і маршрутів
Таблиця 1
123456102635627047643340764496402955624046524620
Рис. 28. Граф. Приклад мережі для алгоритму Флойда.
. 3 Порівняльний аналіз алгоритмів маршрутизації
Провівши аналіз трьох алгоритмів, можна зробити висновки про доцільність використанні даних алгоритмів.
Алгоритм Дейкстри Цей алгоритм є найпростішим алгоритмом з досліджуваних. Він добре виконується в графах з невеликою кількістю вершин, комп'ютерні мережі не є такими. Враховуючи структури великих схем, програма, написана з використанням алгоритму Дейкстри буде виконуватися повільно.
Алгоритм Флойда другий досліджуваний алгоритм - містить три вкладених циклу, тобто має кубічну складніст...