Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
YayınlayanSuharto Yuwono Değiştirilmiş 6 yıl önce
1
Chapter 3 Brute Force Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
2
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
3
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:
4
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.
5
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
6
Örnekler Desen: 001011 Metin: 10010101101001100101111010
Desen: happy Metin: It is never too late to have a happy childhood.
7
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
8
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
9
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
10
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.
11
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:
12
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ı
13
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
14
Ö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
15
TSP problemi yorucu arama yöntemi ile
Tour Cost a→b→c→d→a = 17 a→b→d→c→a = 21 a→c→b→d→a = 20 a→c→d→b→a = 21 a→d→b→c→a = 20 a→d→c→b→a = 17 Başka tur var mı? Zaman analizi:
16
Ö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 $20 $30 $50 $10
17
Çanta problemi için yorucu arama
Altküme Ağırlık Değer {1} $20 {2} $30 {3} $50 {4} $10 {1,2} $50 {1,3} $70 {1,4} $30 {2,3} $80 {2,4} $40 {3,4} $60 {1,2,3} not feasible {1,2,4} $60 {1,3,4} not feasible {2,3,4} not feasible {1,2,3,4} not feasible Zaman analizi:
18
Ö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 Person Person Person 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?
19
Atama problemi için yorucu arama
Atama Toplam değer 1, 2, 3, =18 1, 2, 4, =30 1, 3, 2, =24 1, 3, 4, =26 1, 4, 2, =33 1, 4, 3, =23 ve b. C =
20
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
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.