Ana içeriğe atla
Psikoloji Sözlüğüm LogoPsikoloji Sözlüğüm

Genetik Programlama

Genetic Programming

Tanım

Bilgisayar kodlarından oluşan çözüm kümelerinin, evrimsel süreçler ve genetik operatörler aracılığıyla en uygun çözümü bulmak üzere iteratif olarak evrimleştirildiği bir yapay zeka arama tekniğidir.

Örnek Vaka / Uygulama

Karmaşık finansal piyasa hareketlerini tahmin etmek ve en karlı alım-satım stratejilerini otomatik olarak türetmek amacıyla yüzlerce matematiksel formülden oluşan bir program popülasyonu oluşturulur. Sistem, geçmiş veri setleri üzerinde bu formülleri test eder; en yüksek doğruluk oranına sahip formülleri 'ebeveyn' olarak seçer, mutasyon ve çaprazlama yoluyla yeni formül nesilleri üretir ve nihayetinde en yüksek uyum değerine sahip üstün ticaret algoritmasını elde eder.

Derin Analiz

Bilişsel bilimler ve yapay zeka alanında, John Koza'nın öncülük ettiği genetik programlama, geleneksel programlama paradigmasından ayrılarak, bilgisayara 'ne yapılacağını' değil, 'istenen sonuca nasıl ulaşılacağını' doğal seçilim ilkeleriyle öğretir. Süreç, rastgele üretilmiş bilgisayar programlarından oluşan bir popülasyonla başlar. Her bir birey (program), önceden tanımlanmış bir uyum metriği (fitness metric) ile test edilir. Doğal seçilim kurallarına göre en yüksek uyum skoruna sahip programlar sonraki kuşağa aktarılmak üzere seçilir. Çaprazlama (crossover) operatörü, iki programın kod bloklarını karşılıklı değiştirerek yeni ve hibrit çözümler türetirken, mutasyon (mutation) operatörü kodun rastgele bileşenlerini değiştirerek popülasyona genetik çeşitlilik kazandırır. Bu yinelemeli döngü, en uygun ve optimize edilmiş bilgisayar koduna ulaşılana kadar devam eder.

Etimoloji

İngilizce 'genetic' (genetiğe ait, kökensel, Latince 'genesis' [oluşum, doğuş] ve Yunanca 'gignesthai' [doğmak] köklerinden) ve 'programming' (programlama, program yazma, Eski Yunanca 'programma' [halka açık duyuru, taslak] sözcüğünden) kelimelerinin birleşiminden türetilmiştir.

Karıştırmayın

Genetik algoritmalar (GA) ile sıkça karıştırılır. Genetik algoritmalarda çözümler genellikle sabit uzunlukta sayısal diziler (vektörler) şeklinde temsil edilirken, genetik programlamada çözümler doğrudan yürütülebilir bilgisayar kodları, ağaç yapılı ifadeler veya programlar biçimindedir.