Diferansiyel Evrim Algoritması nedir? - Yazilim.net
Yazılım İşletim Sistemleri Donanım İnternet Mobil Uygulamalar Oyun Genel Kariyer Sosyal Medya İnceleme IoT Yapay Zeka Ticaret Tasarım Robotik Kodlama Güvenlik
Oturum Aç Facebook GitHub veya Giriş Yap
Diferansiyel Evrim Algoritması nedir?
3 ay önce , Okuma süresi 3 dakika.
ayse.yilmaz Junior Developer Takip Et
Algortimanın adımlarına ve içeriklerine geçmeden önce yazımda bahsedeceğim algoritmanın çeşitlerinden biridir.
Diferansiyel evrim algoritmasını multi-objective şeklinde belirtilen, grafik boyama yöntemi ile olan kısmını açıklayacağım. Ama hepsinin detaylarına girmeden önce, diferansiyel evrim nedir, neye hizmet eder açıklayalım. Temel olarak genetik algoritmaya oldukça benzemektedir. Zaten genetik algoritmanın bir bölümüdür.
DE, ana kişiyi ve aynı popülasyondaki diğer birkaç kişiyi birleştirerek yeni aday çözümler üreten basit bir evrimsel algoritmadır. Bir aday, ebeveyni ancak daha iyi olması durumunda değiştirir. Bu, genellikle geleneksel EA'lardan daha iyi performans gösteren başka bir açgözlü seçim şemasıdır. Bazen, yeni oluşturulan aday değişken alanın sınırlarının dışında kalmaktadır. Bu gibi durumlarda, birçok kısıtlama yönetimi yaklaşımı mümkündür
Bu problemi, yalnızca sınır kısıtlamaları ihlal eden aday değerini, en yakın sınır değeriyle değiştirerek çözüyoruz. Bu şekilde, aday mümkün olduğu kadar az değişiklik yaparak uygulanabilir hale gelir. Ayrıca, bu yaklaşım yeni bir adayın inşasını gerektirmez.
Bu algoritma için adımlar,
Bu kısım da datasetimizi uygun koşullara göre okumamız gerekmektedir. Diferensiyel evrim algortiması, multi-object ve aynı zaman da grafik boyama tekniğini içermektedir. Bu durum bizim için kontrol etmemiz gereken bir çok durumun olduğunu göstermektedir. Ilk aşama olarak data’yı okuturken birbiri ile bağlantısı olan düğümleri bağlantıları göstermemiz gerekmektedir. Diferansiyel algoritmanın kontrol etmeye çalıştığı her bir bağlantının doğru bir şekilde olması hatanın en az olmasıdır.
Burada rastgele bir sayıda popülasyon değeri belirliyoruz. Popülasyonun içerisinde bulunan değerler rastgele olarak belirlenmektedir.
F1 ve F2 değerleri
Bizim için iki boyutlu array’in içinde bulunması gereken iki adet değer vardır. Bunlar f1 ve f2 değerleri diyorum. F1 bizim için hatalı kolların sayısını tutarken f2 de hatalı olan kollarda ki değerleri tutar. Burada kolların değerleri rastgele olarak verilebilir. Peki burada bahsedilen hata nedir? Popülasyonun içerisinde birbiri ile bağlantısı olan düğümlerin grafik renklendirmesinde bulunan değerin az olmasını istemekteyiz. Bu değerler bunları tutmaktadır.
Dominant Olanı Bulmak
En iyi değerlerden hangisinin diğerinden daha iyi olduğunu bulmak için önce bulduğumuz fitness değerlerini kullanırız. Amaç, burada bulduğumuz değerleri geliştirmek için yeni bireylerimizi kullanmaktır.
Bu değerleri bulduğumuzda, onları arşiv adı verilen bir bölümde tutarız, böylece son adımda, yeni bireyler eskilere hükmederken, arşivimizi günceller ve daha düzenli bir nüfus ortamı yaratırlar.
Bir x ve y ekseni göz önüne alındığında, aşağıdaki değerler ne kadar düşük olursa, en iyi sonuçlarımız o kadar iyi olur. Başka bir deyişle, uygunluk hesaplamasında f1 değerinde bulduğumuz değerler iyidir, ancak f2 değerine verdiğimiz kolların değerinin değeri bizim için iyi bir sonuç değildir. Daha iyi bir sonuç bulmak için, hem f1 hem de f2 değerlerini birbirleriyle karşılaştırırken kullanırız.
Bu sayede arşivin değerlerine göre iyi ve kötü değerleri göz önünde bulunduruyoruz. Bu değerler rastgele seçilen popülasyonumuzdan rastgele seçilir. Bu sonuçlara göre uygunluk değerlerimiz elde edildi.
Üç adet rastgele değer belirmek
Diğer evrimsel algoritmalardan farklı olarak, bu adım tüm popülasyon içinde gezinmek yerine, rastgele seçilen 3 değerin üzerinde yeni bireyler yaratmayı amaçlamaktadır. Onları R1 R2 ve R3 olarak adlandırılır.
Bu adımda, süreç birkaç adımda ilerler. Elimizde bir çaprazlama yüzdesi belirleriz. Örneğim 0.7 gibi. Bu geçiş sağlanırsa, çaprazlamaya izin verilir.
Crossover ayrıca, iki yeni kişiyi kurduğumuzdan sonra R2 ve R3 arasında önceden belirlenen ilkidir.
Daha önce yaptığımız 2 yeni bireyden en iyisini yaptığımız gibi, aralarındaki uygunluk değerlerine bakarak en iyisini belirliyoruz. Ve bunu C'ye atıyoruz. Bu sefer R1 ile birlikte yarattığımız en iyi C değerine geri dönüyoruz.
En iyi kişiyi seçmek için aynı işlemi tekrarlayın. Ve C'ye ekleyin. O zaman popülasyonda bulduğumuz bir çözümle birlikte geçiyoruz. En iyisini C'ye ekliyoruz. Bu süreci toplumlar için tekrarlıyoruz. C i 'de bulunan değerden daha iyiyse, C i değerini de ekleriz.
Bu, bu algoritmadaki son adımımız. Bu çözümü bütün bir popülasyon değeri kadar uygulamamız gerekmektedir. Hepsi için uygulandıktan sonra baskın olan değerin içinden rastgele popülasyonda bir gen değiştirilir.
Bu oldukça küçük bir adım olsa da baştan aynı işlemler uygulandığına popülasyonun iyileşmesini sağlamaktadır.
Yorum yapabilmeniz için oturum açmanız gerekmektedir.
Deno nedir? ve Node.js'nin yerini gerçekten alabilir mi? @regex - 3 ay önce Karantina günlerinde can sıkıntınızı giderecek işe yarayan 10 web sitesi. @root - 3 ay önce Yazilim.net'ten Merhabalar! @root - 3 ay önce
Paylaş-Eğlen-Bilgilen Yazılım dünyasına dair veya eğlenceli her türlü bilgiyi buradan istediğin zaman paylaşabilirsin.
Windows 10 2004 Sorunlarının Çoğu Çözüldü Yeni Bir Yama Geldi @Aleyna - 10 saat önce Google Haritalar Kullanıcılarına Foursquare Benzeyen Sosyal Platform Haline Geliyor. @Aleyna - 13 saat önce Tiktok'un yeni sahibi Microsoft mu Olacak ? @gambler - 1 gün önce
Kütüphane Kaynak Hazır sınıflarla dolu bir kütüphane seni bekliyor. Kütüphaneye destek olabilir veya sınırsız faydalanabilirsin.
Back End Developer - Black Out (Ofis) - İstanbul-Şişli @kariyer - 2 hafta önce Yazılıma yeni başlayacak arkadaşlar için : nereden nasıl başlamalıyım? @root - 2 ay önce Projelerimiz için Freelancer Android ve iOS Developer arıyoruz @Gazisoft - 2 ay önce
Kariyer Yap Yüzlerce şirket yazılım ihtiyaçları için senin gibilerini arıyor. Hemen profilini geliştir ve iş bulmanı kolaylaştır.
İstegelsin Entegrasyonu İle Morhipo Market'i Açtı @Aleyna - 1 hafta önce Alışveriş Odaklı Bir Uygulama Instagram @Aleyna - 2 hafta önce @ -