Yapay zeka alanında, bir evrimsel algoritma (EA), metasezgisel optimizasyona dayalı toplam nüfus hesaplamalarının bir alt kümesidir. EA, üreme, mutasyon, rekombinasyon ve seleksiyon gibi biyolojik gelişimden ilham alan mekanizmaları kullanır. Evrimsel optimizasyon algoritmaları problemindeki aday çözüm, popülasyondaki bireylerin rolünü oynar. Ayrıca uygunluk işlevi de cevapların kalitesini belirler.
Evrimsel algoritmalar genellikle her tür probleme yaklaşık çözümler sunar. Çünkü ideal olarak, temeldeki fitness ortamı hakkında herhangi bir varsayımda bulunmazlar. Evrimsel modelleme ve genetik algoritmalar için kullanılan yöntemler genellikle mikroevrimsel süreç çalışmaları ve hücresel aşamalara dayalı planlama modelleri ile sınırlıdır. Çoğu gerçek EA uygulamasında, hesaplama karmaşıklığı engelleyici bir faktördür.
Aslındabu sorun uygunluk fonksiyonu tahmini ile ilgilidir. Uygunluk yaklaşımı, bu zorluğun üstesinden gelmek için bir çözümdür. Ancak, görünüşte basit bir EA, genellikle karmaşık sorunları çözebilir. Bu nedenle, dizinin karmaşıklığı ile problem arasında doğrudan bir ilişki olamaz. Daha fazla ayrıntı "Evrimsel Algoritmalar" kitaplarında bulunabilir.
Uygulama
Birinci adım, rastgele bireylerden oluşan bir başlangıç popülasyonu oluşturmaktır.
İkinci adım, bu gruptaki her bireyin uygunluğunu değerlendirmektir (zaman sınırı, yeterli hazırlık, vb.).
Üçüncü adım - tamamlamak için aşağıdaki yenileme adımlarını tekrarlayın:
- Üreme için en uygun insanları seçin (ebeveynler).
- Gençler elde etmek için çaprazlama ve mutasyon kullanarak evrimsel algoritmayı geçen yeni bireyler getirin.
- Yeni insanların bireysel uygunluklarını değerlendirin.
- En uygun olmayan popülasyonu onlarla değiştirin.
Türler
Genetik Algoritma, en popüler Uzman Danışman türü olan evrimsel bir dizidir. Soruna bir çözüm, rekombinasyon ve mutasyon (bazen bir, bazı durumlarda her ikisi de) gibi operatörler uygulanarak sayı dizileri (geleneksel olarak ikili, ancak en iyi temsiller genellikle çözülmekte olan problemde daha fazlasını yansıtanlardır) şeklinde aranır.). Bu tür Uzman Danışman genellikle optimizasyon problemlerinde kullanılır. Bunun başka bir adı fetura'dır (Latince "doğum" anlamına gelir):
- Genetik programlama. Çözümleri bilgisayar kodları olarak sunar ve uygunlukları hesaplama görevlerini gerçekleştirme yeteneklerine göre belirlenir.
- Evrimsel programlama. Evrimsel genetik algoritmaya benzer, ancak yapı sabittir ve sayısal parametreleri değişebilir.
- Programlama gen ifadesi. Bilgisayar uygulamaları geliştirir, ancak farklı boyutlardaki projelerin sabit uzunluktaki doğrusal kromozomlar üzerinde kodlandığı genotip-fenotip sistemini araştırır.
- Strateji. Çözümlerin temsili olarak gerçek sayıların vektörleriyle çalışır. Genellikle kendini uyarlayan evrimsel mutasyon oranı algoritmalarını kullanır.
- Farklı geliştirme. Vektör farklılıklarına dayalıdır ve bu nedenle öncelikle sayısal optimizasyon problemleri için uygundur.
- Nöroevrim. Evrimsel programlama ve genetik algoritmalara benzer. Ancak ikincisi, bağlantıların yapısını ve ağırlığını tanımlayan yapay sinir ağlarıdır. Genom kodlaması doğrudan veya dolaylı olabilir.
Biyolojik süreçlerle karşılaştırma
Birçok evrimsel algoritmanın olası bir sınırlaması, genotip ve fenotip arasında net bir ayrımın olmamasıdır. Doğada, döllenmiş bir yumurta olgunlaşmak için embriyogenez olarak bilinen karmaşık bir süreçten geçer. Bu dolaylı kodlamanın, genetik aramaları daha güvenilir hale getirdiği (yani, ölümcül mutasyonlara neden olma olasılığının daha düşük olduğu) ve ayrıca organizmanın gelişme yeteneğini iyileştirebileceği düşünülmektedir. Bu tür dolaylı (başka bir deyişle,üretken veya gelişimsel) kodlamalar, evrimin çevredeki düzenlilikten yararlanmasına da izin verir.
Yapay embriyogenez veya gelişim sistemlerindeki son çalışmalar bu sorunları ele almayı amaçlamaktadır. Gen ekspresyonunu programlarken, genotip-fenotip bölgesi başarılı bir şekilde araştırılır, burada birincisi sabit uzunlukta lineer multigen kromozomlarından oluşur ve ikincisi çeşitli boyut ve şekillerde birçok ekspresyon ağacı veya bilgisayar programından oluşur.
İlgili teknikler
Algoritmalar şunları içerir:
- Karınca kolonisi optimizasyonu. Böceklerin feromonlarla bağlantı kurarak besin aradığı fikrine dayanır. Öncelikle kombinatoryal optimizasyon ve grafik problemleri için uygundur.
- Kök kaydırma algoritması. Yaratıcı, bitki köklerinin doğadaki işlevinden ilham almıştır.
- Yapay arı kolonileri için algoritma. Bal arılarının davranışlarına göre. Öncelikle sayısal optimizasyon için önerilmiş ve kombinatoryal, sınırlı ve çok amaçlı problemleri çözmek için genişletilmiştir. Arı algoritması, böceklerin yiyecek arama davranışına dayanmaktadır. Yönlendirme ve çizelgeleme gibi birçok uygulamada uygulanmıştır.
- Parçacık sürüsü optimizasyonu - hayvan sürüsü davranışı fikirlerine dayalı. Ayrıca sayısal işlem görevleri için de uygundur.
Diğer popüler metasezgisel yöntemler
- Av arama. Örneğin kurtlar gibi belirli hayvanların grup halinde yakalanmasına dayalı bir yöntem.avı kuşatmak için görevlerini dağıtır. Evrimsel algoritmanın üyelerinin her biri bir şekilde diğerleriyle ilişkilidir. Bu özellikle lider için geçerlidir. Bu, bir kombinatoryal süreç yöntemi olarak uyarlanmış sürekli bir optimizasyon yöntemidir.
- Ölçümlere göre arama yapın. Doğa temelli metasezgisel yöntemlerden farklı olarak, uyarlamalı süreç algoritması metaforu ana prensibi olarak kullanmaz. Bunun yerine, her yinelemede arama boyutu oranı parametresinin güncellenmesine dayanan basit bir performans odaklı yöntem kullanır. Firefly algoritması, ateşböceklerinin yanıp sönen ışıklarıyla birbirlerini nasıl çektiklerinden ilham almıştır. Bu, özellikle çok modlu optimizasyon için kullanışlıdır.
- Uyum arayın. Müzisyenlerin davranış fikirlerine dayanmaktadır. Bu durumda, kombinatoryal optimizasyon için gidilecek yol evrimsel algoritmalardır.
- Gauss uyarlaması. Bilgi teorisine dayalıdır. Performansı ve ortalama kullanılabilirliği en üst düzeye çıkarmak için kullanılır. Bu durumda evrimsel algoritmalara bir örnek: termodinamikte entropi ve bilgi teorisi.
Memetik
Richard Dawkins'in mem fikrine dayanan melez bir yöntem. Genellikle, yerel iyileştirmeler gerçekleştirebilen bireysel öğrenme prosedürleriyle birleştirilmiş popülasyona dayalı bir algoritma şeklini alır. Soruna özel bilginin kullanımını vurgular ve ayrıntılı ve küresel aramaları sinerjik bir şekilde düzenlemeye çalışır.
Evrimselalgoritmalar, klasik NP-zor problemler ve kapsamlı bir şekilde işlenmesi çok uzun sürecek herhangi bir şey gibi polinom zamanında kolayca çözülemeyen problemlere sezgisel bir yaklaşımdır. Bağımsız olarak kullanıldıklarında genellikle kombinatoryal problemler için kullanılırlar. Bununla birlikte, genetik algoritmalar genellikle diğer yöntemlerle birlikte kullanılır ve birlikte çalışmak için birden çok optimal başlangıç noktası bulmanın hızlı bir yolu olarak işlev görür.
Evrimsel algoritmanın (danışman olarak bilinir) önermesi, doğal seçilim sürecine aşina olduğunuz için oldukça basittir. Dört ana adım içerir:
- başlatma;
- seçim;
- genetik operatörler;
- son.
Bu adımların her biri kabaca doğal seçilimin belirli bir yönüne karşılık gelir ve bu algoritma kategorisini modülerleştirmenin kolay yollarını sağlar. Basitçe söylemek gerekirse, EA'da en uygun üyeler hayatta kalacak ve çoğalacak, uygun olmayan üyeler ölecek ve gelecek neslin gen havuzuna katkıda bulunmayacak.
Başlatma
Algoritmayı başlatmak için önce bir dizi çözüm oluşturmalısınız. Popülasyon, genellikle üyeler olarak adlandırılan, rastgele sayıda olası sorun ifadesini içerecektir. Genellikle rasgele (görevin kısıtlamaları dahilinde) veya bazı ön bilgiler biliniyorsa, ideal olarak kabul edilen şey etrafında geçici olarak oluşturulurlar. Popülasyonun geniş bir çözüm yelpazesini kapsaması önemlidir,çünkü esasen bir gen havuzudur. Bu nedenle, bir kişi bir algoritma içinde birçok farklı olasılığı keşfetmek istiyorsa, birçok farklı gene sahip olmaya çalışmalıdır.
Seçim
Nüfus oluşturulduktan sonra, üyeleri şimdi uygunluk fonksiyonuna göre değerlendirilmelidir. Uygunluk işlevi, bir üyenin özelliklerini alır ve üyenin ne kadar uygun olduğunun sayısal bir temsilini verir. Bunları oluşturmak genellikle çok zor olabilir. Verileri doğru bir şekilde temsil eden iyi bir sistem bulmak önemlidir. Bu soruna çok özel. Şimdi tüm katılımcıların uygunluğunu hesaplamak ve en iyi üyelerden bazılarını seçmek gerekiyor.
Çoklu amaç fonksiyonları
EA'lar da bu sistemleri kullanacak şekilde genişletilebilir. Bu, süreci biraz karmaşıklaştırır, çünkü bir optimal noktayı belirlemek yerine, bunları kullanırken bir set elde edilir. Çözüm kümesine Pareto sınırı denir ve hiçbirinin diğerine baskın olmaması anlamında eşit derecede uygun öğeler içerir.
Genetik operatörler
Bu adım iki alt adım içerir: çaprazlama ve mutasyon. En iyi terimleri seçtikten sonra (genellikle ilk 2, ancak bu sayı değişebilir), şimdi algoritmada yeni nesli oluşturmak için kullanılıyor. Seçilen ebeveynlerin özelliklerini uygulayarak, niteliklerin bir karışımı olan yeni çocuklar yaratılır. Bu, verilerin türüne bağlı olarak genellikle zor olabilir, ancak genellikle kombinatoryal problemlerdegeçerli kombinasyonları karıştırmak ve çıktısını almak oldukça mümkündür.
Artık yeni genetik materyali nesle sokmak gerekiyor. Bu önemli adım atılmazsa, bilim adamı çok hızlı bir şekilde yerel uç noktalara saplanacak ve optimal sonuçları alamayacak. Bu adım bir mutasyondur ve oldukça basit bir şekilde, çocukların küçük bir bölümünü, ağırlıklı olarak ebeveynlerin genlerinin alt kümelerini yansıtmayacak şekilde değiştirerek yapılır. Mutasyon genellikle olasılıksal olarak gerçekleşir, çünkü bir çocuğun mutasyona uğrama olasılığı ve bunun ciddiyeti dağılımla belirlenir.
Sonlandırma
Sonunda, algoritma bitmeli. Bu genellikle iki durumda olur: ya bir maksimum yürütme süresine ulaştı ya da bir performans eşiğine ulaştı. Bu noktada nihai çözüm seçilir ve döndürülür.
Evrimsel algoritma örneği
Şimdi, bu sürecin sonucunu göstermek için danışmanı iş başında görmeniz gerekir. Bunu yapmak için, birkaç nesil dinozorun yürümeyi (yavaş yavaş toprağa hakim olmayı), vücutlarının yapısını optimize etmeyi ve kas gücünü kullanmayı nasıl öğrendiğini hatırlayabiliriz. İlk nesil sürüngenler yürüyemese de danışman onları zaman içinde mutasyon ve çaprazlama yoluyla evrimleşerek yürüyebilecek bir forma dönüştürebildi.
Bu algoritmalar modern dünyada giderek daha alakalı hale geliyor, çünkü bunlara dayalı çözümler dijital pazarlama, finans ve finans gibi sektörlerde giderek daha fazla kullanılıyor.sağlık.
EA'lar nerede kullanılır?
Daha geniş anlamda, evrimsel algoritmalar görüntü işleme, araç yönlendirme, mobil iletişim optimizasyonu, yazılım geliştirme ve hatta yapay sinir ağı eğitimi gibi çok çeşitli uygulamalarda kullanılmaktadır. Bu araçlar, Google Haritalar ve hatta The Sims gibi oyunlar da dahil olmak üzere insanların günlük olarak kullandığı birçok uygulama ve web sitesinin merkezinde yer alır. Ek olarak, tıp alanı, kanser tedavisine ilişkin klinik kararların alınmasına yardımcı olmak için EA'yı kullanır. Aslında, evrimsel algoritmalar o kadar sağlamdır ki neredeyse tüm optimizasyon problemlerini çözmek için kullanılabilirler.
Moore Yasası
EO'nun artan yaygınlığı iki ana faktör tarafından yönlendiriliyor: mevcut bilgi işlem gücü ve büyük veri kümelerinin birikimi. İlki, esasen bir bilgisayardaki bilgi işlem gücünün miktarının yaklaşık olarak her iki yılda bir ikiye katlandığını belirten Moore Yasası ile tanımlanabilir. Bu öngörü onlarca yıldır geçerliliğini koruyor. İkinci faktör, kurumların trendleri analiz etmelerine ve ürünleri optimize etmelerine olanak tanıyan inanılmaz derecede büyük miktarda veri toplamasına olanak tanıyan teknolojiye artan bağımlılıkla ilgilidir.
Evrimsel algoritmalar pazarlamacılara nasıl yardımcı olabilir?
Piyasa koşulları hızla değişiyor ve çok rekabetçi. Bu, pazarlama yöneticilerini daha iyi karar vermek için rekabet etmeye zorladı. Mevcut artışbilgi işlem gücü, çalışanları problem çözmek için EA'yı kullanmaya yöneltti.
Dönüşüm optimizasyonu
Ana hedeflerden biri siteye gelen ziyaretçi oranını artırmaktır. Bu sorun, pazarlamacının istediğini yapan kullanıcı sayısını optimize etmeye dayanır. Örneğin, bir şirket dizüstü bilgisayar satıyorsa ideal olan, ürünü satın alan site ziyaretçilerinin sayısını artırmaktır. Dönüşüm oranı optimizasyonunun özü budur.
Şaşırtıcı derecede önemli yönlerden biri, kullanıcı arayüzü seçimidir. Web tasarımı çok kullanıcı dostu değilse, ürünü bir nedenden dolayı satın almayanlar vardır. Bu durumda amaç, dönüşüm sağlamayan kullanıcıların sayısını az altmak ve bu da toplam kârı artırmaktır.