mit503 veri yap lar ve algoritmalar algoritmalar a giri n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
MIT503 Veri Yapıları ve algoritmalar Algoritmalar a giriş PowerPoint Presentation
Download Presentation
MIT503 Veri Yapıları ve algoritmalar Algoritmalar a giriş

Loading in 2 Seconds...

play fullscreen
1 / 56

MIT503 Veri Yapıları ve algoritmalar Algoritmalar a giriş - PowerPoint PPT Presentation


  • 297 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'MIT503 Veri Yapıları ve algoritmalar Algoritmalar a giriş' - bob


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
algoritmalara giri
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ı
algoritmalara giri1
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
algoritmalara giri2
Algoritmalara giriş
  • Matematiksel problemler arasında en temel olan biri genel denklem çözme
lineer olmayan denklem zme
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
lineer olmayan denklem zme1
Lineer olmayan denklem çözme
  • Bu soru çok kolay durumda bile çözülemez;
kiye b lme metodu
İ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

kiye b lme metodu1
İ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

kiye b lme metodu2
İkiye bölme metodu

b

a

pozitif

negatif

kiye b lme metodu3
İ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
kiye b lme metodu4
İ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

bir boyutlu genel arama
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ı

kiye b lme metodu5
İ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
newton raphson metodu
Newton-Raphsonmetodu
  • Ana fikir: eğer lineer olmayan denklem çözülemezse, lineer denklemi nasıl çözülebilmesini biliyoruz...
newton raphson metodu1
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
newton raphson metodu2
Newton-Raphsonmetodu
  • Orijinal denklemi yaklaşık olarak lineer denklem kullanarak temsil etmek için türev kullanabiliriz;

türev

newton raphson metodu3
Newton-Raphsonmetodu
  • Bu yaklaşık denklemin çözümünün gerçek çözüme daha yakın olacağını umarız;
newton raphson metodu4
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
newton raphson metodu5
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

sekant metodu
Sekantmetodu
  • Sekant metodunun ana fikir:

b

a

sekant metodu1
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

sekant metodu2
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

sekant metodu3
Sekantmetodu

Bu algoritmayı evde yazın

denklem sistemi zme
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
denklem sistemi zme1
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,...)
denklem sistemi zme2
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
denklem sistemi zme3
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
denklem sistemi zme4
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
denklem sistemi zme6
Denklem sistemi çözme
  • Lineer denklem sistemleri, temel seviyede önemli ve birçok durumda karşılayan bir matematiksel problem
denklem sistemi zme7
Denklem sistemi çözme
  • Bu problemin en verimli genel çözüm Gaus yöntemidir
denklem sistemi zme8
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
denklem sistemi zme9
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
denklem sistemi zme10
Denklem sistemi çözme
  • İkinci adım olarak, 1., 3., 4., vb denklemlerden 2. denklem kullanarak x2 terimi kaldırılır
denklem sistemi zme11
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
denklem sistemi zme12
Denklem sistemi çözme
  • Bu şekilde devam denklem sistemi “koşegen” formuna getirilir, yani bütün denklemlerde tek x-terim kalır
denklem sistemi zme13
Denklem sistemi çözme
  • Koşegen formundaki sistemi çözmek kolaydır, yani
slide38

“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

denklem sistemi zme14
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;
denklem sistemi zme15
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
denklem sistemi zme16
Denklem sistemi çözme

Bu algoritmayı evde yazın

say sal optimizasyon
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
say sal optimizasyon2
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
say sal optimizasyon3
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
say sal optimizasyon4
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
say sal optimizasyon5
Sayısal optimizasyon

Sayısal optimizasyon:

giriş fonksiyonu, f

giriş fonksiyonunun xk türevleri, fk

lineer-olmayan-denklem-sistemi-çöz( fk )

say sal optimizasyon6
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
say sal optimizasyon7
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
say sal optimizasyon8
Sayısal optimizasyon
  • Artırılacak fonksiyon (iki değişken)
say sal optimizasyon9
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 ...
say sal optimizasyon10
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
say sal optimizasyon11
Sayısal optimizasyon
  • Fonksiyonun eğim vektörü bu şekilde verilir
  • Türevler , şuanki noktaya göre hesaplanmalıdır
say sal optimizasyon12
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
say sal optimizasyon13
Sayısal optimizasyon
  • Not: Eğer fonksiyonun tek max noktası varsa, dereceli artırmanın o noktayı vermesi garantisi var
say sal optimizasyon14
Sayısal optimizasyon

Dereceli artırma algoritmasını evde yazın