İçeriğe geç
academia.sh

Kurs İleri

İleri Algoritmalar ve Problem Çözme

Bu kursun sonunda

Kursa başla

01

Algoritma Tasarım Yaklaşımları

Kaba kuvvetin kâhin rolü, böl–yönet bağıntısı, açgözlü seçimin yanıldığı sistemler, not almanın örtüşme koşulu, budamanın kestiği arama alanı ve rastgeleleştirmenin beklenen başarımı.

  1. 01 Kaba Kuvvet ve Sınırları Kaba kuvvetin bu kurstaki rolü bir yavaş seçenek değil bir kâhindir: tam sayım 40 girdide 2640 adım harcıyor, erken çıkan eleme 866 adımla aynı yanıtı veriyor, ilk altı konuma bakan örnekleme ise 406 adımla 14 girdide kâhinden ayrılıyor.
  2. 02 Böl ve Yönet Bölme ile birleştirmenin ayrı hesaplar olduğu: aynı bölme üzerinde doğrusal birleştirme kâhinin 1,16 katı az adım harcayıp 40 girdide de doğru kalırken, karesel birleştirme kâhinden 1,71 kat yavaşlıyor ve sınırı geçen çözümü atlayan eksik birleştirme 920 adımla 40 girdinin 40'ında yanlış yanıt veriyor.
  3. 03 Açgözlü Algoritmalar Açgözlü seçimin kanıtlanmadıkça yordam olmadığı: dört değerli 969 para sisteminin 827'sinde açgözlü gerekenden fazla para veriyor, oran 0,8535 ve en büyük fazlalık 16 para; aynı yanılgı 50 yerine 10 tutara kadar sınandığında sistemlerin yalnız 85'inde görülüyor.
  4. 04 Dinamik Programlama Not almanın iki koşulu ve ikisinin de sayılması: örtüşen alt problemde çağrı 21.891'den 39'a inerken örtüşmeyende ikisi de 39 kalıyor ve defter 19 girişi boşa tutuyor, defterin anahtarı durumun tamamını taşımadığında ise kalıp 40 girdinin 39'unda kâhinden ayrılıyor.
  5. 05 Geri İzleme Budamanın doğruluğu koruyan tek kısaltma olduğu ve ölçütü bozulduğunda ne olduğu: yedi vezirlik tahtada budamalı arama 552, budamasız arama 960.800 düğüm geziyor, ama komşu sütunu da kesen aşırı budama 82 düğümde bitip çözümlerin tamamını kaybediyor.
  6. 06 Rastgeleleştirilmiş Algoritmalar Rastgeleliğin iki ayrı yerde kullanılabileceği ve ikisinin ayrı ölçüldüğü: doğrulamasız örnekleme çoğunluğu olmayan 40 dizinin 40'ında yanlış değer döndürürken doğrulamalı örnekleme aynı dizilerde hiç yanılmıyor, ve on altı vezirlik tahtada rastgele sütun sırası 10.053 düğümlük belirlenimci aramayı ortalama 360 düğüme indiriyor.

02

Problem Çözme Kalıpları

İki işaretçi, kayan pencere, hızlı ve yavaş işaretçi, aralık birleştirme, döngüsel yerleştirme, iki yığın, seçim ve ızgara gezinmesi kalıplarının ön koşullarıyla ve ön koşul bozulduğunda verdikleri yanlış yanıtlarla ölçülmesi.

  1. 01 İki İşaretçi Sıralı dizide karşılıklı tarama; ön koşul bozulduğunda ortaya çıkan 25 yanlış yanıt ve ön koşulu sağlamanın adım bedeli.
  2. 02 Kayan Pencere Bitişik alt dizide artımlı hesap; negatif değerin küçültme kuralını bozduğu 10 girdi ve ön koşulun pencereye değil kurala ait olduğu.
  3. 03 Hızlı ve Yavaş İşaretçi Farklı hızda ilerleyen iki işaretçiyle döngü tespiti ve orta eleman; ikinci kenarın görünmez kıldığı 14 döngü ve durmama bedeli.
  4. 04 Aralık Birleştirme Örtüşen aralıkların tek geçişle indirgenmesi; yanlış sıralama anahtarınün 29 girdide bozduğu birleştirme ve eşitlik kuralının 8 girdide değiştirdiği yanıt.
  5. 05 Döngüsel Yerleştirme Sınırlı değer aralığında karşılaştırmasız yerinde yerleştirme; tekrarlı değerde durmayan kalıp, aralık dışı değerde 40 yanlış yanıt ve korumanın neyi çözmediği.
  6. 06 İki Yığın Akan veride ortanca izleme; denge adımı kaldırıldığında 480 ortancanın 295'inin bozulması ve kalıbın kazancının akış uzadıkça büyümesi.
  7. 07 K'ıncı Eleman Seçim problemlerinde yığın tabanlı ve bölümlemeli çözümler; sorunun tanımı kaydığında 27 girdide ayrılan yanıt ve pivot seçiminin adımı 15 kat büyütmesi.
  8. 08 Izgara Gezinmesi Matriste bağlı bileşen arama; komşuluk tanımının 38 ızgarada değiştirdiği yanıt ve işaretleme ile gezinme seçiminin tutulan hücre sayısına etkisi.

03

Klasik Problemler

Sırt çantası, gezgin satıcı, en uzun yol, N vezir, at turu ve Hamilton yolu problemlerinin kâhinle karşılaştırmalı çözümleri ve yaklaşık çözümlerin ölçülen sapması.

  1. 01 Sırt Çantası Problemi Aynı açgözlü sıranın iki varyantta iki farklı sonuç vermesi: bölünebilir sırt çantasında 40 girdinin 40'ında kâhinle aynı yanıt ve 579,3 kat az adım; 0/1 varyantında aynı sıra 40 girdinin 5'inde kâhinden ayrılıyor ve en büyük kayıp 7 değer birimi. Dinamik programlama 40/40 kâhinle aynı yanıtı 4544 adımda veriyor, kâhin 15.360 adımda. İkinci dağarcıkta ayrılan girdi 6, yani oran aynı büyüklük düzeninde kalıyor.
  2. 02 Gezgin Satıcı Problemi Sekiz şehirde tam sayımla alınan en iyi turun kâhin yapılması ve iki yaklaşık çözümün ondan yüzde kaç saptığının ölçülmesi: en yakın komşu 20 örneğin 17'sinde kâhinden ayrılıyor, ortalama sapma yüzde 9,3 ve en kötüsü yüzde 33,33; iki-değişim iyileştirmesi ayrılan örneği 2'ye, ortalama sapmayı yüzde 0,49'a indiriyor ve bunu 819 adımda yapıyor. Kâhin aynı 20 örnek için 352.800 adım harcıyor. Arama alanının büyümesi koşturularak değil sayılarak gösteriliyor; on sekiz şehirde tur sayısı 177.843.714.048.000. Neden zor sorusu Hesaplama Kuramı kursuna havale ediliyor.
  3. 03 En Uzun Yol Problemi En kısa yol gevşetmesinin en uzun yola çevrilmesi ve iki çizge ailesinde ölçülmesi: çevrimsiz çizgelerde 40 girdinin 40'ında kâhinle aynı yanıt, çevrimli çizgelerde 40 girdinin 38'inde ayrılma ve en büyük fazla tahmin 228 ağırlık birimi; ikinci dağarcıkta 39. Ayrılmanın nedeni yordamın yavaşlaması değil, aradığı nesnenin değişmesidir: gevşetme en çok ağırlıklı yürüyüşü bulur, problem ise en çok ağırlıklı basit yolu ister. Kâhin sekiz düğümde kalıptan ucuzdur; on üç düğümde 86,37 kat pahalı hale gelir.
  4. 04 N Vezir Problemi Ortak tanımın geri izleme sayılarının girdi alınması ve üstüne simetri elemesinin ölçülmesi: ilk veziri tahtanın yarısıyla sınırlamak sekiz vezirde düğümü 2057'den 1029'a indiriyor, oran 2,00; beş vezirde 1,69, dokuz vezirde 1,78. Yansıtılan çözümler kâhinin çözüm kümesini beş tahta boyunun beşinde de tam olarak geri veriyor. Temel çözüm sayısı sekiz vezirde 92 yerine 12, ama en küçük denklik sınıfı 8 değil 4. Budamanın kazancı n ile büyür, simetri elemesinin kazancı 2'de sabit kalır ve ilk çözümü bulmada hiçbir şey kazandırmaz.
  5. 05 At Turu ve Labirent Problemleri Aynı ızgaranın iki ayrı modelle temsil edilmesi ve arama alanının modelle birlikte değişmesi: beşe beşlik ızgarada çözüm adayı yol sayılınca 8512 basit yol ve 90.111 adım, hücre sayılınca 25 adım; oran 3604 ve iki model aynı en kısa uzunluğu veriyor. At turunda en az seçenek bırakan kareyi önce deneme sırası beşe beşlik tahtada dört başlangıcın dördünde de turu 25 düğümde buluyor, doğal sıra 182 ile 101.718 arasında düğüm geziyor. Dörde dörtlük tahtada hiç tur yok ve iki sıralama da tam olarak 29.976 düğüm geziyor: sıralama sezgiseli hayır yanıtında hiçbir şey kazandırmıyor.
  6. 06 Hamilton Yolları Bir varlık sorusunun karar problemi olarak kurulması ve karar, arama, sayma ile doğrulamanın ayrı ayrı sayılması: 40 çizgenin 25'inde yol var ve karar 1526 adım harcarken sayma 29.270 adım harcıyor, oran 19,18. Yol olmayan 15 çizgenin 15'inde karar adımı sayma adımına tam olarak eşit, ikisi de 2538. İkinci dağarcıkta 23 ve 17 çizgeyle aynı yapı çıkıyor. Bulunan bir yolun doğrulanması çizge başına 7 adım, aranması ortalama 61 adım. Karmaşıklık sınıflarının adları Hesaplama Kuramı kursuna bırakılıyor.

04

Alıştırma Disiplini

Girdi büyüklüğünden hedef karmaşıklığı çıkarma, çözümü kâhinle karşılaştırarak doğrulama ve tekrarlı çalışmanın ilerleme ölçütünün kalıp çeşitliliğiyle sayılması.

  1. 01 Problem Okuma ve Kısıt Çözümlemesi Girdi büyüklüğünden adım bütçesi çıkarma ve bu bütçenin kalıbı tek başına seçemediğini ölçme: n=12'de sıralayan kalıp kâhinden 1,61 kat pahalı, yanlış kısıt okuması 40 girdinin 18'inde yanlış yanıt veriyor.
  2. 02 Çözüm Doğrulama Bir çözümün kâhinle karşılaştırılmasının yordama çevrilmesi: 40 rastgele girdi beş kusurun dördünü yakalıyor, 12 kenar durumu beşini de yakalıyor, ve ayrılan bir girdi 12 değerden 1 değere 23 denemede iniyor.
  3. 03 Alıştırma Ortamlarını Kullanma Tekrarlı çalışmanın ilerleme ölçütünün ortak tanımın beş kalıbı üzerinde sayılması: 144 problem çözen ortam beş kalıbı da görüyor ama denge oranı 0,2431, 30 problem çözen ortamda 0,6667.

Aramak için yazmaya başlayın.

↑↓ Esc gezin · aç · kapat