SlideShare a Scribd company logo
1 of 89
Download to read offline
Genetik Algoritma & Programlama
Dr. Hakan ERDUN
DOĞAL DÜNYA
İnsan vücudu trilyonlarca hücreden oluşur.
Her hücre kromozom içeren bir çekirdeğe
sahiptir. Kromozomların sayısı canlı
türlerinde değişiklik gösterir. İnsanın
kromozom sayısı 46'dır.
Her kromozom, birbirine sıkı sıkı sarılmış
DNA (DeoksiriboNükleik Asit) ipliklerin-
den oluşur. Genler, göz ve saç rengi gibi
spesifik özellikleri belirleyen DNA
parçalarıdır. Bir insanın 20.000’den fazla
geni vardır. Salzberg ve ekibinin
çalışmalarına göre insandaki toplam gen
sayısı en az 46.831 dir.
DNA:
Görevleri
• Hücredeki yaşamsal olayları yöneten moleküldür.
• Canlının kalıtsal yapısını belirler. Canlıya ait kalıtsal özellikleri ortaya çıkarır.
• Canlıların üremesinde ve kalıtım olayında görev alır.
DNA'nın Eşlenmesi:
• DNA eşlenmesi hücre bölünmesi öncesinde gerçekleşir. Eşlenmenin amacı; taşıdığı kalıtsal bilgilerin yeni
oluşacak hücrelere aktarılmasını sağlamaktır.
GEN:
• Bir DNA molekülü milyonlarca nükleotitten oluşur. 1000–1500 tane nükleotit bir araya gelerek bir GEN
oluşturur.
• Genler DNA’nın görev birimleridir. Yani Genler canlılardaki saç rengi, saç şekli, göz rengi, boy uzunluğu vb
gibi kalıtsal karakterlerin oluşumunu ve bu karakterlerin kuşaktan kuşağa aktarılmasını (kalıtımı)
sağlar. İnsandaki toplam gen sayısı için bilim insanları arasında tartışma vardır. Ortalama 20.000 civarı olduğu
söylenmekle birlikte bazı bilim insanları en son 46.831 olarak açıklamışlardır.
KROMOZOM:
• DNA ve özel proteinlerin birleşmesiyle oluşan yapılara kromozom denir. Her bir kromozomda pek çok
gen bulunur. Genlerin kuşaktan kuşağa geçişi (kalıtım), kromozomlar sayesinde gerçekleştirilir.
Her bir canlı türü kendisine özgü sayıda kromozom bulundurur. İnsanlardaki kromozom sayısı 46’dır.
MUTASYON:
• DNA’nın eşlemesi sırasında, eğer DNA’nın bir zincirinde hata varsa diğer zincir kalıp olarak kullanılarak
hata onarılabilir. Ancak karşılıklı zincirlerin ikisinde de hata varsa bu hata onarılamaz. Bu
olaya mutasyon adı verilir.
GENETİK ALGORİTMA
Genetik algoritmaların temel prensibi: Genetik ve doğal seleksiyonu bilgisayar yazılımları kullanarak taklit
etmektir.
Genetik Algoritma, doğadaki çoğalma ve seleksiyon mekanizmasını örnek alan bir stokastik arama ve
optimizasyon yöntemidir.
Genetik Algoritmalar, canlıların çoğalması sonucunda kendi özelliklerini bir sonraki nesle aktarma
yeteneklerini, güçlü olanın yaşama şansının yüksek olması ve bazı durumlarda önceden nasıl olacağı
bilinmeyen değişimlerin bir hesaplama yöntemi içerisinde bir arada kullanılması sonucunda ortaya
çıkmış bir yöntemdir.
Genetik Algoritmaların temel amacı, fazla sayıda sınırlama içeren ve karmaşık optimizasyon sorunlarının
çözümlerini bulmaktır. Önbilgi ve varsayımlar olmadan, sadece uygunluk fonksiyonu (fitness function) ile
çalışabilmektedir.
Genetik Algoritmalar, rastsal arama tekniklerini kullanarak çözüm bulmaya çalışan, parametre kodlama
esasına dayanan bir çözüm-arama tekniğidir. Bir veri grubu içinde özel bir veriyi bulmak için – diğer bir
deyişle bir çözüm grubu içinde özel bir çözümü bulmak için kullanılır.
Genetik Algoritma (GA)
• GA, sistemin parametreleri ile değil, parametre takımının kodlanmış bilgileriyle
uğraşırlar.
• GA fitness (uygunluk) fonksiyonunun türevlerini ve bir takım ek bilgileri değil,
doğrudan fitness fonksiyonunun kendisini kullanırlar.
• Bazı problemlerde sonsuz sayıda çözüm olabilir ama en uygun ve hızlı çözümü
bulmaya ihtiyacımız vardır.
• Genetik algoritmalar aramaya tek bir noktadan değil, noktalar kümesinden başlar. Bu
nedenle çoğunlukla yerel (lokal) en iyi çözümde sıkışıp kalmazlar.
• Genetik algoritmalar problemlere tek bir çözüm üretmek yerine farklı çözümlerden
oluşan bir çözüm kümesi üretir. Sonuçta bütünsel (global) çözüme ulaşma olasılığı
yükselmektedir.
• GA’da deterministlik değil rastlantısal geçiş kuralları kullanılır.
Genetik Algoritmaya Ne Zaman İhtiyaç Var ?
• Çözüm arama uzayının büyük ve karmaşık olduğu durumlarda. Örneğin çözüm için çok
fazla zaman gerektiği durumlarda…
• Mevcut bilgiyle sınırlı arama uzayında çözümün zor olduğu durumlarda…
• Problemin belirli bir matematiksel modelle ifade edilemediği durumda…
• Geleneksel optimizasyon (eniyileme) yöntemlerinden istenen sonucun alınamadığı
alanlarda etkili ve kullanışlıdır.
2222
)()1(),( 33)1(2 yxyx
eyxxexyxf 

Genetik Algoritma Özellikleri
Avantajları
– Çok amaçlı optimizasyon yöntemleri ile kullanılabilmesi
– Çok karmaşık ortamlara uyarlanabilmesi
– Kısa sürelerde iyi sonuçlar verebilmesi
Dezavantajları
– Son kullanıcının modeli anlamasının güçlüğü
– Problemi Genetik Algoritma ile çözmeye uygun hale getirmek zorluğu
– Uygunluk fonksiyonunu belirlemek zorluğu
– Çaprazlama ve Mutasyon tekniklerini belirleme zorluğu…
Genetik Algoritma Adımları
1) Başlangıç popülasyonunu rastlantısal olarak üret.
2) Popülasyon içindeki tüm kromozomların fitness (uygunluk/amaç)
fonksiyonu değerlerini hesapla. (EVALUATION)
3) Çoğalma (tekrar üreme), Çaprazlama (CROSSOVER) ve
Mutasyon (MUTATION) işlemlerini uygula. Yeni popülasyonun
kromozomlarını belirle.
4) Oluşturulan her yeni kromozomun fitness fonksiyonu değerlerini
bul.
5) Fitness fonksiyonu değerleri kötü olan kromozomları
popülasyondan çıkar.
6) 3-5 arasındaki adımlar tekrar et.
1. Başlangıç: Çözümlerin kodlanması gerçekleştirilir ve n kromozomdan oluşan rastgele (genel olarak ama zorunlu değil) bir
popülasyon oluşturulur
2. Uygunluk: Toplumdaki her x kromozomu için f(x) "fitness fonksiyonu" uygunluk değeri değerlendirilir.
3. Yeni Popülasyon : Aşağıdaki adımlar izlenerek yeni popülasyon üretilir. Başlangıç popülasyonu oluşturulmuş genetik
algoritma üç evrim operatörüyle çalışır.
Seçim: popülasyondaki kromozomların uygunluk değerlerine bağlı olarak, yeni kromozomları oluşturmak için, ebeveyn
birey seçmesi işlemidir. Popülasyondan uygunluklarına göre iki kromozom seçilir (uygunluk değeri iyi olanın seçilme
şansı daha fazladır)
Çaprazlama: ebeveyn kromozomlardaki genlerin bazılarının karşılıklı yer değiştirmesi işlemidir. Çaprazlama ile
kromozomlar yeni çocuk oluşturmak için birbirleriyle eşleştirilir. Eğer çaprazlama yapılmazsa, çocuk kromozom
anne-baba(ebeveyn) kromozomların tıpatıp aynısı olacaktır.
Mutasyon: Sürekli yeni nesil üretimi sonucunda, belli bir süre sonra nesildeki kromozomlar tekrar edebilir ve farklı
kromozom üretimi azalabilir. Bu yüzden mutasyon işlemi ile bazı genler değiştirilir.
Kabul: Çocuk kromozom, yeni popülasyona eklenir.
4. Yeni Popülasyon: Yeni popülasyon algoritmanın tekrar işlenmesinde kullanılır.
5. Iterasyon Kontrolü: Eğer bitiş durumu sağlandıysa, popülasyondaki en iyi çözüm sonuç olarak döndürülür. Iterasyona
devam edilecekse Adım 2’ye gidilir.
Genetik algoritmanın çalışması esnasında istenen çözüm bulunduğunda, GA’nın başlangıcında tanımlanan toplam
iterasyon sayısına ulaşıldığında veya uygunluk değeri sürekli olarak sabit kaldığında algoritma sonlandırılır.
Genetik Algoritma Adımları
Genetik Algoritmaların Çalışma Prensibi
Genetik Algoritmaların Çalışma Prensibi
GENETİK ALGORİTMA TERİMLERİ
Kromozom (Birey)
• Birden fazla genin bir araya gelerek oluşturduğu diziye denir.
• Kromozomlar, alternatif aday çözümlerini gösterirler.
Gen
• Kalıtsal molekülde bulunan ve organizmanın karakterlerinin tayininde rol oynayan
kalıtsal birimlere gen denir.
• Yapay Sistemlerde gen, kendi başına anlamlı bir bilgi taşıyan en küçük birim olarak
tanımlanır.
Populasyon (Nesil/Bireyler/Kromozomlar)
• Kromozomlardan (bireylerden) oluşan topluluğa denir (Anne, Baba, Dede, Nine, Çocuklar).
• Popülasyon, geçerli alternatif çözüm (beklenen kromozomlar) kümesidir.
• Başlangıç popülasyonundaki her bir kromozom, problemin olası bir çözümünü temsil eder.
• Popülasyondaki kromozom sayısı algoritma boyunca genelde sabit tutulur. Ancak
popülasyondaki kromozom sayısının sabit tutulması gerektiğiyle ilgili genel bir kural
yoktur.
• Başlangıçta belirli kriterlere göre veya rastgele kromozomlardan oluşan bir
popülasyon oluşturulur.
Populasyon (Nesil/Bireyler/Kromozomlar)
Popülasyondaki kromozom sayısı nasıl belirlenir ?
Genetik Algoritmada popülasyondaki kromozom sayısı (popülasyon büyüklüğü) ile ilgili genel bir
kural yoktur. Bununla birlikte kromozom sayısının ne olacağı problemin yapısına göre
belirlenmektedir.
 Kromozom sayısının çok fazla olması çözüme ulaşma kalitesini arttırır ancak algoritmanın
adımları daha uzun zaman alacağı için çözüme ulaşma süresi artar.
 Popülasyondaki kromozomların sayısı küçük seçildiğinde ise iterasyonlar daha hızlı olur
ancak algoritmanın yerel (lokal) optimuma takılma şansı artar.
 Popülasyondaki kromozom sayısı genellikle 100 ile 300 arasında seçilmektedir.
Populasyon (Nesil/Bireyler/Kromozomlar)
Popülasyon büyüklüğü genetik algoritmanın tüm performansını ve verimliliğini
etkiler.
 Genetik algoritmalar genellikle az sayılı popülasyonlarla çalıştıklarında iyi sonuçlar
vermemektedirler. Çünkü popülasyon yeterli örnek büyüklüğünü içermemektedir. Eğer
kromozom sayısı az olursa GA, çözüm aranan uzayın ancak bir kısmını gezebilmekte ve
çaprazlama için fazla bir seçenek bulamamaktadır.
 Büyük popülasyonların çok sayıdaki hiper-alanlardan temsiller içerme ihtimali daha
fazladır. Diğer yandan büyük popülasyonlar her nesil için daha fazla değerlendirme
yapmayı gerektirmektedir. Bu durum, GA’nın kabul edilemeyen bir sürede sonuca
ulaşmasına neden olabilir. Yapılan araştırmalar, belli bir noktadan sonra popülasyon
sayısını artırmanın bir yararı olmadığını göstermiştir.
• Gen: Canlıların karakterlerini belirleyen ve anlamlı bilgi içeren kromozom içindeki en küçük
birimlerdir.
• Kromozom (Birey): Birden fazla genin bir araya gelerek oluşturduğu diziye denir. GA’’da her
kromozom belirlenen problem için potansiyel bir çözümü temsil etmektedir. Çözüm için kullanılan
bireyler. GA’da her birey doğadakinden farklı olarak yalnızca bir kromozomdan oluşmaktadır.
• Popülasyon (Topluluk): Kromozomlardan oluşan topluluktur. GA’da olası çözümlerden oluşan
kümeye karşılık gelir. Çözüm kümesini oluşturan kromozomların tümüdür.
• Seçim (Selection) : Var olan kromozomu genetik yapısında herhangi bir değişiklik yapmadan yeni
nesle kopyalar.
• Çaprazlama (Crossover) : İki kromozomun yapılarının rastlantısal olarak birleştirilerek yeni çocuk
kromozomlar oluşturulmasıdır. İşlem, ikili dizilerin parçalarının değiş tokuşu ile gerçekleştirilir.
• Mutasyon (Mutation) : Çaprazlama ile elde edilen bir çocuk kromozomun genlerinden birinin ya
da birkaçının bilgisinin veya yerlerinin değiştirilmesiyle oluşturulur.
Terminoloji Özeti
Fitness (Uygunluk) Fonksiyonu
Kromozomlardan meydana gelen bir popülasyon oluşturulduktan sonra, popülasyondaki her
kromozomun uygunluk (fitness) değeri hesaplanır.
Bu fitness değeri, kromozomların karşılaştırılması ve iyi olanların seçimi için kullanılır.
Bu örnekte f(x1)>f(x2) (veya P(x1)>P(x2)) olduğundan x1 kromozomu, x2 kromozomundan
daha iyidir.
Fitness (Uygunluk) Fonksiyonu
Gezgin Satıcı Probleminde kullanılan Fitness fonksiyonu:
Satıcının ürünleri ilgili şehirlere en kısa mesafe kat ederek dağıtması gerekmekte. İlgili
şehirlere sıralı erişim için bir çok alternatif güzergah seçeneği vardır.
• Fitness fonksiyonu: f(x) = min(di j ) Burada di j iki şehir arasındaki mesafedir.
Bu örnekte f(x1) < f(x2) olduğundan x1 kromozomu, x2 kromozomundan daha iyidir.
Fitness (Uygunluk) Fonksiyonu
Optimizasyon karar verme ve fiziksel bir sistemin analizi konularında oldukça önemli bir
araçtır.
Bu aracın kullanılabilmesi için ilk olarak sistemin performansını sayısal olarak ölçebilen bir
uygunluk değerinin belirlenmesi gerekmektedir.
Bu uygunluk tek bir rakam ile ifade edilebilen kâr, zaman, miktar veya bunların
kombinasyonu vb. olabilmektedir. Belirlenen uygunluk fonksiyonu f(x), sistemin ‘değişken-x’
veya bilinmeyen olarak tanımlanan belirli karakteristiklerine bağımlıdır. Bu değişkenler sıklıkla
sınırlandırılmakta veya kısıtlanmaktadırlar.
BİLGİNİN (KROMOZOMLARIN) KODLANMASI
(Popülasyonun Oluşturulması)
• Kodlama, Genetik Algoritmanın çok önemli bir kısmını oluşturmaktadır.
• Probleme Genetik Algoritma uygulanmadan önce, verinin uygun şekilde kodlanması
gerekmektedir.
• Kurulan genetik modelin hızlı ve güvenilir çalışması için bu kodlamanın doğru yapılması
gerekmektedir.
Kodlama Çeşitleri :
1. İkili (binary) kodlama
2. Permütasyon kodlama
3. Değer kodlama
4. Ağaç kodlama
1) BINARY (İKİLİ) KODLAMA
Bu kodlama ilk GA uygulamalarında kullanıldığı için hala en çok kullanılan yöntemlerdir. Her
kromozom 0 ve 1’lerden oluşan BIT diziyle ifade edilir. Bu dizideki her bit, çözümün bir özelliğini
taşır. Dizinin tümü ise bir sayıya karşılık gelir. Basit, kolay ve hızlı işlemler için uygundur.
Kromozom A: 101110010110
Kromozom B: 010110100000
2) PERMÜTASYON KODLAMA
• Burada her kromozom, sayıları bir sırada temsil eden bir sayı dizisidir.
• Sıralama ve düzenleme problemlerinde kullanılır.
• Permütasyon kodlama, Gezgin Satıcı ve Çizelgeleme Problemleri için kullanışlıdır.
Kromozom A: 3 5 1 2 7 6 0 4
Kromozom B: 0 1 5 6 2 3 4 7
3) DEĞER KODLAMA
• Karmaşık verilerin kullanıldığı problemlerde gerçekleştirilir.
• Değerler; gerçek sayılar, karakterler veya nesneler olabilir.
• Bu tip kodlamada probleme özgü yeni çaprazlama ve mutasyon yöntemleri geliştirmek
gereklidir.
Kromozom A: 3.2 6.5 0.8 9.4
Kromozom B: A B C D
Kromozom C: (geri) (sağ) (ileri) (sol)
4) AĞAÇ KODLAMA
• Bu yöntem gelişen, değişen programlar veya ifadeler için kullanılır.
• Çoğunlukla ifadesel çözümler içeren problemlerde kullanılır, her kromozom bir nesnenin
ağacıdır.
• Ağaç kodlama, program geliştirmek için uygundur. Örneğin Lisp ve Prolog gibi dillerde ağaç
yapısı kullanılır.
• Örneğin her kromozom, bazı nesnelerin (örneğin fonksiyonlar veya programlama dilindeki
komutlar gibi) ağacıdır.
GENETİK ALGORİTMA PARAMETRELERİ
Genetik algoritma uygulamasının önemli bir adımı da
çeşitli parametrelerin belirlenmesidir. Parametreler
genetik algoritma performansı üzerinde çok önemli
bir etkiye sahiptir. Kontrol parametreleri olarak da
adlandırılan bu parametreler popülasyon büyüklüğü,
çaprazlama olasılığı, mutasyon olasılığı, seçim stratejisi,
fonksiyon ölçeklemesini kapsamaktadır.
Parametreler birbirlerini doğrusal olmayan biçimde
etkilediği için aynı anda optimize edilemezler.
Literatürde parametre seçimi ve adaptasyonu üzerinde
oldukça fazla sayıda çalışma yapılmış olmakla birlikte
tüm problemlerde kullanılabilecek en iyi parametreler
üzerinde bir uzlaşı söz konusu değildir.
1) Popülasyon Büyüklüğü (Kromozom Sayısı  )
Popülasyon büyüklüğü genetik algoritma kullanıcısı tarafından verilen en önemli kararlardan
biridir. Bu değer küçük olarak seçildiğinde algoritmanın yerel optimuma takılması olasılığı vardır.
Büyük bir değer ise çözüm uzayının daha iyi tarama olasılığına karşı çözüm için gerekli zaman ve
kaynakları artırmaktadır.
Popülasyon büyüklüğü diğer genetik algoritma parametrelerinden tamamen ayrı düşünülemez.
Belirlenecek büyüklük, hesaplama etkinliği, yeterli örnekleme sağlayabilme durumu,
popülasyonun çeşitliliği, çaprazlama ve seçim baskısı gibi parametrelerin dengelemesine katkı
sağlamalıdır.
Örnekte:
6 tane kromozom (Popülasyon Büyüklüğü =6)
Her kromozom 4 tane gen (w1-w4) içerir.
2) Çaprazlama Oranı/Olasılığı (Crossover Rate Pc)
Çaprazlama operatöründe temel parametre çaprazlama olasılığıdır (Pc ). GA’da Pc 0-1 arasında
değişen bir değerdir ve genellikle 0.7 olarak alınır.
Çaprazlama olasılığı, çaprazlamanın ne kadar sıklıkla yapılacağını tanımlayan bir
parametredir.
Çaprazlama olmadığı durumda çocuk kromozomu, ebeveynlerin direkt kopyası olur.
Ancak bu yeni neslin önceki ile aynı olduğu anlamına gelmez. Çaprazlamanın olduğu
durumda çocuk kromozomu, ebeveynlerin her ikisinin kromozomlarının parçalarından
oluşur. Çaprazlama, yeni kromozomların eskilerinin iyi parçalarını taşıyacağı beklentisi ile
yapılır.
Çaprazlama olasılığı eşleşme havuzuna girecek kromozomların sayısını belirler.
GA’da bu oranın çok yüksek olması durumunda iyi yapı bloklarının tek bir kromozomda
birikme olasılığı oldukça azalır. Düşük bir oran belirlenmesi durumunda ise yeterli sayıda
yeni çocuk kromozmu ortaya konulamaz.
3) Mutasyon Oranı/Olasılığı (Mutation Rate Pm)
Mutasyon tekniğindeki önemli parametre, kromozomda ne kadar bir değişiklik olacağını gösteren
mutasyon olasılığıdır (Pm ). GA’da Pm 0-1 arasında değişen bir değerdir ve orta büyüklükte bir
popülasyon için genellikle 0.001 olarak alınır.
Eğer mutasyon yok ise (Pm=0), yeni birey çaprazlamadan hemen sonra oluşturulur demektir.
Mutasyon olasılığının %100 olması ise (Pm=1), kromozomun tamamen değiştirildiği anlamına
gelir.
Mutasyonun temel amacı popülasyondaki çeşitliliği korumaktır. Mutasyon olasılığının artması
genetik aramayı raslantısal bir aramaya dönüştürür; ancak diğer taraftan bu durum kayıp genetik
materyali tekrar bulmada yardımcı olmaktadır.
Bazı çalışmalar büyük popülasyonlar için (μ>200) büyük mutasyon olasılığı (Pm>0.05)
kullanıldığında; ve benzer şekilde küçük popülasyonlar (μ<20) için ise daha küçük mutasyon
oranı (Pm<0.002) kullanıldığında performansın arttığını ortaya koymuştur. Orta büyüklükteki bir
popülasyon büyüklüğü için genellikle Pm=0.001 oranı seçilebilir.
4) Seçim Yöntemi
Eski nesli yenilemenin çeşitli yöntemleri mevcuttur.
Nesilsel (kuşaksal) stratejide, mevcut popülasyondaki kromozomlar tamamen çocuklar ile yer
değiştirir ancak popülasyonun en iyi kromozomu da yenilendiğinden dolayı bir sonraki nesle
aktarılamaz.
İyi niteliklerin bir sonraki nesle aktarımı için bu strateji en uygun (elitist) stratejisiyle beraber
kullanılmaktadır. En uygun stratejisinde, popülasyondaki en iyi kromozomlar hiçbir zaman
yenilenmemektedir. Sabit durum (steady state) stratejisinde ise, her kuşakta yalnızca birkaç
kromozom yenilenmektedir. Genellikle, yeni kromozomlar popülasyona katıldığında en kötü
kromozomlar yenilenir.
Ref: Emel ve Taşkın (2002), s136
5) Yakınsama/Sonlandırma (Termination) Kriterleri
Genetik Algoritma kaç adım çalıştırılmalı?
Lokal bir optimuma ulaşıldığında basit yakın komşuluk arama metotlarından farklı olarak genetik
algoritma prensip olarak sonsuza kadar çalışır. Bunun için pratikte bir sonlandırmam kriteri
gerekmektedir. Genetik Algoritma, sonlandırma kriterlerine ulaşıncaya kadar birkaç jenerasyon
(nesil) boyunca çalıştırılır. GA’nın kaç adım çalıştırılacağı konusunda yaklaşımlar şu şekildedir:
Sonlandırma Kriterleri
1. Maksimum Nesil: Tanımlanan sayıda nesil/jenerasyon üretildiği durumda genetik algoritma
durdurulur. (Stop after a fixed number of generations.)
2. Maksimum Süre: önceden tanımlanan süre dolduğunda genetik proses sonlandırılır. Nesil
sayısı kriteri ile birlikte kullanıldığında önceden tanımlanan nesil sayısına süreden önce
ulaşılırsa algoritma durur. (Stop after a fixed amount of time)
3. Değişmeyen Toplam Uygunluk Değeri: Bu sonlandırma şemasında, popülasyondaki
uygunluğun toplamının popülasyon kaydındaki (record) yakınsama değerine eşit veya daha
düşükse aramanın, yakınsamayı sağladığı düşünülür. Bu durum hemen hemen tüm bireylerin
belli bir uygunluk aralığında olmasını garanti eder. Ancak bu yakınlaşma kriterini en zayıf gen
değişimi ile birlikte düşünmek daha iyi sonuç verir. Aksi durumda popülasyondaki yeni birkaç
düşük uygunluklu birey toplam uygunluğu bozabilir. Yakınsama değeri belirlenirken
popülasyon büyüklüğü dikkate alınmalıdır.(Stop when a chromosome reaches a specified
fitness level.)
4. Minumum Tolerans Sağlandığında: Belli bir tolerans (hata oranı) dahilinde, bir
kromozomun problemin çözümünde başarı elde etmesine kadar çalışır. (Stop when a
chromosome succeeds in solving the problem, within a specified tolerance).
5. Sezgisel Karar: Kişisel bakış veya sezgisel duruma göre jenerasyon istenilen anda
durdurulabilir. (Human judgment can also be used in some more subjective cases.)
7. Diğer Sonlandırma Teknikleri:
 En İyi Birey: Bu kriter popülasyondaki en düşük uygunluğu yakınsama değerinin altına düştüğünde arama
durdurulur. Bu metot, en azından bir adet iyi çözümü garanti ederek aramayı daha hızlı sonlandırır.
 En Kötü Birey: En kötü birey kriteri kullanıldığında popülasyondaki en az uygun bireyin yakınsama kriterinden
daha düşük bir uygunluğa sahip olduğu durumda arama sonlandırılır. Bu durumda tüm popülasyonun belli bir
minimum standardın üstünde olması sağlanır. Ancak en iyi bireyin en kötüden önemli ölçüde farklı olmayabilir. Bu
durumda, aşılacak belli bir maksimuma göre tanımlanan yüksek bir yakınsama değeri hiçbir zaman
sağlanamayabilir.
Bu kriterlerden bir kaçı aynı anda kullanılabilir.
GENETİK ALGORİTMA
OPERATÖRLERİ
Genetik algoritmalarda bir sonraki nesli elde etmek için 3 ana genetik
operatör kullanılır:
A. SEÇİM (Yeniden Üretme-Reproduction),
B. CROSSOVER (Çaprazlama)
C. MUTATION (Mutasyon)
Genetik Algoritma uygulamalarında yapılan işlemlerin %90-95’i seçim
ve çaprazlama operatörleri ile ilişkilidir. Mutasyon için genellikle düşük
bir olasılık değeri tercih edilmektedir
A) SEÇİM (SELECTION) - Kromozom Seçimi
Genetik Algoritma uygulamalarında daha yüksek uygunluğa sahip bireylerin daha fazla çoğalacağı
temeline dayalı doğal seleksiyon fikri yeniden üretme veya seleksiyon/seçim olarak adlandırılır.
Popülasyondaki bütün kromozomların uygunluk değerleri hesaplandıktan sonra, bunlardan bazıları
yeni nesiller üretmek için seçilirler.
Amaç: seçilen uygunluk fonksiyonuna ve seçim yöntemine göre elimizdeki popülasyondan yeni bir
neslin bireylerini oluşturmak için (kromozomları) seçmektir.
 Uygunluk değeri yüksek olan kromozomun, yeni nesle aktarılma ihtimali daha yüksektir.
Seçim işlemi için bazı yöntemler:
1. Rulet tekeri yöntemi
2. Sıralı seçim yöntemi
3. Sabit durum yöntemi
4. Turnuva yöntemi
SEÇKİNLİK (Elitism)
Seçkinlik, GA algoritmalarında bir popülasyonun maksimum uygunluk değerinin bir diğerine
geçildiğinde azalmamasını temin eden özelliktir.
Çaprazlama ve mutasyonla yeni popülasyon üretildiği zaman, en iyi kromozom kaybedilecektir.
Bunu önlemek için önce popülasyondaki en iyi kromozom (veya birkaç en iyi kromozom) yeni
popülasyona kopyalanır (koruma altına alınmış olur). Geri kalanı diğer yöntemlerle devam ettirilir.
Seçkinlik, bulunan en iyi sonucun kaybını önlediğinden GA’nın performansını oldukça hızlı bir
şekilde arttırır.
1) Rulet Tekeri/Çemberi ile Seçim
En basit seçim yöntemi olarak bilinmektedir.
Bu yöntemde seçilme işlemi bireylerin (kromozomların)
uygunluk değerine göre yapılmaktadır. Fakat uygunluk
değeri en büyük olanın seçileceği garanti edilmez, yalnız
seçilme şansı daha fazla olacaktır. Bu yöntemde bütün
uygunluk değerleri bir tabloya yazılır ve toplanır. Uygunluk
değeri toplama bölünerek bireylerin [0,1] aralığında seçilme
olasılıkları belirlenir. Rulet tekerleği seçimi çözümlerin
uygunluk değerlerinin pozitif olması gerekir.
Diğer bir uygulanışı :
Tüm bireyler birbirine bitişik bir şekilde düz bir çizgi üzerine
dizilirler. Her bir ferde ilişkin bölümün uzunluğu, onun
uygunluk değeri kadar olur. Rasgele sayı üretilir ve rasgele
sayı hangi bölüm içerisine gelirse, o bölümün ait olduğu fert
seçilir. İşlem ulaşılacak popülasyonun gerekli adedi elde
edilene kadar devam eder.
Uygunluk fonksiyonu: f(x)=x²
• Kromozom 1: 1101 x = 13 x² = 169
• Kromozom 2: 0100 x = 4 x² = 16
• Kromozom 3: 1011 x = 11 x² = 121
• Kromozom 4: 1000 x = 8 x² = 64
 f(x) = 169+16+121+64 = 370
• Kromozom 1: 169/370=0,456 (%46)
• Kromozom 2: 16/370 =0,043 (%4)
• Kromozom 3: 121/370=0,327 (%33)
• Kromozom 4: 64/370 =0,172 (%17)
%46
%17
%33
%4
Eğer uygunluk değerleri arasında büyük farklar varsa çözümün aranmasında sorunlar ortaya çıkar.
Örneğin, eğer en iyi kromozomun uygunluğu diğer tüm kromozomların toplamının %90’ı ise
diğer kromozomların seçilme şansı çok azalacaktır. Bunu önlemek için Sıralı Seçim
kullanılabilir.
2) SIRALI (RANK) SEÇİM
• Rulet Tekeri yönteminde, eğer uygunluk değerleri arasında büyük farklar varsa çözümün
aranmasında sorunlar ortaya çıkar. Örneğin, eğer en iyi kromozomun uygunluğu diğer tüm
kromozomların toplamının %90’ı ise diğer kromozomların seçilme şansı çok azalacaktır. Bunu
önlemek için Sıralı Seçim kullanılabilir.
• Ayrıca sıralama, uygunluk fonksiyonun tam olarak tanımlanamadığı problemler için de doğal bir
seçenek olabilir. Bu gibi problemlerde tüm dikkati uygunluk fonksiyonunu alacağı değere atfetmek
mantıklı değildir çünkü bazı durumlarda bu durum mümkün de olmayabilir.
• Sıralı seçimde popülasyondaki kromozomlar da en kötü uyumlulukta olan kromozoma 1 değeri,
sonrakine 2 değeri, … ve sonuncu olan en iyi kromozoma ise N değeri verilir.
• Uygunluklar arasındaki mutlak farklılıklar dikkate alınmadığı için sıralama seçiminde uygunlukları
derecelendirme gereksinimi de bulunmamaktadır. Böylelikle bütün kromozomlara aynı oranda
seçilme şansı verilir.
• Fakat bu yöntemde en iyi kromozomlar, diğerlerinden daha farklı olmadığından çözüme yaklaşma
daha yavaş olacaktır. Çeşitliliği korur ve daha başarılı arama sağlar. Uygulamada potansiyel aileler
seçilir ve hangi ailenin bir sonraki nesil seçileceğine yönelik bir turnuva düzenlenir.
Farklı şekillerde yapılabilir olmakla birlikte aşağıdaki 2 yöntem yaygın olarak kullanılmaktadır:
1. Popülasyondan birey çiftlerini rastgele seçilir. 0-1 arasında R random sayısı üretilir. Eğer R<r
ise ilk birey Parent (aile) olarak seçilir. Eğer R  r ise ikinci birey seçilir. Bu ikinci ailenin seçimi
için de aynen tekrarlanır. Burada r değeri bu metot için tanımlanmış 0-1 arasında bir eşik
parametresidir.
2. Popülasyondan rastgele iki farklı birey seçilir. Daha yüksek değerlendirme değeri olan birey
parent (aile) için seçilir. İkinci aileyi bulmak için de bu adım tekrarlanur.
3) SABİT DURUM/KARARLI HAL SEÇİMİ (YERİNE GEÇME)
• Bu seçimin ana düşüncesi, kromozomların büyük kısmının bir sonraki nesilde hayatta kalmak
zorunda olmasıdır.
• Her yeni nesilde en yüksek uygunluk değerine sahip kromozomlar, yeni çocukları oluşturmak
için seçilir.
• Her nesilde yeni bir kromozom (çocuk) oluşturmak için birkaç tane uygunluk değeri iyi olan
kromozom seçilir. Düşük uygunluk değerine sahip kromozomlar kaldırılarak yerlerine bu yeni
oluşturulan çocuk kromozomlar konur.
• Geri kalan kromozomlar değiştirilmeden yeni nesle aktarılır.
• Bu yöntemde alt popülasyon oluşturulduktan sonra fitness değerleri hesaplanır, en kötü
kromozomlar yerlerini başlangıç popülasyonundaki en iyi kromozomlara bırakır.
4) TURNUVA YÖNTEMİ
Genetik algoritma arama performansının en iyi olması için seçim baskısı ve popülasyonun
çeşitliliğinin ayarlanabildiği bir seçim yöntemi ideal olandır Turnuva seçimi, seçim baskısı
açısından sıralama seçimi ile benzerdir ancak ona göre hesaplaması daha etkin ve paralel
uygulamalar için daha uygundur.
Rulet tekerleri seçiminden farklı olarak turnuva seçimi N birey arasında bir turnuva düzenleyerek
seçim baskısı sağlar. Kazanan birey uygunluk değerine göre belirlenir. En yüksek uygunluk
değerine sahip birey genellikle deterministik olarak seçilir. Turnuva, eşleşme havuzu yeni nesil
oluşturmak için doluncaya kadar tekrarlanır. Genelde turnuva iki birey arasında düzenlenir ancak
keyfi olarak seçilen bir sayıdaki birey arasında da uygulanabilir. Turnuva gruplardan bağımsız
olarak düzenlenir ancak grup sayısı arttıkça seçim baskısı da artacaktır. Uygulamada 6-10 grup
önerilmektedir. Turnuva kazananlardan oluşan eşleşme havuzu yüksek bir ortalama popülasyon
uygunluğuna sahiptir. Bu uygunluk farkı seçim baskısı sağlar ve bu durum da, genetik algoritmayı
başarılı genlerin uygunluğunu artırmaya zorlar.
5) BOLTZMANN (Simulated Annealing) YÖNTEMİ
Boltzmann seçimi Benzetilmiş Tavlama veya Benzetimli Tavlama algoritması prensiplerini
kullanarak ve termodinamik olarak seçim baskısını kontrol eden seçim mekanizmasıdır. Tavlama
benzetimi algoritması bir yerel arama algoritmasıdır ve pek çok değişkene sahip fonksiyonların
en büyük veya en küçük değerlerinin bulunması ve özellikle pek çok yerel en küçük değere sahip
doğrusal olmayan fonksiyonların en küçük değerlerinin bulunması için tasarlanmıştır. Boltzmann
seçiminde önceden belirlenmiş tabloya göre sürekli değişen sıcaklık seçim oranını kontrol eder.
Sıcaklık düşük seçim baskısı anlamına gelecek biçimde yüksek olarak tutulur. Daha sonra seçim
baskısı kademeli olarak yükseltilir ve böylelikle uygun bir seviyedeki çeşitlilik korunurken genetik
algoritmanın arama uzayını en iyi kısma yakın olacak biçimde küçültmesi sağlanır.
Boltzmann seçim mekanizmasının temelinde mevcut i çözümü ve alternatif j çözümü arasındaki
rekabet yatar. Burada i’nin kazanma olasılığı aşağıdaki formülle hesaplanmaktadır:
Burada T sıcaklığı, fi ve fj mevcut ve alternatif çözüm maliyet, uygunluk fonksiyon değeri veya
uygunluk değerini göstermektedir.
Formülde kullanılan T ve k hesabı :
T=T0 (1-α)k
k=(1+100*g/G)
Burada
g : mevcut jenerasyon sayısı
G : maksimum g değeri.
α : [0-1] aralığında seçilen bir sayı.
T0 : [5-100] aralığında seçilen bir sayı
 T, 0 değerine ulaştığında global çözüme ulaşılmış olmaktadır.
Seçim mekanizmasının seçimi diğer yönlerinden bağımsız olarak yapılamaz. Değerlendirme
fonksiyonu çok karmaşık ise en fazla artırımsal modeller problemli olacaktır. Karmaşıklık
durumunda seçim baskısı azaltılmalıdır. Karmaşıklık yoksa artırımsal modeller yeni iyi bireyler
önemli artışlar sağlayabilir. Bireylerin silinmesi de dikkatli olunmasını gerektirmektedir. En kötü
bireylerin ortadan kaldırılması büyüme oranını artırmaktadır ancak bu durum daha düşük kontrol
demektir.
B) ÇAPRAZLAMA (CROSSOVER)
Çaprazlama : 2 kromozomun (çözümün) birbirleri arasında gen alışverişinde bulunup 2 yeni
kromozom oluşturmasıdır. Diğer bir deyişle, anne ve babadaki (Parents) bazı genlerin yer
değiştirmesi ile yeni çocukların oluşturulma işlemidir.
• Genetik Algoritmadaki en önemli parametrelerden bir tanesidir.
• Binary kodlanmış değişkenlerin yaptıkları çoğalma faaliyetinin "kromozomların çaprazla-
masına" benzemesinden dolayı böyle adlandırılmaktadır.
• Eğer kodlamada gerçek değerler kullanılıyorsa, klasik çaprazlama yöntemi yerine daha farklı
yöntemler kullanılmaktadır.
• Seçim yöntemi ile yapay seçim sonucunda elde edilen yeni popülasyonlardan rastsal olarak
2 kromozom seçilir ve karşılıklı çaprazlama işlemine tâbi tutulur.
1) RASTGELE SEÇİM
Bu teknikte gelecek nesli oluşturmak için aile popülasyondan rastgele seçilerek belirlenir. Bunun
için programlama dillerinin hepsinde mevcut olan random() vb fonksiyon kullanılmaktadır. Basit
GA algoritmalarında sıklıkla kullanılmaktadır.
2) BİR NOKTADAN (Binary Kodlu Bilgide)
Genler belli bir sıradan sonra çaprazlama gen değiş tokuşu yaparlar. Örneğin 5.bit baz alınarak
çaprazlama:
Bu bitler
sabit kalır
Bu bitler
değiş tokuş edilir
ÇAPRAZLAMA SONUCU
5
3) N-NOKTADAN (Binary Kodlu Bilgide)
Bu bitler
sabit kalır
Bu bitler değiş
tokuş edilir
Bu bitler
sabit kalır
Bu bitler değiş
tokuş edilir
ÇAPRAZLAMA SONUCU
5 8 14 18
4) UNIFORM ÇAPRAZLAMA (Binary Kodlu Bilgide)
Bitler rastgele biçimde değiş tokuş edilerek yeni kromozomlar oluşturulur. Her bir gen için
çaprazlama, kromozomlarla aynı uzunlukta ve rastgele oluşturulan "ikili çaprazlama maskesine"
göre yapılır. Yani her bir Parent (ebeveyn) çifti için yeni bir çaprazlama maskesi rastgele
oluşturulur.
İkili
çaprazlama
maskesi
5) TEK ARİTMETİK ÇAPRAZLAMA (Değer Kodlu)
Patents : {x1,…,xn} ve {y1,…,yn} ve 1 k  n olmak üzere:
• k rastgele seçilir
• Yeni kromozomlar (çocuklar) için k.bilgi (geni) için yeni değer elde edilir:
1.çocuk kromozomu için ( =0.3) kromozomlar :
2.çocuk kromozomu için ( =0.3) kromozomlar:
k=8 ve =0.5 alındığında aşağıdaki gibi iki farklı çocuk kromozomları elde edilir:
𝒌 𝒌
𝒌 𝒌
𝒌 𝒌
6) BASİT ARİTMETİK ÇAPRAZLAMA (Değer Kodlu)
𝒌 𝒌 𝐧 𝒏
Örnek k=7 ve  = 0.5 için : k.genden n.gene kadar aritmetik çaprazlama işlemi uygulanır:
7) BÜTÜN ARİTMETİK ÇAPRAZLAMA (Değer Kodlu)
Kromozomun tüm genleri aritmetik işlemden geçirilir:
yaxa  )1( = 0.5 için :
8) SIRALI ÇAPRAZLAMA (Permütasyon Kod)
Önce 1. kromozom için: Çaprazlama aralığı seçilir. Bu aralıktaki veriler çocuk kromozomunda
aynı aralığa kopyalanır.
Geriye kalan veriler çapraz sırayla 1, 9, 3, 8, 2 gibi kopyalanır.
Aynı işlem 2. kromozom için tekrarlanır.
9) PARÇALI EŞLEŞMELİ ÇAPRAZLAMA (Permütasyon Kod)
Adım 1
Adım 2
10) ÇEVRİM ÇAPRAZLAMA (Permütasyon Kod)
Adım 1: Çevrimleri bul
Adım 2: Değişimli çevrimleri çocuğa kopyala
NOT: Bu seçim yöntemlerinin dışında birçok yöntem de mevcuttur.
C) MUTASYON (MUTATION)
• Doğada genlerde mutasyon oranı 0.001-0.01 arasındadır. GA’da genlerde mutasyon olasılığı genelde (0.01
gibi) düşük tutulmaktadır. Uygulamalarda alınan en büyük oran değeri 10% dur. Bu nedenle mutasyon etkileri
kromozomlarda az görülmektedir.
• Yeniden ve sürekli yeni nesil üretimi sonucunda, belli bir süre sonra nesildeki kromozomlar birbirlerini tekrar
edebilir. Böylece farklı kromozom üretimi durur veya azalır. İşte bu nedenle nesildeki kromozom çeşitliliğini
artırmak için kromozomlardan bazıları mutasyona tabi tutulur.
• Mutasyon yapılmasının bir başka amacı da, popülasyondaki çeşitliliğin azalmamasını sağlamaktır.
• Mutasyon, popülasyonu lokal minimuma takılmaktan uzak tutar. Tesadüfî işlemlerle kaybedilen genetik bilgiler
gibi kayıp genetik materyalin geri kazanılmasında rol alır. Aynı zamanda genetik materyalin geri dönülemez
kaybına karşı da bir sigorta işlevi görür.
• Mutasyon sırasında kromozomdaki gen sayısı değişmez.
• GA’da Mutasyon Oranı Pm, mutasyon olasılığını gösteren orandır. Amaç mevcut kromozomların genlerinin bir
ya da birkaçını değiştirerek yeni kromozomlar elde etmektir.
1) Binary Kodda Mutasyon
2) Değer Kodda Mutasyon
ll xxxxxx  ...,,...,, 11
 iiii UBLBxx ,, 
3) Permütasyon Kodda Mutasyon
Araya İlave (Insert) mutasyon
Yer değiştirme mutasyon
Ters mutasyon
Karışık mutasyon
GENETİK ALGORİTMA
EK BİLGİLER
GA’NIN PERFORMANSINI ETKİLEYEN NEDENLER
GA’nın isleyişini etkileyen faktör parametrelerdir. Genel olarak bu parametreler:
 Popülasyon büyüklüğü,
 Mutasyon tipi ve olasılığı,
 Çaprazlama tipi ve olasılığı,
 Nesil (kromozom) sayısı
 Seçim operatörünün tipidir.
Literatürde, bu parametrelerin uygun değerlerini bulmak için yapılmış teorik veya uygulamaya
yönelik pek çok çalışma vardır.
1) Kodlama Biçiminin Etkisi
GA’nın performansını belirleyen önemli bir faktördür, fakat kodlama biçimi probleme ve
programa bağlı olduğu için bütün problemlerde geçerli olan uygun kodlama biçimini
söylemek mümkün değildir.
Michalewicz (1996) belirli bir problem tipi için gerçekleştirdiği çalışmada, gerçel sayı
gösteriminin daha çabuk sonuca götürdüğünü belirtmiştir.
GA lokal en iyi içindeki çözümü bulmak yerine yüksek oranda çoklu arama yeteneği sunarlar. GA
uygunluk fonksiyonunun hesaplanması dışında hiçbir karmaşık matematiksel formül içermez ve
genetik algoritmalar eniyileme için arama yönünde özel bir kurala sahip değildir.
2) Parametre Kodlamasının Etkisi
GA’da en önemli noktalardan biride kodlama işleminin nasıl yapılacağıdır. Parametrenin doğrusal
ya da logaritmik olarak kodlanması GA’nın performansında oldukça önemlidir.
Kodlamanın binary düzen, kayan nokta aritmetiği veya gray kodu ile gösterimi kodlama
gösteriminde en yaygın yöntemlerdir.
3) Popülasyon Büyüklüğünün Etkisi
Popülasyonun büyüklüğü problemin çözüm süresinde etkilidir.
Popülasyonda bulunan bireylerin sayısı gereğinden fazla ise çözüm süresi uzar, bireylerin sayısı
gereğinden az ise popülasyon istenen çözüme ulaşamayabilir.
Problemin yapısına göre popülasyondaki birey sayısı, GA’yı hazırlayan uzman tarafından iyi
belirlenmesi gerekir. Grefensette, GA için en uygun popülasyon büyüklüğü 10-160 birey
arasında olması gerektiğini savunmuştur.
Bunların yanında uygunluk fonksiyonunun ölçeklenmesinde rank, oransal, doğrusal ve üstel
ölçekleme gibi yöntemler mevcuttur. Problemin yapısına göre uygun ölçek seçmek, genetik
algoritmanın etkin işlemesi açısından önemlidir.
4) Kromozom Sayısının Etkisi
Kromozomun sayısı arttıkça çalışma zamanı da artmakta, sayıyı azaltma işleminde ise de
kromozomların çeşitli olması engellenmektedir.
GA’ların ana fikrinde, kromozoma sahip bireylerin karakterize ettiği toplumu yenilemesi fikri
yatar. Kromozomları, l uzunluğundaki sembollerin bir zincir oluşturması sonucu oluşan yapı ile
ifade etmek mümkündür. Oluşturulmuş olan her bir kromozom, optimizasyon probleminde
uygun bir çözüm olarak düşünülür. Sembollerin her biri gen olarak adlandırılmaktadır ve gen
hangi parametreyi ifade edecekse sıra ile dizilmesi sonucu kromozomlar oluşturulmuş olur.
GA ve optimizasyon probleminin arasında bulunan bağlantıyı uygunluk fonksiyonu (F) sağlar. F
fonksiyonu kromozomlar için kullanılır ve onları gerçel sayılara dönüştürmek için kullanılır. F
değerinin büyük olması sonucu kromozomun temsil ettiği çözüm diğer kromozomlara göre
daha iyidir.
5) Mutasyon Oranının Etkisi
Kromozomların yapısı birbirlerine benzer olmaya başladığı zaman hala çözüm değerlerinin
uzağındalarsa, bu durumu mutasyon işlemi ile atlatmak mümkündür.
GA’nın çıkmaza girdiği yerden kurtulmak için tek yol olarak da söylenebilir. Ancak yüksek bir
değer vermek GA’yı kararlı bir noktaya ulaşmasını zorlaştıracaktır.
6) Çaprazlama Biçiminin Etkisi
Normal olarak çaprazlama tek nokta baz alınarak gerçekleştirilir, fakat yapılan araştırmalar bazı
problemlerde çok noktalı çaprazlamanın daha fazla yararlı olduğunu göstermiştir.
7) Başarı Değerlendirme Yönteminin Etkisi
Her iterasyonun sonunda düzgün yazılmayan bir değerlendirme işlevi çalışma zamanını
uzatmanın yanında çözüme hiçbir zaman erişememeye de neden olabilir.
Ref: Elen, A., Avuçlu, E., GELECEĞİN DÜNYASINDA BİLİMSEL VE MESLEKİ ÇALIŞMALAR (2019), Ekin Basım Dağıtım.
GA’nın Geleneksel Optimizasyon
Yöntemleri ile Karşılaştırılması
Genetik algoritmaların temel prensibi basittir: Genetik ve doğal seleksiyonu bilgisayar yazılımları kullanarak
taklit etmek. Problem parametreleri de DNA’daki gibi bir doğrusal veri yapısı, bir vektör veya bir dizi gibi en
doğal biçimi ile kodlanır.
Genetik algoritmalar geleneksel optimizasyon tekniklerinden aşağıdaki yönlerden farklıdır:
 Genetik algoritmalar problem parametrelerinin kendilerinden ziyade kodlanmış versiyonları ile çalışırlar.
 Hemen tüm geleneksel optimizasyon teknikleri tek bir noktadan hareket ederek araştırır ancak Genetik
algoritmalar ise tek bir çözüm yerine çözümlerin popülasyonunu kullanır. Bu durum GA’nın global
optimuma ulaşma olasılığını artırır ve yerel sabit bir noktaya takılmasından kaçınılmasını sağlar.
 Genetik algoritmalar değerlendirme için türevlerden ziyade uygunluk fonksiyonunu kullanır. Bu
fonksiyonlar da sürekli yada kesikli her tür optimizasyon problemine uygulanabilir.
 Geleneksel yöntemler sürekli optimizasyonlara deterministik dönüşüm uygularken genetik algoritmalar
olasılıklı dönüşüm uygular.
Genetik Algoritmaların geleneksel yaklaşımların başarısız olduğu durumlarda çarpıcı
sonuçlar ortaya koymasını sağlayan diğer bazı farkları ve avantajları aşağıdaki gibi
sıralanabilir :
 Sürekli ve kesikli değişkenleri optimize edebilir.
 Türev alma işlemine gereksinim duymaz.
 Çözüm alanında daha geniş örneklemeyi eş zamanlı araştırır. Global optimumu daha kolay belirler.
Klasik yöntemlerde ise bu durum tek nokta ve yön olarak karşımıza çıkmaktadır.
 Çok sayıda değişken ile çalışabilir.
 Farklı problemlere kolaylıkla uyarlanabilir.
 Paralel bilgisayarlarla hesaplamalar için oldukça uygundur.
 Oldukça karmaşık çözüm yüzeylerinde yerel minimumlara takılmadan değişkenleri optimize
edebilir.
 Sadece tek bir çözüm yerine optimum değişkenlerin bir listesini verebilir.
 Kodlanmış değişkenler ile optimizasyon sağlayabilmek için değişkenleri kodlayabilir.
 Nümerik olarak oluşturulan verilerle, deneysel verilerle ve analitik fonksiyonlar ile çalışabilir.
 Kendi iç kuralları ile çalıştığı için problemin kurallarını bilmesi gerekmez.
 Problemin doğrusallaştırılmasını gerektirmemektedir.
Bununla birlikte Genetik algoritmaların her tür problemin çözümünde en iyi metot olduğu da
söylenemez. Yalnızca birkaç değişkeni olan düzgün bir analitik fonksiyon geleneksel yöntemlerle
kolayca çözülebilir. Bu gibi problemlerde Genetik Algoritma başlangıç popülasyonu için
maliyetleri hesaplarken geleneksel yöntemler hesaplamayı tamamlamış olabilir.
Genetik Algoritmaların sınırlılıkları ve dezavantajları ise şu şekilde sıralanabilir:
 Uygunluk fonksiyonunu tanımlama problemi
 Vaktinden önce yakınsama olabilmektedir.
 Popülasyon büyüklüğü, mutasyon oranı, çaprazlama oranı, seçim metodu gibi çeşitli
parametrelerin belirlenmesi problem oluşturabilir.
 Probleme özgü bilgiler kolaylıkla dahil edilemez
 Lokal optimumları tanımlamada iyi bir metot değildir.
 İyi bir sonlandırıcı değildir. Harici yardım gerekebilir.
 Kesin global optimumu bulmada sorun yaşayabilir.
 Çok sayıda uygunluk fonksiyonu değerlendirmesine gereksinim duyar.
GA’nın Uygulama Alanları
Genetik Algoritmaların mühendislik problemlerinde optimizasyon amaçlı olarak kullanılmaya
başlanmıştır. Özellikle mekanizma tasarımında çok iyi sonuçlar ortaya konulmuştur. Bunların yanında
otomatik programlama, öğrenme kabiliyetli makinalar, ekonomi, ekoloji, planlama, üretim hattı
yerleşimi gibi çok farklı alanlarda da başarılı uygulamalar yapılmaktadır. Ayrıca dijital resim işleme
tekniğinde de çokça uygulama alanı bulmuştur. Bu problemlerin hemen hemen hepsi çok geniş bir
çözüm havzasının taranmasını gerektirmektedir. Bu çözüm havzasının geleneksel yöntemlerle
taranması çok uzun sürmekte, genetik algoritmayla ise kısa bir sürede kabul edilebilir bir sonuç
alınabilmektedir
Genetik Algoritmanın Kısa Tarihçesi
Genetik algoritmaların temel ilkeleri ilk kez Michigan Üniversitesi'nde John Holland tarafından ortaya
atılmıştır.
Holland 1975 yılında yaptığı çalışmaları “Adaptation in Natural and Artificial Systems” adlı kitabında bir araya
getirmiştir. Çalışmalarının sonucunu açıkladığını kitabının 1975’te yayınlanmasından sonra geliştirdiği
yöntemin adı Genetik Algoritmalar (kısaca GA ) olarak yerleşmiştir.
1985 yılında Holland’ın doktora öğrencisi David E.Goldberg 1989 yılında inşaat konusunda bir klasik sayılan
kitabını yayınlayana dek genetik algoritmaların pek pratik yararı olmayan bir araştırma konusu olduğu
düşünülüyordu. Kitabında Genetik Algoritmalara dayalı tam 83 uygulamaya yer vererek GA’nın bir anda
tanınmasını sağlamış ve çeşitli konularda pratik kullanılabilir olduğunu göstermiştir.
Sezgisel bir teknik olarak Genetik algoritmaların Yöneylem Araştırması problemlerinde kullanımı
her geçen gün artmaktadır. Genetik algoritmalar temelde iki farklı amaç için kullanılmaktadır:
1. Bir sistem performansını optimize etmek için parametre seçimidir. Bu gibi sistemler
muhtemelen kısıtlar ile birlikte büyük ölçüde sistemi kuran ya da işletenlerin belirlediği karar
parametrelerine bağlıdır. Genetik algoritma uygulamalarının çoğunluğu sistemleri optimize
etmek veya en azından onları optimuma yakınlaştırmaktır.
2. Sayısal modelleri test etmek ve uygunluğunu sağlamaktır. Literatürde karşımıza daha az
çıkan bu uygulamalarda öncelikle açıklayıcı ya da tanımlayıcı bir model kurulur, veri toplanır
ve model test edilir. Çelişkiler tespit edildiğinde model modifiye edilir. Performans
optimizasyonunu hedefleyen algoritmaların aksine burada model ile veriler arasındaki
uyumsuzluğun minimizasyonu hedeflenir.
Uygulama alanlarının bazıları aşağıdaki gibi sıralanabilir :
 Kombinatoryal Optimizasyon (Combinatorial Optimization) problemleri: Gezgin satıcı problemi,
araç rotalama problemi, Çinli postacı problemi, iş atölyesi çizelgeleme problemi, atama problemi,
yerleşim tasarımı problemi ve sırt çantası problemi vb gibi problem uygulamaları
 Bilgisayar ağları tasarımı
 Nonlineer dinamik sistem tahmini, veri analizleri
 Robot yörüngesi planlama
 Görüntü işleme
 LISP programlarının geliştirilmesi
 Stratejik planlama
 Protein moleküllerinin şeklinin bulunması
 Gaz boru hattı uygulamaları
 İmalat planlama, yerleşim planlama ve kaynak ataması
 Mekanik öğrenme,
 Yapay sinir ağlarının tasarımı,
 Sinyal işleme, filtre dizaynı
 Portföy optimizasyonu,
 Hisse senedi fiyatlarındaki değişim kalıplarını tahmini
 Montaj hattı dengeleme problemleri
 Taşıma problemi
Genetic Algorithm - Walkers
https://kottke.org/plus/misc/images/genetic-walker.gif
Genetic Algorithm – The Largest Circle
http://petehare.com/writing-a-basic-genetic-algorithm-in-obj-c/
Genetic Algorithm – Traveling Salesman Problem
https://cdn.analyticsvidhya.com/wp-content/uploads/2017/07/31104045/TravelingSalesmanUSCapitals2.gif
Genetik Algoritma
Sınıflandırılması/Yaklaşımları/Türleri
Genetik algoritmalar problem çözümünde adım adım (step by step) bir prosedür ortaya koyar.
Etkin bir arama tekniği olarak kendini ispatladığı için birçok işletme, fen bilimleri, mühendislik
vb konularında problem çözümünde kullanılmıştır. Tüm bu özellikleri araştırmacıların genetik
algoritmalara farklı yaklaşımlar geliştirmesine de olanak tanımıştır.
Farklı genetik algoritma yaklaşımları izleyen slaytlarda açıklanmaktadır.
1) Basit Genetik Algoritma Yaklaşımı
Basit genetik algoritmanın mekanizması, dizileri kopyalamak ve belirli kısımlarını değiştirmek
dışında karmaşık işlemler içermemektedir. Birçok problemin çözümünde başarılı sonuçlar elde
eden bu yaklaşım 3 işlemden oluşmaktadır:
 Yeniden birleştirme (reproduction): Yeniden birleştirme aşamasında birey dizileri uygunluk
değerlerine göre kopyalanır. En sık kullanılan yöntem rulet tekerleği seçimidir.
 Çaprazlama
 Mutasyon
Basit genetik algoritma kullanımının faydalı olduğu durumlar aşağıda sıralanmıştır:
 Arama yüzeyi geniş veya karmaşık ise,
 Alan bilgisi veya uzmanlığın arama uzayını kodlamada yetersiz kaldığı durum mevcut ise,
 Herhangi bir matematiksel analiz mevcut değil ise
 Geleneksel metotlar denemesi başarısız olmuş ise
Basit genetik algoritmanın avantajı keyfi kısıt ve amaçlar ile kolayca kullanılabilmesidir. Bununla
birlikte kullanımda bazı dezavantajları mevcuttur:
 Genellikle etkin değillerdir,
 Değerlendirmeler çok zaman almaktadır,
 Çok sayıda problemde popülasyonun büyük tutulması gerekmektedir.
2) Paralel Genetik Algoritma Yaklaşımı
Çeşitli basit genetik algoritmaların paralel olarak uygulanması ‘paralel genetik algoritma’ olarak
tanımlanmaktadır. Bu yaklaşım basit genetik algoritmaların geniş bir arama yüzeyinde optimale yakın
çözümü bulmak için harcadığı sürenin kısaltılmasına yönelik geliştirilmişlerdir. Genetik algoritmaların
paralel olarak çalıştırılabilmesi aşağıdaki elementlere bağımlıdır:
 Uygunluğun değerlendirme ve mutasyonun uygulanma biçimi,
 Seçimin lokal veya global uygulanması,
 Tek veya çoklu alt popülasyonların kullanılması,
 Çoklu popülasyonlar kullanılıyor ise bireylerin değiştirilme biçimi.
Probleme alternatif çözümler ortaya koyabilmesi, farklı noktalardan hareketle paralel arama yapılmasını
sağlaması, daha hızlı sonuç vermesi ve diğer arama prosedürleri ile kolayca bütünleştirilmesi bu
yaklaşımın avantajları olarak sıralanabilir. Paralel genetik algoritma modelinin önemli bir diğer avantajı
geleneksel ya da basit genetik algoritmaların erken yakınlaşmasını zorlaştırmasıdır. Birçok araştırmacı
tarafından paralel genetik algoritmanın daha gerçekçi bir model olduğu ileri sürülmektedir.
Paralel genetik algoritmalar da uygulama metoduna göre kendi içerisinde : A) Bağımsız paralel genetik
algoritmalar, B) Göçebe paralel genetik algoritması, C) Bölümlendirme paralel genetik algoritması,
D) Segmentasyon paralel genetik algoritması gibi kısımlara ayrılmaktadır.
3) Hibrit Genetik Algoritma Yaklaşımı
Hibrit Genetik Algoritma çaprazlama tarafından üretilen yeni bireylerin gelişimi için sezgiselliğin
kullanımını sağlamaya dönük geliştirilmiştir. Bir sezgisellik, başlangıç popülasyonu oluşturmada; diğer
ikisi de ya çaprazlama ya da karıştırmadan gelen bireylere uygulanmaktadır. Son iki sezgisellik lokal
minimuma takılı kalmasını önlemede kullanılmaktadır.
Hibrit Genetik Algoritması adımları aşağıda sıralanmaktadır:
1.Adım: Başlangıç Sezgisellik algoritmasını kullanarak ilk popülasyon kısmını oluştur,
Popülasyonun kalanını tesadüfi olarak belirle
2.Adım: Başlangıç popülasyonundaki her bir yerleşim için RemoveSharp algoritmasını uygula
Başlangıç popülasyonundaki her bir yerleşim için LocalOpt algoritmasını uygula
3.Adım: Tesadüfi olarak iki ebeveyn seç,
Seçilen ebeveynlere çaprazlama uygula ve yeni birey oluştur,
Yeni bireye RemoveSharp algoritmasını uygula,
Yeni bireye LocalOpt algoritmasını uygula,
Yeni bireyin uygunluğu herhangi bir ebeveyninden büyük ise onunla yeni bireyi değiştir.
4.Adım: Popülasyondan seçilen herhangi bir bireyi mutasyona tabi tut,
5.Adım: Adım 3 ve 4’ü belirlenen iterasyon sayısınca tekrar et.
4) Adaptif Genetik Algoritma Yaklaşımı
Popülasyon Büyüklüğü (), Çaprazlama Olasılığı (Pc) veya Mutasyon Olasılığı (Pm) genetik
algoritmanın çalıştırılması sırasında değişiyorsa adaptif genetik algoritmalar olarak
adlandırılmaktadır.
Çok optimumlu problemlerin optimizasyonunda genetik algoritmaların iki önemli karakteristiğinin
olması zaruridir. Bu özelliklerin ilki optimuma yakınsama kapasitesi; ikincisi ise çözüm uzayında
global optimumu ararken yeni bölgeleri keşfetme kapasitesidir. Bu iki karakteristik arasındaki denge
mutasyon olasılığı, çaprazlama olasılığı ve kullanılan çaprazlama yöntemi tarafından
belirlenmektedir.
Adaptif genetik algoritma yaklaşımında keşif ve sömürü (exploitation) arasındaki dönüşüm,
çözümün uygunluk değerine göre mutasyon olasılığı ve çaprazlama olasılığının değiştirilmesi ile
yapılmaktadır. Popülasyonun yerel minimuma takılma eğilimi ortaya çıktığında her iki olasılık da
artırılmakta; çözüm uzayına yayılımı artınca da azaltılmaktadır.
5) Messy (Hızlı Dağınık) Genetik Algoritma Yaklaşımı
Dağınık genetik algoritma, ikili, stokastik, değişken kromozom uzunluklu ve popülasyon temelli bir problem
çözme yaklaşımıdır. Diğer yaklaşımlardan en önemli farkı, en iyi çözüme ulaşmak için genetik materyalin yapı
bloklarını (building blocks) açıkça manipüle edebilmesidir.
Dağınık genetik algoritma 3 işlem aşaması içermektedir:
1. Başlangıç aşaması,
2. İlksel (primordial) aşama,
3. Bitişiklik durumu (juxtapositonal) aşaması.
Adımları:
 Başlangıç aşamasında, bir sonraki blok filtreleme aşamasında ortaya çıkabilecek gürültünün (noise) üstesinden
gelebilmek için yeter derecede büyük bir popülasyon elde etmek için popülasyon boyutu belirleme denklemi
kullanılır.
 Popülasyon büyüklüğü belirlendikten sonra başlangıç popülasyonu üyeleri rastgele olarak belirlenir ve seçilen
uygulamaya göre onların uygunluk değerleri hesaplanır.
 Yapı bloğu filtreleme şeması kullanılarak başlangıç aşamasında belirlenen bu popülasyon üyeleri sistematik
olarak, kullanıcı tarafından belirlenen yapı bloğu büyüklüğüne düşürülür.
 Yapı bloğu filtrelemede her bir popülasyon üyesinin belirli sayıda bit’i silinir.
 Bir sonraki jenerasyon için en iyi kısmi dizilerin saklanabilmesi için bu silme işlemini turnuva seçimi takip eder.
 Son aşamada ise filtreleme aşamasında gelen yapı blokları alınır ve bir ‘kes ve dilimle’ (cut-and-slice) operatörü
ile birleştirilir.
 Bu prosesi de turnuva seçimi izlemektedir.
Genetik Algoritmanın Yapay Zekadaki Yeri
Artificial Intelligence
Machine Learning
Neural
Networks
Deep
Learning
Genetic Algorithm - Neural Networks - Fuzzy Logic
Faydalı olması dileklerimle… Dr. Hakan Erdun , 2020
Ders Notu referans gostermek sartiyla kullanima aciktir.

More Related Content

What's hot

Introduction to Genetic Algorithms
Introduction to Genetic AlgorithmsIntroduction to Genetic Algorithms
Introduction to Genetic AlgorithmsAhmed Othman
 
Mutasyonlar ve Tamir Mekanizmları.pptx
Mutasyonlar ve Tamir Mekanizmları.pptxMutasyonlar ve Tamir Mekanizmları.pptx
Mutasyonlar ve Tamir Mekanizmları.pptxBehcetNAL
 
Rna yapisi ve özellikleri (fazlası için www.tipfakultesi.org )
Rna yapisi ve özellikleri (fazlası için www.tipfakultesi.org )Rna yapisi ve özellikleri (fazlası için www.tipfakultesi.org )
Rna yapisi ve özellikleri (fazlası için www.tipfakultesi.org )www.tipfakultesi. org
 
Genetik hastalıklar
Genetik hastalıklarGenetik hastalıklar
Genetik hastalıklarSema Atasever
 
Hayvan çalışmalarında planlama
Hayvan çalışmalarında planlamaHayvan çalışmalarında planlama
Hayvan çalışmalarında planlamaguldalgulsah
 
Genetic algorithms
Genetic algorithmsGenetic algorithms
Genetic algorithmszamakhan
 
Yapay arı kolonisi algoritması
Yapay arı kolonisi algoritmasıYapay arı kolonisi algoritması
Yapay arı kolonisi algoritmasıOrhan ERIPEK
 
Data Science - Part XIV - Genetic Algorithms
Data Science - Part XIV - Genetic AlgorithmsData Science - Part XIV - Genetic Algorithms
Data Science - Part XIV - Genetic AlgorithmsDerek Kane
 
Genetik algoritma
Genetik algoritmaGenetik algoritma
Genetik algoritmaKbraBeendik
 
Genetic Algorithms Made Easy
Genetic Algorithms Made EasyGenetic Algorithms Made Easy
Genetic Algorithms Made EasyPrakash Pimpale
 
Hücre Adhezyon Molekülleri
Hücre Adhezyon MolekülleriHücre Adhezyon Molekülleri
Hücre Adhezyon MolekülleriÖzgün Özalay
 
Cinsiyeti belirleyen genler(fazlası için www.tipfakultesi.org)
Cinsiyeti belirleyen genler(fazlası için www.tipfakultesi.org)Cinsiyeti belirleyen genler(fazlası için www.tipfakultesi.org)
Cinsiyeti belirleyen genler(fazlası için www.tipfakultesi.org)www.tipfakultesi. org
 
kan gazlarının taşınması (fazlası için www.tipfakultesi.org )
kan gazlarının taşınması (fazlası için www.tipfakultesi.org )kan gazlarının taşınması (fazlası için www.tipfakultesi.org )
kan gazlarının taşınması (fazlası için www.tipfakultesi.org )www.tipfakultesi. org
 

What's hot (20)

Introduction to Genetic Algorithms
Introduction to Genetic AlgorithmsIntroduction to Genetic Algorithms
Introduction to Genetic Algorithms
 
Kalıtım Biçimleri
Kalıtım BiçimleriKalıtım Biçimleri
Kalıtım Biçimleri
 
Mutasyonlar ve Tamir Mekanizmları.pptx
Mutasyonlar ve Tamir Mekanizmları.pptxMutasyonlar ve Tamir Mekanizmları.pptx
Mutasyonlar ve Tamir Mekanizmları.pptx
 
Rna yapisi ve özellikleri (fazlası için www.tipfakultesi.org )
Rna yapisi ve özellikleri (fazlası için www.tipfakultesi.org )Rna yapisi ve özellikleri (fazlası için www.tipfakultesi.org )
Rna yapisi ve özellikleri (fazlası için www.tipfakultesi.org )
 
Student Tracking System - SchoolCop
Student Tracking System - SchoolCopStudent Tracking System - SchoolCop
Student Tracking System - SchoolCop
 
Genetik hastalıklar
Genetik hastalıklarGenetik hastalıklar
Genetik hastalıklar
 
Sitogenetik
SitogenetikSitogenetik
Sitogenetik
 
Hayvan çalışmalarında planlama
Hayvan çalışmalarında planlamaHayvan çalışmalarında planlama
Hayvan çalışmalarında planlama
 
Ga ppt (1)
Ga ppt (1)Ga ppt (1)
Ga ppt (1)
 
Genetic algorithms
Genetic algorithmsGenetic algorithms
Genetic algorithms
 
Yapay arı kolonisi algoritması
Yapay arı kolonisi algoritmasıYapay arı kolonisi algoritması
Yapay arı kolonisi algoritması
 
Data Science - Part XIV - Genetic Algorithms
Data Science - Part XIV - Genetic AlgorithmsData Science - Part XIV - Genetic Algorithms
Data Science - Part XIV - Genetic Algorithms
 
Seher başaran
Seher başaranSeher başaran
Seher başaran
 
Genetik algoritma
Genetik algoritmaGenetik algoritma
Genetik algoritma
 
Genetic Algorithms Made Easy
Genetic Algorithms Made EasyGenetic Algorithms Made Easy
Genetic Algorithms Made Easy
 
Hücre Adhezyon Molekülleri
Hücre Adhezyon MolekülleriHücre Adhezyon Molekülleri
Hücre Adhezyon Molekülleri
 
Genetic Algorithm
Genetic AlgorithmGenetic Algorithm
Genetic Algorithm
 
Cinsiyeti belirleyen genler(fazlası için www.tipfakultesi.org)
Cinsiyeti belirleyen genler(fazlası için www.tipfakultesi.org)Cinsiyeti belirleyen genler(fazlası için www.tipfakultesi.org)
Cinsiyeti belirleyen genler(fazlası için www.tipfakultesi.org)
 
Yolo
YoloYolo
Yolo
 
kan gazlarının taşınması (fazlası için www.tipfakultesi.org )
kan gazlarının taşınması (fazlası için www.tipfakultesi.org )kan gazlarının taşınması (fazlası için www.tipfakultesi.org )
kan gazlarının taşınması (fazlası için www.tipfakultesi.org )
 

Genetik Algoritma & Programlama (Dr.Hakan Erdun)

  • 1. Genetik Algoritma & Programlama Dr. Hakan ERDUN
  • 2. DOĞAL DÜNYA İnsan vücudu trilyonlarca hücreden oluşur. Her hücre kromozom içeren bir çekirdeğe sahiptir. Kromozomların sayısı canlı türlerinde değişiklik gösterir. İnsanın kromozom sayısı 46'dır. Her kromozom, birbirine sıkı sıkı sarılmış DNA (DeoksiriboNükleik Asit) ipliklerin- den oluşur. Genler, göz ve saç rengi gibi spesifik özellikleri belirleyen DNA parçalarıdır. Bir insanın 20.000’den fazla geni vardır. Salzberg ve ekibinin çalışmalarına göre insandaki toplam gen sayısı en az 46.831 dir.
  • 3. DNA: Görevleri • Hücredeki yaşamsal olayları yöneten moleküldür. • Canlının kalıtsal yapısını belirler. Canlıya ait kalıtsal özellikleri ortaya çıkarır. • Canlıların üremesinde ve kalıtım olayında görev alır. DNA'nın Eşlenmesi: • DNA eşlenmesi hücre bölünmesi öncesinde gerçekleşir. Eşlenmenin amacı; taşıdığı kalıtsal bilgilerin yeni oluşacak hücrelere aktarılmasını sağlamaktır. GEN: • Bir DNA molekülü milyonlarca nükleotitten oluşur. 1000–1500 tane nükleotit bir araya gelerek bir GEN oluşturur. • Genler DNA’nın görev birimleridir. Yani Genler canlılardaki saç rengi, saç şekli, göz rengi, boy uzunluğu vb gibi kalıtsal karakterlerin oluşumunu ve bu karakterlerin kuşaktan kuşağa aktarılmasını (kalıtımı) sağlar. İnsandaki toplam gen sayısı için bilim insanları arasında tartışma vardır. Ortalama 20.000 civarı olduğu söylenmekle birlikte bazı bilim insanları en son 46.831 olarak açıklamışlardır. KROMOZOM: • DNA ve özel proteinlerin birleşmesiyle oluşan yapılara kromozom denir. Her bir kromozomda pek çok gen bulunur. Genlerin kuşaktan kuşağa geçişi (kalıtım), kromozomlar sayesinde gerçekleştirilir. Her bir canlı türü kendisine özgü sayıda kromozom bulundurur. İnsanlardaki kromozom sayısı 46’dır. MUTASYON: • DNA’nın eşlemesi sırasında, eğer DNA’nın bir zincirinde hata varsa diğer zincir kalıp olarak kullanılarak hata onarılabilir. Ancak karşılıklı zincirlerin ikisinde de hata varsa bu hata onarılamaz. Bu olaya mutasyon adı verilir.
  • 4. GENETİK ALGORİTMA Genetik algoritmaların temel prensibi: Genetik ve doğal seleksiyonu bilgisayar yazılımları kullanarak taklit etmektir. Genetik Algoritma, doğadaki çoğalma ve seleksiyon mekanizmasını örnek alan bir stokastik arama ve optimizasyon yöntemidir. Genetik Algoritmalar, canlıların çoğalması sonucunda kendi özelliklerini bir sonraki nesle aktarma yeteneklerini, güçlü olanın yaşama şansının yüksek olması ve bazı durumlarda önceden nasıl olacağı bilinmeyen değişimlerin bir hesaplama yöntemi içerisinde bir arada kullanılması sonucunda ortaya çıkmış bir yöntemdir. Genetik Algoritmaların temel amacı, fazla sayıda sınırlama içeren ve karmaşık optimizasyon sorunlarının çözümlerini bulmaktır. Önbilgi ve varsayımlar olmadan, sadece uygunluk fonksiyonu (fitness function) ile çalışabilmektedir. Genetik Algoritmalar, rastsal arama tekniklerini kullanarak çözüm bulmaya çalışan, parametre kodlama esasına dayanan bir çözüm-arama tekniğidir. Bir veri grubu içinde özel bir veriyi bulmak için – diğer bir deyişle bir çözüm grubu içinde özel bir çözümü bulmak için kullanılır.
  • 5.
  • 6. Genetik Algoritma (GA) • GA, sistemin parametreleri ile değil, parametre takımının kodlanmış bilgileriyle uğraşırlar. • GA fitness (uygunluk) fonksiyonunun türevlerini ve bir takım ek bilgileri değil, doğrudan fitness fonksiyonunun kendisini kullanırlar. • Bazı problemlerde sonsuz sayıda çözüm olabilir ama en uygun ve hızlı çözümü bulmaya ihtiyacımız vardır. • Genetik algoritmalar aramaya tek bir noktadan değil, noktalar kümesinden başlar. Bu nedenle çoğunlukla yerel (lokal) en iyi çözümde sıkışıp kalmazlar. • Genetik algoritmalar problemlere tek bir çözüm üretmek yerine farklı çözümlerden oluşan bir çözüm kümesi üretir. Sonuçta bütünsel (global) çözüme ulaşma olasılığı yükselmektedir. • GA’da deterministlik değil rastlantısal geçiş kuralları kullanılır.
  • 7. Genetik Algoritmaya Ne Zaman İhtiyaç Var ? • Çözüm arama uzayının büyük ve karmaşık olduğu durumlarda. Örneğin çözüm için çok fazla zaman gerektiği durumlarda… • Mevcut bilgiyle sınırlı arama uzayında çözümün zor olduğu durumlarda… • Problemin belirli bir matematiksel modelle ifade edilemediği durumda… • Geleneksel optimizasyon (eniyileme) yöntemlerinden istenen sonucun alınamadığı alanlarda etkili ve kullanışlıdır. 2222 )()1(),( 33)1(2 yxyx eyxxexyxf  
  • 8.
  • 9. Genetik Algoritma Özellikleri Avantajları – Çok amaçlı optimizasyon yöntemleri ile kullanılabilmesi – Çok karmaşık ortamlara uyarlanabilmesi – Kısa sürelerde iyi sonuçlar verebilmesi Dezavantajları – Son kullanıcının modeli anlamasının güçlüğü – Problemi Genetik Algoritma ile çözmeye uygun hale getirmek zorluğu – Uygunluk fonksiyonunu belirlemek zorluğu – Çaprazlama ve Mutasyon tekniklerini belirleme zorluğu…
  • 10. Genetik Algoritma Adımları 1) Başlangıç popülasyonunu rastlantısal olarak üret. 2) Popülasyon içindeki tüm kromozomların fitness (uygunluk/amaç) fonksiyonu değerlerini hesapla. (EVALUATION) 3) Çoğalma (tekrar üreme), Çaprazlama (CROSSOVER) ve Mutasyon (MUTATION) işlemlerini uygula. Yeni popülasyonun kromozomlarını belirle. 4) Oluşturulan her yeni kromozomun fitness fonksiyonu değerlerini bul. 5) Fitness fonksiyonu değerleri kötü olan kromozomları popülasyondan çıkar. 6) 3-5 arasındaki adımlar tekrar et.
  • 11. 1. Başlangıç: Çözümlerin kodlanması gerçekleştirilir ve n kromozomdan oluşan rastgele (genel olarak ama zorunlu değil) bir popülasyon oluşturulur 2. Uygunluk: Toplumdaki her x kromozomu için f(x) "fitness fonksiyonu" uygunluk değeri değerlendirilir. 3. Yeni Popülasyon : Aşağıdaki adımlar izlenerek yeni popülasyon üretilir. Başlangıç popülasyonu oluşturulmuş genetik algoritma üç evrim operatörüyle çalışır. Seçim: popülasyondaki kromozomların uygunluk değerlerine bağlı olarak, yeni kromozomları oluşturmak için, ebeveyn birey seçmesi işlemidir. Popülasyondan uygunluklarına göre iki kromozom seçilir (uygunluk değeri iyi olanın seçilme şansı daha fazladır) Çaprazlama: ebeveyn kromozomlardaki genlerin bazılarının karşılıklı yer değiştirmesi işlemidir. Çaprazlama ile kromozomlar yeni çocuk oluşturmak için birbirleriyle eşleştirilir. Eğer çaprazlama yapılmazsa, çocuk kromozom anne-baba(ebeveyn) kromozomların tıpatıp aynısı olacaktır. Mutasyon: Sürekli yeni nesil üretimi sonucunda, belli bir süre sonra nesildeki kromozomlar tekrar edebilir ve farklı kromozom üretimi azalabilir. Bu yüzden mutasyon işlemi ile bazı genler değiştirilir. Kabul: Çocuk kromozom, yeni popülasyona eklenir. 4. Yeni Popülasyon: Yeni popülasyon algoritmanın tekrar işlenmesinde kullanılır. 5. Iterasyon Kontrolü: Eğer bitiş durumu sağlandıysa, popülasyondaki en iyi çözüm sonuç olarak döndürülür. Iterasyona devam edilecekse Adım 2’ye gidilir. Genetik algoritmanın çalışması esnasında istenen çözüm bulunduğunda, GA’nın başlangıcında tanımlanan toplam iterasyon sayısına ulaşıldığında veya uygunluk değeri sürekli olarak sabit kaldığında algoritma sonlandırılır. Genetik Algoritma Adımları
  • 15. Kromozom (Birey) • Birden fazla genin bir araya gelerek oluşturduğu diziye denir. • Kromozomlar, alternatif aday çözümlerini gösterirler. Gen • Kalıtsal molekülde bulunan ve organizmanın karakterlerinin tayininde rol oynayan kalıtsal birimlere gen denir. • Yapay Sistemlerde gen, kendi başına anlamlı bir bilgi taşıyan en küçük birim olarak tanımlanır.
  • 16. Populasyon (Nesil/Bireyler/Kromozomlar) • Kromozomlardan (bireylerden) oluşan topluluğa denir (Anne, Baba, Dede, Nine, Çocuklar). • Popülasyon, geçerli alternatif çözüm (beklenen kromozomlar) kümesidir. • Başlangıç popülasyonundaki her bir kromozom, problemin olası bir çözümünü temsil eder. • Popülasyondaki kromozom sayısı algoritma boyunca genelde sabit tutulur. Ancak popülasyondaki kromozom sayısının sabit tutulması gerektiğiyle ilgili genel bir kural yoktur. • Başlangıçta belirli kriterlere göre veya rastgele kromozomlardan oluşan bir popülasyon oluşturulur.
  • 17. Populasyon (Nesil/Bireyler/Kromozomlar) Popülasyondaki kromozom sayısı nasıl belirlenir ? Genetik Algoritmada popülasyondaki kromozom sayısı (popülasyon büyüklüğü) ile ilgili genel bir kural yoktur. Bununla birlikte kromozom sayısının ne olacağı problemin yapısına göre belirlenmektedir.  Kromozom sayısının çok fazla olması çözüme ulaşma kalitesini arttırır ancak algoritmanın adımları daha uzun zaman alacağı için çözüme ulaşma süresi artar.  Popülasyondaki kromozomların sayısı küçük seçildiğinde ise iterasyonlar daha hızlı olur ancak algoritmanın yerel (lokal) optimuma takılma şansı artar.  Popülasyondaki kromozom sayısı genellikle 100 ile 300 arasında seçilmektedir.
  • 18. Populasyon (Nesil/Bireyler/Kromozomlar) Popülasyon büyüklüğü genetik algoritmanın tüm performansını ve verimliliğini etkiler.  Genetik algoritmalar genellikle az sayılı popülasyonlarla çalıştıklarında iyi sonuçlar vermemektedirler. Çünkü popülasyon yeterli örnek büyüklüğünü içermemektedir. Eğer kromozom sayısı az olursa GA, çözüm aranan uzayın ancak bir kısmını gezebilmekte ve çaprazlama için fazla bir seçenek bulamamaktadır.  Büyük popülasyonların çok sayıdaki hiper-alanlardan temsiller içerme ihtimali daha fazladır. Diğer yandan büyük popülasyonlar her nesil için daha fazla değerlendirme yapmayı gerektirmektedir. Bu durum, GA’nın kabul edilemeyen bir sürede sonuca ulaşmasına neden olabilir. Yapılan araştırmalar, belli bir noktadan sonra popülasyon sayısını artırmanın bir yararı olmadığını göstermiştir.
  • 19. • Gen: Canlıların karakterlerini belirleyen ve anlamlı bilgi içeren kromozom içindeki en küçük birimlerdir. • Kromozom (Birey): Birden fazla genin bir araya gelerek oluşturduğu diziye denir. GA’’da her kromozom belirlenen problem için potansiyel bir çözümü temsil etmektedir. Çözüm için kullanılan bireyler. GA’da her birey doğadakinden farklı olarak yalnızca bir kromozomdan oluşmaktadır. • Popülasyon (Topluluk): Kromozomlardan oluşan topluluktur. GA’da olası çözümlerden oluşan kümeye karşılık gelir. Çözüm kümesini oluşturan kromozomların tümüdür. • Seçim (Selection) : Var olan kromozomu genetik yapısında herhangi bir değişiklik yapmadan yeni nesle kopyalar. • Çaprazlama (Crossover) : İki kromozomun yapılarının rastlantısal olarak birleştirilerek yeni çocuk kromozomlar oluşturulmasıdır. İşlem, ikili dizilerin parçalarının değiş tokuşu ile gerçekleştirilir. • Mutasyon (Mutation) : Çaprazlama ile elde edilen bir çocuk kromozomun genlerinden birinin ya da birkaçının bilgisinin veya yerlerinin değiştirilmesiyle oluşturulur. Terminoloji Özeti
  • 20. Fitness (Uygunluk) Fonksiyonu Kromozomlardan meydana gelen bir popülasyon oluşturulduktan sonra, popülasyondaki her kromozomun uygunluk (fitness) değeri hesaplanır. Bu fitness değeri, kromozomların karşılaştırılması ve iyi olanların seçimi için kullanılır. Bu örnekte f(x1)>f(x2) (veya P(x1)>P(x2)) olduğundan x1 kromozomu, x2 kromozomundan daha iyidir.
  • 21. Fitness (Uygunluk) Fonksiyonu Gezgin Satıcı Probleminde kullanılan Fitness fonksiyonu: Satıcının ürünleri ilgili şehirlere en kısa mesafe kat ederek dağıtması gerekmekte. İlgili şehirlere sıralı erişim için bir çok alternatif güzergah seçeneği vardır. • Fitness fonksiyonu: f(x) = min(di j ) Burada di j iki şehir arasındaki mesafedir. Bu örnekte f(x1) < f(x2) olduğundan x1 kromozomu, x2 kromozomundan daha iyidir.
  • 22. Fitness (Uygunluk) Fonksiyonu Optimizasyon karar verme ve fiziksel bir sistemin analizi konularında oldukça önemli bir araçtır. Bu aracın kullanılabilmesi için ilk olarak sistemin performansını sayısal olarak ölçebilen bir uygunluk değerinin belirlenmesi gerekmektedir. Bu uygunluk tek bir rakam ile ifade edilebilen kâr, zaman, miktar veya bunların kombinasyonu vb. olabilmektedir. Belirlenen uygunluk fonksiyonu f(x), sistemin ‘değişken-x’ veya bilinmeyen olarak tanımlanan belirli karakteristiklerine bağımlıdır. Bu değişkenler sıklıkla sınırlandırılmakta veya kısıtlanmaktadırlar.
  • 23. BİLGİNİN (KROMOZOMLARIN) KODLANMASI (Popülasyonun Oluşturulması) • Kodlama, Genetik Algoritmanın çok önemli bir kısmını oluşturmaktadır. • Probleme Genetik Algoritma uygulanmadan önce, verinin uygun şekilde kodlanması gerekmektedir. • Kurulan genetik modelin hızlı ve güvenilir çalışması için bu kodlamanın doğru yapılması gerekmektedir. Kodlama Çeşitleri : 1. İkili (binary) kodlama 2. Permütasyon kodlama 3. Değer kodlama 4. Ağaç kodlama
  • 24. 1) BINARY (İKİLİ) KODLAMA Bu kodlama ilk GA uygulamalarında kullanıldığı için hala en çok kullanılan yöntemlerdir. Her kromozom 0 ve 1’lerden oluşan BIT diziyle ifade edilir. Bu dizideki her bit, çözümün bir özelliğini taşır. Dizinin tümü ise bir sayıya karşılık gelir. Basit, kolay ve hızlı işlemler için uygundur. Kromozom A: 101110010110 Kromozom B: 010110100000
  • 25. 2) PERMÜTASYON KODLAMA • Burada her kromozom, sayıları bir sırada temsil eden bir sayı dizisidir. • Sıralama ve düzenleme problemlerinde kullanılır. • Permütasyon kodlama, Gezgin Satıcı ve Çizelgeleme Problemleri için kullanışlıdır. Kromozom A: 3 5 1 2 7 6 0 4 Kromozom B: 0 1 5 6 2 3 4 7
  • 26. 3) DEĞER KODLAMA • Karmaşık verilerin kullanıldığı problemlerde gerçekleştirilir. • Değerler; gerçek sayılar, karakterler veya nesneler olabilir. • Bu tip kodlamada probleme özgü yeni çaprazlama ve mutasyon yöntemleri geliştirmek gereklidir. Kromozom A: 3.2 6.5 0.8 9.4 Kromozom B: A B C D Kromozom C: (geri) (sağ) (ileri) (sol)
  • 27. 4) AĞAÇ KODLAMA • Bu yöntem gelişen, değişen programlar veya ifadeler için kullanılır. • Çoğunlukla ifadesel çözümler içeren problemlerde kullanılır, her kromozom bir nesnenin ağacıdır. • Ağaç kodlama, program geliştirmek için uygundur. Örneğin Lisp ve Prolog gibi dillerde ağaç yapısı kullanılır. • Örneğin her kromozom, bazı nesnelerin (örneğin fonksiyonlar veya programlama dilindeki komutlar gibi) ağacıdır.
  • 28. GENETİK ALGORİTMA PARAMETRELERİ Genetik algoritma uygulamasının önemli bir adımı da çeşitli parametrelerin belirlenmesidir. Parametreler genetik algoritma performansı üzerinde çok önemli bir etkiye sahiptir. Kontrol parametreleri olarak da adlandırılan bu parametreler popülasyon büyüklüğü, çaprazlama olasılığı, mutasyon olasılığı, seçim stratejisi, fonksiyon ölçeklemesini kapsamaktadır. Parametreler birbirlerini doğrusal olmayan biçimde etkilediği için aynı anda optimize edilemezler. Literatürde parametre seçimi ve adaptasyonu üzerinde oldukça fazla sayıda çalışma yapılmış olmakla birlikte tüm problemlerde kullanılabilecek en iyi parametreler üzerinde bir uzlaşı söz konusu değildir.
  • 29. 1) Popülasyon Büyüklüğü (Kromozom Sayısı  ) Popülasyon büyüklüğü genetik algoritma kullanıcısı tarafından verilen en önemli kararlardan biridir. Bu değer küçük olarak seçildiğinde algoritmanın yerel optimuma takılması olasılığı vardır. Büyük bir değer ise çözüm uzayının daha iyi tarama olasılığına karşı çözüm için gerekli zaman ve kaynakları artırmaktadır. Popülasyon büyüklüğü diğer genetik algoritma parametrelerinden tamamen ayrı düşünülemez. Belirlenecek büyüklük, hesaplama etkinliği, yeterli örnekleme sağlayabilme durumu, popülasyonun çeşitliliği, çaprazlama ve seçim baskısı gibi parametrelerin dengelemesine katkı sağlamalıdır. Örnekte: 6 tane kromozom (Popülasyon Büyüklüğü =6) Her kromozom 4 tane gen (w1-w4) içerir.
  • 30. 2) Çaprazlama Oranı/Olasılığı (Crossover Rate Pc) Çaprazlama operatöründe temel parametre çaprazlama olasılığıdır (Pc ). GA’da Pc 0-1 arasında değişen bir değerdir ve genellikle 0.7 olarak alınır. Çaprazlama olasılığı, çaprazlamanın ne kadar sıklıkla yapılacağını tanımlayan bir parametredir. Çaprazlama olmadığı durumda çocuk kromozomu, ebeveynlerin direkt kopyası olur. Ancak bu yeni neslin önceki ile aynı olduğu anlamına gelmez. Çaprazlamanın olduğu durumda çocuk kromozomu, ebeveynlerin her ikisinin kromozomlarının parçalarından oluşur. Çaprazlama, yeni kromozomların eskilerinin iyi parçalarını taşıyacağı beklentisi ile yapılır. Çaprazlama olasılığı eşleşme havuzuna girecek kromozomların sayısını belirler. GA’da bu oranın çok yüksek olması durumunda iyi yapı bloklarının tek bir kromozomda birikme olasılığı oldukça azalır. Düşük bir oran belirlenmesi durumunda ise yeterli sayıda yeni çocuk kromozmu ortaya konulamaz.
  • 31. 3) Mutasyon Oranı/Olasılığı (Mutation Rate Pm) Mutasyon tekniğindeki önemli parametre, kromozomda ne kadar bir değişiklik olacağını gösteren mutasyon olasılığıdır (Pm ). GA’da Pm 0-1 arasında değişen bir değerdir ve orta büyüklükte bir popülasyon için genellikle 0.001 olarak alınır. Eğer mutasyon yok ise (Pm=0), yeni birey çaprazlamadan hemen sonra oluşturulur demektir. Mutasyon olasılığının %100 olması ise (Pm=1), kromozomun tamamen değiştirildiği anlamına gelir. Mutasyonun temel amacı popülasyondaki çeşitliliği korumaktır. Mutasyon olasılığının artması genetik aramayı raslantısal bir aramaya dönüştürür; ancak diğer taraftan bu durum kayıp genetik materyali tekrar bulmada yardımcı olmaktadır. Bazı çalışmalar büyük popülasyonlar için (μ>200) büyük mutasyon olasılığı (Pm>0.05) kullanıldığında; ve benzer şekilde küçük popülasyonlar (μ<20) için ise daha küçük mutasyon oranı (Pm<0.002) kullanıldığında performansın arttığını ortaya koymuştur. Orta büyüklükteki bir popülasyon büyüklüğü için genellikle Pm=0.001 oranı seçilebilir.
  • 32. 4) Seçim Yöntemi Eski nesli yenilemenin çeşitli yöntemleri mevcuttur. Nesilsel (kuşaksal) stratejide, mevcut popülasyondaki kromozomlar tamamen çocuklar ile yer değiştirir ancak popülasyonun en iyi kromozomu da yenilendiğinden dolayı bir sonraki nesle aktarılamaz. İyi niteliklerin bir sonraki nesle aktarımı için bu strateji en uygun (elitist) stratejisiyle beraber kullanılmaktadır. En uygun stratejisinde, popülasyondaki en iyi kromozomlar hiçbir zaman yenilenmemektedir. Sabit durum (steady state) stratejisinde ise, her kuşakta yalnızca birkaç kromozom yenilenmektedir. Genellikle, yeni kromozomlar popülasyona katıldığında en kötü kromozomlar yenilenir. Ref: Emel ve Taşkın (2002), s136
  • 33. 5) Yakınsama/Sonlandırma (Termination) Kriterleri Genetik Algoritma kaç adım çalıştırılmalı? Lokal bir optimuma ulaşıldığında basit yakın komşuluk arama metotlarından farklı olarak genetik algoritma prensip olarak sonsuza kadar çalışır. Bunun için pratikte bir sonlandırmam kriteri gerekmektedir. Genetik Algoritma, sonlandırma kriterlerine ulaşıncaya kadar birkaç jenerasyon (nesil) boyunca çalıştırılır. GA’nın kaç adım çalıştırılacağı konusunda yaklaşımlar şu şekildedir: Sonlandırma Kriterleri 1. Maksimum Nesil: Tanımlanan sayıda nesil/jenerasyon üretildiği durumda genetik algoritma durdurulur. (Stop after a fixed number of generations.) 2. Maksimum Süre: önceden tanımlanan süre dolduğunda genetik proses sonlandırılır. Nesil sayısı kriteri ile birlikte kullanıldığında önceden tanımlanan nesil sayısına süreden önce ulaşılırsa algoritma durur. (Stop after a fixed amount of time)
  • 34. 3. Değişmeyen Toplam Uygunluk Değeri: Bu sonlandırma şemasında, popülasyondaki uygunluğun toplamının popülasyon kaydındaki (record) yakınsama değerine eşit veya daha düşükse aramanın, yakınsamayı sağladığı düşünülür. Bu durum hemen hemen tüm bireylerin belli bir uygunluk aralığında olmasını garanti eder. Ancak bu yakınlaşma kriterini en zayıf gen değişimi ile birlikte düşünmek daha iyi sonuç verir. Aksi durumda popülasyondaki yeni birkaç düşük uygunluklu birey toplam uygunluğu bozabilir. Yakınsama değeri belirlenirken popülasyon büyüklüğü dikkate alınmalıdır.(Stop when a chromosome reaches a specified fitness level.) 4. Minumum Tolerans Sağlandığında: Belli bir tolerans (hata oranı) dahilinde, bir kromozomun problemin çözümünde başarı elde etmesine kadar çalışır. (Stop when a chromosome succeeds in solving the problem, within a specified tolerance). 5. Sezgisel Karar: Kişisel bakış veya sezgisel duruma göre jenerasyon istenilen anda durdurulabilir. (Human judgment can also be used in some more subjective cases.)
  • 35. 7. Diğer Sonlandırma Teknikleri:  En İyi Birey: Bu kriter popülasyondaki en düşük uygunluğu yakınsama değerinin altına düştüğünde arama durdurulur. Bu metot, en azından bir adet iyi çözümü garanti ederek aramayı daha hızlı sonlandırır.  En Kötü Birey: En kötü birey kriteri kullanıldığında popülasyondaki en az uygun bireyin yakınsama kriterinden daha düşük bir uygunluğa sahip olduğu durumda arama sonlandırılır. Bu durumda tüm popülasyonun belli bir minimum standardın üstünde olması sağlanır. Ancak en iyi bireyin en kötüden önemli ölçüde farklı olmayabilir. Bu durumda, aşılacak belli bir maksimuma göre tanımlanan yüksek bir yakınsama değeri hiçbir zaman sağlanamayabilir. Bu kriterlerden bir kaçı aynı anda kullanılabilir.
  • 36.
  • 38. Genetik algoritmalarda bir sonraki nesli elde etmek için 3 ana genetik operatör kullanılır: A. SEÇİM (Yeniden Üretme-Reproduction), B. CROSSOVER (Çaprazlama) C. MUTATION (Mutasyon) Genetik Algoritma uygulamalarında yapılan işlemlerin %90-95’i seçim ve çaprazlama operatörleri ile ilişkilidir. Mutasyon için genellikle düşük bir olasılık değeri tercih edilmektedir
  • 39. A) SEÇİM (SELECTION) - Kromozom Seçimi Genetik Algoritma uygulamalarında daha yüksek uygunluğa sahip bireylerin daha fazla çoğalacağı temeline dayalı doğal seleksiyon fikri yeniden üretme veya seleksiyon/seçim olarak adlandırılır. Popülasyondaki bütün kromozomların uygunluk değerleri hesaplandıktan sonra, bunlardan bazıları yeni nesiller üretmek için seçilirler. Amaç: seçilen uygunluk fonksiyonuna ve seçim yöntemine göre elimizdeki popülasyondan yeni bir neslin bireylerini oluşturmak için (kromozomları) seçmektir.  Uygunluk değeri yüksek olan kromozomun, yeni nesle aktarılma ihtimali daha yüksektir. Seçim işlemi için bazı yöntemler: 1. Rulet tekeri yöntemi 2. Sıralı seçim yöntemi 3. Sabit durum yöntemi 4. Turnuva yöntemi
  • 40. SEÇKİNLİK (Elitism) Seçkinlik, GA algoritmalarında bir popülasyonun maksimum uygunluk değerinin bir diğerine geçildiğinde azalmamasını temin eden özelliktir. Çaprazlama ve mutasyonla yeni popülasyon üretildiği zaman, en iyi kromozom kaybedilecektir. Bunu önlemek için önce popülasyondaki en iyi kromozom (veya birkaç en iyi kromozom) yeni popülasyona kopyalanır (koruma altına alınmış olur). Geri kalanı diğer yöntemlerle devam ettirilir. Seçkinlik, bulunan en iyi sonucun kaybını önlediğinden GA’nın performansını oldukça hızlı bir şekilde arttırır.
  • 41. 1) Rulet Tekeri/Çemberi ile Seçim En basit seçim yöntemi olarak bilinmektedir. Bu yöntemde seçilme işlemi bireylerin (kromozomların) uygunluk değerine göre yapılmaktadır. Fakat uygunluk değeri en büyük olanın seçileceği garanti edilmez, yalnız seçilme şansı daha fazla olacaktır. Bu yöntemde bütün uygunluk değerleri bir tabloya yazılır ve toplanır. Uygunluk değeri toplama bölünerek bireylerin [0,1] aralığında seçilme olasılıkları belirlenir. Rulet tekerleği seçimi çözümlerin uygunluk değerlerinin pozitif olması gerekir. Diğer bir uygulanışı : Tüm bireyler birbirine bitişik bir şekilde düz bir çizgi üzerine dizilirler. Her bir ferde ilişkin bölümün uzunluğu, onun uygunluk değeri kadar olur. Rasgele sayı üretilir ve rasgele sayı hangi bölüm içerisine gelirse, o bölümün ait olduğu fert seçilir. İşlem ulaşılacak popülasyonun gerekli adedi elde edilene kadar devam eder.
  • 42. Uygunluk fonksiyonu: f(x)=x² • Kromozom 1: 1101 x = 13 x² = 169 • Kromozom 2: 0100 x = 4 x² = 16 • Kromozom 3: 1011 x = 11 x² = 121 • Kromozom 4: 1000 x = 8 x² = 64  f(x) = 169+16+121+64 = 370 • Kromozom 1: 169/370=0,456 (%46) • Kromozom 2: 16/370 =0,043 (%4) • Kromozom 3: 121/370=0,327 (%33) • Kromozom 4: 64/370 =0,172 (%17) %46 %17 %33 %4 Eğer uygunluk değerleri arasında büyük farklar varsa çözümün aranmasında sorunlar ortaya çıkar. Örneğin, eğer en iyi kromozomun uygunluğu diğer tüm kromozomların toplamının %90’ı ise diğer kromozomların seçilme şansı çok azalacaktır. Bunu önlemek için Sıralı Seçim kullanılabilir.
  • 43. 2) SIRALI (RANK) SEÇİM • Rulet Tekeri yönteminde, eğer uygunluk değerleri arasında büyük farklar varsa çözümün aranmasında sorunlar ortaya çıkar. Örneğin, eğer en iyi kromozomun uygunluğu diğer tüm kromozomların toplamının %90’ı ise diğer kromozomların seçilme şansı çok azalacaktır. Bunu önlemek için Sıralı Seçim kullanılabilir. • Ayrıca sıralama, uygunluk fonksiyonun tam olarak tanımlanamadığı problemler için de doğal bir seçenek olabilir. Bu gibi problemlerde tüm dikkati uygunluk fonksiyonunu alacağı değere atfetmek mantıklı değildir çünkü bazı durumlarda bu durum mümkün de olmayabilir. • Sıralı seçimde popülasyondaki kromozomlar da en kötü uyumlulukta olan kromozoma 1 değeri, sonrakine 2 değeri, … ve sonuncu olan en iyi kromozoma ise N değeri verilir. • Uygunluklar arasındaki mutlak farklılıklar dikkate alınmadığı için sıralama seçiminde uygunlukları derecelendirme gereksinimi de bulunmamaktadır. Böylelikle bütün kromozomlara aynı oranda seçilme şansı verilir. • Fakat bu yöntemde en iyi kromozomlar, diğerlerinden daha farklı olmadığından çözüme yaklaşma daha yavaş olacaktır. Çeşitliliği korur ve daha başarılı arama sağlar. Uygulamada potansiyel aileler seçilir ve hangi ailenin bir sonraki nesil seçileceğine yönelik bir turnuva düzenlenir.
  • 44. Farklı şekillerde yapılabilir olmakla birlikte aşağıdaki 2 yöntem yaygın olarak kullanılmaktadır: 1. Popülasyondan birey çiftlerini rastgele seçilir. 0-1 arasında R random sayısı üretilir. Eğer R<r ise ilk birey Parent (aile) olarak seçilir. Eğer R  r ise ikinci birey seçilir. Bu ikinci ailenin seçimi için de aynen tekrarlanır. Burada r değeri bu metot için tanımlanmış 0-1 arasında bir eşik parametresidir. 2. Popülasyondan rastgele iki farklı birey seçilir. Daha yüksek değerlendirme değeri olan birey parent (aile) için seçilir. İkinci aileyi bulmak için de bu adım tekrarlanur.
  • 45. 3) SABİT DURUM/KARARLI HAL SEÇİMİ (YERİNE GEÇME) • Bu seçimin ana düşüncesi, kromozomların büyük kısmının bir sonraki nesilde hayatta kalmak zorunda olmasıdır. • Her yeni nesilde en yüksek uygunluk değerine sahip kromozomlar, yeni çocukları oluşturmak için seçilir. • Her nesilde yeni bir kromozom (çocuk) oluşturmak için birkaç tane uygunluk değeri iyi olan kromozom seçilir. Düşük uygunluk değerine sahip kromozomlar kaldırılarak yerlerine bu yeni oluşturulan çocuk kromozomlar konur. • Geri kalan kromozomlar değiştirilmeden yeni nesle aktarılır. • Bu yöntemde alt popülasyon oluşturulduktan sonra fitness değerleri hesaplanır, en kötü kromozomlar yerlerini başlangıç popülasyonundaki en iyi kromozomlara bırakır.
  • 46. 4) TURNUVA YÖNTEMİ Genetik algoritma arama performansının en iyi olması için seçim baskısı ve popülasyonun çeşitliliğinin ayarlanabildiği bir seçim yöntemi ideal olandır Turnuva seçimi, seçim baskısı açısından sıralama seçimi ile benzerdir ancak ona göre hesaplaması daha etkin ve paralel uygulamalar için daha uygundur. Rulet tekerleri seçiminden farklı olarak turnuva seçimi N birey arasında bir turnuva düzenleyerek seçim baskısı sağlar. Kazanan birey uygunluk değerine göre belirlenir. En yüksek uygunluk değerine sahip birey genellikle deterministik olarak seçilir. Turnuva, eşleşme havuzu yeni nesil oluşturmak için doluncaya kadar tekrarlanır. Genelde turnuva iki birey arasında düzenlenir ancak keyfi olarak seçilen bir sayıdaki birey arasında da uygulanabilir. Turnuva gruplardan bağımsız olarak düzenlenir ancak grup sayısı arttıkça seçim baskısı da artacaktır. Uygulamada 6-10 grup önerilmektedir. Turnuva kazananlardan oluşan eşleşme havuzu yüksek bir ortalama popülasyon uygunluğuna sahiptir. Bu uygunluk farkı seçim baskısı sağlar ve bu durum da, genetik algoritmayı başarılı genlerin uygunluğunu artırmaya zorlar.
  • 47. 5) BOLTZMANN (Simulated Annealing) YÖNTEMİ Boltzmann seçimi Benzetilmiş Tavlama veya Benzetimli Tavlama algoritması prensiplerini kullanarak ve termodinamik olarak seçim baskısını kontrol eden seçim mekanizmasıdır. Tavlama benzetimi algoritması bir yerel arama algoritmasıdır ve pek çok değişkene sahip fonksiyonların en büyük veya en küçük değerlerinin bulunması ve özellikle pek çok yerel en küçük değere sahip doğrusal olmayan fonksiyonların en küçük değerlerinin bulunması için tasarlanmıştır. Boltzmann seçiminde önceden belirlenmiş tabloya göre sürekli değişen sıcaklık seçim oranını kontrol eder. Sıcaklık düşük seçim baskısı anlamına gelecek biçimde yüksek olarak tutulur. Daha sonra seçim baskısı kademeli olarak yükseltilir ve böylelikle uygun bir seviyedeki çeşitlilik korunurken genetik algoritmanın arama uzayını en iyi kısma yakın olacak biçimde küçültmesi sağlanır. Boltzmann seçim mekanizmasının temelinde mevcut i çözümü ve alternatif j çözümü arasındaki rekabet yatar. Burada i’nin kazanma olasılığı aşağıdaki formülle hesaplanmaktadır: Burada T sıcaklığı, fi ve fj mevcut ve alternatif çözüm maliyet, uygunluk fonksiyon değeri veya uygunluk değerini göstermektedir.
  • 48. Formülde kullanılan T ve k hesabı : T=T0 (1-α)k k=(1+100*g/G) Burada g : mevcut jenerasyon sayısı G : maksimum g değeri. α : [0-1] aralığında seçilen bir sayı. T0 : [5-100] aralığında seçilen bir sayı  T, 0 değerine ulaştığında global çözüme ulaşılmış olmaktadır. Seçim mekanizmasının seçimi diğer yönlerinden bağımsız olarak yapılamaz. Değerlendirme fonksiyonu çok karmaşık ise en fazla artırımsal modeller problemli olacaktır. Karmaşıklık durumunda seçim baskısı azaltılmalıdır. Karmaşıklık yoksa artırımsal modeller yeni iyi bireyler önemli artışlar sağlayabilir. Bireylerin silinmesi de dikkatli olunmasını gerektirmektedir. En kötü bireylerin ortadan kaldırılması büyüme oranını artırmaktadır ancak bu durum daha düşük kontrol demektir.
  • 49. B) ÇAPRAZLAMA (CROSSOVER) Çaprazlama : 2 kromozomun (çözümün) birbirleri arasında gen alışverişinde bulunup 2 yeni kromozom oluşturmasıdır. Diğer bir deyişle, anne ve babadaki (Parents) bazı genlerin yer değiştirmesi ile yeni çocukların oluşturulma işlemidir. • Genetik Algoritmadaki en önemli parametrelerden bir tanesidir. • Binary kodlanmış değişkenlerin yaptıkları çoğalma faaliyetinin "kromozomların çaprazla- masına" benzemesinden dolayı böyle adlandırılmaktadır. • Eğer kodlamada gerçek değerler kullanılıyorsa, klasik çaprazlama yöntemi yerine daha farklı yöntemler kullanılmaktadır. • Seçim yöntemi ile yapay seçim sonucunda elde edilen yeni popülasyonlardan rastsal olarak 2 kromozom seçilir ve karşılıklı çaprazlama işlemine tâbi tutulur.
  • 50. 1) RASTGELE SEÇİM Bu teknikte gelecek nesli oluşturmak için aile popülasyondan rastgele seçilerek belirlenir. Bunun için programlama dillerinin hepsinde mevcut olan random() vb fonksiyon kullanılmaktadır. Basit GA algoritmalarında sıklıkla kullanılmaktadır.
  • 51. 2) BİR NOKTADAN (Binary Kodlu Bilgide) Genler belli bir sıradan sonra çaprazlama gen değiş tokuşu yaparlar. Örneğin 5.bit baz alınarak çaprazlama: Bu bitler sabit kalır Bu bitler değiş tokuş edilir ÇAPRAZLAMA SONUCU 5
  • 52. 3) N-NOKTADAN (Binary Kodlu Bilgide) Bu bitler sabit kalır Bu bitler değiş tokuş edilir Bu bitler sabit kalır Bu bitler değiş tokuş edilir ÇAPRAZLAMA SONUCU 5 8 14 18
  • 53. 4) UNIFORM ÇAPRAZLAMA (Binary Kodlu Bilgide) Bitler rastgele biçimde değiş tokuş edilerek yeni kromozomlar oluşturulur. Her bir gen için çaprazlama, kromozomlarla aynı uzunlukta ve rastgele oluşturulan "ikili çaprazlama maskesine" göre yapılır. Yani her bir Parent (ebeveyn) çifti için yeni bir çaprazlama maskesi rastgele oluşturulur. İkili çaprazlama maskesi
  • 54. 5) TEK ARİTMETİK ÇAPRAZLAMA (Değer Kodlu) Patents : {x1,…,xn} ve {y1,…,yn} ve 1 k  n olmak üzere: • k rastgele seçilir • Yeni kromozomlar (çocuklar) için k.bilgi (geni) için yeni değer elde edilir: 1.çocuk kromozomu için ( =0.3) kromozomlar : 2.çocuk kromozomu için ( =0.3) kromozomlar: k=8 ve =0.5 alındığında aşağıdaki gibi iki farklı çocuk kromozomları elde edilir: 𝒌 𝒌 𝒌 𝒌 𝒌 𝒌
  • 55. 6) BASİT ARİTMETİK ÇAPRAZLAMA (Değer Kodlu) 𝒌 𝒌 𝐧 𝒏 Örnek k=7 ve  = 0.5 için : k.genden n.gene kadar aritmetik çaprazlama işlemi uygulanır:
  • 56. 7) BÜTÜN ARİTMETİK ÇAPRAZLAMA (Değer Kodlu) Kromozomun tüm genleri aritmetik işlemden geçirilir: yaxa  )1( = 0.5 için :
  • 57. 8) SIRALI ÇAPRAZLAMA (Permütasyon Kod) Önce 1. kromozom için: Çaprazlama aralığı seçilir. Bu aralıktaki veriler çocuk kromozomunda aynı aralığa kopyalanır. Geriye kalan veriler çapraz sırayla 1, 9, 3, 8, 2 gibi kopyalanır. Aynı işlem 2. kromozom için tekrarlanır.
  • 58. 9) PARÇALI EŞLEŞMELİ ÇAPRAZLAMA (Permütasyon Kod) Adım 1 Adım 2
  • 59. 10) ÇEVRİM ÇAPRAZLAMA (Permütasyon Kod) Adım 1: Çevrimleri bul Adım 2: Değişimli çevrimleri çocuğa kopyala NOT: Bu seçim yöntemlerinin dışında birçok yöntem de mevcuttur.
  • 60. C) MUTASYON (MUTATION) • Doğada genlerde mutasyon oranı 0.001-0.01 arasındadır. GA’da genlerde mutasyon olasılığı genelde (0.01 gibi) düşük tutulmaktadır. Uygulamalarda alınan en büyük oran değeri 10% dur. Bu nedenle mutasyon etkileri kromozomlarda az görülmektedir. • Yeniden ve sürekli yeni nesil üretimi sonucunda, belli bir süre sonra nesildeki kromozomlar birbirlerini tekrar edebilir. Böylece farklı kromozom üretimi durur veya azalır. İşte bu nedenle nesildeki kromozom çeşitliliğini artırmak için kromozomlardan bazıları mutasyona tabi tutulur. • Mutasyon yapılmasının bir başka amacı da, popülasyondaki çeşitliliğin azalmamasını sağlamaktır. • Mutasyon, popülasyonu lokal minimuma takılmaktan uzak tutar. Tesadüfî işlemlerle kaybedilen genetik bilgiler gibi kayıp genetik materyalin geri kazanılmasında rol alır. Aynı zamanda genetik materyalin geri dönülemez kaybına karşı da bir sigorta işlevi görür. • Mutasyon sırasında kromozomdaki gen sayısı değişmez. • GA’da Mutasyon Oranı Pm, mutasyon olasılığını gösteren orandır. Amaç mevcut kromozomların genlerinin bir ya da birkaçını değiştirerek yeni kromozomlar elde etmektir.
  • 61. 1) Binary Kodda Mutasyon 2) Değer Kodda Mutasyon ll xxxxxx  ...,,...,, 11  iiii UBLBxx ,, 
  • 62. 3) Permütasyon Kodda Mutasyon Araya İlave (Insert) mutasyon Yer değiştirme mutasyon Ters mutasyon Karışık mutasyon
  • 64. GA’NIN PERFORMANSINI ETKİLEYEN NEDENLER GA’nın isleyişini etkileyen faktör parametrelerdir. Genel olarak bu parametreler:  Popülasyon büyüklüğü,  Mutasyon tipi ve olasılığı,  Çaprazlama tipi ve olasılığı,  Nesil (kromozom) sayısı  Seçim operatörünün tipidir. Literatürde, bu parametrelerin uygun değerlerini bulmak için yapılmış teorik veya uygulamaya yönelik pek çok çalışma vardır.
  • 65. 1) Kodlama Biçiminin Etkisi GA’nın performansını belirleyen önemli bir faktördür, fakat kodlama biçimi probleme ve programa bağlı olduğu için bütün problemlerde geçerli olan uygun kodlama biçimini söylemek mümkün değildir. Michalewicz (1996) belirli bir problem tipi için gerçekleştirdiği çalışmada, gerçel sayı gösteriminin daha çabuk sonuca götürdüğünü belirtmiştir. GA lokal en iyi içindeki çözümü bulmak yerine yüksek oranda çoklu arama yeteneği sunarlar. GA uygunluk fonksiyonunun hesaplanması dışında hiçbir karmaşık matematiksel formül içermez ve genetik algoritmalar eniyileme için arama yönünde özel bir kurala sahip değildir.
  • 66. 2) Parametre Kodlamasının Etkisi GA’da en önemli noktalardan biride kodlama işleminin nasıl yapılacağıdır. Parametrenin doğrusal ya da logaritmik olarak kodlanması GA’nın performansında oldukça önemlidir. Kodlamanın binary düzen, kayan nokta aritmetiği veya gray kodu ile gösterimi kodlama gösteriminde en yaygın yöntemlerdir.
  • 67. 3) Popülasyon Büyüklüğünün Etkisi Popülasyonun büyüklüğü problemin çözüm süresinde etkilidir. Popülasyonda bulunan bireylerin sayısı gereğinden fazla ise çözüm süresi uzar, bireylerin sayısı gereğinden az ise popülasyon istenen çözüme ulaşamayabilir. Problemin yapısına göre popülasyondaki birey sayısı, GA’yı hazırlayan uzman tarafından iyi belirlenmesi gerekir. Grefensette, GA için en uygun popülasyon büyüklüğü 10-160 birey arasında olması gerektiğini savunmuştur. Bunların yanında uygunluk fonksiyonunun ölçeklenmesinde rank, oransal, doğrusal ve üstel ölçekleme gibi yöntemler mevcuttur. Problemin yapısına göre uygun ölçek seçmek, genetik algoritmanın etkin işlemesi açısından önemlidir.
  • 68. 4) Kromozom Sayısının Etkisi Kromozomun sayısı arttıkça çalışma zamanı da artmakta, sayıyı azaltma işleminde ise de kromozomların çeşitli olması engellenmektedir. GA’ların ana fikrinde, kromozoma sahip bireylerin karakterize ettiği toplumu yenilemesi fikri yatar. Kromozomları, l uzunluğundaki sembollerin bir zincir oluşturması sonucu oluşan yapı ile ifade etmek mümkündür. Oluşturulmuş olan her bir kromozom, optimizasyon probleminde uygun bir çözüm olarak düşünülür. Sembollerin her biri gen olarak adlandırılmaktadır ve gen hangi parametreyi ifade edecekse sıra ile dizilmesi sonucu kromozomlar oluşturulmuş olur. GA ve optimizasyon probleminin arasında bulunan bağlantıyı uygunluk fonksiyonu (F) sağlar. F fonksiyonu kromozomlar için kullanılır ve onları gerçel sayılara dönüştürmek için kullanılır. F değerinin büyük olması sonucu kromozomun temsil ettiği çözüm diğer kromozomlara göre daha iyidir.
  • 69. 5) Mutasyon Oranının Etkisi Kromozomların yapısı birbirlerine benzer olmaya başladığı zaman hala çözüm değerlerinin uzağındalarsa, bu durumu mutasyon işlemi ile atlatmak mümkündür. GA’nın çıkmaza girdiği yerden kurtulmak için tek yol olarak da söylenebilir. Ancak yüksek bir değer vermek GA’yı kararlı bir noktaya ulaşmasını zorlaştıracaktır.
  • 70. 6) Çaprazlama Biçiminin Etkisi Normal olarak çaprazlama tek nokta baz alınarak gerçekleştirilir, fakat yapılan araştırmalar bazı problemlerde çok noktalı çaprazlamanın daha fazla yararlı olduğunu göstermiştir. 7) Başarı Değerlendirme Yönteminin Etkisi Her iterasyonun sonunda düzgün yazılmayan bir değerlendirme işlevi çalışma zamanını uzatmanın yanında çözüme hiçbir zaman erişememeye de neden olabilir. Ref: Elen, A., Avuçlu, E., GELECEĞİN DÜNYASINDA BİLİMSEL VE MESLEKİ ÇALIŞMALAR (2019), Ekin Basım Dağıtım.
  • 71. GA’nın Geleneksel Optimizasyon Yöntemleri ile Karşılaştırılması Genetik algoritmaların temel prensibi basittir: Genetik ve doğal seleksiyonu bilgisayar yazılımları kullanarak taklit etmek. Problem parametreleri de DNA’daki gibi bir doğrusal veri yapısı, bir vektör veya bir dizi gibi en doğal biçimi ile kodlanır. Genetik algoritmalar geleneksel optimizasyon tekniklerinden aşağıdaki yönlerden farklıdır:  Genetik algoritmalar problem parametrelerinin kendilerinden ziyade kodlanmış versiyonları ile çalışırlar.  Hemen tüm geleneksel optimizasyon teknikleri tek bir noktadan hareket ederek araştırır ancak Genetik algoritmalar ise tek bir çözüm yerine çözümlerin popülasyonunu kullanır. Bu durum GA’nın global optimuma ulaşma olasılığını artırır ve yerel sabit bir noktaya takılmasından kaçınılmasını sağlar.  Genetik algoritmalar değerlendirme için türevlerden ziyade uygunluk fonksiyonunu kullanır. Bu fonksiyonlar da sürekli yada kesikli her tür optimizasyon problemine uygulanabilir.  Geleneksel yöntemler sürekli optimizasyonlara deterministik dönüşüm uygularken genetik algoritmalar olasılıklı dönüşüm uygular.
  • 72. Genetik Algoritmaların geleneksel yaklaşımların başarısız olduğu durumlarda çarpıcı sonuçlar ortaya koymasını sağlayan diğer bazı farkları ve avantajları aşağıdaki gibi sıralanabilir :  Sürekli ve kesikli değişkenleri optimize edebilir.  Türev alma işlemine gereksinim duymaz.  Çözüm alanında daha geniş örneklemeyi eş zamanlı araştırır. Global optimumu daha kolay belirler. Klasik yöntemlerde ise bu durum tek nokta ve yön olarak karşımıza çıkmaktadır.  Çok sayıda değişken ile çalışabilir.  Farklı problemlere kolaylıkla uyarlanabilir.  Paralel bilgisayarlarla hesaplamalar için oldukça uygundur.  Oldukça karmaşık çözüm yüzeylerinde yerel minimumlara takılmadan değişkenleri optimize edebilir.  Sadece tek bir çözüm yerine optimum değişkenlerin bir listesini verebilir.  Kodlanmış değişkenler ile optimizasyon sağlayabilmek için değişkenleri kodlayabilir.  Nümerik olarak oluşturulan verilerle, deneysel verilerle ve analitik fonksiyonlar ile çalışabilir.  Kendi iç kuralları ile çalıştığı için problemin kurallarını bilmesi gerekmez.  Problemin doğrusallaştırılmasını gerektirmemektedir.
  • 73. Bununla birlikte Genetik algoritmaların her tür problemin çözümünde en iyi metot olduğu da söylenemez. Yalnızca birkaç değişkeni olan düzgün bir analitik fonksiyon geleneksel yöntemlerle kolayca çözülebilir. Bu gibi problemlerde Genetik Algoritma başlangıç popülasyonu için maliyetleri hesaplarken geleneksel yöntemler hesaplamayı tamamlamış olabilir. Genetik Algoritmaların sınırlılıkları ve dezavantajları ise şu şekilde sıralanabilir:  Uygunluk fonksiyonunu tanımlama problemi  Vaktinden önce yakınsama olabilmektedir.  Popülasyon büyüklüğü, mutasyon oranı, çaprazlama oranı, seçim metodu gibi çeşitli parametrelerin belirlenmesi problem oluşturabilir.  Probleme özgü bilgiler kolaylıkla dahil edilemez  Lokal optimumları tanımlamada iyi bir metot değildir.  İyi bir sonlandırıcı değildir. Harici yardım gerekebilir.  Kesin global optimumu bulmada sorun yaşayabilir.  Çok sayıda uygunluk fonksiyonu değerlendirmesine gereksinim duyar.
  • 74. GA’nın Uygulama Alanları Genetik Algoritmaların mühendislik problemlerinde optimizasyon amaçlı olarak kullanılmaya başlanmıştır. Özellikle mekanizma tasarımında çok iyi sonuçlar ortaya konulmuştur. Bunların yanında otomatik programlama, öğrenme kabiliyetli makinalar, ekonomi, ekoloji, planlama, üretim hattı yerleşimi gibi çok farklı alanlarda da başarılı uygulamalar yapılmaktadır. Ayrıca dijital resim işleme tekniğinde de çokça uygulama alanı bulmuştur. Bu problemlerin hemen hemen hepsi çok geniş bir çözüm havzasının taranmasını gerektirmektedir. Bu çözüm havzasının geleneksel yöntemlerle taranması çok uzun sürmekte, genetik algoritmayla ise kısa bir sürede kabul edilebilir bir sonuç alınabilmektedir
  • 75. Genetik Algoritmanın Kısa Tarihçesi Genetik algoritmaların temel ilkeleri ilk kez Michigan Üniversitesi'nde John Holland tarafından ortaya atılmıştır. Holland 1975 yılında yaptığı çalışmaları “Adaptation in Natural and Artificial Systems” adlı kitabında bir araya getirmiştir. Çalışmalarının sonucunu açıkladığını kitabının 1975’te yayınlanmasından sonra geliştirdiği yöntemin adı Genetik Algoritmalar (kısaca GA ) olarak yerleşmiştir. 1985 yılında Holland’ın doktora öğrencisi David E.Goldberg 1989 yılında inşaat konusunda bir klasik sayılan kitabını yayınlayana dek genetik algoritmaların pek pratik yararı olmayan bir araştırma konusu olduğu düşünülüyordu. Kitabında Genetik Algoritmalara dayalı tam 83 uygulamaya yer vererek GA’nın bir anda tanınmasını sağlamış ve çeşitli konularda pratik kullanılabilir olduğunu göstermiştir.
  • 76. Sezgisel bir teknik olarak Genetik algoritmaların Yöneylem Araştırması problemlerinde kullanımı her geçen gün artmaktadır. Genetik algoritmalar temelde iki farklı amaç için kullanılmaktadır: 1. Bir sistem performansını optimize etmek için parametre seçimidir. Bu gibi sistemler muhtemelen kısıtlar ile birlikte büyük ölçüde sistemi kuran ya da işletenlerin belirlediği karar parametrelerine bağlıdır. Genetik algoritma uygulamalarının çoğunluğu sistemleri optimize etmek veya en azından onları optimuma yakınlaştırmaktır. 2. Sayısal modelleri test etmek ve uygunluğunu sağlamaktır. Literatürde karşımıza daha az çıkan bu uygulamalarda öncelikle açıklayıcı ya da tanımlayıcı bir model kurulur, veri toplanır ve model test edilir. Çelişkiler tespit edildiğinde model modifiye edilir. Performans optimizasyonunu hedefleyen algoritmaların aksine burada model ile veriler arasındaki uyumsuzluğun minimizasyonu hedeflenir.
  • 77. Uygulama alanlarının bazıları aşağıdaki gibi sıralanabilir :  Kombinatoryal Optimizasyon (Combinatorial Optimization) problemleri: Gezgin satıcı problemi, araç rotalama problemi, Çinli postacı problemi, iş atölyesi çizelgeleme problemi, atama problemi, yerleşim tasarımı problemi ve sırt çantası problemi vb gibi problem uygulamaları  Bilgisayar ağları tasarımı  Nonlineer dinamik sistem tahmini, veri analizleri  Robot yörüngesi planlama  Görüntü işleme  LISP programlarının geliştirilmesi  Stratejik planlama  Protein moleküllerinin şeklinin bulunması  Gaz boru hattı uygulamaları  İmalat planlama, yerleşim planlama ve kaynak ataması  Mekanik öğrenme,  Yapay sinir ağlarının tasarımı,  Sinyal işleme, filtre dizaynı  Portföy optimizasyonu,  Hisse senedi fiyatlarındaki değişim kalıplarını tahmini  Montaj hattı dengeleme problemleri  Taşıma problemi
  • 78. Genetic Algorithm - Walkers https://kottke.org/plus/misc/images/genetic-walker.gif
  • 79. Genetic Algorithm – The Largest Circle http://petehare.com/writing-a-basic-genetic-algorithm-in-obj-c/
  • 80. Genetic Algorithm – Traveling Salesman Problem https://cdn.analyticsvidhya.com/wp-content/uploads/2017/07/31104045/TravelingSalesmanUSCapitals2.gif
  • 81. Genetik Algoritma Sınıflandırılması/Yaklaşımları/Türleri Genetik algoritmalar problem çözümünde adım adım (step by step) bir prosedür ortaya koyar. Etkin bir arama tekniği olarak kendini ispatladığı için birçok işletme, fen bilimleri, mühendislik vb konularında problem çözümünde kullanılmıştır. Tüm bu özellikleri araştırmacıların genetik algoritmalara farklı yaklaşımlar geliştirmesine de olanak tanımıştır. Farklı genetik algoritma yaklaşımları izleyen slaytlarda açıklanmaktadır.
  • 82. 1) Basit Genetik Algoritma Yaklaşımı Basit genetik algoritmanın mekanizması, dizileri kopyalamak ve belirli kısımlarını değiştirmek dışında karmaşık işlemler içermemektedir. Birçok problemin çözümünde başarılı sonuçlar elde eden bu yaklaşım 3 işlemden oluşmaktadır:  Yeniden birleştirme (reproduction): Yeniden birleştirme aşamasında birey dizileri uygunluk değerlerine göre kopyalanır. En sık kullanılan yöntem rulet tekerleği seçimidir.  Çaprazlama  Mutasyon Basit genetik algoritma kullanımının faydalı olduğu durumlar aşağıda sıralanmıştır:  Arama yüzeyi geniş veya karmaşık ise,  Alan bilgisi veya uzmanlığın arama uzayını kodlamada yetersiz kaldığı durum mevcut ise,  Herhangi bir matematiksel analiz mevcut değil ise  Geleneksel metotlar denemesi başarısız olmuş ise Basit genetik algoritmanın avantajı keyfi kısıt ve amaçlar ile kolayca kullanılabilmesidir. Bununla birlikte kullanımda bazı dezavantajları mevcuttur:  Genellikle etkin değillerdir,  Değerlendirmeler çok zaman almaktadır,  Çok sayıda problemde popülasyonun büyük tutulması gerekmektedir.
  • 83. 2) Paralel Genetik Algoritma Yaklaşımı Çeşitli basit genetik algoritmaların paralel olarak uygulanması ‘paralel genetik algoritma’ olarak tanımlanmaktadır. Bu yaklaşım basit genetik algoritmaların geniş bir arama yüzeyinde optimale yakın çözümü bulmak için harcadığı sürenin kısaltılmasına yönelik geliştirilmişlerdir. Genetik algoritmaların paralel olarak çalıştırılabilmesi aşağıdaki elementlere bağımlıdır:  Uygunluğun değerlendirme ve mutasyonun uygulanma biçimi,  Seçimin lokal veya global uygulanması,  Tek veya çoklu alt popülasyonların kullanılması,  Çoklu popülasyonlar kullanılıyor ise bireylerin değiştirilme biçimi. Probleme alternatif çözümler ortaya koyabilmesi, farklı noktalardan hareketle paralel arama yapılmasını sağlaması, daha hızlı sonuç vermesi ve diğer arama prosedürleri ile kolayca bütünleştirilmesi bu yaklaşımın avantajları olarak sıralanabilir. Paralel genetik algoritma modelinin önemli bir diğer avantajı geleneksel ya da basit genetik algoritmaların erken yakınlaşmasını zorlaştırmasıdır. Birçok araştırmacı tarafından paralel genetik algoritmanın daha gerçekçi bir model olduğu ileri sürülmektedir. Paralel genetik algoritmalar da uygulama metoduna göre kendi içerisinde : A) Bağımsız paralel genetik algoritmalar, B) Göçebe paralel genetik algoritması, C) Bölümlendirme paralel genetik algoritması, D) Segmentasyon paralel genetik algoritması gibi kısımlara ayrılmaktadır.
  • 84. 3) Hibrit Genetik Algoritma Yaklaşımı Hibrit Genetik Algoritma çaprazlama tarafından üretilen yeni bireylerin gelişimi için sezgiselliğin kullanımını sağlamaya dönük geliştirilmiştir. Bir sezgisellik, başlangıç popülasyonu oluşturmada; diğer ikisi de ya çaprazlama ya da karıştırmadan gelen bireylere uygulanmaktadır. Son iki sezgisellik lokal minimuma takılı kalmasını önlemede kullanılmaktadır. Hibrit Genetik Algoritması adımları aşağıda sıralanmaktadır: 1.Adım: Başlangıç Sezgisellik algoritmasını kullanarak ilk popülasyon kısmını oluştur, Popülasyonun kalanını tesadüfi olarak belirle 2.Adım: Başlangıç popülasyonundaki her bir yerleşim için RemoveSharp algoritmasını uygula Başlangıç popülasyonundaki her bir yerleşim için LocalOpt algoritmasını uygula 3.Adım: Tesadüfi olarak iki ebeveyn seç, Seçilen ebeveynlere çaprazlama uygula ve yeni birey oluştur, Yeni bireye RemoveSharp algoritmasını uygula, Yeni bireye LocalOpt algoritmasını uygula, Yeni bireyin uygunluğu herhangi bir ebeveyninden büyük ise onunla yeni bireyi değiştir. 4.Adım: Popülasyondan seçilen herhangi bir bireyi mutasyona tabi tut, 5.Adım: Adım 3 ve 4’ü belirlenen iterasyon sayısınca tekrar et.
  • 85. 4) Adaptif Genetik Algoritma Yaklaşımı Popülasyon Büyüklüğü (), Çaprazlama Olasılığı (Pc) veya Mutasyon Olasılığı (Pm) genetik algoritmanın çalıştırılması sırasında değişiyorsa adaptif genetik algoritmalar olarak adlandırılmaktadır. Çok optimumlu problemlerin optimizasyonunda genetik algoritmaların iki önemli karakteristiğinin olması zaruridir. Bu özelliklerin ilki optimuma yakınsama kapasitesi; ikincisi ise çözüm uzayında global optimumu ararken yeni bölgeleri keşfetme kapasitesidir. Bu iki karakteristik arasındaki denge mutasyon olasılığı, çaprazlama olasılığı ve kullanılan çaprazlama yöntemi tarafından belirlenmektedir. Adaptif genetik algoritma yaklaşımında keşif ve sömürü (exploitation) arasındaki dönüşüm, çözümün uygunluk değerine göre mutasyon olasılığı ve çaprazlama olasılığının değiştirilmesi ile yapılmaktadır. Popülasyonun yerel minimuma takılma eğilimi ortaya çıktığında her iki olasılık da artırılmakta; çözüm uzayına yayılımı artınca da azaltılmaktadır.
  • 86. 5) Messy (Hızlı Dağınık) Genetik Algoritma Yaklaşımı Dağınık genetik algoritma, ikili, stokastik, değişken kromozom uzunluklu ve popülasyon temelli bir problem çözme yaklaşımıdır. Diğer yaklaşımlardan en önemli farkı, en iyi çözüme ulaşmak için genetik materyalin yapı bloklarını (building blocks) açıkça manipüle edebilmesidir. Dağınık genetik algoritma 3 işlem aşaması içermektedir: 1. Başlangıç aşaması, 2. İlksel (primordial) aşama, 3. Bitişiklik durumu (juxtapositonal) aşaması. Adımları:  Başlangıç aşamasında, bir sonraki blok filtreleme aşamasında ortaya çıkabilecek gürültünün (noise) üstesinden gelebilmek için yeter derecede büyük bir popülasyon elde etmek için popülasyon boyutu belirleme denklemi kullanılır.  Popülasyon büyüklüğü belirlendikten sonra başlangıç popülasyonu üyeleri rastgele olarak belirlenir ve seçilen uygulamaya göre onların uygunluk değerleri hesaplanır.  Yapı bloğu filtreleme şeması kullanılarak başlangıç aşamasında belirlenen bu popülasyon üyeleri sistematik olarak, kullanıcı tarafından belirlenen yapı bloğu büyüklüğüne düşürülür.  Yapı bloğu filtrelemede her bir popülasyon üyesinin belirli sayıda bit’i silinir.  Bir sonraki jenerasyon için en iyi kısmi dizilerin saklanabilmesi için bu silme işlemini turnuva seçimi takip eder.  Son aşamada ise filtreleme aşamasında gelen yapı blokları alınır ve bir ‘kes ve dilimle’ (cut-and-slice) operatörü ile birleştirilir.  Bu prosesi de turnuva seçimi izlemektedir.
  • 87. Genetik Algoritmanın Yapay Zekadaki Yeri Artificial Intelligence Machine Learning Neural Networks Deep Learning
  • 88. Genetic Algorithm - Neural Networks - Fuzzy Logic
  • 89. Faydalı olması dileklerimle… Dr. Hakan Erdun , 2020 Ders Notu referans gostermek sartiyla kullanima aciktir.