Kesin algoritmalarda kullanılan yaklaşım algoritmaları


11

Yaklaşık algoritmalar, bazı sabit faktörlere kadar çıktı verebilir. Bu, tam algoritmalardan biraz daha az tatmin edicidir.

Bununla birlikte, zaman karmaşıklığında sabit faktörler göz ardı edilir.

Bu yüzden merak ediyorum aşağıdaki hile mümkün veya kullanıldı, bazı sorunu çözmek için :BA

  1. Çözelti sabit faktör dahilinde elde etmek için problemini çözerek bir yaklaşım algoritması kullanın ;SAS
  2. Çalışma zamanı ağırlığına bağlı olan ancak doğru bir çözüm olduğu sürece çalışan problemini çözerek tam bir algoritma kullanın .S SBSS

Bu şekilde yaklaşım, tam bir algoritmanın bir "alt prosedürüdür" ve 1. adımda kaybedilen sabit faktör, 2. adımda yutulur.


Crosspost gelen matematik SE
sdcvvc

ve ağırlığı ile ne demek istediğinizi mısınız? SBAS
Yoshio Okamoto

Bu somutluktan için, gayrı: olan sorunları aramak , (çözümler bazı ağırlığını taşıyacak böylece) bir optimizasyon problemi olarak düşünülen ve ilişkilerinin bileşimidir. A B AA,BABA
sdcvvc

Cevaplar bir koleksiyon olurdu. Bu yüzden, topluluk wiki'sini yapmanın daha uygun olacağını düşünürdüm.
Yoshio Okamoto

Büyük liste etiketini eklemek yeterlidir, topluluk wiki IMHO'su yapmaya gerek yoktur.
Gopi

Yanıtlar:


12

Parametreli karmaşıklığından bir örneği, bir olduğu kernelization için tepe kapağı sorunu Nemhauser ve Trotter'in bir teoremi kullanılarak.

Minimum tepe örtüsü probleminde, yönlendirilmemiş bir grafik G verilir ve minimum boyutta G tepe noktası bulmamız gerekir. Yönlendirilmemiş bir grafiğin tepe noktası, tüm kenarlara dokunan bir tepe noktası alt kümesidir.

İşte ilk aşamada bir yaklaşım kullanan tam bir algoritma.

Aşama 1: Minimum tepe örtüsü probleminin tamsayı doğrusal programlama formülasyonunu ayarlayın . Doğrusal programlama gevşemesinin temel optimal çözümünün yarı integral olduğu (yani her koordinatın 0, 1 veya 1/2) olduğu bilinmektedir (veya gösterilmesi kolaydır). Böyle bir temel optimal çözüm, doğrusal programlama için olağan bir polinom-zaman algoritması ile bulunabilir (veya bu özel durumda, bunu bir ağ akışı sorunu olarak formüle edebiliriz, böylece polinom zamanında kombinatoryal olarak çözebiliriz). Böyle bir temel optimal çözüme sahip olarak, orijinal tamsayı doğrusal programlama problemine uygulanabilir bir çözüm elde etmek için yuvarlıyoruz. S karşılık gelen tepe noktası altkümesi olsun. S'nin verilen minimum tepe örtüsü örneğinin 2-yaklaşımı olduğuna dikkat etmek iyidir.

Aşama 2: S tarafından indüklenen alt sayfada minimum bir köşe örtüsü bulun (örneğin kapsamlı bir arama ile). Nemhauser ve Trotter'in bir teoremi, bu alt bölümün orijinal giriş grafiğinin optimal bir çözümünü içerdiğini belirtir. Böylece, bu yaklaşımın doğruluğu izler.

Bu algoritma için sabit parametre algoritmaları hakkında Niedermeier'in bir kitabına başvurabilirsiniz .


11

Bir örnek, ağaç ayrışmaları ve küçük trewidth grafikleri ile ilgilidir.

Tipik olarak, eğer bir ağaç ayrışma verilir, verilen bir grafik sorunu çözmek için dinamik programlama uygulamak için oldukça basittir optimal. Çalışma süresi, ağaç ayrışmasının genişliğine bağlıdır.B

Bununla birlikte, genellikle bir ağaç ayrışması yapılmaz, ancak bulmamız gerekir. Sorun çözmek için hızlı mümkün olduğunca, biz mümkün olan en küçük genişlikteki bir ağaç ayrışmasını bulmak istiyoruz - Şimdi bu bizim sorunumuz .ABA

problemini tam olarak çözmeye çalışabiliriz , ancak daha sonra bölümünde çok fazla zaman harcayabiliriz . Olası yaklaşımlardan biri bölümü için bir yaklaşım algoritması kullanmaktır . O zaman kısmı daha hızlıdır, kısmında daha kötü çalışma süresi garantisine sahiptir .A A A BAAAAB


Başka bir örnek derleyiciler ve kayıt tahsisi ile ilgilidir . Polinom zamanında problemini çözen tam bir algoritma uyguladığımızı varsayın . Algoritmanın çalışma süresi, kısmen, derleyicinin CPU kayıtlarına değişken atamayı ne kadar iyi yönettiğine bağlıdır - bu bizim sorunumuz .ABA

Derleyici problemini çözmek için bir yaklaşım algoritması kullansa bile, probleminin çözümü doğrudur ; bununla birlikte, problem bir yaklaşım faktörü algoritmasının çalışma süresini etkiler .A A BBAAB


Trewidth örneği prensip olarak çalışırken, pratikte yürütülmesi zor olurdu, çünkü treidthness'i yaklaşık olarak kestirmek çok zordur (çünkü kliklere yaklaşık olarak tahmin edebilirsiniz)
Suresh Venkat

8

Kesin çözüme yaklaşan bir yaklaşım algoritmasının bir örneği, LP'leri çözmek için Elipsoid algoritmasıdır - katsayılar gerekçeler ise, uygulanabilir politopun iki köşesi arasındaki minimum mesafeyi hesaplayabilir. Şimdi, elipsoid algoritması tekrar tekrar en uygun çözümü içermesi gereken daha küçük ve daha küçük bir eliposoidi hesaplar. Eliposoid sadece böyle bir tepe noktasını içerecek kadar küçük olduğunda, esasen optimal tepe noktasını buldunuz. Bu yüzden LP zayıf polinomdur.

Anahatlarınıza daha yakın bir örnek için - Matousek'in düzlemdeki noktalarını içeren en küçük diski bulmak için algoritmasını düşünün . Algoritma önce bir 2-yaklaşımı bulur (yarıçapta), düzlemi uygun ızgaraya böler ve yavaş bir algoritma kullanarak her ızgara kümesinin içindeki problemi tam olarak çözer. k

Son olarak, bir alan daha ileri gitmek - alterasyon tekniğini takip eden birçok algoritma (rastgele bir örnek alın - ve sonra istediğinizi elde etmek için bazı düzeltmeler yapın) böyle bir çerçeveye düşer. Sevimli bir örnek, rastgele örnekleme kullanarak medyanı hesaplamak için algoritmadır (Motwani ve Raghavan'ın kitabına bakın). Böyle birçok örnek var - muhtemelen Hesaplamalı Geometri'deki rastgele artımlı algoritmaların çoğu bu çerçeveye giriyor.


4

Birçok çıktıya duyarlı algoritma bu tekniği kullanır. Örneğin, bu tekniğin kullanılabileceği basit bir sorun:

Sorun . Size, A öğesinin, A öğesinin sıralanması durumunda bulunduğu konumdan en az k konumu uzakta olduğu bir [1 .. n ] dizisi verilir .

Örneğin, aşağıda gösterilen A [1..7], k = 2 için bir girdi dizisi olabilir .

O'da dizi sıralama (için bir algoritma Tasarım N log k varsayarak) zaman k bilinmemektedir.

Sorun Kaynak: Algo Muse Arşivi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.