Problemler Problemler Soyut Problemler Formal gösterim, Karar Problemleri , Optimal değerli, Optimal Çözümlü Yüksek seviyeli türler Soyut problemleri Q ile tanımlarsak Bunlar arsında bir binary ilişki, vardır. I örnekler kümesi S çözümler kümesi olsun Q I S Kodlama //Veri Yapıları Somut Problemler //Dilsel problemler 1
Karar Problemi :Bir problem için Evet veya Hayır cevaplarından hangisinin olduğunu belirleme problemi Polynomial Zaman Algoritması: n boyutlu her girdi için bir c sabitinin ve algoritma bulunur ve bu algoritma problemi O(nc) belirli sürede çözer. P (polynomial time) – Karar Problemleri sınıfı için belirli bir polinomial zaman algoritmasıyla problemin çözümünün bulunduğu problemdir. NP (nondeterministic polynomial time) - Karar Problemleri sınıfı için döngüyü gerçekleştirecak bir polinomial zaman delili vardır. 2
Growth-Büyüme functions f(N)= O(g(N)) Û $c,k " N>k f(n) £ c*g(N) f(N)= W(g(N)) Û $c,k " N>k f(n) ³ c*g(N) f(N)= Q(g(N)) Û f(N)=O(g(N)) and f(N)= W(g(N)) N f(N) Asymptotic optimality/comparison Constant factor disaster! 3 Construct an example where the asymptotic analysis is irrelevant due to the “constant factor disaster”. Illustrate the significance of asymptotic analysis of algorithms with a realistic example.
N N logN Fast sort N2 Slow sort 1000N2 2N Powerset partition N! Permutations salesman 10 30 100 105 1000 350000 20 80 400 4*105 106 2.5*1018 700 104 107 1030 10158 109 10300 ??? ½ hour of the TOP500 together 4
NP-hard problems? Parallel computing does not solve NP-hard problems ! t(n)=n2 t(n)=2n n=10 t=100 n=100 t=104 n=1000 t=106 time limit T Maxproblem(T,1) = X Maxproblem(T,1000)=32 X n=10 t=1000 n=20 t=106 n=40 t=1012 time limit T Maxproblem(T,1)=X Maxproblem(T,1000)=X+10 Parallel computing does not solve NP-hard problems ! But it helps with corresponding heuristics. 5
Üç çeşit problem vardır Problemlerin Sınıfları P NP NP-Complete(NPC) NP-Completeness Proofs(NP –C (tamlık) delilli problemler). Zor problemleri çözme Yaklaşım Algoritmaları Üç çeşit problem vardır Karar Problemleri Örneğin : Verilen sınırlardan daha iyi bir çözüm varmıdır? Optimal değerli Örneğin : En olası çözümün değeri nedir ? Optimal çözümlü Örneğin : optimal değeri veren çözümü bulun. 6
Karar Problemleri için kodlama // veri yapıları Soyut problemi tanımlama (Bilgisayar çözümü için) Veri yapıları veya binary dizisi açısından Bir Soyut nesnelerin S kümesinin bir kodu Bir e eşleme S’den ikili binary dizisinedir. Karar Problemleri için kodlama Örnek problem, e : I {0, 1}* Cevabı, e : S {0, 1} “Standard” Kodlama Hesaplama zamanı bir kodlama bir fonksiyonu olabilir. // Girdinin boyutu (Bir girdi için verilen bit numarı olabailir.) Polinomial ilişkilenmiş kodlama Kodlama öz olarak sonuçlanabilir olarak varsayılır. 7
Bilgisayar algoritmaları somut problemleri çözer. Problem örneği ve çözümleri veri yapısı veya ikili dizi olarak sunulur. // Dilsel (Formal dildeki arayüzü) Biz bir problemi bir somut problemleri örnek kümesi (çözüm kümesi ) binary dizinin kümesini olark adlandırız. Bilgisayar algoritmaları somut problemleri çözer. Somut problemler O(T(n)) zamanda çözülür. Bir n büyüklüğündeki bir problemin i örneği verilirse n = |i|, Algoritma çözüm sağlayabilir. Çoğu O(T(n)) zamanlıdır. Bir somut problem polynomial-zamanlı olarak çözülebilir. O(nk) zamanda çözüm için bir algoritma varsa Bazı kısıtlar için k. (genellikle polinomial sınırlı olarak bilinir.) 8
Exponential Time Algorithms 9 Exponential-time (Hard) NP-Complete 22 22 2n n2 Polynomial-time (Easy) n log n F(n) √n Log (n) α(n) n
Çözülebilir(easy)ve Çözülemez (hard) problemlerde eşik nedir sorusunun cevabı polinomialliğin üstel kompleksliğe karşı olmasıdır. 10
Problemlerin Sınıfları // Bir problemi ne zor yapar? // Basit yapma : Karar problamlerini sınıflandırarmayla Tanımlama: P Sınıfı Polinomial sınırlı karar problemleri sınıfındadır. //Bunun için bir deterministik algoritma mevcuttur. Tanımlama : NP Sınıfı NP polinomial sınırlı non-deterministik algoritmayla sınırlı kara problemleri sınıfına girer. NP ‘nin ismi “Non-deterministic Polynomiall sınırlı.”’dan gelir. // non-deterministic algorithm bir algoritması vardır. Theorem: P NP 11
Analysis of 2-approximation for VC Correctness: Each edge is removed only after one of its ends is chosen to set C, so each edge is covered Termination: In each iteration we remove at least one edge from the graph, and there are less than n2 edges Approximation ratio 2: For each edge {v,w} selected at the beginning of an iteration at least one end must be in min-VC, and we selected two, so set C is at most twice bigger than the min-VC Time complexity: O(m + n) Exercise 12
NP Sınıfı NP bir şöyle bir karar problemi sınıfındadır; Önerilen bir çözüm verilir (olası çözüm(belgesi) ) Bir girdi verilir Kolaylıkla kontrol edilebilir (polynomial zamanda) Gerçek bir çözüm ise bu görülbilir. Bir non-deterministic algoritma The non-deterministic safhayı “tahmin edebilir”. Bazı tamamen keyfi s dizisi , “önerilen çözümdür” Algoritmadaki her bir zaman farklı olarak çalışabilir. “Doğrulama” Fazını belirleme. Bir belirli algoritma problemin girdisini ve önerilen s çözümünü verebilir ve Doğru veya yanlış değere döner . Çıktı adımında Eğer doğrulama safhasında değer doğru dönüyorsa çıktı yanıtı “evet” tir aksi halde hayırdır. 13
Bir Q problemi NP-complete’ise NP-Complete Sınıfı Bir Q problemi NP-complete’ise Problem NP’de olabilir ve NP-hard olabir, Bir Q problemi NP-hard ise Bütün problemler NP ise Q’ya indirgenebilir. Bir P problemi bir Q problemine indirgenebilir eğer ; Şöyle bir T polinom indirgeme fonksiyonu varsa Her x dizisi için, if x P girdisi için “evet ” then T(x) Q için evet girdisidir. if x Piçin ”hayır”girdisi ise, then T(x) Qiçin “hayır” girdisi. T polynomially kısıtlı zamanda hesaplanabilir. 14
NP Completeness Teorisi Çözülebilir - Çözülemez Problemler NP – Complete Problemleri Problemler Çözülebilir – Çözülemez diye sınıflandırılabilir. Bir Problem çözülebiliyorsa bunun enazından bir polinomial sınır agoritması mevcuttur. Eğer bir Algoritma polinomial sınırlı ise bununen kötü durumda büyüme hızı bir n boyutlu bir p(n) polinomu ile sınırlıdır. 15
Bir Problem çözülemiyorsa Tüm algoritmalar bu problemi polinomial sınırlarda çözemez. Ve bunun f(n) diye çok büyük bir büyüme hızı vardır ve bu p(n) gibi n boyutlu bir polinom ile sınırlandırılamaz. Çözülemez problemlerin sınırları şöyle olabilir; Eğer bir problem çözülemez sınıfında ise bunun için etkin bir algoritma yoktur; Bütün algoritmalar büyük sayıda girdiden dolayı çok ağır kalacaktır. 16
NP hard Problemleri Farz edelimki П bir problem olsun(Karar problemi olması şart değil.) Eğer П’ NPC varsa П NP hard problemidir. Eğer П bir optimizasyon ve kararla ilgili bir NP complete problemi ise П NP hard’dır. NP hard’lar NP problemlerinin en zorlarıdır eğerNP hard problemleri polinomial bir zamanda çözülebilirse P=NP’dir. 17
En kısa yol problemleri : Bir ağırlıklı kenarları ve iki köşesi v ve w olan grafiği G = (V,E) verilmiş olsun, amacımız v den w’ya en kısa yolu bulmaktır .(O(n2) zamanda belirlenir.) 2-colorability: G = (V,E) çizgesi erilmiş olsun,amacımız iki rengi G’nin düğümlerine aynırenkteki kenarlar yanyana olmamak şartıyla (O(n+m) zamanda atayabiliriz.) 3-clique: G = (V,E) grafiğiverilmiş olsun G’nin 3 ‘lü grup olarak belirlemek. ( buda O(n3) zamanda belirlenir.) 18
NP hard Problemlerinin Çözümü NP Hard optimizasyon problemlerinin çözümünü polinomial zamanda olmasını beklemeyiz .Bunun için 2 olası yaklaşım vardır; 1.Exponansiyel olarak çok kötü komplexleşen bir algoritma kullanma.Bu örnek büyüklüğünün çok büyük olmaması durumunda belki pratik olabilir. 2. Bazı NP hard optimizasyon problemleri için optimal zamanda olurlu bir çözüme yakın bir cevap bulunabilir buda polinomial zaman yaklaşım algoritması olarak bilinir. 19
Yaklaşım Algoritması Farzedelim П amaç fonksiyonu maliyet olan bir minimizasyon problemi olsun. Ve yine farzedelim ki A П için bir algoritma olsun ve herhangi bir I aşaması için A(I) çıktısı da olurlu bir çözüm olur. I adımı için optimal çözüm OPT(I) olduğunu gösterir.Algoritma yaklaşım oranı Eğer Bütün I adımları için Bir maximizasyon problemi için ihtiyaç yerine Not : 20
Gezgin Satıcı Problemi Problem : Δ – TSP Adımları : Bir grafik tamamlama ve kenar ağırlıkları w: üçgen eşitsizliğini sağlarız; Bütün a, b, c düğümleri için Arama : Bir Hamilton Çevrimi G içinde H olmak üzere ‘yi minimize ederiz. 21
Hesap Karmaşıklığı NP Completness Algoritma örneği 22
O : Üst Sınır Fonksiyonu Tanım: f(n) = o(g(n)) eğer her c>0 ve 0<= f(n) <= cg(n) bütün Örnek : Yargılama: Eğer çoklu ve küçük n değerlerini yok sayarsak f(n) <= g(n)’dir 23
Büyük O Notasyonu “O” ’nun ilişkini nasıl gösterbiliz? Bir algoritma O(f(n)) çalışma zamanında çok kötü duruma sahipse ;Her yeterince büyük n için sabit bir c sabiti vardır, n boyutlu her girdi çalışması cf(n) zamanını verir. 24
Asimptotic Fonksiyonlar Polinomial Zamanın komplexliği : “n” ‘in girdi “k” ‘nın da sabit olduğu durumda olur. Örnek Polinomial Fonksiyonlar : Örnek Non – Polinomial Fonksiyonlar : exponansiyel Faktoriyel 25
Çalışma zamanlarının Karşılaştırılması 1000 MIPS(saniyedeki milyon komut sayısı)(yr:200x) , 1komut/operasyon 26
The class P- P Sınıfı P sınıfı karar problemleri polinomial sınırlı problemlerdir. 27
Doğrulama Algoritması Bir doğrulama Algoritması, x örnek problemini ve “evet” yanıtını verir, eğer x problemi için y olası çözümü var ise bu cevabın “evet olduğunu gösterir. HAMILTONIAN-Çevrimine bakarsak Bir x probleminin köşe ve kener listesi G: ({1,2,3,4}, {(3,2), (2,4), (3,4), (4,1), (1, 3)}) ise ; Bir olası çözümü y = (3, 2, 4, 1, 3) Doğrulama Algoritmasının yanıtı “evet” olur. 28 4 1 2 3
P and NP arasındaki ilişki P = NP. bilinmiyor.; P sınıfı problemler “kolaylıkla” çözülebilir. NP sınıfı “kolaylıkla” doğrulanabilir Bir çözümü doğrulamak bir problemi çözmekten daha kolaydır. Bazı araştırmacılar P and NP’nin aynı sınıfta olmadıklarına inanıyorlar. 29
Polynomial İndirgemeler Motivation: NP-completeness A gibi bir problemi polinomial indirgeme yaparak B haline getirdiğinde şu notasyonu kullanılır. Aµ B A karar problemi için tran herhangi bir x girdisini tran(x) haline getirsin buda B kara probleminin girdisi olsun If Aµ B and B is in P, then A is in P If A is not in P then B is also not in P 30
NP-complete problems: Theorem If any NP-complete problem is not polynomial bound, then all NP-Complete problems are not polynomial bound. If any NP-complete problem is in P, then P = NP. NP P P = NP NP-complete NP-complete P The trival decision problem that always answers “yes” in here Some Problem is definitely in here 31
tran A’dan B’ye bir polinomial indirgeme olsun eğer; 1. tran polinomial kısıtlı zaman olarak hesaplanabilir. 2. A’nın girdisi x’in cevabı evet ise o zaman B’nin tran(x) için cevabı evet olur. “yes” or “no” x tran(x) Algorithm for B tran Algorithm for A 32
Polynomial İndirgemeler Problem P is reducible to Q P p Q Transforming inputs of P to inputs of Q Reducibility relation is transitive. 33
Bin Packing: İlk Doldurmada azaltma Stratejisi Birinci çöp kutusunda hangi nesnenin dolduracağı ve yeri W(n) in (n2) 34
Yaklaşım Algoritması Örneği : Bin Packing Çeşitli boyut ve ölçülerde nesnelerin nasıl paketleneceği Minimum çöp uzayı ile; Çöp Paketleme Let S = (s1, …, sn) 1 <= i <= n için 0 < si <= 1 olduğu durumlarda paketler s1, …, sn olabildiğince az where each bin has capacity one Çöp Paketlemenin Optimal Cevabı Bütün yolları göz önüne alma S yi veya daha az alt kümeye ayırma Daha fazla olmalı (n/2)n/2 olası parçalar 35
Hard Problems Algoritmalar Zaman zorluğu Uzay zorluğu Bir algoritma zaman zorluğu ile bir polinom ile sınırlı ise buna bir polinomal zaman algoritması denir.Bir algoritma polinoial zamanda çalışıyorsa bunun verimli olması gözönünde tutulur. 36
Hard Problems Bazı problemlerin çözülmesi zordur Polinom Zamanlı bilinen algoritma yok. Bir çok combinatoriyel problem zordur. Popülar olan NP-hard problemler: Gezgin Satıcı Problemi(TSP) N-Queens-Kuyruk problemleri Kutu paketleme (Bin packing) 0/1 Sırtçantası (knapsack) Grafikleri parçalara ayırma (Graph partitioning) Ve daha bir çok komplex problemler …. 37
Teoriden bilindiği kadarıyla ne yazık ki poly time bir algoritma yok . Farzedelimki NP hard problemlerini çözmeye ihtiyacım olsun ne yapmalıyım ? Teoriden bilindiği kadarıyla ne yazık ki poly time bir algoritma yok . İstenen şu Üç özellikten birinden fedakarlık yapmalıyım . Problemi optimal bir şekilde çözme Problemi Polinomial zamanda çözme. Problemi gelişigüzel örneklerle çözme. 38
Gradient Düşürme Yöntemi : Kapalı Düğüm KAPALI DÜĞÜM. G = (V, E), çizgesi verilirse minimal kardinaliteyi veren S düğümünün altkümesi aranır bu E de u dan v ye dir.u ve v ‘nin her ikise de S’ Komşuluk ilşkileri S S' eğer S‘ S’ye düğüm ekleme veya S’den bir düğümün silinmesi ile elde edilir. Her S düğüm kapamasın den fazla komşuluğu vardır. Gradient düşürme . S = V. ile başlanır ve Eğer S’ kapalı ve düşük kardinaliteli bir düğüm ise S ile S’ yer değiştirlir. Açıklama :Algoritmanın durmasıen çok herbir güncellemeden kapalı bir boyutun azalmasından itibaren n adım sonra durur 38
Local optimum . Komşuluğun olmaması kesinlikle daha iyi. optimum = yalnızca merkez düğüm local optimum = Bütün düğümler optimum = Sol tarftaki tüm düğümler local optimum = Sağdaki tüm düğümler optimum = Her düğüm local optimum = her üç düğümde bir atlamayla 39
Sivri uçlu bir baca gibi Lokal Arama Lokal arama. Algoritma çözüm uzayında olması muhtemel çözümlerin sıralı öncülükle araştırır. Mevcut çözümden yakındaki bir çözüme hareket ile araştırır. Komşuluk İlişkileri . S S' arasında problemle ilgili bir komşuluk olsun. Gradient Düşürme . S ‘nin şu anki çözümü gösterdiğini düşünelim. Eğer S’ ile S arasında maliyet düşürmeyle ilgili bir komşuluk varsa, S ile maliyeti düşük olan komşusu yer değiştirir. Aksi halde algoritma durur. 40 Bir baca gibi Sivri uçlu bir baca gibi
Metropolis Algoritması Metropolis algorithm. [Metropolis, Rosenbluth, Rosenbluth, Teller, Teller 1953] İstatistiksel Mekaniğin prensibleri ile fiziksel sistemlerin davranılşını simule eder. Globel olarak inişli adıma doğru sapmalıdır fakat arasıra yokuş yukarı adımlar ile lokal minimumlardan kurtulur. Gibbs-Boltzmann foksiyonu : T > 0 sıcaklık ve k bir sabit olmak üzere Enerjisi E e -E / (kT) ile orantılı durgun fiziksel bir sistemin, olasılığını arar. Herhangi bir T>0 sıcaklığı için E energy fonksiyonu monoton azalır. Sistem yüksek enerjili durumdan çok düşük enerjili durumda kalmayı tercih eder. T büyük: yüksek ve düşük enerjili durum kabaca aynı olasıkladır. T küçük: Düşük enerjili durum daha olasasıdır.
Metropolis algorithm. Metropolis Algoritması Sabit bir T sıcaklık verilir , şu anki S durumun korunması Rassal olarak Şimdiki S durumu S’ N(S).yeni durumuna uğratılır. Eğer E(S') E(S), şimdiki durumu S‘olark düzenlenir; Diğer durumlarda şimdiki durum e - E / (kT olasılıkla S’ olarak güncellenir. E = E(S') - E(S) > 0. olduğu durumlarda; Teorem. Şimdi fS(t) S durumundaki ilk t adım sonraki bölümüdür. Sonra bazı teknik koşullarla ilgili olasıklar : Sezgi :Benzetim Gibbs-Boltzmann eşitliğine göre kabaca her bir durumun doğru zamanda harcar
Benzetim Tavlama Benzetim Tavlama Physical Örnekler. T büyük Tepe’ye hareketinin kabul olasılığı büyütür. T küçük Tepe’ye hareketi hemen hemen hiç kabul kabul edilmeyen Idea: turn knob to control T. Soğutma Çizelgesi : T = T(i) i. İterasyonda. Physical Örnekler. Katı alınır ve yüksek ısıya artırılır , güzel kristal yapılari içerdiğini beklemeyiz. Eriyik katı alınır ve aniden soğutulur , yine mükemmel cristal elde edeceğimizi düşünmeyiz. Tavlama: Yüksek ısıdan malzeme kademeli olarak soğutulur , orta dereceli ısılarda dengeye erişir.
Hopfield Neural Networks Hopfield networks., Önceli ağ ile geniş boyutta veri toplayan ve birim komşulukları durumları arasında ilişki kuran basit çağrışımlı bir belleği vardır. Girdi : G = (V, E) Çizgesi ve kenar ağırlıkları w. Konfigürasyonu. Düğüm ataması s u = ± 1. Sezgi : Eğer w uv < 0, then u ve v aynı durumda kalmayı ister ; Eğer wuv > 0 then u ve v farklı durumda kalmayı ister. Not. Genel olarak,bütün kısıtlar gösterecek konfigürasyon yoktur. positive or negative 7 5 6
Def. Bir konfigürasyon bütün düğümler sağlanmışsa durağanlaşır. Def. S konfigürasyonuna göre, kenar e = (u, v) şu koşullara göre iyidir . Eğer we su sv < 0. Bu , Eğer we < 0 then su = sv; Eğer we > 0, su sv.dir Def. S konfigürasyonun göre , Eğer iyi kenar ağırlığı eğer kötü kenar ağırlığından ise a düğümü u’yu sağlar . Def. Bir konfigürasyon bütün düğümler sağlanmışsa durağanlaşır. Hedef. Eğer bir konfıgurasyon varsa, Stabil durum konfigurasyonunu bulma . 4 -1 satisfied node: 5 - 4 - 1 - 1 < 0 -10 -5 -1 bad edge
unsatisfied node 10 - 8 > 0 stable
Maximum Cut: Local Search Analysis
Zaman ve Uzay Problemin boyutu(n) ‘nun fonksiyonu gibi hesaplanmalıdır. Örneğin:n boyutlu bir sıralamada , n boyutlu bir liste taranır ,ve bu n x n lik iki matrisin çarpımı şaklindedir. T(n) : n ‘in zaman fonksiyonudur, S(n) : n ‘in uzay fonksiyonudur ,
Matematiksel Arkaplan O Omega (Ω) Teta (θ) o
Büyüme hızı Biz fonksiyonları göreceli olarak büyümelerine göre kıyaslarız; 1000n , n² gibi Tanımlamalar; T(n) = O(f(n)) T(n) ‘nin büyüme oranı <= f(n) ‘nin büyüme oranından T(n) = W (g(n)) T(n) ‘nin büyüme oranı >= g(n) ‘nin büyüme oranından T(n) = Q(h(n)) T(n) ‘nin büyüme oranı = h(n) ‘nin büyüme oranı T(n) = O(p(n)) T(n) büyüme oranı <= p(n)büyüme oranından
Zaman Zorluğu C O(n) O(log n) O(nlogn) O(n2) … O(nk) Polinomial O(2n) Exponensiyel O(kn) O(nn)
P, NP, NP-hard, NP-complete(NPC) Bir problem polinomial zaman algoritmaları ile çözülüyorsa bu problem P sınıfına aittir; Bir problemin çözümünün doğruluğu polinomial zaman algoritması ile sağlanmışsa bu problem NP sınıfına aittir; NP sınıfındaki herhangi bir problem zor ise bu tip problemler de NP hard sınıfına aittir. Bir NP hard problemi için var olan polinomial zaman algoritması bütün NP problemleri için polinomial çözümlerin varolduğunu ifade eder .
Farklı Sınıflar Arasındaki İlişki
Parçalara Ayırma Problemi N adet tamsayı verilsin , tamsayıları iki alt kümeye bölüp birbirinden farklı olan ikili alt küme elemanların toplamını minimum yapacak şekle getiririz.
Çöp Toplama Problemi Boyutları s1 , s2 ....sn olan n eleman verilmiş olsun. Bütün boyutlar 0<= si<=1 ‘dir. Problem çöp numaraları en az olacak bu paketleri toplamak her çöpün kapasitesi verilmiştir. Örnek(Optimal Cevap) 7 elemanlı bir büyüklük için ; 0.2, 0.5, 0.4, 0.7, 0.1, 0.3, 0.8.
TSP (Gezgin Satıcı Problemi) TSP Bir şehir kümesi ve şehirler arasında uzaklıklar verilirse herşehir bir kez ziyaret edilmek koşuluyla belli bir başlangıç noktasından başlanıp tur sonunda tekrar aynı yere gelmek koşuluyla minimum tur’u veren mesafe aranır.
П Bir karar problemi olsun bu I=(F,c,k)’dır Karar Problemleri :Problemin cevebı yalnızca Evet -Hayır olur. Bir şehir kümesi ve şehirler arasında uzaklıklar verilirse herşehir bir kez ziyaret edilmek koşuluyla belli bir başlangıç noktasından başlanıp tur sonunda tekrar aynı yere gelmek koşuluyla minimum tur’u veren mesafe aranır. MST verilen bir G=()V,E) çizgede ve bir sınırı K, K dan büyük bir ağaç varmıdır? TSP Bir şehir seti ve şehirler arsı uzaklık verildikten sonra ve bir B sınırına gore herşehir yalnızca bir kere ziyaret edilerek sonlandırılan tur sırasında toplam mesafenin B’deb büyük olanı var mıdır gibi sorular? П Bir karar problemi olsun bu I=(F,c,k)’dır Örnek için Evet yanıt kümesi Y П tarfından verilir. A alt görevinde çözüm incelemsinde f Fverilir ve k dan düşük maliyetli olanlar check edilir. NP completness karar problemleri ile birleşmiştir.
Karar Problemi Akım Memnuniyeti problemi(Circuit SAT) Örnek : Bu problemde Akım C , AND OR veya NOT kapılarından oluşan bir karışımdan oluşur. Soru : C nin çıktısını 1 yapacak atanmış bir boolean değeri varmıdır? Aşağıdaki şekilde örnek gözükmektedir
P sınıfının Zorluğu Bu tür problemler girdi boyunda polinomial bir zamanda çözülebilir. Girdi Boyutu : Binary dizisinin kod büyüklüğü Problem çözülebilir sınıftadır. Bilgisayar hesaplaması turing makinasının belirlenmesi ile ile ilgilidir. Belirlemenin manası her bir adımda bir hesap tahminidir. Bir Turing Makinası genel bir bilgisayar matematik modelidir.(herhangi bir hesaplama bir turing makinasında polinomial zamana ihtiyacı vardır.
NP Sınıfının Karmaşıklığı Bazı problemlerin çözümlerini gözden geçirmeyi deterministik bir makinada polinomial zamanda gerçekleştirebiliriz.= Problem polinomial zamanda Nondeterministik Turing makinasında çözülebilir. Nondeterministik : Makina bütün olasılıkları parelel olarak gözden geçirerek doğru yanıtı tahmin etmeye çalışır. NP Sınıfı : Bu tür problemler problemi polinomial zamanda doğrulayabilir. TSP bir NP’dir çünkü tur tahmini Her şehri bir kez ziyaret Başalngıç noktasın ageri dönüş Uzaklığın toplamı <=B Olmak üzere bütün bunlar O(n ) zamanda yapılır.
NP-nin tamlığı ve NP-nin zorluğu
NP-nin Tamlığının Sağlanması
NP Hard Problemlerinin Çözüm yöntemleri Yaklaşım Algoritmaları Sabit ornda optimumluktan uzaklaşmayı garntiler Minimum Steiner Problemi için MST gibi. Sözde Polinomial zaman Algoritması Bir polinomial foksiyonun karmaşıklığını içerir problem boyutu kadar değildir. Sırt çantası problemiiçin O(nW)örneği Kısıtlama Orjinal problemi çalışılabilecek alt gruplara ayırma En uzun yol problemi için direk çevrimsiz çizge Geniş Arama / Dal Sınır Problem boyutu küçükse olurludur. Lokal Arama Simulated Annealing (hill climbing), GA... Heuristic Performansı garanti vermez
Kutu Doldurma
Kutu Doldurma Algoritması
Kutu Doldurma için Tam sayılı Doğrusal Programlama
Gezgin Satıcı Problemi (Traveling Salesperson Problem (TSP) G ağırlıklı yönlendirilmiş çizge olsun (Let G be a weighted directed graph) G in içeresinde yapılan bir tur dolaşım çizgedeki tüm düğümlere uğramayı içerir. TSP => Amaç en kısa yolu bulmaktır Problem NP-hard’dır. ( N! formunda)
Bir TSP Uygulaması Home city Visit city
Applications Of TSP Her bir düğüm Joe’nun satış yaptığı bir şehri gostermektedir. Sınırlardaki ağırlıklar (u,v)Joe ‘nun u şehrinden v şehrine yolculuk ettiği zaman verilir Ayda bir Joe kendi şehrinden ayrılıp satış yaptığı bolgeleri ziyaret edip saonra evine donmektedir. Satış yaptığı bolgelere yaptığı turlarda harcadığı toplam sure yolculuk suresi + bulunduğu şehirdeki harcadığı süredir. Amaç toplam süreyi minimum yapmak ,bunu için Joe en kısa uzunluktaki tur’u seçmeli .
Applications Of TSP Tenis örneği Tennis practice. Yaklaşık 200 tenis topundan olşan bir sepetle başlayalım . Bütün toplar bittiğinde bizim kortta 200 adet topumuz yerdedir. Bu toplar bir robot tarfından toplanırsa (daha gerçekçi olarak bir tenis oyuncusu tarafından) Robot bulunduğu yerden başlayıp topun olduğu her yeri bir kez ziyaret ederek (her bir topu topluyor) ilk başaldığı yere geri dönüyor.
Applications Of TSP Robot Station
Applications Of TSP 201 düğüm TSP. 200 tennis topu ve robot istasyonundan oluşan düğümler var. Yönlendirilmiş Çizgesini tamamlamalıyız. Sınır uzunluğu (u,v) u ve v düğümleri olarak verilen 2 nesne arasındaki mesafedir. En kısa mesafe top toplama zamanını minimum yapar. Gerçektende bizim amacımız bir tur için hesaplanan gerkli zamanı ve top toplama için hesaplanan tur için harcanan süreyi minimum yapmaktır.
Applications Of TSP n+1 vertex TSP. İmalat Bir robot kolu bir metal plakayı n adet delik açamak için kullanılıyor. Robot Station Time to drill the holes is fixed. The only variable is the time the robot spends moving from one hole location to the next and finally returning to its base. n+1 vertex TSP.
n-Kralice Problemi 8x8 Chessboard Bir kraliçe n x n ‘lik bir satranç tahtasındabulunur, benzer konumda herhangi bir satır , stunu veya çapraz ilerliyebilir. 8x8 Chessboard
8 Kralice Problemi 8x8lik bir satranç tahtasında 8 kralice bunu gibi durumda diğer yerler deneyemeyebilir.
4-Queens Problem 4 kralice 4x4 lük bir satranç tahtasındaki yerleşimi böyle olan kraliçeler diğer kralicelere saldırır mı? 4x4
One possible solution for 8-Queens Problem 8x8
8 Kraliçe- Gösterim Genotipi: 1 den 8 e kadar olan bir permutasyondan oluşur. 1 2 3 4 5 6 7 8 Fenotipi : Bir konfigürasyondur
Zor problemler Bir çok gereklilik olarak bazı kısıtları sağlamak için bir alt küme veyapermutasyon bulmalısınız ve (olası olarak da) Amaç fonksiyonunu optize etmelisiniz. Çözüm uzayını bir ağaç gibi düzenleyebilir ve cevabı da bu ağaçta sistematik olarak bir arama yapabilirsiniz.
Permutasyon Problemleri Çözüm için n elemanlı bir permutasyon bulmalızsınız. Permutasyon bazı kısıtları memnun etmeli ve amaç fonksiyonunu olası olarak optimize etmeli . Örnekler . TSP. n-queens(n - Kralice). Her bir kralice değişik satır sutunda olmalı. i. Kralice i. Satıra yerleşecek olacak kralice olsun. ci i. Kralicenin yerleşeceği kolon olsun c1, c2, c3, …, cn [1,2,3, …, n] gibi 2 kralicenin saldırmadığı bir permutasyon olsun
Çözüm Uzayı Permutasyon problemi. Çözüm uzayında n! Çözümden oluşan bir permutasyon problemine sahiptir. Uzayda Sistematik olmayan bir aramada cevap O(pn!) zamanda alınır. P bir cözümün çözüm uzayındagerekliolan süresidir.
8 Kralice - Operatorleri 1 2 3 4 5 6 7 8 Mutasyon: 2 numara değişimi Crossover: İki ebeveynin birleşmesi 1 2 3 4 5 6 7 8
8 Kralice- Uygunluk & Seçim Uygunluk: Bir kralicenin cezası denetlenebilir kralicelerin sayısına eşittir. Konfigürasyonun uygunluğu bütün kraliçelerin cezaları toplamına eşittir. Seçim: Rus ruleti kullanılıyor Uygunluk(C1) = 1 Uygunluk(C2) = 2 Uygunluk(C3) = 3 C1 C2 C3 1/6 = 17 % 3/6 = 50 % 2/6 = 33 %
Problem: shortest path from a to z d 5 5 4 7 3 4 1 2 a z 3 4 c 5 e 5 g a b c d e f g z S ∞ x 4(a) 3(a) a,c
processed: 1 0 0 0 0 0 0 fromNode: 1 1 1 distance: 0 15 35 # 20 # # index: 1 2 3 4 5 6 7 IndexOfMin 1 5 7 2 3 4 6 20 40 15 35 10 50 75
processed: 1 1 0 0 0 0 0 fromNode: 1 1 1 distance: 0 15 35 # 20 # # index: 1 2 3 4 5 6 7 1 5 7 2 3 4 6 20 40 15 35 10 50 75 Unprocessed node adjacent to 2 is 4. # > 15+40 = 55 so replace # with 55
processed: 1 1 0 0 0 0 0 fromNode: 1 1 2 1 distance: 0 15 35 55 20 # # index: 1 2 3 4 5 6 7 IndexOfMin 1 5 7 2 3 4 6 20 40 15 35 10 50 75
processed: 1 1 0 0 1 0 0 fromNode: 1 1 2 1 distance: 0 15 35 55 20 # # index: 1 2 3 4 5 6 7 IndexOfMin 1 5 7 2 3 4 6 20 40 15 35 10 50 75 Unprocessed node adjacent to 5 is 3. 35 > 20+10 = 30 so replace 35 with 30
processed: 1 1 0 0 1 0 0 fromNode: 1 5 2 1 distance: 0 15 30 55 20 # # index: 1 2 3 4 5 6 7 IndexOfMin 1 5 7 2 3 4 6 20 40 15 35 10 50 75 Unprocessed node adjacent to 5 is 6. # > 20+50 = 70 so replace # with 70
processed: 1 1 0 0 1 0 0 fromNode: 1 5 2 1 5 distance: 0 15 30 55 20 70 # index: 1 2 3 4 5 6 7 IndexOfMin 1 5 7 2 3 4 6 20 40 15 35 10 50 75 Unprocessed node adjacent to 5 is 7. # > 20+75 = 95 so replace # with 95
processed: 1 1 0 0 1 0 0 fromNode: 1 5 2 1 5 5 distance: 0 15 30 55 20 70 95 index: 1 2 3 4 5 6 7 IndexOfMin 1 5 7 2 3 4 6 20 40 15 35 10 50 75
processed: 1 1 1 0 1 0 0 fromNode: 1 5 2 1 5 5 distance: 0 15 30 55 20 70 95 index: 1 2 3 4 5 6 7 IndexOfMin 1 5 7 2 3 4 6 20 40 15 35 10 50 75 Unprocessed node adjacent to 3 is 4. 55 < 30 + 35 = 65 no change in array
processed: 1 1 1 0 1 0 0 fromNode: 1 5 2 1 5 5 distance: 0 15 30 55 20 70 95 index: 1 2 3 4 5 6 7 IndexOfMin 1 5 7 2 3 4 6 20 40 15 35 10 50 75
processed: 1 1 1 1 1 0 0 fromNode: 1 5 2 1 5 5 distance: 0 15 30 55 20 70 95 index: 1 2 3 4 5 6 7 IndexOfMin 1 5 7 2 3 4 6 20 40 15 35 10 50 75 Unprocessed node adjacent to 4 is 6. 70 > 55 + 10 = 65 so replace 70 with 65
processed: 1 1 1 1 1 0 0 fromNode: 1 5 2 1 4 5 distance: 0 15 30 55 20 65 95 index: 1 2 3 4 5 6 7 IndexOfMin 1 5 7 2 3 4 6 20 40 15 35 10 50 75
processed: 1 1 1 1 1 0 0 fromNode: 1 5 2 1 4 5 distance: 0 15 30 55 20 65 95 index: 1 2 3 4 5 6 7 IndexOfMin 1 5 7 2 3 4 6 20 40 15 35 10 50 75
processed: 1 1 1 1 1 1 0 fromNode: 1 5 2 1 4 5 distance: 0 15 30 55 20 65 95 index: 1 2 3 4 5 6 7 IndexOfMin 1 5 7 2 3 4 6 20 40 15 35 10 50 75 Unprocessed node adjacent to 6 is 7. 95 > 65 + 15 = 80 so replace 95 with 80
processed: 1 1 1 1 1 1 0 fromNode: 1 5 2 1 4 6 distance: 0 15 30 55 20 65 80 index: 1 2 3 4 5 6 7 IndexOfMin 1 5 7 2 3 4 6 20 40 15 35 10 50 75
processed: 1 1 1 1 1 1 1 fromNode: 1 5 2 1 4 6 distance: 0 15 30 55 20 65 80 index: 1 2 3 4 5 6 7 IndexOfMin 1 5 7 2 3 4 6 20 40 15 35 10 50 75 All nodes have been processed Algorithm finishes.
Theorems Dijkstra’s algorithm finds the length of a shortest path between two vertices in a connected simple undirected weighted graph G=(V,E). The time required by Dijkstra's algorithm is O(|V|2). It will be reduced to O(|E|log|V|) if heap is used to keep {vV\Si : L(v) < }, where Si is the set S after iteration i.
The Traveling Salesman Problem The traveling salesman problem is one of the classical problems in computer science. A traveling salesman wants to visit a number of cities and then return to his starting point. Of course he wants to save time and energy, so he wants to determine the shortest cycle for his trip. We can represent the cities and the distances between them by a weighted, complete, undirected graph. The problem then is to find the shortest cycle (of minimum total weight that visits each vertex exactly one). Finding the shortest cycle is different than Dijkstra’s shortest path. It is much harder too, no polynomial time algorithm exists!
The Traveling Salesman Problem Importance: Variety of scheduling application can be solved as a traveling salesmen problem. Examples: Ordering drill position on a drill press. School bus routing. The problem has theoretical importance because it represents a class of difficult problems known as NP-hard problems.
THE FEDERAL EMERGENCY MANAGEMENT AGENCY A visit must be made to four local offices of FEMA, going out from and returning to the same main office in Northridge, Southern California.
FEMA traveling salesman Network representation
40 2 3 25 35 50 40 50 1 4 45 65 30 80 Home
FEMA - Traveling Salesman Solution approaches Enumeration of all possible cycles. This results in (m-1)! cycles to enumerate for a graph with m nodes. Only small problems can be solved with this approach.
FEMA – full enumeration Possible cycles Cycle Total Cost 1. H-O1-O2-O3-O4-H 210 2. H-O1-O2-O4-O3-H 195 3. H-O1-O3-O2-O3-H 240 4. H-O1-O3-O4-O2-H 200 5. H-O1-O4-O2-O3-H 225 6. H-O1-O4-O3-O2-H 200 7. H-O2-O3-O1-O4-H 265 8. H-O2-O1-O3-O4-H 235 9. H-O2-O4-O1-O3-H 250 10. H-O2-O1-O4-O3-H 220 11. H-O3-O1-O2-O4-H 260 12. H-O3-O1-O2-O4-H 260 Minimum For this problem we have (5-1)! / 2 = 12 cycles. Symmetrical problems need to enumerate only (m-1)! / 2 cycles.
FEMA – optimal solution 40 2 3 25 35 50 40 1 50 4 45 65 30 80 Home
The Traveling Salesman Problem Unfortunately, no algorithm solving the traveling salesman problem with polynomial worst-case time complexity has been devised yet. This means that for large numbers of vertices, solving the traveling salesman problem is impractical. In these cases, we can use efficient approximation algorithms that determine a path whose length may be slightly larger than the traveling salesman’s path, but