Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
YayınlayanOylum Murat Değiştirilmiş 10 yıl önce
1
MIT503 Veri Yapıları ve algoritmalar Algoritmalara giriş
Y. Doç. Yuriy Mishchenko
2
Algoritmalara giriş Ders planı (en önemli genel matematiksel problemler) Lineer olmayan denklem çözme İkiye bölme metodu Newton-Raphson metodu Sekant metodu Lineer olmayan denklem sistemi çözme Gaus metodu (lineer denklem sistemleri, Newton-Raphson metodunun adımı) Sayısal optimizasyon metodları Dereceli azaltma algoritması
3
Algoritmalara giriş Algoritmaların çoğunun doğası matematiksel, yani matematiksel şekilde tanımlanmış ve matematiksel problemin çözümü sağlar Bu durumda, temel matematiksel işlemler bilinir olarak varsayıyoruz yani basit matematiksel işlemler söz konusu değil, bunların üstündeyiz
4
Algoritmalara giriş Matematiksel problemler arasında en temel olan biri genel denklem çözme
5
Lineer olmayan denklem çözme
Lineer olmayan denklem vardır, ve burada f(x) lineer olmayan genel bir fonksiyon Birçok gerçek problem ve soru gerçek hayatta ve uygulamalarda bu şekile götürülebilir
6
Lineer olmayan denklem çözme
Bu soru çok kolay durumda bile çözülemez;
7
İkiye bölme metodu İkiye bölme algoritması
Ana fikri: eğer bir [a,b] aralığında bir f fonksiyonunun sıfırı varsa, bu fonksiyonun aralığın sonunda hem pozitif hem de negatif olması genellikle beklenebilir b a pozitif negatif
8
İkiye bölme metodu İkiye bölme algoritması
Sıfır noktasını bulmak için, arama aralığını ikiye bölünce hangi tarafta f(a’)*f(b’)<0 koşulun doğruluğunu kontrol ederiz, o tarafta sıfır aramaya devam ederiz b a pozitif negatif
9
İkiye bölme metodu b a pozitif negatif
10
İkiye bölme metodu İkiye bölme algoritması
Aralığın uzunluğu her zaman iki kat azalır, yani çok hızlı f fonksiyonunun sıfırı herhangi gereken belirlilikle log zamanda bulunabilir
11
İkiye bölme metodu İkiye bölme denklem çözme algoritması:
giriş [ab] aralığı, AB olsun fonksiyon, f olsun AB’nin orta noktası, O olsun AB’nin uzunluğu gereken belirlilikten büyük İKEN AB’nin sol sonu, A olsun EĞER f(A)*f(O) 0’den küçük İSE yeni AB AB’nin sol yarısı olsun AKSİ HALDE yeni AB AB’nin sağ yarısı olsun AB’nin orta noktası, O olsun
12
Bir boyutlu genel arama
İkiye bölme arama algoritması: giriş nesne dizisi, D olsun hedef nesnesi, H olsun D’nin ortasındaki nesnesi, A olsun A H’ye eşit değil ve D’nin boyut 1’den büyük İKEN EĞER A H’den büyük İSE yeni D D’nin sol yarısı olsun AKSİ HALDE yeni D D’nin sağ yarısı olsun D’nin ortasındaki nesnesi, A olsun Eğer A H’ye eşit değil İSE Hedef bulunamadı
13
İkiye bölme metodu Burada bir boyutlu fonksiyonun sıfırını aranması bir boyutlu genel arama sorunu olarak düşünülebilir, öyleyse genel ikiye bölme yaklaşımını çok verimli şekilde kullanabildik
14
Newton-Raphson metodu
Ana fikir: eğer lineer olmayan denklem çözülemezse, lineer denklemi nasıl çözülebilmesini biliyoruz...
15
Newton-Raphson metodu
Lineer olmayan denklemi çözmek için o zaman: Orijinal genel denklemi yaklaşık olarak lineer denklem kullanarak yazarız Bu “yaklaşık” lineer denklemi çözeriz Bu “yaklaşık” çözüm gerçek çözüme daha yakın olacağını umarız Gerekirse aşağıdaki adımlar son “yaklaşık” çözüm başlangıç nokta olarak kullanarak tekrarlarız
16
Newton-Raphson metodu
Orijinal denklemi yaklaşık olarak lineer denklem kullanarak temsil etmek için türev kullanabiliriz; türev
17
Newton-Raphson metodu
Bu yaklaşık denklemin çözümünün gerçek çözüme daha yakın olacağını umarız;
18
Newton-Raphson metodu
Newton-Raphson yöntemi: Orijinal denklemi türev kullanarak yaklaşık olarak lineer denklem olarak temsil ediyoruz O “yaklaşık” lineer denklemi direkt olarak çözüyoruz Nekadar gerekirse aşağıdakiler tekrarlıyoruz
19
Newton-Raphson metodu
Newton-Raphson algoritması: giriş fonksiyonu, f giriş fonksiyonunun türevi, f’ başlangıç noktası, x gereken belirlilik, e x’nin değişimi e’den büyük İKEN yeni x, x-(f’(x)^-1)*f(x) olsun
20
Sekant metodu Sekant metodunun ana fikir: a b
21
Sekant metodu Sekant metodunun ana fikir:
Sekant metodunda Newton-Rhapson metodu gibi orijinal genel denklem yaklaşık lineer denklem kullanarak temsil ederiz Burada bu lineer denklem (a,f(a)) ve (b,f(b)) noktaları geçen (kırmızı) çizgi olarak düşünülür, Bu yöntemde fonksiyonun türevinin bilinmesi gerekmez, ve bu açıdan sekant metodu Newton-Raphson metodundan daha kolaydır a b
22
Sekant metodu Sekant metodunun ana fikir:
(a,f(a)) ve (b,f(b)) noktaları geçen lineer fonksiyonu kullanarak orijinal denklemin yaklaşık çözümü elde edilir Bu yaklaşık çözümü x için f(a)*f(x) koşul kontrol edilir ve sıfırın yeni aralığı seçilir Bu yeni aralığında aynı işlem tekrarlanır b a
23
Sekant metodu Bu algoritmayı evde yazın
24
Denklem sistemi çözme Birçok durumda bir problemi çözmek için aynı zamanda birçok fonksiyon/koşul sıfıra dönmesi gerekmektedir Bu fonksiyonlarda tipik olarak birçok değişken vardır
25
Denklem sistemi çözme Bu durumda, bir denklem sistemi olduğunu diyoruz, hem f hem de x birçok fonksiyon ve değişken içerebilir anlamındadır, yani f=(f1,f2,f3,...) ve x=(x1,x2,x3,...)
26
Denklem sistemi çözme Bu problemin çözümünü elde etmek için yeni Newton-Rhapson yöntemi kullanılabilir, yani orijinal fonksiyonun yaklaşık lineer temsili aranıp o yaklaşık lineer denklem sistemi çözülür
27
Denklem sistemi çözme Eğer bir değişken durumunda Newton-Rhapson yönteminde fonksiyonun türevi vardıysa, burada türevin rölü bir matris almaktadır
28
Denklem sistemi çözme Burada yaklaşık denklem sistemi lineer denklem sistemi yani doğrusal denklem dizgesi, yani önceki Newton-Raphson adımı gerçekleştirmek için lineer denklem sistemi çözebilmemiz lazım
29
Denklem sistemi çözme
30
Denklem sistemi çözme Lineer denklem sistemleri, temel seviyede önemli ve birçok durumda karşılayan bir matematiksel problem
31
Denklem sistemi çözme Bu problemin en verimli genel çözüm Gaus yöntemidir
32
Denklem sistemi çözme Gaus yönteminin ana fikri, ilk önce 2., 3., vb denklemlerden 1. denklemi çıkartıp 2., 3. vb denklemlerden x1 terimi kaldırılmaktır
33
Denklem sistemi çözme Örneğin, eğer biz 2. denklemden 1. denklem a21/a11 ile çarpıp çıkartırsak, 2. denklemden x1 terimi kaldırılır, aynı şekilde x1 terimi 3., 4., vb denklemlerden kaldırılabilir
34
Denklem sistemi çözme İkinci adım olarak, 1., 3., 4., vb denklemlerden 2. denklem kullanarak x2 terimi kaldırılır
35
Denklem sistemi çözme Örneğin, eğer biz 1. denklemden 2. denklem a12/a22 ile çarpıp çıkartırsak, 1. denklemden x2 terimi kaldırılır
36
Denklem sistemi çözme Bu şekilde devam denklem sistemi “koşegen” formuna getirilir, yani bütün denklemlerde tek x-terim kalır
37
Denklem sistemi çözme Koşegen formundaki sistemi çözmek kolaydır, yani
38
“Gaus yöntemi” algoritması:
giriş sistemin katsayıları, a(k,m) olsun giriş sistemin sabit terimleri, b(k) olsun denklem/bilinmeyenlerin sayısı, K olsun BÜTÜN b(k;0)=b(k); //hesaplama ilk değişkenleri belirtmek BÜTÜN a(k,m;0)=a(k,m); BÜTÜN k İÇİN //hangi denklem çıkartılacağız BÜTÜN m İÇİN a(k,m;k)=a(k,m;k-1); // i. denklem değişmez BÜTÜN n İÇİN (k≠n) // hangi denklemden çıkartacağız G=a(n,k;k-1) /a(k,k;k-1) // uygun bir çarpıcı BÜTÜN m İÇİN // iki denklem çıkartma işlemi a(n,m;k)=a(n,m;k-1)-G*a(k,m;k-1) // k. katsayı a(n,k;k)---->0 burada b(n;k)=b(n;k-1)-G*b(k;k-1) // sağ sabitin güncelleştirilmesi BÜTÜN m İÇİN x(m)=b(m;K)/a(m,m;K); //final çözüm
39
Denklem sistemi çözme Genel problem için, orijinal denklem sistemi türevler kullanarak yaklaşık olarak lineer denklem sistemi kullanarak temsil edilip o Gaus yöntemi kullanarak çözüp Newton-Rhapson yöntemi uygulanabilir;
40
Denklem sistemi çözme Yani,
Orijinal denklemi türevler kullanarak ve bir başlangıç noktasına göre yaklaşık lineer denklem sistemi şeklinde yazıyoruz Bu yaklaşık lineer denklem sistemi çözümünü Gaus yöntemi kullanarak buluyoruz Yaklaşık sistemin çözümü, yeni başlangıç noktası olarak kullanıyoruz Bu çözüm gereken belirliliğe gelene kadar aşağıdaki adımları tekrarlıyoruz
41
Denklem sistemi çözme Bu algoritmayı evde yazın
42
Sayısal optimizasyon Sayısal optimizasyon, birkaç değişkene bağlı bir fonksiyonun en büyük veya en küçük değerini bulmayı demektir
43
Sayısal optimizasyon
44
Sayısal optimizasyon Optimizasyon çok önemli ve birçok uygulamalarda karşılayan problem, ve algoritma biliminin de çok büyük kısmıdır
45
Sayısal optimizasyon En yüksek noktasında fonksiyon ne artabilir nede azalabilir, yani bu noktada tüm değişkenlere göre fonksiyonun türevi sıfıra eşit olması gerekmektedir
46
Sayısal optimizasyon Yani, fonksiyonun max noktasını bulmak için genel denklem sistemi çözmek yeterlidir, ve bu Newton-Rhapson yöntemi kullanarak yapılabilir
47
Sayısal optimizasyon Sayısal optimizasyon: giriş fonksiyonu, f
giriş fonksiyonunun xk türevleri, fk lineer-olmayan-denklem-sistemi-çöz( fk )
48
Sayısal optimizasyon Alternatif olarak çok sık ve birçok durumda (özellikle değişken sayısı yüksek olursa) kullanılan yöntem, dereceli azaltma veya artırma yöntemidir (“gradient descent” veya “gradient ascent” yöntemi) Dereceli artırma yöntemi, genel ve çok güclü sayısal optimizasyon yöntemidir
49
Sayısal optimizasyon Bir (x1,x2,...) başlangıç noktası ile başlıyoruz
Var olan başlangıç noktasında fonksiyonun en hızlı artıran yönüne küçük adımı yapıp başlangıç noktasını güncelleştiriyoruz Yukarıdaki adımı ne kadar gerekiyorsa tekrarlıyoruz Fark edin ki, öyle adımlarla fonksiyonun değeri sürekli düşer yani sonuçta ola fonksiyonun en yüksek bir noktası sağlanması lazım
50
Sayısal optimizasyon Artırılacak fonksiyon (iki değişken)
51
Sayısal optimizasyon ... sonuçta bir en yüksek noktaya ulaşıyoruz
... f değerini en hızlı artıran adımları yapıp o noktayı taşıyoruz ... Bir noktada başlıyoruz ...
52
Sayısal optimizasyon Bir fonksiyonu en hızlı artıran yöne fonksiyonun eğimi yani “gradient” denir Yani fonksiyonun değerini en hızlı artırmak için, fonksiyonun eğim vektörünün yönüne adımlar yapılmalıdır
53
Sayısal optimizasyon Fonksiyonun eğim vektörü bu şekilde verilir
Türevler , şuanki noktaya göre hesaplanmalıdır
54
Sayısal optimizasyon Not: Dereceli artırma sadece lokal olarak bir max noktasını verir, başka başlangıçla başlayınca başka bir max noktasına gelmeye ihtimal var
55
Sayısal optimizasyon Not: Eğer fonksiyonun tek max noktası varsa, dereceli artırmanın o noktayı vermesi garantisi var
56
Sayısal optimizasyon Dereceli artırma algoritmasını evde yazın
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.