Genetik algoritmalar ne zaman optimizasyon için iyi bir seçimdir?


20

Genetik algoritmalar bir optimizasyon yöntemidir. Genellikle stokastik gradyan inişi ve türevleri fonksiyon optimizasyonu için en iyi seçimdir, ancak bazen genetik algoritmalar hala kullanılmaktadır. Örneğin, NASA'nın ST5 uzay aracının anteni genetik bir algoritma ile oluşturuldu:

ST5 anteni

Genetik optimizasyon yöntemleri ne zaman daha yaygın gradyan iniş yöntemlerinden daha iyi bir seçimdir?


7
Örnek için +1, orijinal kağıdı buldum: alglobus.net/NASAwork/papers/Space2006Antenna.pdf
Tim

Yanıtlar:


19

Genetik algoritmalar (GA), belirli bir alan için nadiren en iyi seçenek olmasına rağmen, birçok durumda iyi bir cevap sağlamada ampirik olarak iyi olan bir buluşsal yöntem ailesidir .

Türev tabanlı algoritmalardan bahsediyorsunuz, ancak türevlerin yokluğunda bile GA'lardan daha iyi performans gösteren birçok türev içermeyen optimizasyon algoritması var. Bazı fikirler için buna ve bu cevaba bakınız .

Birçok standart optimizasyon algoritmasının ortak özelliği (türevsiz yöntemler bile olsa), alttaki boşluğun pürüzsüz bir manifold (belki de birkaç farklı boyutta) olduğu ve optimize etme fonksiyonunun bir şekilde iyi davrandığı varsayımıdır .

Ancak, tüm işlevler düzgün bir manifoldda tanımlanmamıştır. Bazen bir grafik veya diğer ayrık yapılar üzerinde optimizasyon yapmak istersiniz (kombinasyonel optimizasyon) - burada özel algoritmalar var, ancak GA'lar da işe yarayacaktı.

Karmaşık, ayrık yapılar üzerinde tanımlanan işlevlere ne kadar çok giderseniz, özellikle genetik operatörlerin en iyi şekilde çalıştıkları bir temsili bulabilirseniz (çok fazla el ayarı ve alan bilgisi gerektirir).

Tabii ki, gelecek GA'ları tamamen unutmaya ve ayrı alanları sürekli uzaya eşlemek için yöntemler geliştirmeye ve sürekli gösterimde sahip olduğumuz optimizasyon makinelerini kullanmaya yol açabilir .


2

Degrade iniş monokriti optimizasyonuna adanmışsa genetik yöntemler çok kriterli optimizasyon için çok uygundur. Gradyan inişi, türevler mevcut olduğunda ve yalnızca bir optimum çözüm olduğunda (yerel minimas hariç) minimum fonksiyonların bulunmasına izin verir. Bir genetik algoritma, çok kriterli problemlerde kullanılabilir ve her biri bir popülasyonun arıları olan ve ilk popülasyondan evrimleşen çözümlerin sürekliliğine yol açabilir. Optimize edilecek değerler bireylerin fenotipleridir ve birkaç fenotip olabilir. Genellikle, hiçbir birey eşzamanlı olarak her fenotipin daha iyi değerine sahip değildir, bu nedenle sadece bir çözüm yoktur. Son popülasyondaki tüm optimizasyon çözümleri olan bireyler "Pareto cephesi" nin bir parçasıdır ve "Pareto rütbe bir" olarak işaretlenmiştir. bireyler. Bu, her fenotip için aynı performansa sahip olan diğer tüm bireylerle karşılaştırıldığında, bir fenotip için diğerlerinden daha iyi oldukları anlamına gelir.


Bir aşağı oy için tamam, ama nerede yanıldığımı açıklayabilir misiniz?
manu190466

5
Bu site, bağlam ve arka plan sağlayan yanıtlara değer verir. İlginç sorulara faydalı cevaplar depomuza ekleyecek cevapları nasıl sağlayacağınız için bu yardım sayfasına bakın . Cevabınızı açıklamak da kendi anlayışınızı test etmenin iyi bir yoludur. Örneğin, bu durumda Wikipedia sayfasının genetik algoritmalar için hedefler olarak tek değerli fitness işlevlerini ima ettiği anlaşıldığı için, genetik algoritmaların "çok kriterli optimizasyon için ne kadar uygun olduğu" konusunu genişletmek isteyebilirsiniz .
EdM

0

Hangi anlamda en iyisi?

Deneyimlerime göre, GA'lar en pragmatik optimizatörlerden biridir. Daha kesin algoritmalar matematik dünyasındaki gerçek problemleri resmileştirmek için zaman ve çaba gerektirse de, GA'lar herhangi bir maliyet fonksiyonunu karmaşık kurallar ve kısıtlamalarla ele alabilir (GA'lar spesifik hesaplama ile değil, bir yürütme yaklaşımı ile ilişkilidir). Bu süreç basittir ve keşif çalışmaları için birçok yaklaşımı deneyebilirsiniz.

Ayrıca, tekrarlanan görevler için iyi olan gelecekteki çalışmalar için algoritmaya geçmiş çözümleri reddetme olasılığını takdir ediyorum.

Kavramsal olarak, genetik bir algoritma fonksiyonların hashmap'ı ile temsil edilebilir ve çok hızlı sonuçlar elde edebileceğiniz bir dil olan Clojure gibi işlevsel dillere de uygundur.

Genetik Algoritmalar da yuvalanabilir: bir GA'nın maliyet fonksiyonu bir GA olabilir! Bu algoritmalar, çok büyük bir popülasyonu hesaplamalarına olanak tanıyan modern donanım ve altyapıdan yararlanır, böylece basit mutasyon / seçim işlemlerinde bile iyi sonuçlar elde edebilirsiniz.

Bir dalga fonksiyonunun minimumunu bulmak gibi basit problemler için bile, GA'lar o kadar da kötü değildir ve kabul edilebilir bir zamanda iyi bir hassasiyet elde edebilir.

Bu yüzden evet, analitik çözümler daha hızlı yürütme süresi ve hassasiyete sahip olabilir, ancak bunları aşırı ağırlıklar üretmek için gereken süre genellikle beklenen faydaları sağlar! Öyleyse ne zaman ? En azından meta optimizasyon için neredeyse her zaman benim için.


Bu argümanın ana itici gücü, genetik algoritmaların kara kutu optimize ediciler olduğu görülüyor. Ama orada çok sayıda kara kutu optimize edici var. Bu neden diğer seçeneklerden daha iyi olsun? Ayrıca, GA'ların kısıtlamaları kolayca ele alabileceğini düşünmüyorum. Örneğin, 4D dünyasındaki bir 3D altuzayı hariç fonksiyon tanımlanmamışsa, kesinlikle bir vanilya GA başarısız olur.
Cliff AB

@CliffAB Aslında bu konuda hiçbir şey söylemedim ve belki de tam tersi. GA'da, çekirdek hesaplama üzerinde çok fazla kontrole sahipsiniz, GA kendi içinde bir dizi adım ve ışık düzeni. Maliyet işlevlerini tanımladığınızda, sorgulayabileceğiniz harici kısıtlamalar dahil olmak üzere işlevdeki her şeyi işleyebilirsiniz. Temel argümanlarım: birçok sorunu ele al, çerçeveyle uyumluluktan endişe etmemelisin (sadece bir maliyet iade etmelisin), her zaman değilse EVEN çoğu iş vakasında iyi bir gerçek yaşam çözümü bul en iyi
Joseph Yourine
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.