Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

MIT503 Veri Yapıları ve algoritmalar Algoritmalara giriş

Benzer bir sunumlar


... konulu sunumlar: "MIT503 Veri Yapıları ve algoritmalar Algoritmalara giriş"— Sunum transkripti:

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


"MIT503 Veri Yapıları ve algoritmalar Algoritmalara giriş" indir ppt

Benzer bir sunumlar


Google Reklamları