Skip to main content

© BizNews. Wszelkie prawa zastrzeżone


Algorytm genetyczny

algorytm genetyczny
 |  Artykuł partnera  |  Technologia i IT

Co to jest algorytm genetyczny? Jest to rozwiązanie, które doskonale sprawdzi się podczas optymalizacji w sytuacji, która może mieć wiele możliwych scenariuszy i permutacji. Sztuczna inteligencja jest wtedy w stanie ocenić, które opcje są najbardziej korzystne, odrzucając przy tym takie, które przynoszą gorsze wyniki od spodziewanych. Jak w praktyce można wykorzystać algorytmy genetyczne?

Algorytm genetyczny - co to jest?

W przypadku algorytmu genetycznego mówimy o metodzie poszukiwania najbardziej korzystnych, optymalnych rozwiązań dla różnych problemów w IT. Nazwa rozwiązania wprost nawiązuje do selekcji naturalnej, czy raczej teorii doboru naturalnego. W niej bowiem natura promuje zmiany ewolucyjne, które w większym stopniu sprawdzają się w praktyce, a eliminuje wariacje, które się nie sprawdzą. Właśnie tak działa algorytm genetyczny. Jest w stanie sprawdzić działanie niemal niezliczonej ilości kombinacji różnych rozwiązań optymalizacyjnych, tym samym badając efekty wprowadzonych zmian w praktyce.

Jeśli optymalizacja przynosi dobre rozwiązania, algorytm dalej z niej korzysta w dalszych badaniach. W przypadku osiągnięcia gorszych efektów, próba ta przestaje być brana pod uwagę. Podobnie do teorii Darwina o doborze naturalnym, działanie algorytmu genetycznego jest nieco chaotyczne. Największą różnicą jest oczywiście znaczne skrócenie czasu potrzebnego do poznania efektów. W naturze było to często kilka pokoleń danego gatunku. W przypadku technologii IT jest to kilka chwil, a już znamy pierwsze efekty.

algorytmy genetyczne

Różnorodne rozwiązania i cykl życia algorytmu

Zaletą algorytmu genetycznego jest możliwość znalezienia różnorodnych rozwiązań i szybkiego przetestowania ich. Początkowo należy więc stworzyć dość losową grupę proponowanych rozwiązań. Rolą programistów jest tu także ustalenie, kiedy testy mają zostać zakończone - na przykład po osiągnięciu pewnych korzyści - zwiększenia przepustowości mechanizmu, oszczędność danej liczby czasu, itp.

Programista tworzący taki algorytm musi zdefiniować, które rozwiązania i mechanizmy będą “rodzicami”. Łącząc się, mogą tworzyć pary. Z ich połączenia otrzymamy tzw. “potomków”, których dalej możemy krzyżować. W ten sposób otrzymujemy naprawdę wiele, często zaskakujących, rozwiązań. Testując je w praktycznym zastosowaniu (np. do łamania jakiegoś szyfru) można dość szybko sprawdzić, które krzyżówki dają najlepsze efekty. To one posłużą później do dalszej pracy - tworzenia kolejnych par “rodziców” i ich “potomków”.

Tworząc taki algorytm musimy wziąć pod uwagę szereg czynników:

  • sposób kodowania
  • od jakiej populacji (wielkość i rodzaj) rozpoczynamy testy?
  • jakich wyników oczekujemy?
  • które wyniki (tzw. “potomkowie”) mogą być ze sobą krzyżowane i kiedy?

Gdzie można wykorzystać algorytmy genetyczne?

Jako, że algorytmy genetyczne działają w dość chaotyczny sposób, często są stosowane w kryptografii i zabezpieczeniach. Dzięki nim można zarówno stworzyć zaawansowane i bardzo skomplikowane metody szyfrowania, jak i złamać te już istniejące.