Sabit zamanda çözülemeyen problemler?


14

Sabit zaman, zaman karmaşıklığının mutlak düşük sonudur. Birisi merak edebilir: sabit zamanda hesaplanabilen önemsiz bir şey var mı? Turing makinesi modeline bağlı kalırsak, cevap girişin sadece sabit uzunlukta bir başlangıç ​​segmentine bağlı olabileceğinden, çok fazla şey yapılamaz, çünkü girişin daha uzak kısımlarına sabit zamanda bile ulaşılamaz.

Öte yandan, bit sayılarındaki temel işlemlerin tek adım olarak sayıldığı , biraz daha güçlü (ve daha gerçekçi) birim maliyetli RAM modelini benimsersek, önemsiz olmayanları çözebiliriz. görevler, sabit zamanda bile. İşte bir örnek:O(logn)

Örnek: Her biri O ( log n ) bitleri tarafından ikili biçimde verilen tamsayıları .n,k,l,dO(logn)

Soru: Köşe bağlantısı k , kenar bağlantısı l ve minimum derecesi d olacak şekilde -vertex grafiği var mı ?nkld

Tanımdan itibaren sorunun NP'de olduğu bile açık değildir . Bunun nedeni, doğal tanığın (grafik) bitlik uzun açıklamaya ihtiyaç duyması , giriş ise yalnızca O ( log n ) bitleri ile verilmesidir . Öte yandan, aşağıdaki teorem (bkz . B. Bollobas tarafından Ekstremal Grafik Teorisi ) kurtarmaya gelir.Ω(n2)O(logn)

Teorem: Let tamsayı olmak. Yalnızca aşağıdaki koşullardan biri karşılanırsa , köşe bağlantısı k , kenar bağlantısı l ve minimum derece d olan n -vertex grafiği vardır :n,k,l,dnkld

  • , 0kld<n/2
  • 12d+2nkl=d<n1
  • k=l=d=n1.

Bu koşullar sabit zamanda (birim maliyet RAM modelinde) kontrol edilebildiğinden, Teorem bu modelde sabit bir zaman algoritmasına yol açar.

Soru: Sabit zamanlı algoritmaların önemsiz diğer örnekleri nelerdir?


6
Olasılıkla kontrol edilebilir bir kanıt doğrulamak önemli midir?
David Eppstein

6
Örneğinizin zamanı olduğunu düşünmeyin . Girişinizin uzunluğu m = O ( log n ) olur , bu durumda tipik RAM kelimesi bir adımda sadece O ( log m ) bit işlemlerine izin verir . (Alternatif, kelime uzunluğuna giriş uzunluğuyla orantılı olarak izin vermektir, ancak bu durumda birçok "sabit zamanlı" algoritmayı adlandırabilirsiniz ...) Bu sayılardan sonra bir uzunluk dizesi n eklemeyi deneyebilirsiniz , ancak sonra ben bu biçimin O ( 1 ) biçiminde nasıl çalışacağını görmüyorumO(1)m=O(logn)O(logm)nO(1)kerelik: toplam dizi uzunluğu gerçekten de ki (ikili arama yoluyla söylemek) kontrol etmek zorunda görünüyor gerektirir, günlüğü n zaman. Ω(logn)logn
Ryan Williams

4
Sanırım David Eppstein'ın önerisi daha ilginç bir yöne işaret ediyor: randomize O (1) zaman algoritmaları göz önüne alındığında . En azından bu durumda, her giriş bitine algoritmanın olası en az bir çalışmasında erişildiğini umabilirsiniz.
Ryan Williams

4
Rasgele O (1) -zamanlı algoritmaların basit bir örneği yaklaşık ortancadır (yaklaşık olarak kabaca 50-50 böleceği anlamında). Girişten rastgele 1000000 eleman seçmeniz, medyanlarını hesaplamanız ve çıktı almanız yeterlidir.
Jukka Suomela

5
x,y,zn>2xn+yn=zn

Yanıtlar:



5

Bir oyunun durumunun sabit sayıda tamsayı değeriyle tanımlanabildiği kombinatoryal oyun teorisinde incelenen oyunlara birçok örnek vardır. Bunlardan bazıları için, oyun için kazanan bir strateji sabit zamanda hesaplanabilir. Ama aynı zamanda, hesaplama modelinizin tam olarak ne olduğu hakkında sorular soruyorlar.

En basit ve en temel kombinatoryal oyunlardan biri nim'dir: biri sabit sayıda fasulye yığınına sahiptir ve tek bir hareketle bir yığındaki herhangi bir sayıda fasulyeyi kazanabilir veya kaybedebilirsiniz (kural seçiminize bağlı olarak). Eğer son fasulyeyi alırsan. Bitwise Boolean xor işlemlerine (yani C / C ++ / Java / vb. Gibi programlama dillerinde ^ operatörü) izin verirseniz en uygun strateji sabit zamanda hesaplanabilir. Bu, modelinizde sabit bir zaman algoritması mıdır?

İşte sabit bir zaman kesin deterministik algoritması (bir sayının öncelikliliğini sabit zamanda test etmenizi sağlayan muhtemelen gerçekçi olmayan geniş bir hesaplama modelinde) olduğu bilinen bir algoritmadır, ancak bu algoritmanın ne olduğu bilinmemektedir: bir başlangıç ​​verildi Sylver sikkeleri oyunda hareket, kazanan veya kaybetme hamlesi olup olmadığını belirleyin. Bu sorun için bir akış şeması Berlecamp, Conway ve Guy, Kazanan Yollar'da verilir , ancak kazanan hareketlerin genel bir karakterizasyonu için sonlu bir karşı örnek setine bağlıdır ve bu setin ne olduğu (hatta boş).

Kombinatoryal oyun teorisinden bir başka ilginç örnek Wythoff'un oyunu. Her oyun pozisyonu bir çift tamsayı ile tanımlanabilir (yani, hesaplama modelinizdeki sabit boşluk), oyunda hareketler bu iki tamsayıdan birinin daha küçük bir değere indirilmesini içerir ve kazanan strateji, bu iki tamsayı arasındaki oran altın orana olabildiğince yakındır. Ancak birçok oyun pozisyonunda bir seçenek vardır: iki tamsayıdan daha büyük olanını, altın oranın (neredeyse) daha küçük tamsayı sayısının daha küçük olduğu veya altın oranına bölünen daha küçük tamsayının olduğu noktaya indirebilirsiniz. Bu iki seçenekten sadece biri kazanan bir hamle olacaktır. Dolayısıyla, optimal strateji, sabit sayıda aritmetik işlem açısından tanımlanabilir, ancak bu işlemler irrasyonel bir sayı olan altın oranı içerir. Bu modelinizde sabit bir zaman algoritması mı? Belki o'nlogn


Teşekkür ederim, bunların hepsi ilginç örnekler. Ayrıca, "sabit zaman" kavramının aslında düşündüğümden daha az açık olduğu gerçeğine de ışık
tutuyorlar

1

|G|Gpmm|G|GpmG|G|mmm

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.