Evrimsel algoritmalar, Darwin'in doğal seleksiyon prensibine dayanan bir optimizasyon algoritmaları ailesidir . Doğal seleksiyonun bir parçası olarak, verilen bir ortamda hayatta kalma ve üreme için yarışan bir birey nüfusu vardır. Her bireyin bu hedeflere ulaşma yeteneği, çocuk sahibi olma şanslarını, diğer bir deyişle genlerini genetik nedenlerle bunları gerçekleştirmede daha iyi, daha iyi yapma şansını artıracak gelecek nesillere aktarma şanslarını belirler. iki hedef.
Nesiller üzerindeki bu sürekli iyileştirme ilkesi, bir soruna çözümlerin optimize edilmesi için evrimsel algoritmalar tarafından alınır. Olarak ilk nesil , farklı oluşan bir popülasyon kişiler rastgele ya da diğer yöntemlerle elde edilmektedir. Birey, soruna bir çözümdür, az ya da çok iyidir: bireyin problemle ilgili niteliği, çözümün çözülecek probleme yeterliliğini yansıtan uygunluk olarak adlandırılır . Bireyin zindeliği ne kadar yüksek olursa, genotipinin bir kısmını veya tamamını bir sonraki neslin bireylerine geçirme olasılığı o kadar yüksektir.
Birey, ** bit vektörü ( genetik algoritmalar ) veya gerçek bir vektör (evrim stratejileri) gibi herhangi bir şekle sahip olabilen bir genotip olarak kodlanır . Her genotip, bireyi değerlendirirken, yani uygunluğu hesaplandığında bir fenotipe dönüştürülür . Bazı durumlarda, fenotip genotip ile aynıdır: buna doğrudan kodlama denir . Aksi takdirde, kodlamaya dolaylı denir. Örneğin, uzunluğu, yüksekliği ve genişliği ile tanımlanan dikdörtgen bir paralel borunun boyutunu optimize etmek istediğinizi varsayalım. Örneği basitleştirmek için, bu üç miktarın 0 ile 15 arasında bir tamsayı olduğunu varsayalım. Her birini 4 bitlik bir ikili sayı kullanarak tanımlayabiliriz. Potansiyel bir çözümün bir örneği, 0001 0111 01010 genotipine olabilir. Karşılık gelen fenotip, uzunluk 1, yükseklik 7 ve genişlik 10'un paralel bir kanalıdır.
Eskiden yeni nesile geçiş sırasında amacı bireyleri manipüle etmek olan varyasyon operatörleri olarak adlandırılır . İki farklı varyasyon operatörü türü vardır:
- mutasyon operatörleri , genetik mutasyonlar gibi, aynı kişide varyasyon sokmak için kullanılır;
- geçit operatörleri kullanılır, ıslah genetik çaprazlanmaya, en az iki farklı genotipleri geçmeye.
Evrimsel algoritmalar, yöneylem araştırması, robotik, biyoloji, nüans veya kriptografi gibi çeşitli alanlarda kendini kanıtlamıştır. Buna ek olarak, aynı anda birden çok hedefi optimize edebilir ve optimize etmek için matematiksel modelde herhangi bir özellik varsaymadıkları için kara kutular olarak kullanılabilirler. Tek gerçek sınırlamaları hesaplama karmaşıklığıdır.