Algorytm genetyczny to metoda heurystyczna inspirowana procesami ewolucji biologicznej, stosowana do rozwiązywania zadań optymalizacyjnych i poszukiwawczych. Należy do rodziny algorytmów ewolucyjnych i wykorzystuje populację rozwiązań, mechanizmy selekcji oraz operatory rekombinacji i mutacji. Koncepcja ta bywa opisywana w kontekście algorytmów uczenia i optymalizacji, a jej biologiczna inspiracja odwołuje się do obserwacji doboru naturalnego i mechanizmów takich jak selekcja.

Reprezentacja rozwiązań

Kluczowym wyborem projektowym jest reprezentacja chromosomów — może to być kod binarny, wektory liczb rzeczywistych, permutacje (np. dla problemu komiwojażera) lub struktury drzewiaste stosowane w programowaniu genetycznym. Odpowiednie kodowanie wpływa na efektywność poszukiwania i sensowność zastosowania operatorów genetycznych.

Operatory genetyczne

Podstawowe operatory to:

  • Selekcja — wybór rodziców na podstawie wartości funkcji dopasowania (np. ruletka, turniej, selekcja rankingowa),
  • Krzyżowanie (rekombinacja) — łączenie informacji z dwóch (lub więcej) rodziców, co pozwala eksplorować nowe obszary przestrzeni, rekombinacja służy do tworzenia potomstwa,
  • Mutacja — losowe modyfikacje genów osobnika, utrzymujące różnorodność i pozwalające opuścić lokalne minima, mutacja bywa dostosowywana skalą do typu reprezentacji,
  • Strategia zastępowania — reguła decydująca, które osobniki przejdą do następnej populacji (generacyjna vs. steady-state, elitarność).

Przebieg algorytmu

Standardowy przebieg zaczyna się od inicjalnej, często losowej populacji. Każdy osobnik ocenia się funkcją dopasowania (fitness). Na jej podstawie wybiera się rodziców, przeprowadza krzyżowanie i mutację, a następnie tworzy nową populację. Proces iteruje do spełnienia kryterium stopu: osiągnięcia zadowalającej wartości funkcji, wyczerpania czasu obliczeń lub osiągnięcia maksymalnej liczby generacji.

Wariantu i modyfikacje

Istnieje wiele wariantów i rozszerzeń: programowanie genetyczne (struktury drzewiaste), algorytmy ewolucyjne wykorzystujące wektory rzeczywiste, strategie ewolucyjne (ES) z innymi mechanizmami mutacji oraz hybrydowe podejścia łączące algorytmy genetyczne z lokalnymi metodami optymalizacji. Często stosuje się adaptacyjne mechanizmy doboru parametrów, by utrzymać równowagę między eksploracją a eksploatacją.

Zastosowania

Algorytmy genetyczne znajdują zastosowanie w inżynierii, optymalizacji tras, planowaniu produkcji, dostrajaniu hiperparametrów modeli uczenia maszynowego oraz projektowaniu struktur i układów. W praktyce wykorzystuje się je tam, gdzie przestrzeń rozwiązań jest złożona, dyskretna lub nie-differentkowalna, a klasyczne metody zawodzą. W literaturze i zasobach praktycznych można znaleźć liczne przykłady i implementacje opisane w materiałach odnoszących się do problemów optymalizacyjnych i informatyki.

Ograniczenia i wskazówki praktyczne

Mimo zalet — odporności na utknięcie w lokalnych minimach i łatwości stosowania do różnych reprezentacji — algorytmy genetyczne mają wady: wymagają starannego doboru kodowania i parametrów (wielkość populacji, prawdopodobieństwa operatorów), a ocena wielu pokoleń bywa kosztowna obliczeniowo. W praktycznych wdrożeniach pomocne są techniki zachowania różnorodności (np. mutacje adaptacyjne, selekcja z turniejem), elitaryzm oraz łączenie z lokalnymi metodami poprawy rozwiązań.

Źródła i dalsze lektury

Podstawowe omówienia i przykładowe implementacje można znaleźć w materiałach dotyczących algorytmów optymalizacyjnych, biologicznej inspiracji selekcji i dziedziczenia, a także w porównaniach dostępnych w publikacjach o algorytmach ewolucyjnych. Dla praktyków źródłem przykładów są artykuły inżynierskie i studia przypadku opisujące hybrydyzację oraz tunning operatorów mutacji i rekombinacji. Więcej materiałów w zasobach online i podręcznikach z zakresu informatyki i optymalizacji (dziedziczenie i genetyka jako inspiracja).