ALTIN ORAN ARAMA (GOLDEN SECTION SEARCH) METODU

Benzer belgeler
Altın Oran Arama Metodu(Golden Search)

YÖNEYLEM ARAŞTIRMASI - III

YÖNEYLEM ARAŞTIRMASI - III

YÖNEYLEM ARAŞTIRMASI - III

YÖNEYLEM ARAŞTIRMASI - III

YÖNEYLEM ARAŞTIRMASI - III

YÖNEYLEM ARAŞTIRMASI - III

EM302 Yöneylem Araştırması 2 Doğrusal Olmayan Programlamaya Giriş. Dr. Özgür Kabak

NEWTON RAPHSON YÖNTEMİ

4. HAFTA BLM323 SAYISAL ANALİZ. Okt. Yasin ORTAKCI.

Kısıtsız Optimizasyon OPTİMİZASYON Kısıtsız Optimizasyon

Başlangıç Temel Programının Bilinmemesi Durumu

OPTİMİZASYON TEKNİKLERİ. Kısıtsız Optimizasyon

3.2. DP Modellerinin Simpleks Yöntem ile Çözümü Primal Simpleks Yöntem

Yrd. Doç. Dr. A. Burak İNNER

Zeki Optimizasyon Teknikleri

HESSİEN MATRİS QUADRATİK FORM MUTLAK ve BÖLGESEL MAKS-MİN NOKTALAR

Tek Değişkenli Optimizasyon OPTİMİZASYON. Gradient Tabanlı Yöntemler. Bisection (İkiye Bölme) Yöntemi

KISITLI OPTİMİZASYON

EŞİTLİK KISITLI TÜREVLİ YÖNTEMLER

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü

OPTİMİZASYON TEKNİKLERİ-2. Hafta

(m+2) +5<0. 7/m+3 + EŞİTSİZLİKLER A. TANIM

METASEZGİSEL YÖNTEMLER

EM302 Yöneylem Araştırması 2 Çok değişkenli DOP ların çözümü. Dr. Özgür Kabak

doğrusal programlama DOĞRUSAL PROGRAMLAMA (GENEL)

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: END 3519

TAMSAYILI PROGRAMLAMA

BAHAR YARIYILI MAK1010 MAKİNE MÜHENDİSLİĞİNDE BİLGİSAYAR UYGULAMALARI DERSİ FİNAL SINAV SORULARI

OPTIMIZASYON Bir Değişkenli Fonksiyonların Maksimizasyonu...2

GÜMÜŞHANE ÜNĐVERSĐTESĐ MÜHENDĐSLĐK VE DOĞA BĐLĐMLERĐ FAKÜLTESĐ ELEKTRĐK-ELEKTRONĐK MÜHENDĐSLĐĞĐ EEM 114 ALGORĐTMA TASARIMI VE PROGRAMLAMA DĐLLERĐ

BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI. Kafkas Üniversitesi Mühendislik Fakültesi

Đlişkisel Operatörler

DENKLEMLER CAUCHY-EULER DENKLEMİ. a n x n dn y dx n + a n 1x n 1 dn 1 y

ÜNİTE. MATEMATİK-1 Doç.Dr.Murat SUBAŞI İÇİNDEKİLER HEDEFLER TÜREV UYGULAMALARI-I

Genetik Algoritmalar. Bölüm 1. Optimizasyon. Yrd. Doç. Dr. Adem Tuncer E-posta:

SİMPLEKS ALGORİTMASI Yapay değişken kullanımı

BİLGİSAYAR PROGRAMLAMA DERSİ

SIMÜLASYON DERS SORUMLUSU: DOÇ. DR. SAADETTIN ERHAN KESEN. Ders No:5 Rassal Değişken Üretimi

Simpleks Yönteminde Kullanılan İlave Değişkenler (Eşitliğin yönüne göre):

Türk-Alman Üniversitesi İktisadi ve İdari Bilimler Fakültesi İşletme Bölümü Ders Bilgi Formu

Zeki Optimizasyon Teknikleri

Örnek 1: 2 x = 3 x = log 2 3. Örnek 2: 3 2x 1 = 2 2x 1 = log 3 2. Örnek 3: 4 x 1 = 7 x 1 = log 4 7. Örnek 4: 2 x = 3 2 x 2 = 3

Bulanık Mantık Bilgisayar Mühendisliği Bölümü Arasınav - 11 Nisan 2014 Süre: 1 Saat 30 Dakika

MATRİSEL ÇÖZÜM TABLOLARIYLA DUYARLILIK ANALİZİ

İkinci dersin notlarında yer alan Gepetto Marangozhanesi örneğini hatırlayınız.

Programlama Dilleri 1. Ders 3: Rastgele sayı üretimi ve uygulamaları

ÖĞRENME ALANI TEMEL MATEMATİK BÖLÜM TÜREV. ALT ÖĞRENME ALANLARI 1) Türev 2) Türev Uygulamaları TÜREV

Bilgisayar Programlama

Zeki Optimizasyon Teknikleri

Türk-Alman Üniversitesi. Ders Bilgi Formu

Çok katmanlı ileri sürümlü YSA da standart geri yayıyım ve momentum geri yayılım algoritmalarının karşılaştırılması. (Eğitim/Hata geri yayılım)

Dr. Musa KILIÇ Öğretim Görevlisi

ÖZEL EGE LİSESİ FİBONACCİ DİZİLERİ YARDIMIYLA DEĞERİNİ HESAPLAYAN BİR FORMÜL

GÜZ DÖNEMİ ARASINAV SORULARI. 1. Sayısal çözümleme ve fonksiyonu tanımlayarak kullanıldığı alanları kısaca açıklayınız?

İleri Diferansiyel Denklemler

MAK 210 SAYISAL ANALİZ

İleri Diferansiyel Denklemler

DÖNGÜLER BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA DENEY-4 FÖYÜ GİRİŞ LABORATUARI.

SAYISAL ÇÖZÜMLEME. Sayısal Çözümleme

BÖLÜM III: Şebeke Modelleri. Şebeke Kavramları. Şebeke Kavramları. Şebeke Kavramları. Yönlü Şebeke (Directed Network) Dal / ok

T.C. DOKUZ EYLÜL ÜNİVERSİTESİ SOSYAL BİLİMLER ENSTİTÜSÜ EKONOMETRİ ANABİLİM DALI EKONOMETRİ DOKTORA PROGRAMI

BİLGİSAYAR PROGRAMLAMA DERSİ

Algoritma ve Akış Diyagramları

DENİZ HARP OKULU ENDÜSTRİ MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

HEDEF ARA ve ÇÖZÜCÜ HEDEF ARA

BİL 810 İnşaat Mühendisliğinde Bilgisayar Uygulamaları

ÜNİTE. MATEMATİK-1 Yrd.Doç.Dr.Ömer TARAKÇI İÇİNDEKİLER HEDEFLER DOĞRULAR VE PARABOLLER

Fen ve Mühendislik Uygulamaları ile MATLAB

Makine Öğrenmesi 2. hafta

Yöneylem Araştırması II

Bilgisayar Programlamaya Giriş I KAREKÖK BULMA Acaba hesap makinesi bir sayının karekökünü nasıl buluyor? başlangıç değeri olmak üzere,

MAK 210 SAYISAL ANALİZ

Fonksiyon Optimizasyonunda Genetik Algoritmalar

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA MATLAB

Karar değişkenlere ilişkin fonksiyonların ve bu fonksiyonlara ilişkin sınırlamaların tanımlanması

MATEMATiKSEL iktisat

YÖNEYLEM ARAŞTIRMASI - I

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: IND 3907

İleri Diferansiyel Denklemler

a a 0 a 4a

Fen ve Mühendislik Uygulamalarında MATLAB

MATLAB a GİRİŞ. Doç. Dr. Mehmet İTİK. Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü

HOMOGEN OLMAYAN DENKLEMLER

Fonksiyon Minimizasyonunda Simulated Annealing Yöntemi

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

diff Türev Alma Fonksiyonu. >> syms x >> A=3*x^4+x^2-3*x A = 3*x^4+x^2-3*x. >> diff(a) // A fonksiyonunun türevini alır. ans = 12*x^3+2*x-3

Temelleri. Doç.Dr.Ali Argun Karacabey

1. ÇÖZÜM YOLU: (15) 8 = = 13 13:2 = :2 = :2 = 1.2+1

PARÇACIK SÜRÜ OPTİMİZASYONU BMÜ-579 METASEZGİSEL YÖNTEMLER YRD. DOÇ. DR. İLHAN AYDIN

Algoritma Analizi ve Büyük O Notasyonu. Şadi Evren ŞEKER YouTube: Bilgisayar Kavramları

YUVARLAMA FONKSİYONLARI

BMT 101 Algoritma ve Programlama I 3. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

Yrd. Doç. Dr. A. Burak İNNER

6. HAFTA DERS NOTLARI İKTİSADİ MATEMATİK MİKRO EKONOMİK YAKLAŞIM. Yazan SAYIN SAN

Erzurum Teknik Üniversitesi Mühendislik Mimarlık Fakültesi Bilgisayar Programlama Dersi Ödevi Soru

ÖSS MATEMATİK TÜREV FASİKÜLÜ

VERİ TABANI ve YÖNETİMİ

Transkript:

ALTIN ORAN ARAMA (GOLDEN SECTION SEARCH) METODU Tek değişkenli bir f(x) fonksiyonunu ele alalım. [Bazı x ler için f (x) bulunamayabilir.] Aşağıdaki DOP modelini çözmek istediğimizi var sayalım. Max f(x) a x b f (x) bulunmayabilir veya f (x) = 0 denklemini çözmek çok zor olabilir. Bu konuda, f(x) eğer özel bir tür fonksiyon ise (unimodal fonksiyon) optimum (en iyi) değerinin nasıl bulunabileceği ele alınacaktır. Tanım: Şayet [a, b] aralığındaki bazı değerleri için f(x) [a, ] aralığında keskin bir şekilde artıyor ve [, b] aralığında ise keskin bir şekilde azalıyorsa f(x) fonksiyonu [a, b] aralığında unimodaldır. Yani bu aralıkta sadece tek bir tepe noktası bulunmaktadır. Eğer f(x) [a, b] aralığında unimodal ise [a, b] aralığında sadece bir yerel maksimum ( ) değeri vardır ve yukarıda verilen DOP modeli ile çözülür. a [a, b] aralığında unimodal bir fonksiyon = yerel maksimum değeri b [a, b] aralığında unimodal olmayan bir fonksiyon bu modelin [a, b] aralığındaki optimum çözümüdür. [a, b] aralığında iki nokta olan x 1 ve x 2 noktalarında (x 1 < x 2 ) f(x) fonksiyonunu incelediğimizde çözümü bulana kadar aralığı daraltabiliriz. f(x 1 ) ve f(x 2 ) incelendiğinde aşağıdaki üç durumdan biri meydana gelir. Her üç durumda da optimum çözümün [a, b] aralığında olacağını gösterebiliriz. Durum 1: f(x 1 ) < f(x 2 ). f(x), [x 1, x 2 ] aralığının en azından bir kısmında artmakta olduğu için f(x) in unimodal olmasından dolayı optimum çözüm [a, x 1 ] aralığında oluşamaz. Bu sebeple Durum 1 de (x 1, b] dir.

Eğer f(x 1 ) < f(x 2 ) ise (x 1, b] Durum 2: f(x 1 ) = f(x 2 ). [x 1, x 2 ] aralığının bir kısmında f(x) azalıyordur ve optimum çözüm a < x 2 kısmındadır. Bu sebeple Durum 2 de [a, x 2 ) dir. Eğer f(x 1 ) = f(x 2 ) ise [a, x 2) Durum 3: f(x 1 ) > f(x 2 ). Bu durumda f(x), x x 2 ye ulaşmadan önce azalmaya başlayacaktır. Bu sebeple Durum 3 de [a, x 2 ) dir. Eğer f(x 1 ) > f(x 2 ) ise [a, x 2) nin [a, x 2 ) veya (x 1, b] aralıklarından hangisinde bulunacağına belirsizlik aralığı denir. Bu belirsizlik aralığını azaltmak için çok sayıda arama algoritması bahsedilen bu fikirleri kullanmaktadır. Bu algoritmaların birçoğu aşağıdaki adımları kullanır: Adım 1: x için belirsizlik aralığı olarak [a, b] aralığı ile başla. Makul bir şekilde seçilmiş x 1 ve x 2 noktaları için f(x) i incele. Adım 2: Durum 1, 2 veya 3 ten hangisine uyduğunu belirle ve belirsizlik aralığını buna göre azalt.

Adım 3: İki yeni nokta için f(x) i incele (algoritma, bu iki yeni noktanın nasıl seçileceğini belirtmektedir). Belirsizlik aralığı yeterince küçük olana kadar Adım 2 ye dön. Burada bu algoritmalardan biri olan Altın Oran Arama Algoritması ele alınacaktır. Bu algoritmaya göre unimodal f(x) fonksiyonunu çözerken, Adım 3 te iki yeni noktayı seçtiğimizde noktalardan biri daima daha önce f(x) i incelediğimiz noktalardan biri olarak seçilecektir. r karesel r 2 + r = 1 denkleminin pozitif bir kökü olsun. Karesel formülden şu elde edilir: Altın oran arama algoritması x 1 ve x 2 noktalarında f(x) in incelenmesi ile başlar. x 1 = b r(b a) x 2 = a + r(b a) Şekilden de anlaşılabileceği gibi x 1 i bulmak için aralığın son noktasından aralık uzunluğu ile r nin çarpımı kadar sola gelinir. Benzer şekilde x 2 yi bulmak için aralığın başlangıç noktasından aralık uzunluğu ile r nin çarpımı kadar sağa gidilir. Altın oran arama algoritması iki yeni nokta bulmuştur. Bu noktalarda f(x) yeniden incelenmelidir. Durum 1, 2 ve 3 te bahsedildiği üzere biliyoruz ki eğer f(x 1 ) < f(x 2 ) ise (x 1, b], eğer f(x 1 ) f(x 2 ) ise [a, x 2 ) dir. Eğer f(x 1 ) < f(x 2 ) ise azaltılmış belirsizlik aralığı b x 1 = r(b a) uzunluğundadır. Eğer f(x 1 ) f(x 2 ) ise azaltılmış belirsizlik aralığı x 2 a = r(b a) uzunluğundadır. Bu sebeple f(x 1 ) ve f(x 2 ) incelendikten sonra belirsizlik aralığı r(b a) uzunluğuna indirgenmiş olur. f(x) iki noktada her incelenip belirsizlik aralığı azaltıldığında Altın Oran Arama Algoritmasının bir iterasyonu tamamlanmış olur. L k = algoritmanın k iterasyonu tamamlandığında belirsizlik aralığının uzunluğu I k = k iterasyonu sonundaki belirsizlik aralığı Buna göre L 1 = r(b a) ve I 1 = [a, x 2 ) veya (x 1, b] olur. Aşağıdaki prosedürü kullanarak iki yeni x 3 ve x 4 noktaları üretilir ve bu noktalarda f(x) incelenir. Durum 1: f(x 1 ) < f(x 2 ). Yeni belirsizlik aralığı (x 1, b] alınır. Uzunluğu b x 1 = r(b a) olacaktır.

x 3 = b r(b x 1 ) = b r 2 (b a) x 4 = x 1 + r(b x 1 ) Yeni bulunan x 3 noktası, daha önce bulunan x 2 noktasına eşit olacaktır. Bunu r 2 = 1 r gerçeğinden hareketle ispatlayabiliriz. x 3 = b r 2 (b a) = b (1 r)(b a) = a + r(b a) = x 2 Durum 2: f(x 1 ) f(x 2 ). Yeni belirsizlik aralığı [a, x 2 ) alınır. Uzunluğu x 2 a = r(b a) olacaktır. x 3 = x 2 r(x 2 a) x 4 = a + r(x 2 a) = a + r 2 (b a) Yeni bulunan x 4 noktası, daha önce bulunan x 1 noktasına eşit olacaktır. Bunu r 2 = 1 r gerçeğinden hareketle ispatlayabiliriz. x 4 = a + r 2 (b a) = a + (1 r)(b a) = b r(b a) = x 1 Şimdi f(x 3 ) ve f(x 4 ) fonksiyonları belirsizlik aralığını azaltmak için kullanılabilir. Bu aşamada Altın Oran Arama Algoritmasının iki iterasyonu tamamlanmıştır. Yukarıdan anlaşıldığı gibi Altın Oran Arama Algoritmasının her iterasyonunda f(x) sadece bir yeni noktada incelenecektir. L 2 = rl 1 = r 2 (b a) olacaktır. Genel ifadesiyle; L k = rl k-1 = r k (b a) yazılabilir. Bulunacak son belirsizlik aralığı < ɛ olmalıdır. Bu sebeple kaç iterasyon Altın Oran Arama Algoritması işletileceği, aşağıdaki formülden k değeri elde edilerek bulunur. r k (b a) < ɛ Örnek: Aşağıdaki modeli, nihai belirsizlik aralığı 0,25 den küçük olacak şekilde Altın Oran Arama Algoritması ile çözelim: Max x 2 1 1 x 0,75

a = 1 b = 0,75 b a = 1,75 r k (b a) < ɛ => 0,618 k * 1,75 < 0,25 => 0,618 k < 1/7 k ln (0,618) < ln (1/7) k * (-0,48) < -1,95 k > 4,06 Öyleyse 5 iterasyon Altın Oran Arama Algoritması işletilecektir. Önce x1 ve x2 bulunur. x 1 = 0,75 0,618 * 1,75 = 0,3315 x 2 = 1 + 0,618 * 1,75 = 0,0815 f(x 1 ) = ( 0,3315) 2 1 = 1,1099 f(x 2 ) = (0,0815) 2 1 = 1,0066 f(x 1 ) < f(x 2 ) olduğu için yeni belirsizlik aralığı (x 1, b] = ( 0,3315, 0,75] ve daha önce ispatlandığı üzere x 3 = x 2 olacaktır. L 1 = 0,75 ( 0,3315) = 1,0815 Yeni x3 ve x4 noktalarını bulacak olursak: x 3 = x 2 = 0,0815 x 4 = 0,3315 + 0,618 * 1,0815 = 0,3369 f(x 3 ) = f(x 2 ) = 1,0066 f(x 4 ) = (0,3369) 2 1 = 1,1135 f(x 3 ) > f(x 4 ) olduğu için yeni belirsizlik aralığı [x 1, x 4 ) = [ 0,3315, 0,3369) ve daha önce ispatlandığı üzere x 6 = x 3 olacaktır. L 2 = 0,3369 ( 0,3315) = 0,6684 Yeni x5 ve x6 noktalarını bulacak olursak: x 5 = 0,3369 0,618 * 0,6684 = 0,0762 x 6 = x 3 = 0,0815

f(x 5 ) = ( 0,0762) 2 1 = 1,0058 f(x 6 ) = f(x 3 ) = 1,0066 f(x 5 ) > f(x 6 ) olduğu için yeni belirsizlik aralığı [x 1, x 6 ) = [ 0,3315, 0,0815) ve x 8 = x 5 olacaktır. L 3 = 0, 0815 ( 0,3315) = 0,4130 Yeni x 7 ve x 8 noktalarını bulacak olursak: x 7 = 0, 0815 0,618 * 0,4130 = 0,1737 x 8 = x 5 = 0,0762 f(x 7 ) = ( 0,1737) 2 1 = 1,0302 f(x 8 ) = f(x 5 ) = 1,0058 f(x 7 ) < f(x 8 ) olduğu için yeni belirsizlik aralığı (x 7, x 6 ] = ( 0,1737, 0,0815] ve x 9 = x 8 olacaktır. L 4 = 0,0815 ( 0,1737) = 0,2552 Yeni x9 ve x10 noktalarını bulacak olursak: x 9 = x 8 = 0,0762 x 10 = 0,1737 + 0,618 * 0,2552 = 0,016 f(x 9 ) = f(x 8 ) = 1,0058 f(x 10 ) = (0,016) 2 1 = 1,0003 f(x 9 ) < f(x 10 ) olduğu için yeni belirsizlik aralığı (x 9, x 6 ] = ( 0,0762, 0,0815] olacaktır. L 5 = 0,0815 ( 0,0762) = 0,1577 < 0,25 olduğu için sonlandırılır. Sonuç olarak; Max x 2 1 1 x 0,75 modelinin çözümü ( 0,0762, 0,0815] aralığında olacaktır. (Tabi ki gerçek maksimum = 0 da oluşacaktır.) Altın Oran Arama Algoritması, minimizasyon problemlerinde de kullanılabilir. Bunun için amaç fonksiyonu 1 ile çarpılır.

Ödev: 1. Altın Oran Arama Algoritmasını Excel de hazırlayın. 2. Altın Oran Arama Algoritmasının MATLAB kodlarını yazın. 3. Altın Oran Arama Algoritmasını bildiğiniz bir programlama dili ile yazın. Sorular 1. Aşağıdaki modelin optimum çözümünü 0,8 belirsizlik aralığı için çözünüz. Max. x 2 + 2x - 3 x 5 2. Aşağıdaki modelin optimum çözümünü 0,6 belirsizlik aralığı için çözünüz. Max. x e x - 1 x 3 MATLAB Uygulaması ( ) fonksiyonunun optimum noktasını [0 10] aralığında altın oran arama algoritmasının MATLAB kodları ile bulalım. Fonksiyonun grafiği aşağıda görünmektedir. 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 0 1 2 3 4 5 6 7 8 9 10

Önce bu fonksiyonu tanımlayacağımız fx.m isimli dosyayı aşağıdaki gibi hazırlarız. function g = fx(c) g = 2*c./(4+0.8*c+c.^2+0.2*c.^3); Daha sonra yukarıda tanımlan fonksiyonu çağırarak çalışan altın oran arama algoritmasının kodları altin.m dosyasında oluşturulur. Bu kodlar aşağıda verilmiştir. function [p, yp]=golden(func,a,b,eps,delta) % verilen argüman (girdi) sayısına göre eps/delta değerlerini otomatik al if (nargin<5) delta = 1.0e-10; end if (nargin<4) delta = 1.0e-10; eps = 1.0e-10; end r=(sqrt(5)-1)/2; h=b-a; c=b-r*h; d=a+r*h; ya=feval(func,a); yb=feval(func,b); yd=feval(func,d); yc=feval(func,c); maxit=200; k=1; while (abs(yb-ya) > eps & (h > delta) & (k < maxit)) k=k+1; if (yc >= yd) b = d; yb = yd; d = c; yd = yc; h = b - a; c = b - r*h; yc = feval(func,c); else a = c; ya = yc; c = d; yc = yd; h = b - a; d = a + r*h; yd = feval(func,d); end end dp = abs(b-a); dy = abs(yb-ya); p = a; yp = ya; if (yb < ya) p = b; yp = yb; end if (k > maxit) uyari = 'Maksimum iterasyon aşıldı. Sonuç doğru olmayabilir' end

Yukarıdaki iki.m dosyası hazırlandıktan sonra MATLAB komut ekranında aşağıdaki gibi altın oran arama algoritması çalıştırılır ve sonuç elde edilir. >> [x fdeg]=altin(@fx, 0, 10) x = 1.5679 fdeg = 0.3696 Kaynak 1. Wayne Winston, Operations Research Applications and Algorithms 4th. Edition, 2003 2. MATLAB: Yapay Zekâ ve Mühendislik Uygulamaları, Prof. Dr. C. Kubat, Beşiz Yayınları- 1.Basım, Aralık 2012. 3. M. Turhan Çoban, Optimizasyon Ders Notları