Documente Academic
Documente Profesional
Documente Cultură
?
Problema de transport
Programare evolutivă
și algoritmi genetici
Problema de transport
Enunț
Se cunosc:
Ofertă (surse, producători, furnizori): vector - m surse
Cerere (destinație, consumatori): vector - n destinații
Costuri distribuție (transport): matrice ,
, (oferta pe linie, cererea pe coloană)
= costul transportării unei unități de la furnizorul i la consumatorul j
Ipoteza de lucru
Cererea este egală cu oferta
Problema de transport
Cerință
Găsirea unui plan de transport – matrice , astfel încît
Toată producția este consumată (pe fiecare linie)
Exemplu
Costuri: T_costuri3.txt
Oferta: 15 20 15 T_oferta3.txt 51 62 35 45 56
59 68 50 39 46
Cerere: 11 12 9 10 8 T_cerere3.txt 49 56 53 51 37
Apel: s,c=GTR.GA_Transport('T_oferta3.txt','T_cerere3.txt','T_costuri3.txt',10,50,0.8,0.1)
Exemplu
Oferta:
Cel mai100
bun
150cost găsit:
80 90 10 60 39736.1
80 50 20 70 T_oferta.txt
Soluția de transport:
Cerere: 0 70 40
4030 90 020 180 0110 50 060 60 0 T_cerere.txt
0 0 0 60
60 0 0 90 0 0 0 0 0 0
Costuri: T_Costuri.txt
0 0 0 0 0 20 0 0 60 0
70.99 53.18 89.77 77.93 67.40 80.26 75.45 62.14 87.86 54.82
0 0 10 0 0 10 70
64.86 61.97 76.43 62.72 77.97 74.28 86.72 87.24 99.97 72.20
0 0 0
91.190 71.170 89.990 55.03 0 97.71 0 52.82 10 71.80 0 82.17 0 53.29 0 0
58.65
61.810 59.900 64.260 52.82 0 74.06 0 51.92 0 50.5210 71.58 50 53.50 0 0
93.85
10 65.990 98.730 90.86
81.45 0 91.73 0 53.49 70 76.74 0 98.62 0 71.39 0 0
79.93
84.570 83.760 80.680 75.21 0 66.32
20 61.44 0 50.4230 52.04 0 63.41 0 63.94
0
56.740 54.150 82.49 20 96.970 50.98 0 55.63 0 76.74 0 73.75 0 79.75 0 69.61
0
87.400 59.010 92.540 66.54 0 53.28 0 98.27 70 58.61 0 80.19 0 66.16 0 73.79
0
83.54 52.72 61.28 99.81 83.14 87.87 94.46 54.19 89.65 56.37
Oferta rămasă: [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
86.02 62.15 74.17 75.00 74.71 52.56 76.67 58.20 57.74 56.53
Oferta e consumată perfect
Cerere rămasă: [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
Apel: s,c=GTR.GA_Transport('T_oferta.txt','T_cerere.txt','T_Costuri.txt',150,300,0.8,0.1)
Cererea acoperită perfect
GA – Rezolvarea unei probleme
Stabilire Generare
Problemă reprezentare și populație
funcție obiectiv inițială
Generație
curentă
Generație
Rezultat Populație finală
nouă
Multiset părinți
Decodificare Soluție
Descendenți Descendenți
(mutație) (încrucișare)
GA – Problema de transport
Reprezentare – codificare Oferta
Planul de transport se construiește Oferta Plan transport
alocînd, pe rînd, resurse = cît se rămasă
transportă de la sursa i către destinația j
Exemplu
surse, destinații
9 5 14 2 15 10 18 3 20 6 13 1 7 8 17 16 19 4 12 11
Plan transport
9 alocă 11 22 33 44 55
5 alocă 11
14 alocă 22
2 alocă
15 alocă 33
10 alocă 44
…
12 alocă
11 alocă
GA – Problema de transport
Reprezentare – decodificare
k=k+1
GA – Problema de transport
Funcţia de evaluare
necesită decodificarea cromozomului plan de transport
apoi calculează
Populația inițială
fără restricții, se generează aleator
Condiția de terminare
număr limitat de generații + diversitate (minim 2 calități diferite)
GA – Problema de transport
Operatori
Selecția părinților: tip SUS cu FPS standard / cu sigma scalare
FPS cu sigma scalare
poate duce la erori pentru probleme de dimensiuni mici (toți indivizii au aceeași calitate)
obține rezultate mai bune decît FPS standard pentru probleme de dimensiuni mai mari
Recombinare: CX
fără restricții
Mutaţie: operatorul interschimbare
fără restricții
Selecția generației următoare: elitistă
Rezultat
din populația finală se extrage cel mai bun individ și se decodifică cel mai
bun plan de transport calculat
Spor la învăţat!