Polinom zaman algoritmasına yönelik - şimdiye kadar umut vaat eden - bazı kısmi ilerlemeleri belgelemek istiyorum. GÜNCELLEME : @David tarafından işaret edilen bir aksaklığı açıklamak için bazı ayrıntılar eklendi (teşekkürler!).
Yaklaşım bunu, polinom zamanla çözülebilen bir sorun olan MIN-ONES EVEN-3 CSP (MOEC) örneğine indirmektir. Düşüşün kanıtı biraz bulanık, ancak var olduğunu umuyorum!
MOEC örneği, bir değişkenler evreninin boyutlu alt kümelerinin bir ailesi ve k tamsayısıdır . Soru, en çok k'da tatmin edici bir ağırlık ataması olup olmadığıdır , burada bir ödev evrenden { 0 , 1 } ' e bir işlevdir , bir ödevin ağırlığı bir atadığı değişken sayısıdır ve bir ödev eğer değişkenlerin her alt-grup için, tatmin edici , atama (ki ) özelliği bu var3kk{ 0 , 1 }f{ x , y, z}f
f(x)+f(y)+f(z)=0(mod 2) .
Bunu 3-SAT olarak farklı bir memnuniyet derecesi ile görselleştirebilirsiniz - hiçbirini veya ikisini seçin. Her zamanki kümeleri, çıkarımları, iki uzunluktaki kopuklukları ve kısıtlamaları dışında izin vereceğim MOEC örneği hakkında biraz gevşek olacağım . Bu basit eklemelerin problemin polinom zamanını koruyacağına inanıyorum.( x = 1 )3(x=1)
Diyelim ki sayısı için ekleme zinciri problemini azaltıyoruz . Bu azaltma için ayarlanan değişken şu şekildedir:n
Her , değişkeni . değişkenini olarak yeniden yazacağım . Her çift , , ve değişkenlerini . N i N n N i , j 1 ≤ i , j ≤ k P i j Q i j1≤i≤nNiNnNi,j1≤i,j≤kPijQij
Her için şekilde aşağıdaki altkümeleri tanıtın :k = i + ji,j,kk=i+j
{Pij,Qij,Nk}
ve aşağıdaki çıkarımlar:
P i j ⇒ N jPij⇒Ni ve
Pij⇒Nj
ve aşağıdaki kısıtlamalar:
(N1=1),(N=1) .
Son olarak, "karşılık gelen" bir değişkenli (gösterimin kötüye kullanımını affedin) atandığında değişkenlerinden en az birinin seçilmesini sağlayan kısıtlamalar eklememiz gerekir . Bu, tüm üzerine olağan OR kısıtlaması eklenerek yapılabilir, böylece toplamı söz konusu değişkenine toplanır. Ancak bunu MOEC çerçevesinde yeniden kodlamanın bir yolunu bulmalıyız.N P i j i + j NPNPiji+jN
Öyleyse bir dizi değişken verildiğinde genel bir söylem yöntemini özetleyeyim:
(X,l1,l2,…,lt) ,
"bir atama tatmin ederse ve bire , o zaman ' birinin tam olarak atama tarafından bire ayarlanması gerekiyorsa" kısıtlaması MOEC sözdizimi ile kodlanabilir. Bunun gereksinimlerimiz için yeterli olduğunu unutmayın, sadece kısıtlamaları sunuyoruz:l iXli
(Nk,{Pij | i+j=k}) .
Kodlama aşağıdaki gibi yapılır. Bırakın , yapraklarındaki köklü tam ikili ağaç olsun . Yeni bir değişken tanıtmak Tüm ve , düğümleri sayısını belirtmektedir derinlikte . t T d i 1 ≤ d ≤ günlük t 1 ≤ i ≤ L ( d ) L ( d ) T X dTXtTdi1≤d≤logt1≤i≤L(d)L(d)TXd
Her düğüm , eğer ve ağaçtaki çocuklarıysa, EVEN-3 kısıtlamasını uygulayın: p qTdipq
{Tdi,p,q}
Başka bir deyişle, bir düğüme karşılık gelen bir değişken true değerine ayarlanırsa, alt öğelerinden biri de true değerine ayarlanmalıdır. Şimdi çıkarımları ekleyin:
( d günlüğü t , j ) ⇒ l j(X⇒T11) ve
(açıklık için virgül).(dlogt,j)⇒lj
Bu EVEN-3 kısıtlamaları ve çıkarımlarının kombinasyonu, kodlamak istediğimiz kısıtlamaya eşdeğerdir.
Sezgisel olarak, son iki kısıtlamanın bir ilave zinciri oluşturmak için gereken reaksiyonları tam olarak tetiklemesi. Özellikle, tatmin edici bir görevle atanan bakalım - iddia, için bir ek zincir oluşturacaklarıdır : atama, bire ayarlamak zorunda kaldığı için , en az bir tane olmalıdır. ayarlanmış olan ve sonuçları ve bir tane zorlar ve bu tamamen aşağı iner (eminim bu seviyede indüksiyonla resmileştirilebilirim, ancak ayrıntı). Atananların sayısından en iyi olan satsifying atamanın ayarlanmayacağını unutmayın N N P i j N i N j P i j ( r , s ) ( r ′ , s ′ ) P Q N i P i jNiNNPijNiNjPij , iki değişken ve için doğrudur , çünkü değişkenlerinin ek ek bagajı ile birlikte gelmesi ve değişkenlerinin ( EVEN-3 sağlamak için - doğru olduğu ve doğru olmadığı bir maddede, yine de bu maddeyi karşılamak için bir şeyler gerekiyor ve görmesi kolay nedenlerden dolayı, bu tek bir evrensel değişken olamaz hükümler arasında).(r,s)(r′,s′)PQNiPij
Bu yüzden bir ekleme zincirinin tatmin edici bir göreve karşılık geldiğine inanıyorum. Bunun bir kısmını resmi olarak tarif edeyim: bir ekleme zinciri verildiğinde tatmin edici bir görevi yaparız . Başlamak için, tüm 'leri bir diğerine ve diğer ' i sıfıra . Ayrıca, ekleme zincirinde özellikleri varsa , her bir , zincirindeki elemanlar olsun, böylece . Daha sonra setleri (ve bir ila sıfıra) ve tüm olacak şekildef N i N i k N k i k , j k i k + j k = j f P i k j k Q i k j k ( i , j ) i ≠ i k j ≠ j k i + j = k f Q i j P i j k i , jffNiNikNkik,jkik+jk=jfPikjkQikjk(i,j)i≠ik ve ve , i bire (ve sıfıra) ayarlar . Tüm için tüm, ekleme zinciri sahip olmayan , öyle ki , belirtilen tüm ve kıvam aslında aşağıdaki sıfır (önceden bu iki sayı tek bir şekilde toplayın). bir içeren tüm yan karşılanır, çünkü buna karşılık gelen bir P değişkeni veya Q değişkeni bire ayarlanmıştır (ve bunların herhangi birinin herhangi bir çift için bire ayarlandığına dikkat edin.j≠jki+j=kfQijPijki,ji+j=kQijPijNi(i,j)). Diğer tüm maddeler için her şey sıfıra ayarlanmıştır. Etkileri kontrol etmek kolaydır.
Belirsiz olan kısım şudur: çünkü toplama zincirinde seçilen her eleman için atama ağırlığına neden olur (tüm değişkenleri bire ayarlandığı için). Bu nedenle, daha uzun bir ek zincirin daha ucuz bir atamaya karşılık gelmesi olasılığı vardır, ancak aşağıdaki satırlardaki bir kanıt nedeniyle bunun gerçekleşmeyeceğinden eminim: en uygun ekleme zincirini düşünün ve daha uzun bir zincir olduğunu varsayalım. buna karşılık gelen daha küçük ağırlıklı tatmin edici bir ödev. Açıkçası, daha uzun zincirin elemanları en az birini daha kısa olandan hariç tutar - bu öğenin olmasına izin verin . ile yapılan maliyetinttQxxzaten daha uzun zincirde meydana gelir ve geri kalanı da olumlu bir şekilde karşılaştırılır. Bununla birlikte, bunu dikkatlice yazmalıyım ve gece yarısı sendromundan bir şeyler görüyor olabilirim!