Genetik Algoritma/Programlama

Slides:



Advertisements
Benzer bir sunumlar
Yapay Zeka ve Makine Öğrenmesine Genel Bir Bakış
Advertisements

Unsupervised Learning (Kümeleme)
Karmaşıklık Giriş.
Karmaşıklık Giriş.
MIT503 Veri Yapıları ve algoritmalar
KARAR TEORİSİ.
IT503 Veri Yapıları ve algoritmalar
Yapay Zeka DR.KORHAN KAYIŞLI.
MIT503 Veri Yapıları ve algoritmalar Algoritma Oluşturma – Açgözlü algoritmalar ve buluşsallar Y. Doç. Yuriy Mishchenko.
Sistem Analizi ve Planlama
GENETİK ALGORİTMALAR (GA)
Bilgi Teknolojisinin Temel Kavramları
GENETİK ALGORİTMALAR (1-15.slayt).
SAÜ. ENDÜSTRİ MÜHENDİSLİĞİ BL. GENETİK ALGORİTMALARIN UYGULANMASI
Filogenetik analizlerde kullanılan en yaygın metotlar
4 Kontrol Yapıları: 1.Bölüm.
AKADEMİK BİLİŞİM ’07’ 31OCAK-2 ŞUBAT 2007 KÜTAHYA
CLUSTERING USING REPRESENTATIVES Hazırlayan: Arzu ÇOLAK
MIT503 Veri Yapıları ve algoritmalar Algoritmalara giriş
MAKSİMUM OLASILIK (MAXİMUM LİKELİHOOD)
META SEZGİSEL YÖNTEMLER
Lokal Arama Algoritmaları
NESNEYE YÖNELİK PROGRAMLAMANIN TEMEL İLKELERİ GENEL BİR BAKIŞ
While Döngüsü Tekrarlama deyimidir. Bir küme ya da deyim while kullanılarak bir çok kez yinelenebilir. Yinelenmesi için koşul sınaması döngüye girilmeden.
Nesneye Dayalı Programlama
Görsel C# ile Windows Programlama
Bilgisayar Programlama
Veri Yapıları ve Algoritmalar
YERLEŞTİRME DÜZENİ TİPLERİ
Algoritmalar (Algoritms)
Algoritmalar (Algoritms)
1 Ekonominin Kapsamı ve Metodu KISIM I EKONOMİYE GİRİŞ BÖLÜM İÇERİĞİ
PROGRAMLI ÖĞRETİM Tanımı:
BİYOİNFORMATİK NEDİR? BİYOİNFORMATİKTE KULLANILAN SINIFLAMA YÖNTEMLERİ
CASE FAIR OSTER Prepared by: Fernando Quijano & Shelly Tefft.
ENF 204 Bilgisayar Programlama Algoritma ve Akış Diyagramları
Bilgi Teknolojisinin Temel Kavramları
Şahin BAYZAN Kocaeli Üniversitesi Teknik Eğitim Fakültesi
BİL551 – YAPAY ZEKA Genetik Algoritma
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Bölümün Amacı Bu bölümün amacı, örgütlerin peşinde koştukları hedeflerin türlerini ve yöneticilerin bu hedeflere ulaşmak için kullandıkları rekabetçi.
Bulanık Mantık Kavramlar:
Bulanık Mantık Tabanlı Uçak Modeli Tespiti
BİL3112 Makine Öğrenimi (Machine Learning)
END 457 Sezgisel Arama ve Yapay Zeka
BİL551 – YAPAY ZEKA Kümeleme
M.Fatih AMASYALI Yapay Zeka Ders Notları
ÇEVİK (Agile) SÜREÇLER Değişen gereksinimler, teknik riskler gibi önceden belirlenemeyen durumlara ve yazılım ürününü etkileyebilecek her tür değişikliğe.
Bölüm10 İteratif İyileştirme Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Yapay Zeka Algoritmaları
Makine Öğrenmesinde Yeni Problemler YILDIZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ.
Genetik Algoritma.
ÖĞRETİM TEKNOLOJİLERİ
C Programlama Dili Bilgisayar Mühendisliği.
Algoritmalar II Ders 8 Açgözlü Algoritmalar.
POPULASYON GENETİĞİ.
6. İŞLETMENİN PERFORMANSI
SONLU ELEMANLAR YÖNTEMİ
FONKSİYONLAR.
Problem Çözme Yaklaşımları
Makine Öğrenmesinde Yeni Problemler
Algoritma Nedir? Algoritmayı, herhangi bir problemin çözümü için izlenecek yolun adımlar halinde yazılması olarak tanımlayabiliriz. Algoritma, bir problemin.
Fırat Üniversitesi Mühendislik Fakültesi Elektrik-Elektronik Müh.
Bilgisayar Bilimi Problem Çözme Süreci-2.
YER DEĞİŞTİRME VE DEĞER DÖNÜŞTÜRME ÖZELLİĞİNE SAHİP GÖRÜNTÜ ŞİFRELEME ALGORİTMALARININ ANALİZİ Erdal GÜVENOĞLU Nurşen SUÇSUZ 
M. Aykut Yiğitel, Tolga Tolgay ve Cem Ersoy
Yapay Zeka Nadir Can KAVKAS
Bilgisayar Bilimi Problem Çözme Süreci-3.
MELEZ BİR ENİYİLEME YÖNTEMİ İLE ROTA PLANLAMA
Sunum transkripti:

Genetik Algoritma/Programlama Göksel ÜÇER http://gokselucer.blogspot.com goksel.ucer@netsis.com.tr 22 Mart 2007, Sürüm 1.5

İçerik Genetik Algoritma (GA) Genetik Programlama (GP) Evrim süreci, Uygulama adımları, Parametreler, GA kodlama türleri, Basit örnek, Araçlar Genetik Programlama (GP)

Genetik Algoritma ( GA ) 1. Konu

Evrim ? Evrimsel süreç bir seçim fonksiyonudur. İyi olan örneklerden daha iyi örneklerin oluşması doğaldır. Seçimlerde kullanılan kalite faktörüne fitness adı verilmektedir.

Temel evrim algoritması (EA)

Temel evrim algoritması (EA) { Başlangıç kitlesini belirle; Kitleyi evrimleştir; while Cikis_Kriteri_Saglanmadikca Yeniden üretim için seçim yap; Mutasyona uğrat ya da tekrar üret; }

EA için temel kavramlar Population of Solution Kitlenin büyüklüğü EA’nın en önemli parametresidir. Innovation ( Motivation ) Farklı jenerasyonların oluşmasını ve ulaşılabilecek tüm çözümlere gidişi sağlar Conversation Yeni jenerasyonlardan öğrenilen bilgidir. Amaç fonksiyonuna gitmek için birincil derecede araç olarak kullanılabilir

EA için temel kavramlar Quality Diffrentials Yeni jenerasyonların oluşumuna paralel davranış farklılıkları da ortaya çıkar. Tüm bunların arasından amaca gitmek için fitness fonksiyonu kullanılmalıdır. Selection İlk başlangıç çözüm kitlesi, tüm çözüm kümesini temsil etmez Seçim işlemi, bu kümeyi oluşturmada önemli bir etkendir. Darwin sürecini izlemek, seçim süreci anlamına gelmektedir!

GA giriş – 1 GA doğadaki evrim yöntemlerini kullanan bir arama yöntemidir. GA yöntemi ilk olarak, John Holland ve arkadaşlarının yaptığı çalışmalarda 1970’li yıllarda ortaya çıkmıştır. GA’nın temel amacı, fazla sayıda kısıt içeren ve karmaşık eniyileme sorunlarının çözümlerini, yazılımlar yardımıyla araştırmaktır.

GA giriş – 2 Konuyla ilgili Goldberg, 1989 yılında “Genetic Algorithms in Search, Optimization, and Machine Learning” adlı klasik sayılacak eseri yayınlamıştır. Bu eserle birlikte, konu üzerine yapılan çalışmalar büyük hız kazanmıştır.

GA nedir? GA, rastsal arama tekniklerini kullanarak çözüm bulmaya çalışan, parametre kodlama esasına dayanan bir arama tekniğidir. Bir veri grubu içinde özel bir veriyi bulmak için kullanılır. (Goldberg, 1989)

GA kullanım alanları Hat dengeleme Yapay sinir ağları Görüntü işleme Gezgin satıcı problemi (TSP) Eniyileme yöntemleri Bakım, servis, depo toplama vs.

GA ile klasik eniyileme arasındaki temel farklar GA parametrelerin kendileri ile değil, parametre takımının kodlanmış bir haliyle uğraşırlar. GA amaç fonksiyonunun türevlerini ve bir takım ek bilgileri değil, doğrudan amaç fonksiyonunun kendisini kullanırlar. GA’da deterministlik değil rastlantısal geçiş kuralları kullanılır. Oğuz ve Akbaş (1997)

GA uygulama adımı – 1 GA basit olarak aşağıdaki temel adımlardan oluşmaktadır: İlk değerlendirme, sonraki değerlendirme, Ve daha sonraki değerlendirme, Sistemin ne zaman durması gerektiğine karar ver!

GA uygulama adımı – 2 Başlangıç popülasyonunu rastlantısal olarak üret. Popülasyon içindeki tüm kromozomların amaç fonksiyonu değerlerini hesapla. Tekrar üreme, çaprazlama ve mutasyon operatörlerini uygula. Oluşturulan her yeni kromozomun amaç fonksiyonu değerlerini bul. Amaç fonksiyonu değerleri kötü olan kromozomlar popülasyondan çıkar. 3-5 arasındaki adımlar tekrar et.

GA uygulama gösterimi 2 1 4 3 Negnevitsky, Pearson Education, 2005

GA terimleri Gen Kromozom (Birey) Kalıtsal molekülde bulunan ve organizmanın karakterlerinin tayininde rol oynayan kalıtsal birimlere denir. Yapay sistemlerde gen, kendi başına anlamlı bilgi taşıyan en küçük birim olarak tanımlanır. Kromozom (Birey) Birden fazla genin bir araya gelerek oluşturduğu diziye denir. Kromozomlar, alternatif aday çözümleri gösterirler.

GA terimleri Popülasyon Kromozomlardan oluşan topluluğa denir. Popülasyon, geçerli alternatif çözüm kümesidir. Popülasyondaki birey sayısı (kromozom) genelde sabit tutulur. GA’da popülasyondaki birey sayısı ile ilgili genel bir kural yoktur. Popülasyondaki kromozom sayısı arttıkça çözüme ulaşma süresi (iterasyon sayısı) azalır.

GA terimleri Kodlama Kodlama GA’nın çok önemli bir kısmını oluşturmaktadır. Probleme GA uygulanmadan önce, verinin uygun şekilde kodlanması gerekmektedir. Kurulan genetik modelin hızlı ve güvenilir çalışması için bu kodlamanın doğru yapılması gerekmektedir.

GA kodlama türleri Binary Kodlama Her kromozom ikili diziye sahiptir { 0, 1 } Bu dizideki her bit, çözümün belli karakteristiğini temsil eder veya tüm dizi bir sayıyı temsil eder. Kodlamada en sık kullanılan yöntemdir Örnek { 10101001 }

GA kodlama türleri Permütasyon Kodlama 7 8 9 4 1 8 7 9 1 4 Düzenleme problemlerinde kullanılır. Burada her kromozom, sayıları bir sırada temsil etmektedir. Permütasyon kodlama, gezgin satıcı ve çizelgeleme problemleri için kullanışlıdır. Kromozom A 7 8 9 4 1 Kromozom B 8 7 9 1 4

GA kodlama türleri Değer Kodlama Gerçek sayılar gibi karmaşık değerlerin kullanıldığı problemlerde, ikili kodlama zor olduğu için doğrudan değer kodlanması kullanılabilir Kromozom A 1.2324 3.5354 4.6465 3.5556 Kromozom B Doğu, Batı, Güney, Kuzey

GA kodlama türleri Ağaç Kodlama Bu yöntem gelişen, değişen programlar veya ifâdeler için kullanılır. Örneğin GA. Ağaç kodlamada her kromozom, bâzı nesnelerin (örneğin fonksiyonlar ya da programlama dilindeki komutlar gibi) ağacıdır.

GA ile çözüme giderken kullanılan işlemler Generality / Specifity En geniş çözüm kümesinden en dar çözüm kümesine doğru ilerlemek Genetik Programlama Çaprazlama(Crossover) Programda iki değişikliğin yapılması Mutasyon(Mutation) Programda tek bir değişikliğin yapılması

Arama stratejileri Blind Search Hill Climbing Beam Bir önceki çözüme ait hiçbir bilgi kullanılmıyorsa Hill Climbing Uygun bir çözüm bul  dönüştür  yenisi iyi ise sakla değil ise değiştir  devam et Beam Arama maliyeti açısından Blind ve Beam arasındadır. Örnek bir kitle ile işleme devam eder ve tüm olasılık uzayını sınırlar. İlk başlangıçta belirtilen noktalar ile işleme devam eder.

GA parametreler Seçim Yöntemi Yeni popülasyonun seçilmesinde kaç ferdin seçileceği ve hangi fertlerin eşleme için seçileceği seçim fonksiyonuyla sağlanır. Ebeveynler uygunluk değerlerine göre eşleşmek üzere seçilirler.

Seçim yöntemi – 1 Rulet-Çember Seçimi Uygulanışı : En basit seçim yöntemi olarak bilinmektedir. Uygulanışı : Tüm fertler birbirine bitişik bir şekilde düz bir çizgi üzerine dizilirler. Her bir ferde ilişkin bölümün uzunluğu, onun uygunluk değeri kadar olur. Rasgele sayı üretilir ve rasgele sayı hangi bölüm içerisine gelirse, o bölümün ait olduğu fert seçilir. İşlem ulaşılacak popülasyonun gerekli adedi elde edilene kadar devam eder.

Seçim yöntemi – 2 Rank Seçimi En iyi kromozomun UD çok yüksek ise, Rulet-Çemberi seçim yöntemi problem yaratabilir(Sürekli yüksek olasılığa sahip kromozom seçilecek). Bu nedenle, Rank seçim yöntemi uygulanabilir. Popülasyon uygunluk değerine göre tersten sıralanır. Yani en iyi kromozom N adetlik bir popülasyonda N değerini alır Seçim bu değerlere göre yapılır.

GA seçim grafikleri Rulet-Çember Seçimi Rank Seçimi Öncesi Rank Seçimi Sonrası

Seçim yöntemi – 3 Kararlı Hal Seçimi (Yerine Geçme) Bu seçimin ana düşüncesi, kromozomların büyük kısmının bir sonraki nesilde hayatta kalmak zorunda olmasıdır. Yeni çocuklar oluşturmak için her nesilde UD yüksek birkaç kromozom seçilir. UD düşük bâzı kromozomlar atılır ve yeni çocuk onun yerine yerleştirilir. Popülasyonun geri kalan kısmı yeni nesilde hayattadır. Bu yöntemde alt popülasyon oluşturulduktan sonra uygunluklar hesaplanır, en kötü kromozomlar yerlerini başlangıç popülasyonundaki en iyi kromozomlara bırakır.

GA parametreler Çaprazlama Oranı ve Mutasyon Yöntemi Çaprazlama oranı, fertlerin eşleştiklerinde mutasyon yapıp yapmayacaklarına ilişkin olasılığı ifâde eden orandır. Eğer eşleşme sonucunda çaprazlama da oluşursa, yeni ve genellikle ebeveynlerinden farklı bireyler elde edilmiş olur. Eğer çaprazlama gerçekleşmezse, bu takdirde ebeveynlerinin kopyası olan yeni fertler oluşur. (Baskak ve Erok, 2004)

Çaprazlama Çaprazlama, iki kromozomun (çözümün) birbirleri arasında gen alışverişinde bulunup iki yeni kromozom oluşturmasıdır. Genetik algoritmadaki en önemli parametrelerden bir tanesidir. İkili yöntemle kodlanmış değişkenlerin yaptıkları üreme faaliyeti, kromozomların çaprazlamasına benzemesi dolayısıyla böyle adlandırılmaktadır. Eğer kodlamada gerçek değerler kullanılıyorsa, klasik çaprazlama yöntemi yerine daha farklı yöntemler kullanılmaktadır. Seçim yöntemi ile yapay seçim sonucunda elde edilen yeni popülasyon dizisinden rastsal olarak iki kromozom seçilir ve karşılıklı çaprazlama işlemine tâbi tutulur. (Holland, 1975)

Çaprazlama gösterimi Negnevitsky, Pearson Education, 2005

Çaprazlama şekilleri Tek noktalı Çaprazlama İki noktalı Kes ve ekle

GA parametreler Mutasyon Oranı ve Mutasyon Yöntemi Mutasyon Oranı, mutasyon olasılığını gösteren orandır. Amaç mevcut kromozomların genlerinin bir ya da birkaçını değiştirerek yeni kromozomlar elde etmektir. Genelde mutasyon olasılığı (0.01 gibi) düşük tutulmaktadır. Bu nedenle mutasyon etkileri kromozomlarda az görülmektedir. Mutasyon sırasında kromozomdaki gen sayısı değişmez, sabit kalır. Mutasyon yapılmasının bir başka amacı da, popülasyondaki çeşitliliğin azalmamasını sağlamaktır

Mutasyon gösterimi Negnevitsky, Pearson Education, 2005

GA parametreler Uygunluk Fonksiyonu GA’ın en önemli parametrelerinden bir tanesi uygunluk fonksiyonu seçimidir. Bu fonksiyon ile, kromozom içerisindeki kodlanmış ya da kodlanmamış bilgiler çözümlenerek sayısal bir değer elde edilir. Bir başka ifadeye, kromozomun ya da çözümün sisteme uygulanmasıyla elde edilecek çıktıya ulaşılır.

Uygunluk fonksiyonu F(x) = x2 + x Girdi Çıktı Fonksiyon 1 1 2 6 Fonksiyon 3 4 20 Fonksiyon 4 7 56 Fonksiyon 5 9 90

Uygunluk fonksiyonu Kromozomların uygunluk değerlerini belirleyecek uygunluk fonksiyonu, örneğimizde: Tur mesafesi, yani seyahat edilen şehirler arası mesafe toplamıdır. Dolayısıyla en iyi kromozom en küçük toplama sahip kromozom olacaktır.

Basit uygulama - TSP Traveling Salesman Problem (TSP) Her şehir 1 kere ziyaret edilecek Toplam seyahat mesafesi minimum olacak

Uygulama – Şehir bilgileri 1) SehirA 3) SehirC 5) SehirE 7) SehirG 2) SehirB 4) SehirD 6) SehirF 8) SehirH Şehir listesi 1 (3 5 7 2 1 6 4 8) Şehir listesi 2 (2 5 7 6 8 1 3 4)

Çaprazlama Liste1 (3 5 7 2 1 6 4 8) Liste2 (2 5 7 6 8 1 3 4) YeniListe (8 5 7 2 1 6 3 4) YeniListe kromozom, aynı şehrin tekrar edilmesi engellenmiş olarak yukarıdaki şekilde elde edilir.

Mutasyon Önce (5 8 7 2 1 6 3 4) Sonra (5 8 6 2 1 7 3 4) Belirlenmiş yüzdeye göre bir kromozomun iki ya da daha çok geni yer değiştirmektedir.

30 şehir için TSP

Çözüm n – 941km

Çözüm m – 800km

Çözüm m – 652km

En iyi çözüm – 420km

TSP performansı

GA faydaları Kavramların kolay tasarlanması Çok amaçlı eniyileme yöntemleri ile kullanılabilmesi Çok karmaşık ortamlara uyarlanması Kısa sürelerde iyi sonuçlar verebilmesi

GA araçları Eniyileme için kullanılacak GA tasarımı, uygun bir kod geliştirme ortamında gerçekleştirilebilir C, C++, C#, Java, Fortran, LISP, Prolog, Excel, VB, Pascal veya Delphi The Genetic Algorithm Optimization Toolbox (GAOT) for Matlab 5

Genetik Programlama ( GP ) 2. Konu

GP 1950 yılında Machine Learning 1963 yılında ise ML alanında ilk gelişme sağlandı ML alanındaki ilerleme aslında “bilgisayarların kendi kendisini programlamasıydı”. GP ise ML alanının önemli bir dalıdır.

GP 1990 senesinde John Koza tarafından geliştirildi. Donanımların teknolojiye paralel ilerlemesi, yazılımların da ilerlemesini sağlamıştır. Bu ilerleme, daha çok yazılım uygulamalarının ve otomasyonlarının gelişimine katkı sağlamıştır.

GP “Ağaç yapısının değerlendirilmesi” veya “Ağaç yapısındaki sistemler” anlamında kullanılabilir. (Koza, 1992)

GP Eniyileme yöntemleri için etkin ve verimli bir yöntemdir Bilim ve mühendislik alanlarında yaygın olarak kullanılmaktadır

GP GP, GA’nın bir uzantısı olarak düşünülebilir. GP sadece bit dizi düzeninde yer alan sorunları çözmek için kullanılmaz, bilgisayarların çözebileceği sorunlar da kullanılır.

GP adımları Girdilerin belirlenmesi (Input Value) Temel fonksiyonların seçilmesi (*, +, -, /, mod, sqrt, ^ ) Uyumluluk fonksiyonunun belirlenmesi Kontrol parametrelerinin belirlenmesi (maksimum tekrar sayısı) Sonuçlara uygun yöntemin belirlenmesi

GP’da çaprazlama Negnevitsky, Pearson Education, 2005

GP’da mutasyon Negnevitsky, Pearson Education, 2005

GA ve GP ne zaman kullanılmalıdır? Alternatif çözümlerin yavaş veya çok zor olmasında Çözümün yeni bir yaklaşım ile denenmesinde

Kaynaklar Banzhaf, W., “Genetic Programming, An Introduction”, California Langdon, W., “Foundation of Genetic Programming”, Germany Alp, A., “Geometrik problemlerin çözümünde kullanılan yapay zeka yöntemleri ve gerçekleştirimleri” İşçi, Ö., “Ulaştırma probleminin genetik algoritma ile çözümü” Pittman, J., “Genetic algorithm for variable selection” Williams, W., “Genetic algoritms: A Tutorial” İşçi Ö., Korukoğlu S., Genetik Algoritma Yaklaşımı ve Yöneylem Araştımasında Bir Uygulama, Yönetim ve Ekonomi, 2003, Cilt:2, Sayı:2 Baskak M., Erol V., Sipariş tipi atölyelerde iş sıralama problemi için bir genetik algoritma uygulaması, YAEM2004 Bildiri Kitapçığı