Genetik Algoritmalar

Kapat
X
 
  • Filtre
  • Zaman
  • Gösterim
Clear All
yeni mesajlar
  • Sniper®
    Senior Member
    • 22-06-2005
    • 12987

    Genetik Algoritmalar

    İnsan, içinde yaşadığı alemin kanunlarını ve işleyiş mantığını bilmeden hayata gözlerini açar. Ancak kendisine verilen akıl, irade ve ilim potansiyellerini eğitimle geliştirerek hayatı öğrenir ve karşılaştığı problemlere çözüm bulmaya çalışır. İnsan için hayat, bir bakıma problem çözme sürecidir. İnsanoğlu, tarihi birikimi içerisinde, problemlerini çözmede çok sayıda strateji ve metot geliştirmiştir. Kıyaslama, modelleme, danışma, bilgi ve tecrübelerden yararlanma, deneme bunlardan ilk akla gelenlerdir.

    Bilgisayarların ortaya çıkması ve hızlı gelişmesi, problemlerin çözümünde bilgisayarların kullanımını mümkün ve etkin hale getirdi. Problemleri, bilgisayar ortamında ifade edebilmek ve çözebilmek için geliştirilen yöntemlerden biri genetik algoritmalardır.

    “Genetik Algoritmalar” simli çözüm arama tekniği, ilk defa 1960’lı yıllarda John Holland tarafından ortaya atıldı. Bu çözüm arama tekniği, belirli sayıda aday çözümle yola çıkma, bunlardan alternatif çaprazlamalar ve değişiklikler (mutasyonlar) ile çok sayıda alternatif çözüm üretme ve alternatif aday çözümlerin belirli kriterlere (değerlendirme fonksiyonu) göre seçilmesi gibi işlem basamaklarının sistematik bir şekilde tekrarından ibarettir.

    Kısaca tanımlarsak algoritma, belirli bir işlemin sistematik bir yoldan yapılma metodudur. Bir problemi çözmede genetik algoritma kullanabilmek için muhtemel aday çözümler, dizi yapısında (önermeler halinde) ifade edilmelidir. Bu dizinin her elemanı, adayın bir özelliğini ifade eder.

    Genetik algoritmayı kullanabilmenin bir diğer şartı da hedeflenen çözüm için bir değerlendirme fonksiyonunun var olmasıdır. Değerlendirme fonksiyonu, aday çözümlerin problemin çözümünü ne derece gerçekleştirdikleri hakkında bilgi verir. Bu bilgi, elenecek adayların tespitinde kullanılır.

    Yukarıdaki iki şart bir problem için sağlandıktan sonra, genetik algoritma o probleme çözüm aramada kullanılabilir. Genetik algoritmanın işlem basamakları şöyledir:

    1- Belirli sayıda muhtemel aday çözümler, önce sisteme girilir.

    2- Başlangıçta havuza konan aday çözümler arasında çaprazlamalar ve/veya değişiklikler yapılarak yeni alternatif aday çözümler, bilgisayar ortamında üretilir.

    3- Belirli bir çaprazlama sayısından sonra, ortaya çıkan aday çözümlerin iyilik ve kullanılabilirlik derecesi, önceden belirlenen değerlendirme fonksiyonu kullanılarak hesaplanır.

    4- Hedeflenen çözüme en uzak olan aday çözümlerin büyük bir kısmı silinir. (Suni ayıklama)

    5- Kötü aday çözümlerin ayıklanmasından sonra, tekrarlar belli bir sayıya ulaşmadıysa ve/veya adaylardan en az birinin değerlendirilmesi mümkün değilse, işlemler ikinci basamaktan itibaren yeniden tekrar edilir.

    6- Bu tekrarlar, aranılan hedef çözüm bulununcaya kadar devam eder.

    Algoritmanın durma şartı,tekrarların belli bir sayıya ulaşması olabileceği gibi, çözümlerden birinin belli bir uygunluk değerini sağlaması da olabilir.

    Aday çözümler, genetik kodun mecazi olan dizi yapısında ifade edilmeden mutasyon veya çaprazlama işlemine tabi tutulursa kolayca kırılırlar. Yani aday daha iyiye veya daha kötüye gitmez ama, manası kaybolur.

    Bir örnekle kırılmayı açıklayalım. Hem karayollarında hem de demiryollarında gidecek bir vasıta yapmak için bir otomobilden ve lokomotiften bazı parçalar alıp doğrudan birleştirirsek (muhtemelen birleştirmede de problemler doğar) iki yolda da çalışmayan garip bir araç ortaya çıkar. Kırılma olayına daha çok şartlı problemlerde rastlanılır. Mesela bir otomobilin motorunun olması şarttır. Otomobilin ağırlığını azaltmak için motoru çıkartılamaz.

    Bazı durumlarda genetik algoritmaya dayalı çözümlerde, iyi adayın çaprazlanması manasız şekle de dönüşebilmektedir.

    Mesela, bir okul için hazırlanmış iki farklı ders programını rastgele çaprazlarsak ikisinden de iyi bir programın ortaya çıkma ihtimali oldukça zayıf olabilmektedir, Bunun sebebi, genelde bilgilerin bir bütün ve sistem içerisinde anlam taşımasıdır. Parçalar olarak bilgiler genelde tek başlarına pek mana ifade etmemektedirler. İnsanın geliştirdiği genetik algoritmalarda henüz bu şekilde, sistemin tümünü dikkate alıp değerlendiren bir kılavuz tanımlanamadığından yapılan işlemler, deneme-yanılma metoduna göre el yordamıyla arama tarzında yapılır.

    İnsanın tabiata bakarak geliştirdiği genetik algoritma isimli çözüm tekniğinde denenen adayların bir daha denenmemesi için iyi çalışan engelleyici bir mekanizma henüz geliştirilememiştir. Bundan dolayı da iyi çözümden kötü çözüme geri dönme riski vardır. Ayrıca ne kadar sürede istenen iyi çözümlere ulaşılabileceği de tam olarak bilinememektedir. Birçok problem çözme tekniğinde, bu şuna bağlı ise, şuraya git; veya bu şundan küçük veya büyük ise, beşinci işleme geri dön gibi alternatif işlem komutları ile adayların gösterimi mümkün olabilirken, şu an için genetik algoritmalarda adayların gösteriminde sadece “ve” bağlacı kullanılabilmektedir (Nichoas, 1993:126).

    Problemlere çözüm aramada bu tür bir yaklaşımın kullanılmasının her zaman ve her problem için ekonomik ve avantajlı olmaması bu çözüm arama tekniğinin bir başka dezavantajıdır. Çünkü birçok problemde parametre sayısına paralel olarak aday çözümlerin sayısı da hızla artabilmektedir. Çok kısa bir zaman içinde pratik olarak sonsuz denebilecek sayıda muhtemel çözümlere ulaşılır. Bu aday çözümlerin içinden en iyi olanları- nın ayıklanması işlemi, zaman alıcı ve uğraştırıcı olabilir.

    Ancak yeni modellerin ve ürünlerin tasarımında bu tür problem çözme tekniği, oldukça avantajlı olabilmektedir. Çünkü yüzlerce muhtemel geçerli veya geçersiz aday çözümler üretmekte ve daha geniş bir aralıkta daha doğru, yeni ve orijinal ürünler ortaya çıkarmaya yardımcı olmaktadır.
İşlem Yapılıyor
X