Mart 2010
Bilgisayar Bilimi

Genetik Programlama

Genetik programlama, evrimsel algoritma tabanlı programlama metodolojisidir. Genetik programlamada amaç evrim teorisinden esinlenerek oluşturulan genetik algoritmalar kullanılarak kullanıcı tarafından tanımlanmış görevlerin yerine getirilmesidir.

Genetik programlama ilk olarak 1954 yılında İtalya-Norveç asıllı matematikçi Nils Aall Baricelli tarafından evrim simülasyonları için evrimsel algoritmalar kullanılmasıyla başladı. 1960lı yıllarda ve 1970'lerin başında ise genetik algoritmalar optimizasyon problemlerinin çözümlerinde ciddi önem kazandılar. Alman bilgisayar bilimcisi Ingo Rechenberg çalışma grubuyla birlikte 1971 yılında evrimsel stratejiler kullanarak karmaşık mühendislik problemlerini çözmeyi başarmış ve bunu da doktora tezinde belgelemiştir. 1985 yılında ise Nichael L. Cramer tarafından ilk kez “ağaç tabanlı genetik programlama” ortaya atılmış, ve bu daha sonra John R. Koza tarafından geliştirilerek birçok karmaşık optimizasyon ve arama problemlerinde kullanılmıştır. 1990lı yıllarda ise bilgisayarlardaki artan işlemci gücüyle beraber genetik programlamanın kullanım alanı daha da genişlemiş; bu yeni metod kuantum hesaplamaları, elektronik dizayn, oyun programlama, sıralama, arama gibi birçok alanda yoğun bir şekilde kullanılmaya devam edilmiştir.

Genetik programlama metodolojisinin temelinde genetik algoritmalar yatmaktadır. Bu algoritmalar da Darwin'in evrim teorisinden ilham alınarak ortaya çıkmıştır. Bu algoritmalarda problem, evrimsel süreç kullanılarak çözülmeye çalışılmaktadır. Genetik algoritma toplum adı verilen ve kromozomlarla temsil edilen bir çözüm kümesi ile başlamaktadır. Bir toplumdaki çözümler yeni toplumların üretilmesinde kullanılmaktadır; yeni ortaya çıkan toplumların ise atalarından daha iyi olacağı umulmaktadır. Yeni ortaya çıkan toplumdaki çözümler uygunluklarına göre seçilir ve tekrar üretim için daha fazla şansa sahip olur. Bu süreç elde edilmek istenen sonuca ulaşıncaya kadar tekrar eder. Genetik algoritmanın daha iyi anlaşılması için aşağıdaki algoritma taslağını inceleyebiliriz:


Genetik algoritmanın en önemli kısımları yukarıda da adı geçen çaprazlama ve mutasyon kısımlarıdır. Ayrıca yukarıda adı geçen kromozomlar da algoritmadaki çözümler hakkında bilgi içerir.

Evet arkadaşlar, bu ayki yazımda genetik programlama konusunu teknik detaylara inmeden anlatmaya çalıştım. Yazıdan da anlaşılacağı gibi genetik programlama çok karmaşık problemlerde mühendisler ve bilim adamlarının imdadına yetişmektedir ve bunu da Darwin'in evrim teorisinden ilham alarak yapmaktadır.

Bir dahaki yazıda görüşmek üzere!

Kaynaklar




Bahadır Hatunoğlu
- 3 -