• Sonuç bulunamadı

1. BÖLÜM

2.3. Genetik Algoritma (GA)

2.3.1. Genetik Algoritma Terminolojisi

Genetik Algoritma terimleri arasında genetik biliminde var olan terimler sıklıkla kullanıldığından bu terimlerin biyolojideki terminolojisi hakkında açıklama yapmak faydalı olacaktır.

Tüm canlıların en küçük yapı taşı hücrelerdir. Organizmanın özelliklerini taşıyan her hücrenin DNA zinciri vardır. Genler DNA’yı oluşturur. DNA’lar proteinlerle birleşerek kromozomları oluşturur. Genlerdeki kodlar vasıtasıyla genetik

özellikler sonraki nesillere aktarılır. Genetik özelliklerin değişik karakterlerinin her biri alel olarak isimlendirilir (Mitchell, 1999: 5).

Genom canlıların genetik yapısında bulunan kodların tamamını simgeler. Genotip ise bir canlı türünün sahip olduğu genlerin tamamıdır, sembollerle (harflerle) gösterilir. Gen yapısının ve çevrenin birlikte oluşturduğu etki canlının dış görümüne yansır ve bu görünüme calının fenotipi denir (Haupt ve Haupt, 2004: 22). Kromozom, gen ve alel ilişkisi Şekil 2.5’te gösterilmiştir.

Şekil 2.5. Alel, Gen ve Kromozomlar

(Kaynak: Rothlauf, 2006: 11)

2.3.1.1. Kromozom (DNA Dizileri)

Genetik Algoritma, çözülmesi istenen optimizasyon probleminin analizini kromozomları içine alan çözüm kümesi alternatifleri ile başlatır. Her kromozom, üyesi olduğu çözüme ait genetik bilgileri içerir ve bu bilgiler bir dizinin terimleri gibi kodlanır (Paksoy, 2007: 21).

Kromozomlar üzerinde kodlanan genetik bilgiler, popülâsyonun tamamındaki genetik çeşitliliği ifade edecek şekilde kodlanmalıdır. Aksi takdirde başarılı bir Genetik Algoritma tasarlanmış olamaz (Mori ve Tseng, 1997).

Kromozomlar üzerindeki genetik bilgiler, önceden problemin optimum çözümünü sağlayacak şekilde tasarlanarak kodlanmalıdır. Kodlamanın Genetik Algoritma’nın ilk uygulandığı zamanlarda ikili sayma sistemi dikkate alınarak yapıldığı bilinmektedir. İkili sayı sistemine göre tasarlanan kodlar çözüm uzayının bir kromozom büyüklüğü kadar kısmını ifade eder ve bu şekilde kodlanmış

kromozom yapıları bilgisayar yazılımlarında daha kolay ve hızlı analiz edilebilmektedir (Kurt ve Semetay, 2001).

Kromozomların kodlanmasında özellikle ikili sayı sisteminin kullanılmasının nedeni, çıktı olarak ifade edilen nümerik değerlerin tamsayı ve reel sayı olarak ifade edilmesidir. Bu şekildeki analiz sonuçları karşılaştırılabilir olduğundan tercih edilir (Mitchell, 1999: 67).

2.3.1.2. Gen

Gen, kromozomun belirli bir kısmını oluşturan nükleotid dizisidir. Bu yönüyle canlı genetiğinin en fonksiyonel birimidir. Genler, kendilerine özgü şifrelerle kodlanmış kromozomlar üzerinde bulunur ve konumları bir dizinin sıralı elemanlarına benzediğinden gen dizileri olarak da tanımlanırlar (Koza, 1995). Optimizasyon modelinin amaç fonksiyonundaki karar değişkenleri arama uzayındaki kromozomlarla ifade edilebilmelidir.

2.3.1.3. Toplum Büyüklüğü

Toplum büyüklüğünü bir diğer ifade ile popülâsyon genişliğini en uygun şekilde belirlemek tüm Genetik Algoritma araştırmacıları için önemlidir. Toplumu oluşturan kromozom veya genlerin miktarı algoritmanın sonlandırılma zamanını ve modelin oluşum başarısını bire bir etkiler.

Popülâsyon genişliğinin gerekenden küçük olması Genetik Algoritma arama operatörlerinin optimum sonucu bulmak için kısıtlı ve dar bir uzayda arama yapması demektir. Gerekenden küçük seçilen çözüm uzayı ise optimum çözümünün seçilen uzayın içinde olmaması olasılığını arttırır. Popülâsyon genişliğinin gereğinden fazla büyük alınması da Genetik Algoritma’nın istenen sonuçlara uzun zamanda ulaşmasına ve algoritmanın yavaşlatılmasına neden olur (Goldberg, 1992; Kurt ve Semetay, 2001).

2.3.1.4. Uygunluk Değeri

Genetik Algoritma’nın çalıştırıldığı toplumda istenen özelliklere sahip bireylerdeki genetik özelliklerin sonraki nesillere aktarılması için bir değerlendirme kriteri veya kriterleri olması gerekir. Uygunluk fonksiyonu, bireylerdeki özelliklerin sonraki nesillere aktarılıp aktarılmaması gerektiğini başlangıçta belirlenen algoritmanın amaçları doğrultusunda oluşturulan uygunluk kriterleri vasıtasıyla yapar (Sivanandam ve Deepa, 2008: 41).

Genetik Algoritma optimizasyon yönteminin özelliği gereği modelin esasını teşkil eden uygunluk fonksiyonunun analizi için geleneksel metotlarda olduğu gibi türev veya diğer analitik işlemler gerekmediğinden problemin yapısına uygun olarak değişkenler ve kısıtları oluşturulabilir. Bir kısım bilim adamı her bir kromozoma uygunluk değeri atanmasını savunurken diğer bir kısım da toplumun tüm bireylerinin uygunluğunu değerlendirecek bir uygunluk fonksiyonu atamayı tercih ederler. Bireyler uygunluk fonksiyonundaki değerlerine göre çoğalma, çaprazlama veya mutasyon işlemlerine tabi tutulmaktadırlar (Koza, 1995).

Bilindiği üzere genlerin veya her bir bireyin toplumun genel amaçlarına ne kadar uygun olduğu, uygunluk fonksiyonunda aldığı değere göredir. Uygunluk değeri büyük olan birey, istenen en iyi çözümü sağlayacak birey olarak kabul edilir (Mori ve Tseng, 1997). Bu nedenle modellerin optimizasyonlarında geliştirilen Genetik Algoritmaların başarısı uygunluk değerleri yüksek kromozomların sonraki nesillere aktarılabilmesi ile ölçülür.

2.3.1.5. Arama Uzayı

Optimizasyon problemleri genelde optimum çözümü sınırlı bir çözüm kümesi içinde arar. Olası bütün çözüm kümelerinin birleşimine “arama uzayı” denir. Arama uzayındaki bütün değerler muhtemel bir çözümü gösterir (Sivanandam ve Deepa, 2008: 20). Bunun için her olası çözüm, modelin amaç fonksiyonuna bağlı olarak uygunluk değeri ile belirlenir. Uygunluk fonksiyonu, çözüm kümeleri içindeki tüm elemanların uygunluğu ile ilgilidir. Çözüm uzayından alınan değerler arasındaki

değişimlerin hesaplanabildiği durumlarda arama uzayı kavramı çözüm elemanlarını sınırlar ve çözüme uygunluk değeri atanabilir.

2.3.1.6. Kodlama

Genetik Algoritma’yı diğer optimizasyon yöntemlerinden farklı kılan en belirgin özellik değişkenlerin asılları yerine onları temsil eden kodlarını veya seri numaralarını kullanmasıdır. Genetik Algoritma’da her gen veya kromozom ayrı kodlanır. Bu kodlama işleminde daha çok sayılar kullanılmaktadır. Kodlama aslında modelin analizi ile ilgilidir. Genetik Algoritma’nın optimizasyon problemindeki başarısı bir bakıma kodlamanın dikkatli ve hatasız yapılması ile ilgilidir (Dengiz ve Altıparmak, 1998; Banzhaf ve diğ., 1998: 95).