Facebook
From Gruff Goose, 1 Year ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 146
  1. clc
  2. clear
  3. time = 0;
  4. licznik = 1;
  5. czas_calosci = 0;
  6. for n = 5:5:100                                     % P─Ötla wybieraj─ůca ilo┼Ť─ç w─Öz┼é├│w z krokiem 5
  7.     for l = 1:1:30                                  % Wyznaczanie prawid┼éowej ┼Ťredniej - utworzenie kraw─Ödzi
  8.         W = 1+ceil(rand(1)*100 )                     % Losowanie wag dla powsta┼éych w─Öz┼é├│w
  9.         for i = 1:n
  10.            for j = 1:n
  11.                 if i==j                             % Jezeli obie warto┼Ťci s─ů r├│wne..
  12.                     W(i, j) = 0;                    % Przerwanie p─Ötli je┼Ťli obie warto┼Ťci sa takie same
  13.                 end
  14.             end
  15.         end
  16.         s = 1;                                      % Wierzcho┼éek startowy
  17.         t = 5;                                      % Wierzcho┼éek ko┼äcowy
  18.         newlabel = 0;                               % Zmienna pomocnicza przechowujaca cech─Ö tymczasow─ů
  19.        
  20.         for v = 1:n
  21.             dist(v) = inf                           % Ustawienie odleg┼éo┼Ťci mi─Ödzy wierzcho┼ékami na niesko┼äczono┼Ť─ç
  22.             final(v) = false                        % Ustawienie drogi na drog─Ö tymczasow─ů - false
  23.             pred(v) = -1;                           % Ustawienie poprzedniego wierzcho┼éka na -1
  24.         end
  25.        
  26.         dist(s)=0;                                  % Odleg┼éo┼Ť─ç od pocz─ůtku do danego wierzcho┼éka
  27.         final(s) = true;                            % Ustawienie drogi na drog─Ö sta┼é─ů - true
  28.         recent = s;                                 % Zmienna pomocnicza oznaczaj─ůca poprzedni wierzcho┼éek
  29.         tic;                                        % Rozpocz─Öcie odliczania czasu
  30.         while final(t)==false                       % P─Ötla dzia┼éaj─ůca dop├│ki algorytm uznaje drog─Ö tymczasow─ů dla ostatniego wierzcho┼éka
  31.             for v = 1:n
  32.                 newlabel=dist(recent)+W(recent, v); % Przypisanie odleg┼éo┼Ťci poprzednich warto┼Ťci
  33.                 if newlabel<dist(v)                 % Jezeli powy┼╝sza warto┼Ť─ç jest mniejsza od aktualnej odleg┼éo┼Ťci..
  34.                     dist(v)=newlabel;               % Ustawienie odleg┼éo┼Ťci na powy┼╝szy wynik
  35.                     pred(v)=recent;                 % Ustawienie poprzedniego wierzcho┼éka na aktualny
  36.                 end
  37.             end
  38.            
  39.             temp = inf;                             % Przypisanie tymczasowej warto┼Ťci 'niesko┼äczono┼Ť─ç' dla zmiennej temp
  40.             for  v = 1:n
  41.                 if (final(v)==false)                % Je┼╝eli aktualna droga jest drog─ů tymczasow─ů..
  42.                     if (dist(v)<temp)               % Jezeli aktualna odleg┼éo┼Ť─ç jest mniejsza od zmiennej temp..
  43.                         y=v;                        % Podstawienie aktualnej warto┼Ťci pod zmienn─ů y
  44.                         temp = dist(v);             % Podstawienie aktualnej odleg┼éo┼Ťci pod zmienn─ů temp
  45.                     end
  46.                 end
  47.             end
  48.             if (temp<inf)                           % Je┼╝eli zmienna temp jest mniejsza od niesko┼äczono┼Ťci..
  49.                 final(y)=true;                      % Ustawienie aktualnej drogi na drog─Ö sta┼é─ů
  50.                 recent=y;                           % Ustawienie poprzedniego wierzcho┼éka na aktualny
  51.             else
  52.                 final(t)=true;                      % Ustawienie drogi na drog─Ö sta┼é─ů
  53.             end
  54.         end
  55.         czas_calosci = czas_calosci + toc;          % Zako┼äczenie liczenia czasu
  56.     end
  57. end