METASEZGİSEL YÖNTEMLER Ara sınav - 30% Ödev (Haftalık) - 20% Final (Proje Sunumu) - 50% - Dönem sonuna kadar bir optimizasyon tekniğiyle uygulama geliştirilecek (Örn: Zaman çizelgeleme, en kısa yol bulunması, denetleyici tasarımı, network optimizasyonu vb.) Güncel uygulamalar olması gerekir. - Hazırlanacak proje önerileri ara sınav tarihine kadar bildirilecek - E-posta : iaydin@firat.edu.tr - Dersin web adresi : http://web.firat.edu.tr/iaydin/ Yrd. Doç. Dr. İlhan AYDIN Fırat Üniversitesi, Bilgisayar Mühendisliği Bölümü
Dersin İçeriği 1- Giriş, genel tanımlamalar 2- Genetik algoritmalar 3- Parçacık sürü optimizasyonu 4- Yapay bağışık sistemler 5- Diferansiyel gelişim algoritması 6- Karınca koloni algoritması 7- Yapay arı koloni algoritması 8- Isıl işlem algoritması 9- Tabu arama algoritması
Giriş Belirli sınırlamaları sağlayacak şekilde bilinmeyen parametre değerlerinin bulunmasını içeren herhangi bir problem, optimizasyon problemi olarak tanımlanır. o Optimizasyon, verilen şartlar altında en iyi sonucun elde edilmesi işidir. Bu problemde ilk adım karar değişkenleri veya parametreleri olarak isimlendirilen parametre setini tanımlamaktır. Optimizasyon alanındaki en önemli gelişmeler 18.yy da Newton ve Lagrange tarafından yapılmıştır. Bir sistemin planlanmasında hedef, istenen kar maksimize ya da gerekli çabayı minimize etmektir. İstenen kar veya gerekli çaba, karar değişkenlerinin bir fonksiyonu olarak ifade edilir. Optimizasyon sürecinde bu fonksiyonun minimum veya maksimum değerini oluşturan şartlar bulunur.
GİRİŞ N değişkenli x=(x1, x2,, xi,, xn) vektörü için maliyet fonksiyonu f(x)=f(x1,x2,, xn) şeklinde gösterilir. Sistem p adet eşitlik sınırlamasına sahip ise hj(x)=hj(x1, x2,, xn)=0 1<=j<=p şeklinde gösterilir. Eğer sistem m tane eşitsizlik sınırlamalarına sahip ise gi(x)=gi(x1, x2,, xn)<=0 1<=i<=m şeklinde gösterilir. Bazı problemlerde birden fazla maliyet fonksiyonu bulunabilir. Yani problem birden fazla en küçük yapılacak fonksiyon içeriyorsa çok amaçlı (multi objective) optimizasyon problemi olarak adlandırılır. Problem için sınırlamaları sağlayan mümkün tüm çözümlerin oluşturduğu bölge araştırma yapılabilecek uygun (feasible) çözüm bölgesi olarak adlandırılır. f(x*)<=f(x) ile verilen şartı uygun bölge içindeki tüm muhtemel (x) için sağlıyor ise f(x)fonksiyonu x* da küresel minimuma sahiptir. Eğer bu denklem dar bir bölge içinde, x* in dar bir komşuluğunda tüm muhtemel çözümler için sağlanıyorsa f(x) x* da bölgesel minimuma sahiptir.
GİRİŞ Fonksiyonlar sürekli ve türevlenebilir olmalıdır. Çok küçük pozitif ve negatif bütün h değerleri için f(x0) f(x0 +h) ise f(x) fonksiyonu x0 da yerel minimuma sahiptir. f(x0) f(x0 +h) ise f(x) fonksiyonu x0 da yerel maksimuma sahiptir.
OPTİMİZASYON PROBLEMLERİNİN SINIFLANDIRILMASI f(x) amaç fonksiyonunun x ile ilgili herhangi bir sınırlama yoksa sınırlamasız optimizasyon x ile ilgili sınırlamanın bulunduğu optimizasyon problemi ise sınırlamalı optimizasyondur. Diğer bir sınıflandırma ise amaç fonksiyonunun ve sınırlamalar ile ilgili fonksiyonların lineer olup olmamasına bağlıdır. o Lineer amaç ve sınırlama fonksiyonları var ise lineer programlama problemi o Nonlineer amaç ve sınırlama var ise nonlineer programlama problemi Sürekli ve ayrık optimizasyon problemleri diğer optimizasyon şeklidir. o Ayrık niceliklerin optimal olarak düzenlenmesi, gruplanması, sıraya konulması veya seçilmesi ayrık optimizasyon o Tasarım değişkenleri sürekli değerler ise bu tür problemlere sürekli optimizasyon denir.
OPTİMİZASYON METOTLARININ SINIFLANDIRILMASI Klasik optimizasyon metotları ikiye ayrılır: Doğrudan metotlar Optimalite kriterine dayalı dolaylı metotlar: Optimalliki şartları bir fonksiyonun minimum noktalarının sağlaması gereken şartlardır. Tahmini bir başlangıç noktasından başlayarak optimallik şartlarının başlangıç çözümünün geliştirilmesidir. Optimizasyon problemlerinde fonksiyonların bir kısmı veya tamamı nonlineerdir. Nonlineer programlama kavramı, nonlineer problemleri çözmek amacıyla geliştirilen nümerik metotlar için kullanılır. Neden nonlineer programlamaya ihtiyaç duyulur? Tasarım değişkenlerinin ve sınırlama sayılarının çok olması-çok sayıda denklem Tasarım probleminin fonksiyonları yüksek seviyede nonlineerlik içerebilir. Çoğu mühendislik uygulamalarında fonksiyonlar tasarım değişkenleri açısından açık olmayabilir.
İTERATİF ARAŞTIRMA İŞLEMİ Adım 1. Bir başlangıç çözümü (x (0) al. İterasyon sayacını sıfırla) Adım 2. Araştırma uzayında bu nokta için bir araştırma yönü (d (t) ) belirle. Sınırlamasız optimizasyonda maliyet fonksiyonu ile gradyentin hesabı Sınırlamalı optimizasyonda sınırlama fonksiyonlarına ihtiyaç duyar. Adım 3. Araştırmanın yakınsamasını kontrol et. Eğer bitmiş ise bitir, yoksa devam Adım 4. Pozitif bir adım büyüklüğü belirle ( (t) ) hesapla. Adım 5. Yeni çözümü aşağıdaki formül ile belirle. x (t+1) =x(t)+ t d (t) Adım 6. İterasyon sayacını bir arttır (t=t+1) ve 2. Adıma git.
EN DİK İNİŞ YÖNTEMİ Yöntem aşağıya doğru en mümkün olan en dik iniş yönünün araştırılmasına dayalıdır. Bunun için mevcut noktada hesaplanan negatif gradient e dayalıdır. Dolayısıyla birinci dereceden metot olarak ta isimlendirilir. Pozitif gradyent vektörü g(x), f(x) in x noktasında en yüksek artış gösterdiği yönü belirtir ve genliği g(x) de x noktasındaki eğimdir. Eğer x(t) verilmiş ise x(t+1) aşağıdaki gibi hesaplanır. x (t+1) =x (t) - t g(x (t) ) Denklemde t adım büyüklüğü olup pozitiftir. Adım büyüklüğü g(x (t) ) yönünde f(x (t+1) ) i küçük yapacak şekilde hesaplanır. x (t) B x (t+1) C d (t) A x (t-1)
EN-DİK İNİŞ YÖNTEMİ Adım 1. Bir başlangıç çözümü (x (0) al. İterasyon sayacını sıfırla ve durdurma kriteri içni bir tolerans seç.) Adım 2. x (t) noktasında g(t) gradiyentini ve g (t) yi hesapla. Şayet g (t) tolerans e den küçük ise araştırmayı durdur. Yoksa devam et. Adım 3. d (t) =-g (t) şeklinde alarak araştırmanın yönünü belirle. Adım 4. Yeni noktayı x (t+1) =x (t) + t d (t) ile belirle. Burada yapacak şekilde hesaplanan adım büyüklüğüdür. Adım 5. İterasyon sayacını bir arttır (t=t+1) ve 2. Adıma git. t f(x (t+1) ) yi minimum
Örnek: Aşağıda verilen iki değişkenli fonksiyonu minimum yapacak değişken değerlerini en-dik iniş yöntemi ile bulunuz. İkinci adımdaki g (1) için çözülürse g (1) =(0,0) elde edilir ve bu da durdurma kriterini sağlar.
Eşlenik Gradient Algoritması Eşlenik gradient en-dik iniş yönteminin performansını arttırmak için geliştirilmiştir. Eşlenik gradient algoritmasının temel adımları aşağıdaki gibidir.
Örnek: f(x1,x2,x3)=x 1 2 + 2x 2 2 + 2x 3 2 + 2x 1 x 2 + 2x 2 x 3 fonksiyonun minimum yapacak değişken değerlerini bulmak için eşlenik gradient yöntemini kullanınız. x (0) =(2, 4, 10) g (0) =(2x 1 +2x 2, 4x 2 +2x 1 +2x 3, 4x 3 +2x 2 )=(12,40,48) g (0) =63.6 f(x (0) )=332 1. iterasyon sonunda çözüm olarak x (1) =(0.0956, -2.348, 2.381) değerini bulunur. g (1) =(-4.5, -4.438, 4.828) f(x (1) )=10.75 g (1) =7.952> olduğundan araştırmaya devam et.
Newton Yöntemi Temel fikri mevcut nokta etrafında fonksiyonun ikinci dereceden Taylor serisi açılımını kullanmaktır. Newton metodunda fonksiyonun birinci ve ikinci türevlerinin olduğu varsayılır. İlk önce gradient (g) daha sonra Hessian (H) matrisi hesaplanır. x (t+1) = x (t) + Δx (t) ve Δx (t 1) = α[h(x (t) )] 1 g(x (t) ) Burada H, Hessian matrisini gösterir ve matris tekil değildir. Klasik Newton yöntemleri gradient tabanlı bilgi aracılığıyla adım büyüklüğünü 1 alır. Bu yüzden her problem için yakınsamayı garanti etmezler. Bu dezavantajı ortadan kaldırmak için değiştirilmiş Newton yöntemi kullanılır.
Değiştirilmiş Newton Yöntemi
Örnek: Aşağıda verilen üç değişkenli fonksiyonun minimumunu değiştirilmiş Newton yöntemi ile bulunuz.
Sezgisel Algoritmalar Sağ el kuralına dayalı algoritmalardır. Herhangi bir amacı gerçekleştirmek için veya hedefe varmak için çeşitli alternatif hareketlerden etkili olanlara karar vermek amacı ile tanımlanan kriterler veya bilgisayar metotlarıdır. Bu algoritmalar, çözüm uzayında optimum çözüme yakınsaması ispat edilemeyen algoritmalar olarak da adlandırılır. Bu tür algoritmalar yakınsama özelliğine sahiptir, ama kesin çözümü garanti etmezler, sadece kesin çözüme yakın çözümü garanti ederler.
Sezgisel Algoritmalara Gerek Duyulmasının Sebepleri a) Optimizasyon problemi, kesin çözümü bulma işleminin tanımlanmadığı bir yapıya sahip olabilir. b) Anlaşıla bilirlik açısından sezgisel algoritmalar karar verici için çok daha basit olabilir. c) Sezgisel algoritmalar öğrenme amaçlı ve kesin çözümü bulma işleminin bir parçası olabilir. d) Matematik formülleriyle yapılan tanımlamalarda genellikle gerçek dünya problemlerinin en zor tarafları ihmal edilir. e) Model parametrelerini belirleme aşamasında kullanılan verinin hatalı olması sezgisel yaklaşımın üretebileceği alt optimal çözümden daha büyük hatalara sebep olabilir.
Sezgisel Algoritmaların Değerlendirilmesi için Kriterler Çözüm Kalitesi ve Hesaplama zamanı Kod basitliği ve gerçeklenebilirlik Esneklik Sağlamlık Basitlik ve analiz edilebilirlik Etkileşimli hesaplama ve teknoloji değişimleri
HILL CLIMBING 1. İterasyon tekniği kullanılır. 2. Arama alanında tek bir noktadan başlar. 3. Her bir iterasyonda mevcut çözüme komşu çözümler arasından bir tanesi seçilir. 4. Eğer seçilen nokta mevcut çözümden daha iyiyse yeni çözüm olarak alınır, değilse başka bir komşu çözüm aranır. 5. Algoritma daha iyi bir çözüm bulunamayınca veya daha önceden belirlenmiş iterasyon sayısına ulaşınca sonlandırılır.
HILL CLIMBING Lokal minimumu bulabilir. - Genellikle farklı başlama noktalarından başlanmak zorundadır. Başlama noktası seçimi şu şekilde yapılabilir; o Rastgele seçilebilir o Daha önceden belirlenmiş noktalara göre seçilebilir - Diğer bilgilere göre (Örn: Önceki çözümler, Uzman bilgileri, Ölçümler, vb.)
HILL CLIMBING Örnek: 30 karakterlik bir binary karakter dizisi problemin çözüm uzayını oluşturmaktadır. f(bd) = 20 * bir_sayisi(bd) 100 fonksiyonunu maksimum yapan binary dizisini (bd) bulunuz. bir_sayisi(bd) fonksiyonu bd dizisindeki birlerin sayısını vermektedir. Örn: bd1 = ( 110111101111011101101111010101 ) f(bd1) = 10 * 22 100 = 120
HILL CLIMBING procedure HillClimbing begin iterasyon 0 repeat lokal FALSE rastgele bir bd dizisi seç bd dizisini değerlendir repeat bd dizisindeki bitlerin değerini değiştirip yeni 30 komşu çözüm üret Yeni komşu çözüm kümesinde f fonksiyonunu maks. yapanı seç else lokal TRUE until lokal iterasyon iterasyon + 1 until iterasyon = MAXITERASYON end
HILL CLIMBING Zayıf yanları: - Genellikle lokal optimum olan çözümlerde sonlanmaktadır. - Elde edilen optimum başlama noktasına bağlıdır. - Genellikle istenen sonucu elde etmede hesaplama zamanı için bir üst limit yoktur. Avantajları: - Uygulamak çok kolaydır. - Sadece problemin gösterimi, değerlendirme fonksiyonu ve komşu çözüm üretme fonksiyonu yeterlidir.