Page 27 - 4861
P. 27

Inf Inf 8 Inf Inf 0 Inf Inf 4 3;...
                14 Inf Inf 25 Inf Inf 0 19 Inf Inf;...
                Inf Inf Inf 21 Inf Inf 19 0 9 6;...
                Inf Inf Inf Inf 13 4 Inf 9 0 Inf;...
                Inf Inf Inf Inf Inf 3 Inf 6 Inf 0];
             %--------------------------------------
             %Тернарна операція
             N=size(d);
             for j=1:N
                  for i=1:N
                       for k=1:N
                            if and(k~=j,i~=j)
                                   d(i,k)=min(d(i,k),d(i,j)+d(j,k));
                            end
                       end
                   end
             end

                 Результат розрахунку за складеною програмою заносимо у табл. 10.2.

                                     Таблиця 10.2 – Довжини дуг між вузлами мережі

                              1        2       3        4       5       6        7        8        9      10
                     1        0        5       14       7      15       22       14       28      26      25
                     2        5        0       9        2      10       17       19       23      21      20
                     3       14        9       0       11       1       8        28       17      12      11
                     4        7        2       11       0      10       19       21       21      23      22
                     5       15       10       1       10       0       9        29       18      13      12
                     6       22       17       8       19       9       0        28       9        4       3
                     7       14       19       28      21      29       28       0        19      28      25
                     8       28       23       17      21      18       9        19       0        9       6
                     9       26       21       12      23      13       4        28       9        0       7
                    10       25       20       11      22      12       3        25       6        7       0

                                                                                                        
                 На основі таблиці 10.2 складемо довідкову таблицю 10.3. На початку елемент   ,i k  таблиці,
             який  знаходиться  на  перетині  i  го  рядка  і  k   -  го  стовпця,  кладемо  рівним  k .  У  табл.  10.2
                            
             елемент   ,p q   вказує  на    найкоротший  ланцюг  між  вузлами  N   і  N .  Якщо  у  вибраному
                                                                                           q
                                                                                    p
             найкоротшому  ланцюгу  N   - N   найближчим  до  вузла  N   є  вузол  N ,  тоді  у  табл.  10.3  на
                                          p    q                             p            j
             пересіченні  p -го рядка і  q -го стовпця вписуємо значення  j . Якщо такого найближчого вузла не
             існує то значення відповідного елемента таблиці не змінюється. Нехай  p       1, а  q =6. Із табл. 10.2
             знаходимо, що  d     22 . Знаходимо ланцюг довжини 22 (рис. 10.1). таким ланцюгом буде 1 – 2 –
                               16
             3 – 6. Найближчим вузлом до вузла 1 буде вузол 2. Тому в клітинку (1, 6) табл. 10.3 цифру 6
             замінюємо на цифру 2. Тепер, нехай  q =5. Із табл. 10.7 знаходимо, що  d       15. Цьому значенню
                                                                                         15
             відповідає ланцюг 1 – 2 – 3 - 5. Отже, найближчим до вузла 1 є вузол 2. Це значення заносимо до
             клітинки (1, 5) табл. 10.3. Аналогічно заповнюємо і інші клітинки табл. 10.3.
                     Якщо  потрібно  знайти  найкоротший  ланцюг  із  N   в  N ,  то  за  довідковою  таблицею
                                                                           p      q
             спочатку знаходимо елемент   ,p q    k , який означає, що вузол  N  є найближчим до вузла  p .
                                                                                    k
                                               
             Потім  знаходимо  елемент   ,k q ,  який  вказує  на  перший  проміжний  елемент  у  найкоротшому
                                                                                                       
             ланцюгу  із  N   в  N .  Цей  процес  продовжується  до  знаходження  елементу   ,i q  ,  який
                                                                                                          q
                             k      q

                                                               26
   22   23   24   25   26   27   28   29   30   31   32