NC olup olmadığına karar verme


27

QiCheng tarafından cevapsız bırakılan “ Belirli bir NC 0 devresinin izin verdiğini hesaplar ” sorusu hakkında özel bir soru sormak istiyorum .

Her çıkış kapısı sözdizimsel olarak çoğu k giriş kapısına bağlıysa, Boolean devresi NC 0 k devresi olarak adlandırılır . (Bir çıkış geçidinin g sözdizimsel olarak devirli bir asiklik grafik olarak görüntülendiği şekilde devrede g ′ den g ye kadar olan bir yön yolu olduğunda bir giriş geçidine g bağlı olduğunu söyleriz .)

Yukarıda belirtilen soruda, Qicheng aşağıdaki sorunun, karmaşıklığı hakkında sorulan k bir sabittir:

Örnek : n- bit girişli ve n- bit çıkışlı bir NC 0 k devresi . Soru : Verilen devre {0, 1} n'de bir permütasyon hesaplar mı ? Diğer bir deyişle, devre bir bijection hesaplanan fonksiyonu {0, 1} ila n {0, 1} , n ?

Kaveh'in bu soruya yorum yaptığı gibi sorunun coNP'de olduğunu görmek kolaydır. Cevap olarak, sorunun k = 5 için coNP-eksiksiz olduğunu ve k = 2 için P'de olduğunu gösterdim .

Soru . K = 3 için karmaşıklık nedir ?

29 Mayıs 2013 tarihinde açıklama : “{0, 1} ile bir permütasyon n {0, 1} ile ilgili araçları bir örten eşleme” n kendisine. Başka bir deyişle, sorun, her n- bit dizesinin, bazı n- bit girdi dizgisi için verilen devrenin çıktısı olup olmadığını sorar .


1
Kişisel not: QiCheng'in sorusuna bir cevap gönderdiğimde, sorunun sadece ilginç olduğunu düşündüğüm için, herhangi bir özel uygulama düşünmeden yaptım. Bundan birkaç ay sonra, belirli bir programın bir permütasyon yapıp yapmadığına karar vermenin önemsiz olduğunu açıklamak zorunda kaldığım bir durumda oldum. QiCheng'in sorusu sayesinde mükemmel bir örneğim vardı (ne tesadüf!). Ondan sonra, k = 3 ve k = 4 vakalarını daha çok merak ettim. K = 3 davasının zaten coNP-eksiksiz olduğundan şüpheleniyorum ama hiçbir şekilde kanıtlayamadım.
Tsuyoshi Ito

Bu problem , arama problemleri arasındaki poli-zaman azalmasıyla ilgili olarak PPP için tamamlanmış olan Papadimitriou ( sciencedirect.com/science/article/pii/S0022000000005800637 ) tarafından tanımlanan Pigeonhole Devresi probleminin özel bir örneği gibi görünmektedir .
Marcos Villagra

@Marcos Villagra: Yorumunuz için teşekkür ederiz, ancak korkarım ki “özel durum” derken Güvercin Deliği Devresi probleminin tanımını önemli ölçüde değiştiriyorsunuz. Pigeonhole Devresi probleminin önemli bir özelliği, toplam arama problemi olmasıdır, mevcut problem ise (aynı çıktıyı üreten iki giriş için arama problemi olarak görülür) toplam arama problemi değildir.
Tsuyoshi Ito,

Yanıtlar:


3

ile olan bu problem coNP-zordur (ve bu nedenle coNP-komple).k=3

Bunu kanıtlamak için, bu sorun çıkarmak için 3-SAT gelen azaltacaktır (belirli bir için devresi, devre sahnelemek olmayan örten işlev yapar).NC30

İlk önce yardımcı olacak bir ön tanım:

Etiketlenmiş bir grafiği, bazılarının kenarları değişmezlerle etiketlenmiş, her köşenin bir etiketlenmemiş gelen kenarı, bir etiketli gelen kenarı veya iki etiketlenmemiş gelen kenarı içermesi özelliğine sahip, yönlendirilmiş bir grafik olarak tanımlarız.

Azaltma

Farz edelim ki her biri üç harf içeren m oluşan 3 SAT formülümüz var . İlk adım, etiketlenmiş bir grafiktir inşa etmektir G den cp . Bu etiketli grafik, gad'daki her bir cümle için aşağıdaki gadget'ın bir kopyasını (korkunç diyagram için özür dilerim) içerir . L1, L2 ve L3 etiketli üç kenar, bunun yerine, maddede yer alan harflerle yazılmış.ϕmGϕϕ

   |
   |               |
   |               |
   |               O<-----\
   |               ^      |
   |               |      |
   |               |      |
   |        /----->O      |
   |        |      ^      |
   |        |      |      |
   |        |      |      |
   |        O      O      O
   |        ^      ^      ^
   |        |      |      |
   |        |L1    |L2    |L3
   |        |      |      |
   |        O      O      O
   |        ^      ^      ^
   |        |      |      |
   |        |      |      |
   |        \------O------/
   |               ^
   |               |
   |               |
   |               O
   |               ^
   |               |
   |

Gadget'lar (her maddeye göre birer tane) tümü, bir gadget'ın diğeri bir sonrakinin üstüne bağlanan büyük bir döngüde düzenlenir.

Aslında, bu gadget'ların düzenlenmesinin etiketli bir grafik oluşturduğunu unutmayın (her köşenin yalnızca 1 veya 2 değerine sahip olması, yalnızca kenarlık 1'in köşelerinin etiketlenmesini sağlar).

Formül kaynaktan ve etiketlenmiş grafik G (oluşturulurdu cp ) bir sonraki bir yapı , N Cı- 0 3 devre (bu azalma tamamlanır). Bu devre için giriş ve çıkışların sayısını , n + v , n değişkenlerin sayısı cp ve v de köşe sayısıdır G . Bir giriş ve bir çıkış her değişkene ϕ olarak ve G içindeki her köşeye atanır . Eğer x bazı değişkendir cpϕGϕNC30n+vnϕvGϕGxϕo zaman ilişkili giriş ve çıkış bitleri değinecektir olarak x i , n ve X O u t . Ayrıca, eğer l , l = x olan bir değişmez ise, o zaman l i n = x i n ve l ise l = ¬ x olan bir değişmez ise, o zaman l i n = ¬ x i n olarak tanımlarız . Son olarak, v'nin G cinsinden bir tepe noktası isexxinxoutll=xlin=xinll=¬xlin=¬xinvGo zaman ilişkili giriş ve çıkış bitleri değinecektir olarak v ı n ve V O u t .vvinvout

Dört tür çıkış biti vardır:

1) Her değişkeni için ϕ , x o u t = x i n . Bu çıkışın yalnızca bir giriş bitine bağlı olduğunu unutmayın.xϕxout=xin

2) Her köşe için tam olarak bir gelen kenarı ile etiketlenmiş grafikte ( u , v ) kenar etiketsiz şekilde, v O u t = v ı nu ı n . Bu çıkışın sadece iki giriş bitine bağlı olduğunu unutmayın.v(u,v)vout=vinuin

3) Her köşe için tam olarak bir gelen kenarı ile etiketlenmiş grafikte ( u , v ) kenar etiketli şekilde l , v O u t = v ı n( u ı nl i , n ) . Not, bu çıkış, sadece üç giriş bit bağlıdır çünkü L ı n yalnızca bağlıdır x i , n değişkeni ne olursa olsun x hazır kullanılır l .v(u,v)lvout=vin(uinlin)linxinxl

4) Her köşe için tam olarak iki gelen kenarları ile etiketlenmiş grafikte ( u , v ) ve ( a , h ) , v O u t = v ı n( u ı nw i , n ) . Bu çıkışın sadece üç giriş bitine bağlı olduğunu unutmayın.v(u,v)(w,v)vout=vin(uinwin)

Her durumda, çıkış yalnızca üç girişe bağlı olduğundan, oluşturduğumuz devre istenildiği gibi .NC30

Doğruluk kanıtı durum 1: karşılanabilirϕ

Diyelim ki için tatmin edici bir görev var . Ardından, girişler için aşağıdaki iki değer kümesini oluşturun.ϕ

1) değişkenleri ile ilgili girişler tatmin atama değerleri verilmiştir. G'nin köşeleriyle ilişkili girdilerin tümüne 0 değeri verilmiştir.ϕG

2) değişkenleri ile ilgili girişler tatmin atama değerleri verilmiştir. Bir fıkra gadget tepe noktalarını düşünün G . Bir etiketin değeri 0 ise (tatmin edici ödevin altında), bu etiketle etiketlenmiş kenarın hedef son noktasında tepe noktasıyla ilişkilendirilmiş girişe 0 değeri verilir. Hem L1 hem de L2'nin değeri 0 ise, ikinci -Parçadaki tepe noktasına (yukarıda gösterildiği gibi) da 0 değeri verilir. Diğer tüm köşe noktalarına 1 değeri verilir.ϕG

Bu iki giriş grubunun aynı çıkışlar verdiğini ve bu nedenle devresinin bir permütasyon kodlamadığını göstermek istiyoruz.NC30

Dört tip bit bitini göz önünde bulundurun:

1) Her değişkeni için ϕ , x o u t = x i n . Yana x i , n girişlerin her iki seti için aynıdır, bu formun çıkışları zaman girdileri iki takım aynı olacaktır.xϕxout=xinxin

2) Her köşe için tam olarak bir gelen kenarı ile etiketlenmiş grafikte ( u , v ) kenar etiketsiz şekilde, v O u t = v ı nu ı n . Kopyaları G olan aracı incelerken, tüm bu kenarların yalnızca girdi değerleri ikinci girdi kümesinin altında her zaman 1 olan köşeler çiftlerinden oluştuğunu görürüz. Böylece v O u t = v ı nU i , n = 0 0 =v(u,v)vout=vinuinG girişlerin ilk kümesi altında ve v O u t = v ı nU i , n = 1 1 = 0 girişlerin ikinci kümesi altında. Böylece, bu formun çıktıları iki girdi kümesinde her zaman aynı (ve aslında sıfır) olacaktır.vout=vinuin=00=0vout=vinuin=11=0

3) Etiketli grafikteki her köşe için, tam olarak bir gelen kenarı ( u , v ) , kenarları l , v o u t = v i n( u i nl ) olarak etiketleyin . Eğer ödev altında l yanlışsa , her iki giriş kümesinde v i n 0 olur; o zaman v o u t = v i n( u i nv(u,v)lvout=vin(uinl)lvin her iki giriş grubunun altında v i n = 0 . Eğerödev altında l doğruysa, v i n , ilk giriş kümesinde 0, ikincide 1 olur; Ayrıca, aygıtı sadece işaretlenmiş kenarları dikkat ( u , v ) köşe sahip U olduğu her zaman var u i , n = 1vout=vin(uinl)=vin(uin0)=vin=0lvin(u,v)uuin=1İkinci girdiler grubu altında. Sonuç olarak, her iki giriş kümesinin altında, l her doğru olduğunda , ; Daha sonra V O u t = v ı n( u ı nl ) = v ı n( u ı n1 ) = h I , nU i , n = v ı nhacuin=vinl. Böylece, bu formun çıktıları iki girdi kümesinde her zaman aynı (ve aslında sıfır) olacaktır.vout=vin(uinl)=vin(uin1)=vinuin=vinvin=0

4) Her köşe için tam olarak iki gelen kenarları ile etiketlenmiş grafikte ( u , v ) ve ( a , h ) , v O u t = v ı n( u ı nw i , n ) . Her gadget'ta iki tane tepe noktası vardır. En üst köşe ve ikinci en üst köşe. Bu iki durumu ayrı ayrı ele alıyoruz.v(u,v)(w,v)vout=vin(uinwin)

4a) , bir aygıttaki ikinci en üst köşe olduğunda, u ve w , L1 ve L2 etiketli kenarların iki hedef uç noktasıdır. Girişlerin ilk kümesi altında, v O u t = v ı n( u ı nw ı n ) = 0 ( 0 0 ) = 0 . İkinci giriş grubu altında, u i n 0 olur, L1 doygunluk atama altında 0 değerine sahiptir (aka u i n =vuwvout=vin(uinwin)=0(00)=0uin ); Benzer şekilde, w i n L2 IFF 0 (aka tatmin atama altında değeri 0 olduğu W i , n = L 2 ); ve son olarak, v ı n, L1 ve L2, her iki değeri 0 olması ancak ve ancak tanımlanır 0 olduğu (aka v i , n = L 1 L 2 ). Böylece ikinci girdi grubunun altında, v o u t = v i n( u i nw i n ) = (uin=L1winwin=L2vinvin=L1L2 . Böylece, bu formun çıktıları iki girdi kümesinde her zaman aynı (ve aslında sıfır) olacaktır.vout=vin(uinwin)=(L1L2)(L1L2)=0

4b) , bir aygıttaki en üst köşe olduğunda , u ikinci en üst köşedir ve w , L3 etiketli kenarın hedef son noktasıdır. Girişlerin ilk kümesi altında, v O u t = v ı n( u ı nw ı n ) = 0 ( 0 0 ) = 0 . Girişler ikinci kümesi altında u ı n, L1 ve L2 hem de diğer adıyla (0 değerini sahip IFF 0 U i , n = Lvuwvout=vin(uinwin)=0(00)=0uin ); W ı n olan L3 IFF 0 (aka değeri 0 W i , n = L 3 ); ve son olarak v i n = 1 . Böylece girişlerin ikinci kümesi altında, v O u t = v ı n( u ı nw i , n ) = 1 ( ( L 1 L 2 ) L 3 )uin=L1L2winwin=L3vin=1 burada eşitlik ( L 1 L 2 L 3 ) = 1 her cümle için tatmin edici bir atamada tanım gereğidir. Böylece, bu formun çıktıları iki girdi kümesinde her zaman aynı (ve aslında sıfır) olacaktır.vout=vin(uinwin)=1((L1L2)L3)=1(L1L2L3)=11=0(L1L2L3)=1

Açıkçası, çıktıların iki farklı girdi grubu için aynı olduğunu ve bu nedenle devresinin bir engelleyici olmayan işlevi etkinleştirdiğini görüyoruz.NC30

Doğruluk kanıtı dava 2: uygun değilϕ

Şimdi, için tatmin edici bir görev bulunmadığını varsayalım . Daha sonra bazı girdilerin iki farklı setleri yol bu çelişkili uğruna kabul N Cı- 0 3 aynı çıkışa sahip devresi.ϕNC30

Açıktır ki, iki giriş için aynı değerlere sahip olmalıdır , her bir değişken için X de φ . Böylece şimdi açıkça x değerine atıfta bulunabiliriz .xinxϕx

Tanımla köşe grubu olduğu v içinde G olacak şekilde v ı n giriş değerleri iki grup farklıdır.SvGvin

Aşağıdaki aşağıdakileri ispatlayacağız:

Lemma 1: Bazı aygıtlarda, etiketli kenarların hedef uç noktalarındaki üç köşenin tümü değilse, aygıttaki bu üçün üzerindeki hiçbir köşeler S'de değildir .SS

Lemma 2: Bazı cihazlarda üst tepe değilse bir sonraki cihazda hiçbir köşe S'de olmaz .SS

Objeler, bir ilmek oluşturmak için bu bir aygıtı içinde etiketlenmiş kenarlarının hedef uç noktalarında her üç köşe değilse ima sonra hiçbir köşe G olduğu S (diğer bir deyişle S boştur).SGSS

Bununla birlikte, memnun olmayan bir maddeye ilişkin bir gadget düşünün . Bu aygıtı her üç etiket Biz bu kenarı biliyoruz 0 değerine sahiptir ( u , v ) etiketlenmiş L sağlaması gerekmektedir v O u t = v ı n( u ı nL ) , ama L = 0 , yani v O u t = v i n(L1L2L3)(u,v)Lvout=vin(uinL)L=0 . Çıkış hem girişler için aynıdır Dolayısıyla, çünkü değerleri v ı n de giriş iki takım aynı olmalıdır. Başka bir deyişle, v'nin S cinsinden olmadığını gösterdik. Böylece, bu belirli aygıtta, etiketli kenarların hedef uç noktalarındaki üç köşenin S cinsinden olmadığını görüyoruz.vout=vin(uinL)=vin(uin0)=vin0=vinvinvSS

Sonuç olarak, boş olduğu sonucuna varıyoruz . Ancak bu, iki girdi grubu arasında, bu girdi kümelerinin farklı olduğu varsayımına aykırı olan hiçbir fark olmadığı anlamına gelir. Sonuç olarak, N C 0 3 devresi tarafından harekete geçirilen işlevin enjekte edici olduğunu ve dolayısıyla bir itiraz olduğunu görürüz.SNC30

Geriye kalan tek şey lemmaları ispatlamak.

Bunu yapmak için, her köşe türü için (etiketli derece 1, etiketsiz derece 1 ve derece 2), gelen tüm kenarların S'de olmayan köşelerden gelmesi durumunda söz konusu olan köşenin de S'de olmadığını unutmayın. . Bunun nedeni, her üç durumda da v O u t = v ı nX burada X için kenarlı değişken ve / veya noktalar ile ilişkili bazı girdilerin fonksiyonudur v . Tüm bu köşeler varsayımla S'de olmadığından, her iki giriş grubunda da X'in değeri aynı olmalıdır. Bu nedenle v iGSSvout=vinXXvSX, her iki giriş kümesinde de aynıdır. Başka bir deyişlev,Sdilindedeğildir.vin=voutXvS

Şimdi bir köşe olmadığını kuralı olduğunu , atalarının her yer almayan her S , lemmaları Yukarıdaki gadget şemasına defalarca kuralı uygulayarak basitçe izleyin.SS


-1

Yazarın aradığı cevap değil, bu bağlamda "permütasyon" un ne olduğunu açıklayan yorumlara bakın.

Monojenik permütasyon grubu dahil etme digrafisi için minimum baskınlık setinin boyutunu kestim: https://oeis.org/A186202

Tek yapmanız gereken her ana döngü ayrışmasının bir üyesini test etmektir.

Her bir ana döngü için, elemanları (10101010 ...), sonra (01010101 ..) olarak kodlamak yeterli olacaktır?

------ Açıklama ------ Bu yaklaşımın amacı 2 ^ n test durumunuzu bir digraf olarak modellemektir. Başarılı bir test durumu başka bir başarılı test durumu anlamına gelirse, o zaman sadece bu test alanı digrafisinin min baskın setini test etmeniz gerekir. Permütasyonlar alanında OEIS A186202, önemsiz olmayan bir alt grubu tespit etmek için test etmek zorunda olduğunuz ya da hiçbirinin olmadığını kanıtlamak için maksimum; bu sayı hala büyük ama n'den çok daha küçük!

--Musing-- n-1 sıfır ve 1 i yineleme içinde kullanarak, aradığınız sabit permütasyonu saptayabilirsiniz. Bundan sonra, O (n {(n-1) \ select (k-1)} (2 ^ (k-1)) 'te, her bir (k-1) değişken kümesinin karışıklığın her dizinini etkilemediğini test edebilirsiniz. K sabit olduğu için bu polinomdur, bir şey mi eksik?


Hmm. (01) *, (10) * 'un yeterli olup olmadığından emin değil. Her bir ana döngü için tüm 2 ^ p yapılandırmalarını denemeniz gerekebilir.
Chad Brewbaker

2
(2n)!n11

2
C:{0,1}n{0,1}nx,x{0,1}nC(x)=C(x)xxCGiriş bitlerini değiştirir (karıştırır / yeniden düzenler / yeniden sıralar). Farkı görüyor musun? Yanlış soruyu cevapladığından şüpheleniyorum.
DW,

2
Yardım etmeye çalıştığın için teşekkür ederim, ama DW açıkladığı gibi, cevapladığın sorunun sorduğumdan farklı olduğundan korkuyorum. “{0,1} ^ n” üzerindeki bir permütasyon, {0,1} ^ n'den kendisine bir sıfat işlevi anlamına gelir ve n bitlerinin yeniden düzenlenmesi anlamına gelmez.
Tsuyoshi Ito

3
Chad, bu cevabı silmek ister misin, yoksa en azından Tsuyoshi'nin sorusunu cevaplamadığına dair bir not ekler misin?
Kaveh
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.