Algorytm 1: Elementarny algorytm genetyczny
t
:= 0
Utwórz populację początkową(P
(t))
Oceń(P
(t))
while (not warunek końca) do
begin
t
:= t + 1
P
(t) := Selekcja(P (t − 1))
Krzyżuj(P
(t))
Mutuj(P
(t))
Oceń(P
(t))
end
{ Koniec algorytmu }
6
Algorytm 4: Algorytm Systemu Mrowiskowego
{ Inicjalizacja }
for każda krawędź
(i, j) do τ
ij
(0) := τ
0
for
k
:= 1 to m do Umieść mrówkę k w losowo wybranym mieście
T
+
:= najkrótsza trasa dotąd znaleziona i L
+
:= jej długość
{ Główna pętla }
for
t
:= 1 to t
max
do
begin
for
k
:= 1 to m do
{ Zbuduj trasę T
k
(t) wykonując n − 1 razy następujące kroki: }
begin
if Istnieje przynajmniej jedno nieodwiedzone miasto j
∈ Lista Miast Kandydujących then
Wybierz następne miasto j, j
∈ J
k
i
, spośród nieodwiedzonych:
j
=
arg
max
u∈J
k
i
{τ
iu
(t) · [η
iu
]
β
if q
¬ q
0
;
J
if q > q
0
,
gdzie J
∈ J
k
i jest wybierane zgodnie z formułą:
p
k
ij
=
τ
ij
(t) · [η
ij
]
β
P
l∈J
k
i
τ
il
(t) · [η
il
]
β
,
i gdzie i jest bieżącym miastem
else wybierz najbliższe miasto j
∈ J
k
i
Aktualizuj ślad feromonowy na krawędzi wybranej przez mrówkę k
{ aktualizacja lokalna }
τ
ij
(t) := (1 − ρ) · τ
ij
(t) + ρ · τ
0
end
for k := 1 to m do
Wylicz długość L
k
(t) trasy T
k
(t) znalezionej przez mrówkę k
if Znaleziono trasę krótszą niż najkrótsza dotąd then Aktualuzuj T
+
i L
+
for każda krawędź
(i, j) ∈ T
+
do
Wykonaj globalną aktualizację śladu zgodnie z regułą:
τ
ij
(t) := (1 − ρ) · τ
ij
(t) + ρ · ∆τ
ij
(t), gdzie ∆τ
ij
(t) =
1
L
+
for każda krawędż
(i, j) do τ
ij
(t + 1) := τ
ij
(t)
end
Pisz najkrótszą trasę: T
+
oraz jej długość: L
+
{ Koniec algorytmu }
32