1 / 56

MIT503 Veri Yapıları ve algoritmalar Algoritmalar a giriş

MIT503 Veri Yapıları ve algoritmalar Algoritmalar a giriş. Y. Doç. Yuriy Mishchenko. 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

bob
Download Presentation

MIT503 Veri Yapıları ve algoritmalar Algoritmalar a giriş

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MIT503 Veri Yapıları ve algoritmalarAlgoritmalara 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 • Newton-Raphson metodu • 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’)<0koş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 olsunAB’nin orta noktası, O olsunAB’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 olsunD’nin ortasındaki nesnesi, A olsunA 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-Raphsonmetodu • Ana fikir: eğer lineer olmayan denklem çözülemezse, lineer denklemi nasıl çözülebilmesini biliyoruz...

  15. Newton-Raphsonmetodu • 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-Raphsonmetodu • Orijinal denklemi yaklaşık olarak lineer denklem kullanarak temsil etmek için türev kullanabiliriz; türev

  17. Newton-Raphsonmetodu • Bu yaklaşık denklemin çözümünün gerçek çözüme daha yakın olacağını umarız;

  18. Newton-Raphsonmetodu 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-Raphsonmetodu 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. Sekantmetodu • Sekant metodunun ana fikir: b a

  21. Sekantmetodu • 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 b a

  22. Sekantmetodu • 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. Sekantmetodu 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 fhem 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)

More Related