Genetik Algoritma
Genetik algoritma; doğadaki evrim mekanizmasını örnek alan bir arama metodudur ve bir veri grubundan özel bir veriyi bulmak için kullanılır.Genetik algoritmalar 1970’lerin başında John Holland tarafından ortaya atılmıştır.Genetik algoritmalar, evrimsel genetik ve Darwin’in doğal seleksiyonuna benzerlik kurularak geliştirilmiş “iteratif ”,ihtimali bir arama metodudur.
Genetik algoritmalar doğada geçerli olan en iyinin yaşaması kuralına dayanarak sürekli iyileşen çözümler üretir.Bunun için “iyi”nin ne olduğunu belirleyen bir uygunluk (fitness) fonksiyonu ve yeni çözümler üretmek için yeniden kopyalama (recombination), değiştirme (mutation) gibi operatörleri kullanır.Genetik algoritmaların bir diğer önemli özelliği de bir grup çözümle uğraşmasıdır.Bu sayede çok sayıda çözümün içinden iyileri seçilip kötüleri elenebilir.
Genetik algoritmaları diğer algoritmalardan ayıran en önemli özelliklerden biri de seçmedir.Genetik algoritmalarda çözümün uygunluğu onun seçilme şansını arttırır ancak bunu garanti etmez.Seçim de ilk grubun oluşturulması gibi rasgeledir ancak bu rasgele seçimde seçilme olasılıklarını çözümlerin uygunluğu belirler.
Genetik algoritmaları (GA) diğer metotlardan ayıran noktalar şu şekilde sıralanabilir:
a) GA , sadece bir arama noktası değil , bir grup arama noktası (adaylar ) üzerinde çalışır.Yani arama uzayında , yerel değil global arama yaparak sonuca ulaşmaya çalışır.Bir tek yerden değil bir grup çözüm içinden arama yapar. GA , arama uzayında bireylerin uygunluk değerini bulmak için sadece “amaç – uygunluk fonksiyonu” (objective-fitness function) ister.Böylelikle sonuca ulaşmak için türev ve diferansiyel ,işlemler gibi başka bilgi ve kabul kullanmaya gerek duymaz.
b) Bireyleri seçme ve birleştirme aşamalarında deterministik kurallar değil “olasılık kuralları” kullanır.
c) Diğer metotlarda olduğu gibi doğrudan parametreler üzerinde çalışmaz.Genetik algoritmalar, optimize edilecek parametreleri kodlar ve parametreler üzerinde değil,bu kodlar üzerinde işlem yapar.Parametrelerin kodlarıyla uğraşır.Bu kodlamanın amacı, orijinal optimizasyon problemini kombinezonsal bir probleme çevirmektir.
d) Genetik algoritma ne yaptığı konusunda bilgi içermez, nasıl yaptığını bilir. Bu nedenle kör bir arama metodudur.
e) Olasılık kurallarına göre çalışırlar.Programın ne kadar iyi çalıştığı önceden kesin olarak belirlenemez. Ama olasılıkla hesaplanabilir.
f) GA , kombinezonsal bir atama mekanizmasıdır.
Genetik Algoritmalar , yeni bir nesil oluşturabilmek için 3 aşamadan geçer : Birincisi, eski nesildeki her bir bireyin uygunluk değerini hesaplama.İkincisi, bireyleri, uygunluk değerini göz önüne alarak (uygunluk fonksiyonu ) kullanılarak seçme.Üçüncüsü, seçilen bireyleri , çaprazlama(crossover) , mutasyon (mutation) gibi genetik operatörler kullanarak uyuşturma.Algoritmik bakış açısından , bu aşamalar , mevcut çözümleri lokal olarak değiştirip birleştirmek olarak görülebilir.
Genetik Algoritmalar ; başlangıçta bilinmeyen bir arama uzayından topladığı bilgileri yığıp , daha sonraki aramaları alt arama uzaylarına yönlendirmek için kullanılır.
Genetik Algoritma Tarihçesi:
Genetik algoritmalar yapay zekanın gittikçe genişleyen bir kolu olan evrimsel hesaplama tekniğinin bir parçasını oluşturmaktadır.Adından da anlaşıldığı üzere, evrimsel hesaplama tekniğinin bir parçası olan genetik algoritma Darwin’in evrim teorisinden esinlenerek oluşturulmuştur. Herhangi bir problemin genetik algoritma ile çözümü, problemi sanal olarak evrimden geçirmek suretiyle yapılmaktadır. Evrimsel hesaplama ilk olarak 1960’larda I.Rechenberg tarafından “Evrim Stratejileri (Evolutionsstrategie)” isimli eserinde tanıtılmıştır. Onun fikri daha sonra başka araştırmacıların da ilgisini çekmiş ve geliştirilmiştir. John Holland evrim sürecinin bir bilgisayar yardımıyla kullanılarak, bilgisayara anlayamadığı çözüm yöntemlerinin öğretilebileceğini düşündü. Genetik Algoritma (GA) böylece John Holland tarafından bu düşüncenin bir sonucu olarak bulundu. Onun öğrencileri ve arkadaşları tarafından geliştirildi ve bu sayede Holland’ın kitabı “Doğal ve Yapay Sistemlerde Adaptasyon (Adaption in Natural and Artificial Systems)” 1975 yılında
yayınlandı.
1992 yılında John Koza genetik algoritmayı kullanarak çeşitli görevleri yerine getiren programlar geliştirdi. Bu metoda Genetik Programlama adını verdi. Genetik algoritma geleneksel yöntemlerle çözümü zor veya imkansız olan problemlerin çözümünde kullanılmaktadır. Çok genel anlamda genetik algoritmanın üç uygulama alanı bulunmaktadır. Bunlar deneysel çalışmalarda optimizasyon, pratik endüstriyel uygulamalar ve sınıflandırma sistemleridir.
Mühendislik problemlerinde optimizasyon amaçlı olarak kullanılmaya başlanmıştır. Özellikle mekanizma tasarımında çok iyi sonuçlar verdiği bilinmektedir[9]. Bunlardan başka otomatik programlama, öğrenme kabiliyetli makineler, ekonomi, ekoloji, planlama, üretim hattı yerleşimi gibi alanlarda da uygulanmaktadır. Ayrıca dijital resim işleme tekniğinde de çokça uygulama alanı bulmuştur[10,11].
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.
Performansını Etkileyen Nedenler:
* Kromozom sayısı
* Mutasyon Oranı
* Çaprazlama oranı
* Kaç Noktalı Çaprazlama Yapılacağı
* Çaprazlamanın sonucu elde edilen bireylerin nasıl değerlendirileceği
* Nesillerin birbirinden ayrık olup olmadığı
* Parametre kodlanmasının nasıl yapıldığı
* Kodlama gösteriminin nasıl yapıldığı
* Başarı değerlendirmesinin nasıl yapıldığı
Temel düzeyde bahsedilecek olursa,
1. Problemin aranan çözümleri bitler (ya da harfler) olarak tanımlanır.
2. Çözüm önerilerinin fitness (uygunluk) ları belirlenir.
3. Uygunluğu çok olanın çıkma olasılığı daha fazla olmak üzere rastgele eşleştirme yapılır.
4. Eşlenen çiftler kromozom parçalarını (rastgele bir noktadan başlayarak) takas eder.
5. Programcının isteğine göre bir mutasyon olabilir (tek bir bitin/harfin değiştirilmesi).
6. Yeni çözüm önerileri ile ikinci basamağa dönülür.
Genetic algorithm
In computer science and operations research, a genetic algorithm (GA) is a metaheuristic inspired by the process of natural selection that belongs to the larger class of evolutionary algorithms (EA). Genetic algorithms are commonly used to generate high-quality solutions to optimization and search problems by relying on biologically inspired operators such as mutation, crossover and selection. Some examples of GA applications include optimizing decision trees for better performance, automatically solve sudoku puzzles, hyperparameter optimization, etc.
Genetik Algoritma optimizasyon nedir?
Genetik Algoritma (GA), permütasyon tabanlı bir optimizasyon yapar ve olasılıklar üzerinden yakınsama kriterleri altında arama yapan bir fonksiyondur. Doğada gözlemlenen evrimsel sürece benzer bir şekilde çalışan, arama ve eniyileme yöntemidir.
Genetik algoritma ne için kullanılır?
Genetik algoritma geleneksel yöntemlerle çözümü zor veya imkansız olan problemlerin çözümünde kullanılmaktadır. Çok genel anlamda genetik algoritmanın üç uygulama alanı bulunmaktadır. Bunlar deneysel çalışmalarda optimizasyon, pratik endüstriyel uygulamalar ve sınıflandırma sistemleridir.