SlideShare a Scribd company logo
Mehmet Süleyman YILDIRIM
 Nedir?
 FaydasıNedir?
 Uygulama Örneği
 Örnek Uygulama Alanları
    Maksimum Alt Dizi Toplamı
    Strassen’in Matris Çapma Algoritması
    Yerine Koyma Yöntemi
 Nedir?
 FaydasıNedir?
 Uygulama Örneği
 Örnek Uygulama Alanları
    Maksimum Alt Dizi Toplamı
    Strassen’in Matris Çapma Algoritması
    Yerine Koyma Yöntemi
3   aşamalı bir algoritma tasarım yöntemidir.
    1. aşama Divide (Böl)
        Problemi alt problemlere bölme aşamasıdır.
    2. aşama Conquer (Fethet)
        Alt problemlerin öz yinelemeli olarak çözülmesidir.
    3. aşama Combine (Birleştir)
        Alt problemlerin çözümleri birleştirilerek sonuç
         oluşturulur.


 Yöntem  -parçaları çözmesi daha kolaydır-
 fikrine dayanmaktadır.

 Nedir?
 FaydasıNedir?
 Uygulama Örneği
 Örnek Uygulama Alanları
    Maksimum Alt Dizi Toplamı
    Strassen’in Matris Çapma Algoritması
    Yerine Koyma Yöntemi
 Birsayının normal yolla üssü alınırken geçen
  süre
                 T(n)=θ(n) iken;

 divide& conquer kullanılarak yapılan işlemde
  geçen süre
            T(n)=T(n/2) + θ(1)=> T(n)=θ(lg(n))
 İkiliArama Örneği
 Sıralı dizilimin bir elemanını bulma:
   1.Böl: Orta elemanı belirle.
   2.Fethet: 1 altdizilimde özyinelemeli arama yap.
   3.Birleştir:Kolay.




          3        5       7        8        9        11 15
 İkiliArama Örneği
 Sıralı dizilimin bir elemanını bulma:
   1.Böl: Orta elemanı belirle.
   2.Fethet: 1 altdizilimde özyinelemeli arama yap.
   3.Birleştir:Kolay.




          3       5        7       8       9          11 15
 İkiliArama Örneği
 Sıralı dizilimin bir elemanını bulma:
   1.Böl: Orta elemanı belirle.
   2.Fethet: 1 altdizilimde özyinelemeli arama yap.
   3.Birleştir:Kolay.




          3        5       7        8        9        11 15
 İkiliArama Örneği
 Sıralı dizilimin bir elemanını bulma:
   1.Böl: Orta elemanı belirle.
   2.Fethet: 1 altdizilimde özyinelemeli arama yap.
   3.Birleştir:Kolay.




          3       5        7       8       9          11 15
 İkiliArama Örneği
 Sıralı dizilimin bir elemanını bulma:
   1.Böl: Orta elemanı belirle.
   2.Fethet: 1 altdizilimde özyinelemeli arama yap.
   3.Birleştir:Kolay.




          3       5        7       8       9          11 15
 Örnek   uygulama;
    N=10^n adet, belli bir aralıkta rasgele sayı
     üretme işlemi
    İşlem normal yolla yapılırken işlem yapılan dizi
     çok büyük yüklere ulaşabildiği için işlem süresi
     çok uzaktadır.
                      T(N)=θ(N)

    İşlem d&c kullanılarak yapıldığında döngü
     logaritmik hale gelmektedir.
                      T(N)=θ(lg(n))
 İkiliarama
 Merge sort
 Fibonacci
 Matrix Çarpımları
 VLSI
 Nedir?
 FaydasıNedir?
 Uygulama Örneği
 Örnek Uygulama Alanları
    Maksimum Alt Dizi Toplamı
    Strassen’in Matris Çapma Algoritması
    Yerine Koyma Yöntemi
 Nedir?
 FaydasıNedir?
 Uygulama Örneği
 Örnek Uygulama Alanları
    Maksimum Alt Dizi Toplamı
    Strassen’in Matris Çapma Algoritması
    Yerine Koyma Yöntemi
 Tanım:  Verilen bir tamsayı listesi
  içerisinde/dizisinde elemanları komşu
  olmak şartıyla hangi (bitişik) alt dizi en
  yüksek toplamı verir?
 Örneğin:
     { -2,11,-4,13,-5,2 }  Cevap=20
     { 1,2,-5,4,7,-2 }  Cevap=11
     { 1,5,-3,4,-2,1 }  Cevap=7
 Buproblemi çözen çok sayıda algoritma
 vardır.
Kaba Kuvvet Çözümü (Standart Çözüm)
function [maxTop,bas,son]=maxAltDiziT(a)
 maxTop = 0;
    for i=1:length(a)

                                      3n +4n +2n+2  O(n3)
                                           3     2
        for j=i:length(a)
              top=0;
             for k=i:j
                 top = top+ a(k);
             if(top > maxTop)
                 maxTop = top;
                 bas = i;   % alt dizinin başlangıcı
                 son = j;     % alt dizinin sonu
             end
             end
        end
    end
end
Divide & Conquer ile çözümü
• Divide & Conquer ile çözümü
 Bualgoritmanın sonucunda işlem süresi
 aşağıdaki şekilde gerçekleşir.

                 T(n)=θ(n lg n)
 Nedir?
 FaydasıNedir?
 Uygulama Örneği
 Örnek Uygulama Alanları
    Maksimum Alt Dizi Toplamı
    Strassen’in Matris Çapma Algoritması
    Yerine Koyma Yöntemi
Basit matris çarpımı
 N boyutunda 2 matrisin çarpımı aşağıdaki
  şekilde olur.
 Divide   & Conquer ile çözümü
 Strassen   fikri
 Nedir?
 FaydasıNedir?
 Uygulama Örneği
 Örnek Uygulama Alanları
    Maksimum Alt Dizi Toplamı
    Strassen’in Matris Çapma Algoritması
    Yerine Koyma Yöntemi
 Yukarıdaki   örnekte verilen gibi, içinde
  tekrarlı işlemler olan problemlerin çözümleri
  için bazı yöntemler kullanılır.
 Bunlardan bazıları
    Substitution method
    Iteration method
        Recursion-tree method
        Master Teorem
Yerine Koyma Metodu
 2 adımdan oluşur.
    Sonucu tahmin et.
    Matematiksel olarak ispatı yapılır.
Mehmet Süleyman YILDIRIM
     Turgut Özal Üniversitesi
Elektrik ve Bilgisayar Mühendisliği

More Related Content

What's hot

Divide and Conquer - Part 1
Divide and Conquer - Part 1Divide and Conquer - Part 1
Divide and Conquer - Part 1
Amrinder Arora
 
Dynamic programming - fundamentals review
Dynamic programming - fundamentals reviewDynamic programming - fundamentals review
Dynamic programming - fundamentals review
ElifTech
 
Yzm 2116 - Bölüm 2 (Algoritma Analizi)
Yzm 2116  - Bölüm 2 (Algoritma Analizi)Yzm 2116  - Bölüm 2 (Algoritma Analizi)
Yzm 2116 - Bölüm 2 (Algoritma Analizi)
Deniz KILINÇ
 
Divide and Conquer - Part II - Quickselect and Closest Pair of Points
Divide and Conquer - Part II - Quickselect and Closest Pair of PointsDivide and Conquer - Part II - Quickselect and Closest Pair of Points
Divide and Conquer - Part II - Quickselect and Closest Pair of Points
Amrinder Arora
 
Asymptotic notation
Asymptotic notationAsymptotic notation
Asymptotic notation
Saranya Natarajan
 
AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 017 解説AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 017 解説
AtCoder Inc.
 
AtCoder Regular Contest 048
AtCoder Regular Contest 048AtCoder Regular Contest 048
AtCoder Regular Contest 048
AtCoder Inc.
 
Activity selection problem
Activity selection problemActivity selection problem
Activity selection problem
QAU ISLAMABAD,PAKISTAN
 
Yzm 2116 Bölüm 8 - İkili Arama Ağacı - Binary Search Tree
Yzm 2116   Bölüm 8 - İkili Arama Ağacı - Binary Search TreeYzm 2116   Bölüm 8 - İkili Arama Ağacı - Binary Search Tree
Yzm 2116 Bölüm 8 - İkili Arama Ağacı - Binary Search Tree
Deniz KILINÇ
 
Hash table
Hash tableHash table
Hash table
Rajendran
 
Red black tree
Red black treeRed black tree
Red black tree
Dr Sandeep Kumar Poonia
 
写像 12 相
写像 12 相写像 12 相
Serie algos approximationx
Serie algos approximationxSerie algos approximationx
Serie algos approximationxmohamed_SAYARI
 
Asymptotic Notation and Data Structures
Asymptotic Notation and Data StructuresAsymptotic Notation and Data Structures
Asymptotic Notation and Data Structures
Amrinder Arora
 
Pythonではじめる競技プログラミング
Pythonではじめる競技プログラミングPythonではじめる競技プログラミング
Pythonではじめる競技プログラミング
cocodrips
 
AtCoder Regular Contest 029 解説
AtCoder Regular Contest 029 解説AtCoder Regular Contest 029 解説
AtCoder Regular Contest 029 解説
AtCoder Inc.
 
Introduction to Algorithms and Asymptotic Notation
Introduction to Algorithms and Asymptotic NotationIntroduction to Algorithms and Asymptotic Notation
Introduction to Algorithms and Asymptotic Notation
Amrinder Arora
 
動的計画法入門(An introduction to Dynamic Programming)
動的計画法入門(An introduction to Dynamic Programming)動的計画法入門(An introduction to Dynamic Programming)
動的計画法入門(An introduction to Dynamic Programming)
kakira9618
 
Algorithm big o
Algorithm big oAlgorithm big o
Algorithm big o
Ashim Lamichhane
 
YZM 2116 - Bölüm 3 - Listeler
YZM 2116 - Bölüm 3 - Listeler YZM 2116 - Bölüm 3 - Listeler
YZM 2116 - Bölüm 3 - Listeler
Deniz KILINÇ
 

What's hot (20)

Divide and Conquer - Part 1
Divide and Conquer - Part 1Divide and Conquer - Part 1
Divide and Conquer - Part 1
 
Dynamic programming - fundamentals review
Dynamic programming - fundamentals reviewDynamic programming - fundamentals review
Dynamic programming - fundamentals review
 
Yzm 2116 - Bölüm 2 (Algoritma Analizi)
Yzm 2116  - Bölüm 2 (Algoritma Analizi)Yzm 2116  - Bölüm 2 (Algoritma Analizi)
Yzm 2116 - Bölüm 2 (Algoritma Analizi)
 
Divide and Conquer - Part II - Quickselect and Closest Pair of Points
Divide and Conquer - Part II - Quickselect and Closest Pair of PointsDivide and Conquer - Part II - Quickselect and Closest Pair of Points
Divide and Conquer - Part II - Quickselect and Closest Pair of Points
 
Asymptotic notation
Asymptotic notationAsymptotic notation
Asymptotic notation
 
AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 017 解説AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 017 解説
 
AtCoder Regular Contest 048
AtCoder Regular Contest 048AtCoder Regular Contest 048
AtCoder Regular Contest 048
 
Activity selection problem
Activity selection problemActivity selection problem
Activity selection problem
 
Yzm 2116 Bölüm 8 - İkili Arama Ağacı - Binary Search Tree
Yzm 2116   Bölüm 8 - İkili Arama Ağacı - Binary Search TreeYzm 2116   Bölüm 8 - İkili Arama Ağacı - Binary Search Tree
Yzm 2116 Bölüm 8 - İkili Arama Ağacı - Binary Search Tree
 
Hash table
Hash tableHash table
Hash table
 
Red black tree
Red black treeRed black tree
Red black tree
 
写像 12 相
写像 12 相写像 12 相
写像 12 相
 
Serie algos approximationx
Serie algos approximationxSerie algos approximationx
Serie algos approximationx
 
Asymptotic Notation and Data Structures
Asymptotic Notation and Data StructuresAsymptotic Notation and Data Structures
Asymptotic Notation and Data Structures
 
Pythonではじめる競技プログラミング
Pythonではじめる競技プログラミングPythonではじめる競技プログラミング
Pythonではじめる競技プログラミング
 
AtCoder Regular Contest 029 解説
AtCoder Regular Contest 029 解説AtCoder Regular Contest 029 解説
AtCoder Regular Contest 029 解説
 
Introduction to Algorithms and Asymptotic Notation
Introduction to Algorithms and Asymptotic NotationIntroduction to Algorithms and Asymptotic Notation
Introduction to Algorithms and Asymptotic Notation
 
動的計画法入門(An introduction to Dynamic Programming)
動的計画法入門(An introduction to Dynamic Programming)動的計画法入門(An introduction to Dynamic Programming)
動的計画法入門(An introduction to Dynamic Programming)
 
Algorithm big o
Algorithm big oAlgorithm big o
Algorithm big o
 
YZM 2116 - Bölüm 3 - Listeler
YZM 2116 - Bölüm 3 - Listeler YZM 2116 - Bölüm 3 - Listeler
YZM 2116 - Bölüm 3 - Listeler
 

Similar to Divide & conquer

Membrane Algoritması
Membrane  AlgoritmasıMembrane  Algoritması
Membrane Algoritması
Oguzhan Coskun
 
Ders notları 2
Ders notları 2Ders notları 2
Ders notları 2
PaylasOgren
 
Ders notları 2
Ders notları 2Ders notları 2
Ders notları 2
Hasibe Zafer
 
Tasarimsorular
TasarimsorularTasarimsorular
Tasarimsorular
Afram afram
 
Basic Info for Matlab
 Basic Info for Matlab Basic Info for Matlab
Basic Info for Matlab
Mahmut Yildiz
 

Similar to Divide & conquer (7)

Matlab
MatlabMatlab
Matlab
 
Membrane Algoritması
Membrane  AlgoritmasıMembrane  Algoritması
Membrane Algoritması
 
Ders notları 2
Ders notları 2Ders notları 2
Ders notları 2
 
Ders notları 2
Ders notları 2Ders notları 2
Ders notları 2
 
Matlab i
Matlab iMatlab i
Matlab i
 
Tasarimsorular
TasarimsorularTasarimsorular
Tasarimsorular
 
Basic Info for Matlab
 Basic Info for Matlab Basic Info for Matlab
Basic Info for Matlab
 

Divide & conquer

  • 2.  Nedir?  FaydasıNedir?  Uygulama Örneği  Örnek Uygulama Alanları  Maksimum Alt Dizi Toplamı  Strassen’in Matris Çapma Algoritması  Yerine Koyma Yöntemi
  • 3.  Nedir?  FaydasıNedir?  Uygulama Örneği  Örnek Uygulama Alanları  Maksimum Alt Dizi Toplamı  Strassen’in Matris Çapma Algoritması  Yerine Koyma Yöntemi
  • 4. 3 aşamalı bir algoritma tasarım yöntemidir.  1. aşama Divide (Böl)  Problemi alt problemlere bölme aşamasıdır.  2. aşama Conquer (Fethet)  Alt problemlerin öz yinelemeli olarak çözülmesidir.  3. aşama Combine (Birleştir)  Alt problemlerin çözümleri birleştirilerek sonuç oluşturulur.  Yöntem -parçaları çözmesi daha kolaydır- fikrine dayanmaktadır.
  • 5.
  • 6.  Nedir?  FaydasıNedir?  Uygulama Örneği  Örnek Uygulama Alanları  Maksimum Alt Dizi Toplamı  Strassen’in Matris Çapma Algoritması  Yerine Koyma Yöntemi
  • 7.  Birsayının normal yolla üssü alınırken geçen süre T(n)=θ(n) iken;  divide& conquer kullanılarak yapılan işlemde geçen süre T(n)=T(n/2) + θ(1)=> T(n)=θ(lg(n))
  • 8.
  • 9.  İkiliArama Örneği  Sıralı dizilimin bir elemanını bulma: 1.Böl: Orta elemanı belirle. 2.Fethet: 1 altdizilimde özyinelemeli arama yap. 3.Birleştir:Kolay. 3 5 7 8 9 11 15
  • 10.  İkiliArama Örneği  Sıralı dizilimin bir elemanını bulma: 1.Böl: Orta elemanı belirle. 2.Fethet: 1 altdizilimde özyinelemeli arama yap. 3.Birleştir:Kolay. 3 5 7 8 9 11 15
  • 11.  İkiliArama Örneği  Sıralı dizilimin bir elemanını bulma: 1.Böl: Orta elemanı belirle. 2.Fethet: 1 altdizilimde özyinelemeli arama yap. 3.Birleştir:Kolay. 3 5 7 8 9 11 15
  • 12.  İkiliArama Örneği  Sıralı dizilimin bir elemanını bulma: 1.Böl: Orta elemanı belirle. 2.Fethet: 1 altdizilimde özyinelemeli arama yap. 3.Birleştir:Kolay. 3 5 7 8 9 11 15
  • 13.  İkiliArama Örneği  Sıralı dizilimin bir elemanını bulma: 1.Böl: Orta elemanı belirle. 2.Fethet: 1 altdizilimde özyinelemeli arama yap. 3.Birleştir:Kolay. 3 5 7 8 9 11 15
  • 14.  Örnek uygulama;  N=10^n adet, belli bir aralıkta rasgele sayı üretme işlemi  İşlem normal yolla yapılırken işlem yapılan dizi çok büyük yüklere ulaşabildiği için işlem süresi çok uzaktadır. T(N)=θ(N)  İşlem d&c kullanılarak yapıldığında döngü logaritmik hale gelmektedir. T(N)=θ(lg(n))
  • 15.  İkiliarama  Merge sort  Fibonacci  Matrix Çarpımları  VLSI
  • 16.  Nedir?  FaydasıNedir?  Uygulama Örneği  Örnek Uygulama Alanları  Maksimum Alt Dizi Toplamı  Strassen’in Matris Çapma Algoritması  Yerine Koyma Yöntemi
  • 17.  Nedir?  FaydasıNedir?  Uygulama Örneği  Örnek Uygulama Alanları  Maksimum Alt Dizi Toplamı  Strassen’in Matris Çapma Algoritması  Yerine Koyma Yöntemi
  • 18.  Tanım: Verilen bir tamsayı listesi içerisinde/dizisinde elemanları komşu olmak şartıyla hangi (bitişik) alt dizi en yüksek toplamı verir?  Örneğin:  { -2,11,-4,13,-5,2 }  Cevap=20  { 1,2,-5,4,7,-2 }  Cevap=11  { 1,5,-3,4,-2,1 }  Cevap=7  Buproblemi çözen çok sayıda algoritma vardır.
  • 19. Kaba Kuvvet Çözümü (Standart Çözüm) function [maxTop,bas,son]=maxAltDiziT(a) maxTop = 0; for i=1:length(a) 3n +4n +2n+2  O(n3) 3 2 for j=i:length(a) top=0; for k=i:j top = top+ a(k); if(top > maxTop) maxTop = top; bas = i; % alt dizinin başlangıcı son = j; % alt dizinin sonu end end end end end
  • 20. Divide & Conquer ile çözümü
  • 21. • Divide & Conquer ile çözümü
  • 22.  Bualgoritmanın sonucunda işlem süresi aşağıdaki şekilde gerçekleşir. T(n)=θ(n lg n)
  • 23.  Nedir?  FaydasıNedir?  Uygulama Örneği  Örnek Uygulama Alanları  Maksimum Alt Dizi Toplamı  Strassen’in Matris Çapma Algoritması  Yerine Koyma Yöntemi
  • 24. Basit matris çarpımı  N boyutunda 2 matrisin çarpımı aşağıdaki şekilde olur.
  • 25.  Divide & Conquer ile çözümü
  • 26.
  • 27.  Strassen fikri
  • 28.
  • 29.  Nedir?  FaydasıNedir?  Uygulama Örneği  Örnek Uygulama Alanları  Maksimum Alt Dizi Toplamı  Strassen’in Matris Çapma Algoritması  Yerine Koyma Yöntemi
  • 30.  Yukarıdaki örnekte verilen gibi, içinde tekrarlı işlemler olan problemlerin çözümleri için bazı yöntemler kullanılır.  Bunlardan bazıları  Substitution method  Iteration method  Recursion-tree method  Master Teorem
  • 31. Yerine Koyma Metodu  2 adımdan oluşur.  Sonucu tahmin et.  Matematiksel olarak ispatı yapılır.
  • 32. Mehmet Süleyman YILDIRIM Turgut Özal Üniversitesi Elektrik ve Bilgisayar Mühendisliği