Benzersiz -SAT kriterleri


16

Bu soru muhtemelen konu ve konu dışı arasındaki sınır çizgisinde, ancak burada benzer sorular gördüm, bu yüzden soracağım.


Ben girdisi en fazla tatmin edici atama sahip bir CNF formülü olan bir Benzersiz SAT çözücü uyguluyorum . Pratik davranışını test etmek için bir dizi formüle ihtiyacım var. Onları web'de aradım ve hiçbir şey bulamadım (öte yandan, sıradan CNF formüllerinin süitlerini bulmak çok kolay ).k 1 kkk1k

Unique -SAT örneklerini nerede bulabilirim ?k

Alternatif olarak, benzersiz olarak tatmin edilebilir örnekler oluşturmak için herhangi bir prosedürü bilmek de memnun olurum. Fark ettiğim tek yaklaşım, yerleştirilmiş SAT örneği oluşturma adı altında gider : rastgele bir değişkeni ataması oluşturursanız, yalnızca bu atamayı kabul eden yan tümceleri oluşturursunuz. Bu yaklaşım, aşağıdaki nedenlerden ötürü, benim amacım için tatmin edici değil:n

  • Elde edilen formül ayrıca istenmeyen tatmin edici atamalara sahip olabilir.
  • Formülün istenen atama tarafından benzersiz bir şekilde karşılandığından emin olmak için , onu kabul eden tüm olası maddeleri sunmalısınız. Bu, muhtemelen çözülmesi kolay olacak ve bu nedenle çözücünün en kötü durum davranışını temsil etmeyen çok fazla cümleye sahip formüller üretecektir. Maddelerin sayısını makul tutarken benzersizliği nasıl etkili bir şekilde zorlayabileceğimi açık değil.

Makul sayıda maddeye sahip benzersiz olarak tatmin edilebilir formülleri nasıl üretebiliriz? By makul Ben maksimum uzak anlamına .2k(nk)


değişkenleri ve cümleleri olan bir SAT formülü . Cümle sayısı ve , formülü tatmin edici değildir veya tatmin edilemez. .. k-SAT denklemlerini de çalışmıştım. Bulursam size haber veririm. n m 3 n - 2 n 3 n - 2 n - 2 n - 1 FFnm3n2n3n2n2n1F
Tayfun Pay

Ellerinizde yeterli zamanınız varsa (ve örnekler yeterince küçükse), faz geçişinde örnekler oluşturabilir ve bunları bir SAT çözücü ile test edebilirsiniz. Bir formülün çözümü yoksa atın. Bir çözüm X'e sahipse, çözümün X olmadığı konusunda ısrar eden bir madde ekleyin ve çözücüyü tekrar çalıştırın. Bu temel ama yavaş.
Andrew D. King

Yanıtlar:


7

İşte bir SAT örneği göz önüne alındığında, olduğunu bildiğiniz bir Benzersiz -SAT örneği oluşturmanın bir yolu . Tarafından verilen formülünü göz önünde bulundurunφ ψ ( x )kφψ(x)

φ(x)h(x)=y,

burada , bir atama eşleştiren bir hızlı arama fonksiyonu olan X bir k (bazı küçük bir değer için bitlik değeri k ), ve y , bir rastgele K bitlik değer. Eğer φ yaklaşık tatmin edici atamaya sahipse, (sezgisel olarak) tam olarak bir tatmin edici atamaya sahip olacağını varsayıyoruz (sabit olasılıkla). Bir SAT çözücü kullanarak durumun böyle olup olmadığını test edebiliriz (yani, tatmin edici olup olmadığını test edin ; eğer tatmin edici bir , tatmin edici olup olmadığını test edin ). Eğerhxkkykφ ψ ψ x 0 ψ ( x ) x x 0 k2kψψx0ψ(x)xx0kbilinmemektedir, ikili aramayı kullanarak veya sadece her bir aday değeri üzerinden yineleyerek bulabilirsiniz (burada , cinsinden boole değişkenlerinin sayısıdır)k = 1 , 2 , , n nkk=1,2,,nn ).x

Karma işlevini özgürce seçebilirsiniz. Muhtemelen mümkün olduğunca basit hale getirmek isteyeceksiniz. Son derece basit bir yapı, x'ten k bitlerinin rastgele bir alt kümesini seçmesidir . Biraz daha sofistike bir yapı sağlamaktır i inci bit h ( x ) iki rasgele seçilmiş bit XOR olmak x (her biri için bit konumlarının ayrı çift seçme i , bağımsız bir şekilde,). Tutulması h basit tutacak ψ nispeten basit.hkxih(x)xihψ

Bu tür bir dönüşüm bazen bir formülün tatmin edici atamalarının sayısını tahmin etmek için bir şemanın parçası olarak kullanılır / önerilir ; Özel ihtiyaçlarınıza göre uyarladım.φ

İnternette birçok SAT örneği test yatağı bulabilirsiniz ve Benzersiz -SAT örnekleri koleksiyonu elde etmek için bu dönüşümü hepsine uygulayabilirsiniz .k


Başka bir olasılık , kriptografiden Benzersiz SAT örnekleri oluşturmak olacaktır . Örneğin, f : { 0 , 1 } n{ 0 , 1 } n'nin kriptografik tek yönlü bir permütasyon olduğunu varsayalım . Let X rastgele seçilmiş bir eleman { 0 , 1 } , n , ve izin y = f ( x ) . Sonra f ( x ) ile verilen φ ( x ) formülü =kf:{0,1}n{0,1}nx{0,1}ny=f(x)φ(x) bir Benzersiz k -SAT örneğidir. Başka bir örnek olarak, iki büyük asal sayıyı p , q rastgele seçin ve n = p q olsun . Daha sonra x y = n x > 1 y > 1 x y (bit dizeleri ve tamsayılar arasındaki bariz yazışma ile ) tarafından verilen φ ( x , y ) formülüBenzersiz k'dir.f(x)=ykp,qn=pqφ(x,y)xy=nx>1y>1xyk-SAT örneği. Ancak, bu yapılar çözücünüzü karşılaştırmak veya optimize etmek için yararlı bir yol gibi görünmemektedir. Hepsinin özel bir yapısı vardır ve bu yapının gerçek dünya sorunlarını temsil ettiğine inanmak için hiçbir neden yoktur. Özellikle, kriptografik sorunlardan alınan SAT örneklerinin, SAT çözücülerinin diğer gerçek dünyadaki uygulamalarından çizilen SAT örneklerinden çok daha sert, çok daha sert olduğu bilinmektedir, bu nedenle çözücünüzü karşılaştırmak için çok iyi bir temel değildir.


Genel olarak, bu cevapta bahsedilen tüm tekniklerin , belirli bir yapıya sahip Benzersiz -SAT örnekleri üretme dezavantajı vardır , bu nedenle aradığınız şey olmayabilir - veya en azından güvenmek istemeyebilirsiniz sadece bu şekilde üretilen formüller üzerine. Daha iyi bir yaklaşım, Unique k -SAT (kim çözücünüzü ve hangi amaçla kullanacağını düşünüyorsunuz) uygulamalarını tanımlamak ve daha sonra bu uygulama alanlarından bazı gerçekçi örnekler elde etmeye çalışmak olacaktır.kk

İlgili bir konu için Ayrıca bkz. İlginç birleştirici optimizasyon sorunları oluşturma


Kripto paragrafınızın ilk kısmı yanlış, çünkü (tek yönlü işlevler varsa) injektif olmayan tek yönlü fonksiyonlar vardır.

Teşekkürler, @RickyDemer! Tek yönlü permütasyon demek istedim ama yazdığım bu değildi. Sabit.
DW

6

Sudoku bulmacaları oluşturmak için kullanılan algoritmaları düşünebilirsiniz - muhtemelen genelleştirilmiştir - (genellikle) Sudoku bulmacalarının benzersiz bir çözümü olması gerekiyor. Öte yandan, Sudoku bulmacalarının da genellikle en az bir çözümü olduğu garanti edilir ... Ancak bu çözümü bulmak çözücünüz için hala iyi bir kriter olabilir.n×n

Sudoku jeneratörünü SAT azalmasıyla birlikte kullanabilir veya Sudoku oluşturmada kullanılan tekniklerin Benzersiz SAT örneklerini daha doğrudan oluşturmak için nasıl uygulanacağını düşünebilirsiniz. Birincisi için, SAT örneklerinizin bir yapıya sahip olacağı açıktır, ancak bunun bir çözüm dikmek veya tanık yalıtım tekniğini kullanmaktan daha fazla veya daha az yapı olup olmadığı benim için net değildir. Muhtemelen ihtiyaçlarınıza ve çözücünüze bağlıdır.

Burada bildiğim tek referans: Sudoku Puzzles Generation: Easy to Evil .


4

İyi bir test senaryosunun kısıtlamaları olan rastgele benzersiz tatmin edici 3XOR örnekleri (ekilen örnekler) oluşturmak ve daha sonra bunları 3SAT örneklerine dönüştürmek olduğunu düşünüyorum.Θ(n)


2

özüm sayısını kontrol ederken "muhtemelen zor" SAT örnekleri oluşturmanın en iyi yollarından biri, ikili kodlanmış tam sayı faktörü örneklerinden / devrelerinden kaynaklanır. kod çok karmaşık değil, çoğunlukla EE ekleme devreleri kullanıyor ve "büyük" SAT örneklerine yol açmıyor. çözüm sayısı, faktör sayısına eşittir (faktörlerin "permütasyonları" dahil). bu nedenle asal sayılar tam olarak iki çözüm üretir, . Tek bir çözelti faktörler kısıtlar bir başka "karşılaştırma" sınırlamasıyla garanti edilebilir bir <(1,p),(p,1)a<ba1 .bp

ayrıca bu yaklaşımla kabaca sayıları bulmak nispeten kolay olmakla birlikte birçok faktör / çözüm istenmektedir. "pürüzsüz" sayısı daha faktörler.

yıllar boyunca çeşitli araştırmacılar bu faktoring SAT kodunu yarattı (örneğin geçmişte bazı faktoring örneklerini saklayan DIMACS yarışması / arcihve için), ancak maalesef herkese açık bir sürüm yok gibi görünüyor. lisansüstü ders için kodun yazıldığı / uygulandığı bir başvuru için aşağıdaki 1. bağlantıya bakınız.

enen+1en+1en


Daha önce cevabımda faktoring yaklaşımından bahsettim, ancak bunun neden ideal bir test yatağı olmayabileceğini de açıkladım: "Ancak, bu yapılar çözücünüzü karşılaştırmak veya optimize etmek için yararlı bir yol gibi görünmüyor. Hepsinin özel bir yapısı var ve bu yapının gerçek dünya problemlerini temsil ettiğine inanmak için hiçbir neden yoktur.Özellikle, kriptografik problemlerden alınan SAT örneklerinin SAT çözümlerinin diğer gerçek dünya uygulamalarından alınan SAT örneklerinden çok daha sert, çok daha sert olduğu bilinmektedir. bu yüzden çözücünüzü kıyaslamak için çok iyi bir temel değil. "
DW

bu yüzden yukarıdakiler farklı bir pov, eğer biri çok zor örnekler istiyorsa, açıkça herhangi bir çözücü için doğal bir test örneği istiyorsa, o zaman faktoring gerçekten umut verici bir yoldur. kendinizin aynısını yansıtan herhangi bir yayınlanmış fikir bulabileceğinizden şüphelenirsiniz. Tekrarlamak gerekirse, uzun yıllar önce başlayan ciddi araştırmacılar tarafından DIMACS meydan okuma arşivlerine faktoring örnekleri konulmuştur. Her neyse, aksine görüşünüz gerçekten tutarlı bir şekilde ifade edilmiyor. kriptografi gerçekten SAT örnekleri için kullanılan birçok soyut / abstruse / akademik problemden çok daha önde gelen / uygulanan bir gerçek dünya problemidir ...
vzn

2

(|F|<n+2k)

mm
FkmFm(2k1)(nk)

(k1)x1,x2xk
(¬x1,x2xk)(x1,¬x2xk)(x1,x2¬xk)

(k2)x1,x2xk
(¬x1,¬x2,x3xk)(¬x1,x2,¬x3xk)(x1,x2¬xk1¬xk)

(kk)x1,x2xk

x1,x2xkmnkxi(k<in)0k1x1,x2xk
(¬xk+1,x1,xk1)(¬xn,x1xk1)

|F|=i=1k(ki)+nk=2k1+nk

k


Cevabınız bir sorun vardır: Biz değişkenleri ve ve k değil bu araçlar n var
Elaqqad
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.