Studium przypadku
VRP Solver
Autorski algorytm genetyczny dla problemu trasowania z wieloma magazynami, heterogeniczną flotą, dostawami, odbiorami i typami towarów.
Wewnątrz projektu
Kontekst
Projekt akademicki rozwiązuje celowo rozbudowany problem trasowania pojazdów. Pięć magazynów, kilka typów pojazdów, punkty dostaw i odbiorów oraz trzy kategorie towarów tworzą przestrzeń rozwiązań, której nie da się praktycznie przeszukać metodą wyczerpującą.
Rola
Zamodelowałem domenę i zaimplementowałem w Pythonie autorski algorytm genetyczny, obejmujący reprezentację osobników, ocenę tras, obsługę ograniczeń, selekcję, krzyżowanie i mutację.
Ograniczenia
Każda trasa musi uwzględniać pojemność pojazdu i kategorie ładunku, a jednocześnie obsłużyć dostawy i odbiory. Pojazdy startują z losowo przypisanych magazynów, zapotrzebowanie powstaje na dwuwymiarowej mapie, a odebrane towary mogą trafić do kolejnych punktów lub wrócić do magazynu.
Podejście
Solver opisuje lokalizacje za pomocą odległości euklidesowej i ocenia kandydatów na podstawie długości tras oraz kar za niepoprawne plany. Operatory ewolucyjne sprawdzają nowe kombinacje, zachowując wystarczająco dużo prawidłowej struktury, aby z czasem znajdować krótsze i wykonalne rozwiązania.
Rezultat
Aplikacja generuje zbliżone do optymalnych zestawy tras dla tworzonych scenariuszy i pozwala obserwować wpływ parametrów algorytmu na zbieżność, różnorodność populacji oraz jakość wyniku.
Wnioski
W metaheurystykach kluczowa jest dobra reprezentacja problemu. Ulepszanie funkcji dopasowania i zachowywanie wartościowych fragmentów tras często dawało więcej niż zwiększanie złożoności algorytmu. Projekt rozwinął moje rozumienie optymalizacji z wieloma powiązanymi ograniczeniami.
