Chapter 3 Brute Force Copyright © 2007 Pearson Addison-Wesley. All rights reserved.

Slides:



Advertisements
Benzer bir sunumlar
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Advertisements

Algoritmalar Ders 8 Dinamik Programlama.
Önemli Programlama Dillerinin Gelişimi
    SiMETRi SiMETRi.
The Relational Algebra and Relational Calculus
Algoritmalar DERS 3 Böl ve Fethet(Divide and Conquer) İkili arama
İŞ SIRALAMA VE ÇİZELGELEME DERS 4
Bölüm 3 – Yapısal Programlama
Algoritmalar DERS 4 Çabuk sıralama Böl ve fethet Bölüntüler
Veri Yapıları ve Algoritmalar
Atama ve eşleme (eşleştirme) problemleri (Matching and Assignment problems)
Görsel C# Programlama Güz 2009 (6. Hafta).
GRAPHS ÖZET.
İŞ SIRALAMA VE ÇİZELGELEME DERS 5
Bölüm 4 – C’de Program Kontrolü
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Faiz Hesaplama Uygulaması Amaçlar Bu derste öğrenilecekler:
Outline 4.1 Giriş 4.2 Algoritmalar 4.3 Pseudocode 4.4 Kontrol İfadeleri 4.5 if tek-seçimli ifadeler 4.6 if else seçimli ifadeler 4.7 while döngü ifadeleri.
Çizge Algoritmaları Ders 2.
Nigel Cross İngiliz Açık Üniversitesi’nde tasarım alanında araştırmacı ve eğitimci olarak çalışmaktadır.
Algoritmalar ve Programlama I Ders 2: Akış Diyagramları
Veri Yapıları ve Algoritmalar
Statistics, Data, and Statistical Thinking
Copyright © 2013 Pearson Education, Inc.. All rights reserved.
Chapter 7 Space and Time Tradeoffs Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
ALGORİTMA KARMAŞIKLIĞI
Dinamik programlama ve açgözlü yaklaşım soruları.
6/24/2016Chapter 61 Bölüm 6 Yapısal Analiz. 6/24/2016Chapter 62 Hedefler 1. Düzlemsel bir kafes sistemindeki elamanlarda oluşan kuvvetleri belirlemek.
Bölüm10 İteratif İyileştirme Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Dinamik programlama ve Açgözlü algoritma
Dynamic Programming Introduction to Algorithms MIT Press (Chapter 15)
Algoritmalar II Ders 6 Açgözlü Algoritmalar.
0-1 Sırt Çantası Problemi
Algoritmalar II Ders 2 Dinamik Programlama Yöntemi.
Algoritmalar II Ders 5 Açgözlü Algoritmalar.
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
Algoritmalar II Ders 10 Dinamik Programlama ve Açgözlü Yaklaşım Soruları-2.
Algoritmalar II Ders 13 Çizgelerde tüm ikililer arasında en kısa yollar.
Tüm ikililer arasında en kısa yollar
Algoritmalar II Ders 1: Alan zaman takası yöntemi.
Insertion Sort Fikir: Oyun kartlarını sıralamaya benzer.
Algoritmalar II Ders 7 Açgözlü Algoritmalar.
Algoritmalar II Ders 4 Dinamik Programlama Yöntemi.
Çizgeler Çizge G=(V,E), ikilisine denir, burada V sonlu bir kümedir, E ise bu kümenin elemanları arasında ikili bir bağıntıdır. V kümesine G çizgesinin.
Algoritmalar II Ders 14 Çizgelerde tüm ikililer arasında en kısa yollar.
Maksimum akış.
Algoritmalar II Ders 17 İteratif İyileştirme Yöntemi.
İleri Algoritma Analizi
9. Ders Tüm ikililer arasında en kısa yollar
Algoritmalar II Ders 3 Dinamik Programlama Yöntemi.
Prof. Dr. Şahin EMRAH Algoritmalar I
İleri Algoritma Analizi
Algoritmalar II Ders 11 Çizgeler. Çizgelerin bilgisayarda gösterimi. BFS algoritması.
Chapter 6 Dönüştür ve Yönet (Transform-and-Conquer)
MAKİNA TEORİSİ II GİRİŞ Prof.Dr. Fatih M. Botsalı.
Çizge Algoritmalari 5. ders.
Recursion (Özyineleme)
NİŞANTAŞI ÜNİVERSİTESİ
Çizge Algoritmalari 4. ders.
Algoritmalar II Ders 3 Dinamik Programlama Yöntemi.
İleri Algoritmalar Ders 3.
NİŞANTAŞI ÜNİVERSİTESİ
İleri Algoritma Analizi
İleri Algoritma Analizi
Algoritmalar II Ders 2 Dinamik Programlama Yöntemi.
8. Ders Tüm ikililer arasında en kısa yollar
Çizge Algoritmalari 10. Ders.
Chapter 4 Divide-and-Conquer
Bölüm 5 Azalt ve yönet (Decrease-and-Conquer)
10. Ders Floyd-Warshal algoritması
Kelime (Text) İşleme Algoritmaları
Sunum transkripti:

Chapter 3 Brute Force Copyright © 2007 Pearson Addison-Wesley. All rights reserved.

Kaba Kuvvet Problemin tanımınına dayanan direk yaklaşım Örnekler: an (a > 0, n negatif olamayan bir tamsayıdır) hesaplama n! Sayısını hesaplama 2 matrisin çarpımı Listede verilen değeri arama

Kaba kuvvet sıralama algoritması Seçmeli sıralama Dizideki en küçük elemanı seç ve ilk elemanla değiştir. Sonra 2. elemandan başla, en küçük elemanı bul ve 2. elemanla değiştir. Genel olarak, i .(0  i  n-2) geçişte A[i..n-1] dizisinin en küçük elemanını bul ve A[i] ile değiştir: A[0]  . . .  A[i-1] | A[i], . . . , A[min], . . ., A[n-1] Example: 7 3 2 5

Seçmeli Sıralama (Selection Sort) SelectionSort(A,n) for i←1 to n-1 min←i for j←i+1 to n if (A[j]<A[min]) then min←j A[i]↔A[min] Bu algoritmanın işlem süresi θ(n2) dir.

Dizgi Eşleme (String Matching) Desen (pattern): m karakterden oluşan ve aranan dizgi (string) metin (text): n karakterden oluşan ve içinde arama yapılan uzun bir dizgi(string) problem: metinde desenle eşleşen tüm bir dizgiyi bulmak Kaba kuvvet algoritması Adım 1 deseni metnin en başına yerleştir Adım 2 Soldan sağa giderek desenin her karakterini metnin uygun karakteri ile Tüm karakterler eşleşene (başarılı arama); veya Eşleşme başarısız olana kadar karşılaştır Adım 3 Desen bulunmadığı ve metin tükenmediği sürece deseni bir karakter sağa kaydır ve adım 2 ye git

Örnekler Desen: 001011 Metin: 10010101101001100101111010 Desen: happy Metin: It is never too late to have a happy childhood.

Dizge Eşleme BruteForceStringMatching(T,n,P,m) for i←1 to n-m+1 j←1 while j<=m and P[j]=T[i+j-1] j←j+1 if j=m+1 then return i return -1

Kaba kuvvet polinom hesabı Problem: Aşağıdaki polinomun p(x) = anxn + an-1xn-1 +… + a1x1 + a0 x = x0 noktasındaki değerini hesapla Brute-force algorithm Zaman analizi: θ(n2) p  0.0 for i  n downto 0 power  1 for j  1 to i //compute xi power  power  x p  p + a[i]  power return p

Polynomial Hesabı: İyileştirme Sağdan sola yaparak iyileştirebiliriz: Better brute-force algorithm Zaman analizi: θ(n) p  a[0] power  1 for i  1 to n do power  power  x p  p + a[i]  power return p

En yakın 2 nokta problemi 2 boyutlu Kartezyen düzlemde n nokta veriliyor. Birbirine uzaklığı en yakın olan 2 noktayı bulunuz. Brute-force algoritması Her hangi 2 nokta arasındaki uzaklığı hesapla ve uzaklıkları en az olan 2 noktanın indislerini geri gönder. Draw example.

En yakın 2 nokta kaba kuvvet Algoritması The basic operation of the algorithm is computing the Euclidean distance between two points. The square root is a complex operation who’s result is often irrational, therefore the results can be found only approximately. Computing such operations are not trivial. One can avoid computing square roots by comparing distance squares instead. zaman analizi:

Kaba kuvvet güçlü ve zayıf yanları Güçlü yanları Geniş kullanılabilirliği Basit liği önemli bazı problemler (matris çarpımı, sıralama, arama, dizgi eşleştirme) için kabul edilebilir algoritmaların oluşu Zayıf yönleri Nadiren verimli algoritmaların olması Bazı kaba kuvvet algoritmalarının kabul edilemeyecek kadar yavaş olması Diğer tasarım tekniklerine göre yapıcı olmaması

Yorucu arama (Exhaustive Search) Verilen bir özelliği olan bir elemanı bir küme içerisinde aramanın kaba kuvvet çözümüdür. Yöntem: Tüm olası çözümlerin listesini oluştur Optimizasyon problemlerinde olası çözümleri tek tek hesapla kötü sonuçları ele ve her defasında o ana kadarki en iyi çözümü elinde tut Arama bittiğinde elindeki çözümü açıkla

Örnek 1: Gezgin satıcı problemi Aralarındaki uzaklıklar verilen n şehir vardır. Her şehirde tam olarak 1 defa olmak ve harekete başlanan şehire geri dönmek koşuluyla en kısa tur yapılması istenmektedir. Çizge kuramı dilinde: Verilen bağlantılı ağırlıklı çizgede en kısa Hamilton devresini bulunuz. Örnek: a b c d 8 2 7 5 3 4

TSP problemi yorucu arama yöntemi ile Tour Cost a→b→c→d→a 2+3+7+5 = 17 a→b→d→c→a 2+4+7+8 = 21 a→c→b→d→a 8+3+4+5 = 20 a→c→d→b→a 8+7+4+2 = 21 a→d→b→c→a 5+4+3+8 = 20 a→d→c→b→a 5+7+3+2 = 17 Başka tur var mı? Zaman analizi:

Örnek 2: Hırsız çantası problemi n tane eşya vardır: ağırlıkları: w1 w2 … wn değerleri: v1 v2 … vn Çanta kapasitesi W Çantayı toplam değeri en fazla olan eşyalarla doldurmak gerekir Örnek: Çanta kapasitesi W=16 eşya ağırlık değer 2 $20 5 $30 10 $50 5 $10

Çanta problemi için yorucu arama Altküme Ağırlık Değer {1} 2 $20 {2} 5 $30 {3} 10 $50 {4} 5 $10 {1,2} 7 $50 {1,3} 12 $70 {1,4} 7 $30 {2,3} 15 $80 {2,4} 10 $40 {3,4} 15 $60 {1,2,3} 17 not feasible {1,2,4} 12 $60 {1,3,4} 17 not feasible {2,3,4} 20 not feasible {1,2,3,4} 22 not feasible Zaman analizi:

Örnek 3: İş Atama Problemi n kişi ve n iş vardır, her kişiye bir işi yaptırmak istiyoruz. i kişisinin j işini yapmasının maliyeti C[i,j] dir. Toplam maliyeti minimize eden atamayı yapınız. Job 0 Job 1 Job 2 Job 3 Person 0 9 2 7 8 Person 1 6 4 3 7 Person 2 5 8 1 8 Person 3 7 6 9 4 Algoritma : Tüm mümkün atamaları yap, her birinin değerini hesapla ve en ucuzunu seç. Kaç tane mümkün atama vardır?

Atama problemi için yorucu arama 9 2 7 8 6 4 3 7 5 8 1 8 7 6 9 4 Atama Toplam değer 1, 2, 3, 4 9+4+1+4=18 1, 2, 4, 3 9+4+8+9=30 1, 3, 2, 4 9+3+8+4=24 1, 3, 4, 2 9+3+8+6=26 1, 4, 2, 3 9+7+8+9=33 1, 4, 3, 2 9+7+1+6=23 ve b. C =

Yorucu arama için yorumlar Pratikte sadece az sayıda verilenler için işe yarayabilir Bazı durumlarda çok da iyi çözümler vardır! Euler turu problemi için En kısa yol problemi için Minimum örten ağaç problemi için Atama problemi için Hırsız çantaıs problemi için