Świat przyrody i algorytmy genetyczne
Podobnie jak w przypadku sieci neuronowych, algorytmy genetyczne mają swoje korzenie w przyrodzie. Podpatrywanie świata rzeczywistego doprowadziło do wykorzystania jego praw w metodach sztucznej inteligencji.
Przy budowie algorytmów genetycznych wykorzystano takie mechanizmy świata przyrody jak:
- Gen - pojedynczy element odzwierciedlający pewną cechę;
- Chromosom - uporządkowany ciąg genów (ciąg kodowy reprezentujący pewne rozwiązanie);
- Allen - wartość danego genu;
- Locus - miejsce położenia genu w chromosomie;
Algorytmy genetyczne
Wiele problemów optymalizacji cechuje się tym, że znalezienie dokładnego rozwiązania może zajmować bardzo dużo czasu. Istnieje sporo metod optymalizacji, wśród których wyróżnić można metody ukierunkowanego poszukiwania optimum oraz metody poszukiwania przypadkowego.
Poszukiwanie ukierunkowane zwykle oparte jest na jakiejś odmianie metody najszybszego spadku. Źródłem problemów przy ukierunkowanej optymalizacji są głównie ekstrema lokalne. Stochastyczne poszukiwanie rozwiązań także nie gwarantuje sukcesu.
Na bazie tych obserwacji powstała koncepcja, żeby poszukiwaniami optymalnego rozwiązania (uzyskiwanego za pomocą komputera) kierował proces ewolucji. Metody ewolucyjne powstały i zostały rozwinięte w tym celu, żeby znajdować przybliżone rozwiązania problemów optymalizacyjnych w taki sposób, by znajdować wynik w miarę szybko oraz uniknąć pułapek minimów lokalnych.
Jaki algorytm?
Do posortowania zbioru o rozmiarze wielokrotnie przekraczającym rozmiar dostępnej dla algorytmu pamięci?
Wydaje mi się, że należałoby zastosować któryś z algorytmów sortujących w miejscu, gdzie sortowanie odbywa się wewnątrz zbioru. Ma to bardzo istotne znaczenie w przypadku dużych zbiorów danych, gdyż mogłoby się okazać, iż posortowanie ich nie jest możliwe z uwagi na brak pamięci w systemie.
Wybór algorytmu
Od czago zależy wybór konkretnego algorytmu do zastosowania w programie?
Czy zastosowanie sortowania bąbelkowego ma jakiś sens? Przecież jest to najwolniejsza metoda.
Wady rekurencji
Wiadomo, że rekurencja pozwala rozwiązać wiele problemów w sposób łatwiejszy niż metodami "tradycyjnymi". Są jednak sytuacje, kiedy nie warto stosować algorytmów rekurencyjnych nawet gdy algorytm wydaje się prostszy.