Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
Loading in …5
×

# Diferansiyel gelişim algoritması

320 views

Published on

Optimizasyon Teknikleri

http://muhammedsoner.com.tr

Published in: Engineering
• Full Name
Comment goes here.

Are you sure you want to Yes No
Your message goes here
• Be the first to comment

### Diferansiyel gelişim algoritması

1. 1. OPTİMİZASYON TEKNİKLERİ PROJESİ 2016-2017 BAHAR DÖNEMİ DİFERANSİYEL GELİŞİM ALGORİTMASI 13541510 Muhammed SÖNER
2. 2. 1 İçindekiler 1.Giriş........................................................................................................................................... 2 1.1.Tarih................................................................................................................................... 2 1.2.Diferansiyel Gelişim Algoritma Yapısı .................................................................................... 2 1.3 Kullanılan Alanlar................................................................................................................. 2 1.4Özellikleri............................................................................................................................. 3 2.Algoritma................................................................................................................................... 3 2.1 Kısaltmalar.......................................................................................................................... 3 2.2 DGA Adımları....................................................................................................................... 4 2.3 Algoritma Yapısı Uygulama................................................................................................... 6 3.Gezgin Satıcı Uygulaması ............................................................................................................ 9 3.1 İNCELEME...........................................................................................................................10 3.2 BAŞLATMA İŞLEMİ...............................................................................................................11 3.3 MUTASYON İŞLEMİ .............................................................................................................12 3.4 ÇAPRAZLAMA İŞLEMİ ..........................................................................................................13 3.5 SEÇME İŞLEMİ.....................................................................................................................14 3.6 OPTİMİZASYON TABLOLARININ KIYASLAMASI.......................................................................16 5. Labaratuvar Uygulaması............................................................................................................17 6. Sonuç...................................................................................................................................18
3. 3. 2 1.Giriş 1.1.Tarih Price ve Storn tarafından1995 yılında geliştirilmiş,özellikle sürekliverilerinsözkonusuolduğu problemlerde etkinsonuçlarverebilen,isleyişve operatörleri itibariylegenetikalgoritmayadayanan populasyontemelli sezgisel optimizasyontekniğidir. 1.2.Diferansiyel Gelişim Algoritma Yapısı Klasikikili GA’danfarklıolarakdeğişkenlergerçekdeğerleriyletemsil edilmektedir.GA’dada gerçek değerlerle kodlamakullanılmaktadır.AncakPrice ve Storn genetikoperatörlerdekibirtakım değişikliklerle,gerçekdeğerlerle kodlamanınkullanıldığıproblemlerinçözümperformansını arttırmaya çalışmışlardır. GA’ daki çaprazlama,mutasyonve seçimoperatörleriDGA’dada kullanılmaktadır.Farklıolarakher bir operatörtümpopulasyonasıraylauygulanmamaktadır.Kromozomlartektekele alınmakta, rasgele seçilendiğerüçkromozomdakullanılarakyeni birbireyelde edilmektedir.Buişlemler sırasında mutasyonve çaprazlamaoperatörleri kullanılmışolmaktadır.Mevcutkromozomlaelde edilenyenikromozomunuygunluklarıkarsılaştırılarakuygunluğudahaiyi olan,yeni bireyolarakbir sonraki populasyonaaktarılmaktadır.Böylelikle seçimoperatörüde kullanılmışolmaktadır. DGA’ nın diğersezgisellereönemli birüstünlüğüde kolaycakodlanabilmesidir.Diğeralgoritmalariçin binlerle ifade edilensatırdanoluşankodlarsözkonusuikenDGA içinyaklaşık20 satırlık kodyeterli olmaktadır. 1.3. Kullanılan Alanlar  Ağ Topolojileri  Sinyal Kestirme  KontrolsüzSınıflandırma
4. 4. 3 1.4.Özellikleri  Hızlı  Basit  Kolaycakullanılabilirve değiştirilebilir  Etkili global optimizasyonkabiliyetli  Doğal olarak paralel  Kayannokta formatınabağlı hassasiyetsınırlamalı  Hesaplamamaliyetidüşük(matrisçarpımıve sıralama yok)  Olasılıkdağılımlımutasyonyok  Tamsayı, ayrık ve karışık parametre optimizasyonunakolaycauyarlanabilir  Amaç ya da sınırlama fonk.türevlerineihtiyaçduymaz  Düz yüzeylerde çalışabilir  Gürültülüve zamanabağlı amaç fonk.içinkullanılabilir  Tekbir koşmadaçoklu(alternatif)çözümlerüretebilir  Özellikle doğrusal olmayansınırlamalıopt.problemlerindeetkilidir. 2.Algoritma 2.1 Kısaltmalar
5. 5. 4 2.2 DGA Adımları Algoritma: Adım1(Başlatma): Hedef seçimi yapılıp random olarak 2 değer ve random olarak mutasyona uğrayacak seçilir. NP adet (3’ten büyük olmalı) D boyutlu kromozomdan meydana gelen başlangıç populasyonunun üretimi aşağıdaki gibidir: Adım 2(Mutasyon): • Mutasyon,kromozomungenleriüzerinde rasgele değişiklikleryapmaktır.Budeğişiklikler sayesinde kromozomununtemsil ettiği çözümnoktası,çözümuzayındahareketetmektedir. Mutasyonunhedefine ulaşabilmesi için,doğruyönde doğrumiktardahareketisağlayacak değişikliklerinbelirlenmesigerekmektedir. • DGA’damutasyonatabi tutulacakolankromozomdışında ve birbirlerindenfarklıolanüç kromozomseçilir(r1,2,3).İlkikisininfarkıalınırve F parametresiyleçarpılır.F genellikle 0-2 arasında değerleralmaktadır.Ağırlıklandırılmışfarkkromozomuile üçüncükromozom toplanır.
6. 6. 5 Adım3(Çaprazlama): Çaprazlama,iki kromozomun(çözümün) birbirleri arasındagenalışverişindebulunupiki yeni kromozomoluşturmasıdır. Elde edilenfarkkromozomuve xi,G kromozomukullanılarakyenideneme kromozomu(ui,G+1) üretilir. Deneme kromozomunagenlerCRolasılıklafarkkromozomundan1-CRolasılıklamevcut kromozomdanseçilir. j = jrand koşulu,enaz birtane geninüretilenyenikromozomdanalınmasını garanti etmekiçinkullanılmaktadır. Adım4(Seçim): Seçimoperatörüile mevcut jenerasyonve üretilenyenikromozomlardeğerlendirilerekyeni jenerasyonoluşturulur.Kromozomlarınyeni jenerasyondayeralmaolasılıklarıuygunluklarına bağlıdır. DGA’da karsılaştırma birebiryapıldığındanseçimiçinkarmaşıkprosedürüolanseçim operatörlerineihtiyaçduyulmamaktadır.Karşılaştırılankromozomlardanuygunluğuyüksekolan kromozomyeni jenerasyonunbireyiolarakatanmaktadır.
7. 7. 6 Adım5(Sonlandırma): DöngüG=Gmax olanakadar devamettirilmektedir.Gmax olduğundamevcuteniyi bireyçözümdür. Algoritmanındurdurulmasıkriteri olarak,populasyondakieniyi ve enkötüuygunlukdeğerleri arasındaki farkın çok küçükbirrakama ulaşmasıolarak da belirlenebilmektedir. 2.3 AlgoritmaYapısı Uygulama Adım 1: Hedef Kromozom1 olarakseçilprandom olarakkromozom2 ve kromozom4 seçildi. Mutasyonauğrayacak kromozom6 seçildi.Hedef kromozomdışındadiğerkromozomlarrandom olarakseçilmiştir. Adım 2: Rastgele seçilen2kromozomarasında farkvektörüuygulanır.Ve farkvektöründensonra belirtilenfonksiyonileişlemekoyulur.Budurumdansonraağırlaştırılmış farkvektörüelde edilir.
8. 8. 7 Adım 3: Ağırlaştırılmış farkvektörüile mutasyonauğrayacakkromozomtoplanırve farkvektörüelde edilmişolur. Adım 4: Toplamvektörüile hedef kromozom arasındarandomolarakçaprazlamaişlemi gerçekleştirilir.
9. 9. 8 Adım 5: Adım 4 te bulunanyeni kromozomile hedef kromozom randomkarşılaştırılıpyeni seçimelde edilir.
10. 10. 9 3.Gezgin Satıcı Uygulaması Elazığ, İzmir, Ankara, İstanbul, Diyarbakır, Trabzon, Mersin, Erzurum, Kars, Edirne şehirlerinin tümüne bir kere uğranılacaktır. Aşağıda standart bir rotada başlangıç şehrinin değiştirilerek farklı sonuçlara varılmasıyla ilgili olarak sayısal değerler çıkarılmıştır. Toplam maliyetler rota standarda yakın bir yapı teşkil etmesine rağmen ciddi sayılabilecek değişikler göstermiştir. Öyle ki başlangıç şehrinin İstanbul olmasıyla Diyarbakır olması Toplam maliyeti 1000 km’ye yakın bir fark olacak düzeyde değiştirmiştir. Sayısal Değerlerve ToplamMaliyetleraşağıdaki tablodagörülmektedir. Tablodaki sayısal değerlere 4adımdanoluşanDiferansiyel GelişimAlgoritmasıuygulanılacaktır. Algoritmayıtekrarhatırlamagerekirse yeni birtablooluşturmakiçinbazıbilgilergerekmektedir.
11. 11. 10 Bilinmesi gerekenler:  1 SütunHedef SütunOlacaktır.  2 SütunRastgele Seçilecektir.  1 SütunMutasyonİçinSeçilecektir.  PopilasyonBoyutu[N]  ÖlçeklemeFaktörü[F] AlgoritmikAkış İşlemakışı:  Popülasyonboyutu(N)=10olduğuiçin10 sütunudoldurmakiçin10 kere hedef sütun birbirlerindenfarklıolacakşekilde algoritmauygulanılacaktır.Böylece yenioluşacakolan tablodaki 10 sütundadolacakve toplammaliyetlerkıyaslanabilirhale gelecektir.  F=0.7 şeklindeşeçilecektir. Dikkat Edilecekler:  Her döngüde seçilecekolanhedef sütun2rastgele sütunve mutasyonsütunubirbirlerinden farklıolmalıdır.  F sabiti 0-2 aralığında olmalıdır. 5.Bölümde yeralanmatlabkodlarıçalıştırıldığında tüm satırları doldurulmuşolarakgelenyeni bir mesafelermatrisi(tablosu)olduğugörülmektedir. 3.1 İNCELEME NOT:Bu inceleme 10 kere gerçekleşen algoritmanın uygulanma tekrarının sadece 10.tekrarını ele alacaktır.  10.SütunuHedef  2. ve 4. SütunuRastgele Seçilen Sütunlar  7.SüyunuMutasyonUygulanılacakOlanSütunOlarakSeçilmiştir F=0.7’dir ve Tüm sütunlarbirbirlerindenfarklıdır.  Şartlar sağlanmaktadır.
12. 12. 11 Uygulanılacak Adımlar BAŞLATMA Adım1:Hedef,Rastgele ve Mutasyon Sütunlarıbirbirlerinden farklı olacak şekilde seçilecektir. MUTASYON Adım2:Rastgele sütunları birbirlerinden çıkarılarak fark vektörü adlı yeni bir sütun oluşturulacaktır. Adım3:Fark vektörü sütunu 0.7 olan ölçekleme sabiti(F) sabitle çarpılalar ağırlaştırılmış fark vektörü sutünu oluşturulacaktır. Adım4:Ağırlaştırılmış fark vektörü sütunu ile Mutasyon sütunu toplanılarak gürültü sütunu oluşturulacaktır. ÇAPRAZLAMA Adım5:Oluşan Gürültü Sütünu ile Hedef Sütun Değerleri arasında çaprazlama işlemi yapılarak(kibu aynısatırlardan ikisinden birinin aktarılmasıolarak yorumlanmaktır.) ortaya bir deneme vektörü çıkarılacaktır. SEÇME Adım6:Deneme vektöründekitüm değerler toplanılarak bir deneme vektöründemaliyet satırı oluşturulmalıdır. Adım7:Deneme vektöründebulunan maliyet satırıyla Hedef vektördebulunan maliyet satırı kıyaslanılmalıdır veküçük olan maliyete sahip olan vektör yeni tabloda hedef vektörün bulunduğu alana konumlandırılmalıdır. 3.2 BAŞLATMA İŞLEMİ Adım1:Hedef,Rastgele ve Mutasyon Sütunlarıbirbirlerinden farklı olacak şekilde seçilecektir.
13. 13. 12 3.3 MUTASYON İŞLEMİ Adım2:Rastgele sütunları birbirlerinden çıkarılarak fark vektörü adlı yeni bir sütun oluşturulacaktır. Adım3:Fark vektörü sütunu 0.7 olan ölçekleme sabiti(F) sabitle çarpılalar ağırlaştırılmış fark vektörü sutünu oluşturulacaktır.
14. 14. 13 Adım4:Ağırlaştırılmış fark vektörü sütunu ile Mutasyon sütunu toplanılarak gürültü sütunu oluşturulacaktır. 3.4 ÇAPRAZLAMA İŞLEMİ Adım5:Oluşan Gürültü Sütünu ile Hedef Sütun Değerleri arasında çaprazlama işlemi yapılarak(kibu aynısatırlardan ikisinden birinin aktarılmasıolarak yorumlanmaktır.) ortaya bir deneme vektörü çıkarılacaktır.
15. 15. 14 3.5 SEÇME İŞLEMİ Adım6:Deneme vektöründekitüm değerler toplanılarak bir deneme vektöründemaliyet satırı oluşturulmalıdır. Adım7:Deneme vektöründebulunan maliyet satırıyla Hedef vektördebulunan maliyet satırıkıyaslanılmalıdır ve küçük olan maliyete sahip olan vektör yeni tabloda hedef vektörün bulunduğu alana konumlandırılmalıdır.
16. 16. 15
17. 17. 16 3.6 OPTİMİZASYON TABLOLARININ KIYASLAMASI Değerler: Maliyetler:
18. 18. 17 5. Labaratuvar Uygulaması MatlabKodları: clc,close all,clear all; mesafeler=[... 8165 8133 8157 8483 7380 8170 7537 8165 7963 7929;... 0 1.277 755 1.199 150 498 566 319 522 1.436;... 1277 0 1277 1277 1277 1277 1277 1277 1277 1277; ... 784 752 0 784 784 784 784 784 784 784;... 450 450 471 0 450 450 450 450 450 450;... 1.447 1.447 1.447 1.016 0 1.447 1.447 1.447 1.447 1.447;... 551 551 551 551 1.063 0 551 551 551 551;... 542 542 542 542 542 600 0 542 542 542;... 919 919 919 919 919 919 267 0 919 919;... 523 523 523 523 523 523 523 1.123 0 523;... 1.672 1.672 1.672 1.672 1.672 1.672 1.672 1.672 1.471 0]; Famac_fonksiyon=0.7; [A B]= size(mesafeler); yeni_mesafeler=zeros(A,B); for i=1:B %HEDEF SEÇME B=1 kontr=0; while( kontr==0) kontr=1; rastgele_1=uint8(ceil(rand()*10)); rastgele_2=uint8(ceil(rand()*10)); mutasyon=uint8(ceil(rand()*10)); aynimi_kontrol=[i rastgele_1 rastgele_2 mutasyon]; for say=1:4 for say2=1:4 if(say~=say2) if(aynimi_kontrol(say)==aynimi_kontrol(say2)) kontr=0; end end end end end for frktut=2:11 fark_vektor(frktut-1,1)= mesafeler(frktut,rastgele_1)- mesafeler( frktut,rastgele_2); agirlastirilmis_fark_vektor(frktut-1,1)= fark_vektor(frktut- 1,1)*Famac_fonksiyon; gurultu_vektor(frktut- 1,1)=uint32(agirlastirilmis_fark_vektor(frktut- 1,1)+mesafeler(frktut,mutasyon) ); end for frktut=1:11 if( frktut==1) deneme_vektor(frktut,1)=1; else rastg=rand(); if (rastg>0.5) deneme_vektor(frktut,1)=mesafeler(frktut,i); else deneme_vektor(frktut,1)=gurultu_vektor(frktut-1,1) ; end
19. 19. 18 end end deneme_vektor(1,1)= uint32(sum(deneme_vektor(2:11,1))); if(deneme_vektor(1,1)<mesafeler(1,i)) yeni_mesafeler(:,i)=deneme_vektor(:,1); else yeni_mesafeler(:,i)=mesafeler(:,i); end end 6. Sonuç Literatürde DGA ile ilgiliyapılmışolançalışmalarincelendiğinde,özellikle sürekliparametrelerinsöz konusuolduğuproblemlerde oldukçabaşarılısonuçlarverdiği görülmüştür.Çalışmamızdada, aşamaları ve çalışma prensipleri anlatılanDGA literatürdenalınanfarklıdoğrusal olmayan optimizasyonproblemlerine uygulanmışve farklıgenetikalgoritmatiplerinegöre çokdaha iyi sonuçlarürettiği görülmüştür.Özellikleparametrelerindoğruseçilmesiyle performansınoldukçaiyi bir seviyeye gelebileceğianlaşılmaktadır.Parametre seçiminde literatürdenözellikleuygulama alanına yönelikçalışmalardanfaydalanmak,ayrıcatestproblemleri üzerindedenemeleryaparakkarar vermekgerekmektedir.Karşılaştırmayapılırkenilgilikaynaklardaki performanskriterleri kullanılmıştır. Böyleliklefarklıparametreleraçısındanbirkarşılaştırmayapılmasınaimkanverildiği düşünülmektedir. Bu çalışmada,dilimizdehakkındaoldukçasınırlıçalışmanınolduğuDGA tanıtılmaya,temel prensipleri açıklanmayaçalışılmıştır. GA gibi basitbiryapıya sahipolanDGA, optimizasyonproblemlerine kolaylıklauygulanabilir.Esnekyapısısayesinde farklıproblemlere adaptasyonudakolayolmaktadır. Başlangıç çözümündenbağımsızlık,paralel aramave bununsonucuolarakhızlıbir şekildeçözüme ulaşmaDGA nın GA ile ortakavantajlarındandır.DGA ayrıca sürekli değerlerinkullanıldığı optimizasyonproblemlerine GA’ dandahaiyi sonuçlarüretmektedir.Yapılmışve halendevam etmekte olançalışmalardaDGA’nınfarklı tipteki verilere (kesikli,sıralısayı sistemi gibi) de uygulanabileceğini ve başarılıolabileceğinigöstermektedir.Parametre seçimi ve kısıtlıproblemlerin kısıtsıza dönüştürülmesinde zorluklariçermesine rağmenDGA doğrusal olmayanoptimizasyon problemlerinde oldukçabaşarılıdır.Performanslarıhergeçengünartan bilgisayarlar,iterasyonların rahatlıklaarttırılmasına; böylelikle elde edilebilecekeniyi sonuçlarahızlıbirşekilde ulaşmayaimkan tanımaktadır.