Görünüşe göre k büyüklüğünde bir enine köprü hesaplamaya çalışıyorsunuz . Yani, { T 1 , … , T m } senin hipergrafın ve S senin enine. Standart bir çeviri, yan tümceleri istediğiniz gibi ifade etmek ve sonra uzunluk kısıtlamasını bir kardinalite kısıtlamasına çevirmektir.k{ T1, … , Tm}S
Bu nedenle, mevcut kodlamanızı kullanın, yani ve ardından ∑ 1 ≤ i ≤ n x i ≤ k kodlayan maddeler ekleyin .⋀1 ≤ j ≤ m⋁i ∈ TjxbenΣ1 ≤ i ≤ nxben≤ k
, bir kardinalite kısıtlamasıdır. SAT'a çeşitli farklı kardinalite kısıtlama çevirileri vardır.Σ1 ≤ i ≤ nxben≤ k
En basit ama oldukça büyük kardinalite kısıtlaması çevirisi sadece . Bu şekilde her bir ayrılma , { 1 , … , n } ' nin tüm X alt kümeleri için ¬ ⋀ i ∈ X x i kısıtlamasını temsil eder.⋀X⊆ { 1 , … , n } , | X| =k+1⋁i ∈ X¬ xben¬ ⋀i ∈ XxbenX{ 1 , … , n }k + 1 boyutunda. Yani, k'dan fazla değişkenin ayarlanabilmesinin hiçbir yolu olmadığından emin oluruz. Bunun k cinsinden polinom boyutu olmadığını unutmayınk
K cinsinden polinom boyutu olank daha az yer kaplayan kardinalite kısıtlama çevirileri ile ilgili bazı bağlantılar :
- Sahte Boole Kısıtlamalarının SAT - Niklas Eén ve Niklas Sörensson'a çevrilmesi, JSAT cilt 2 (2006), sayfa 1-26 (iyi bir anket).
- Boolean kardinalite kısıtlamalarının etkin CNF kodlaması - Olivier Bailleux ve Yacine Boufkhad, İlkelerin Bildirimi ve Kısıt Programlama Uygulaması 2003, LNCS cilt 2833, s. 108-122 (güzel, uygulanması oldukça kolay bir çeviri).
- Boolean Kardinalite Kısıtlarının Optimal CNF Kodlamasına Doğru - Carsten Sinz - Kısıt Programlama İlkeleri ve Uygulamalarına İlişkin 2005, LNCS 3709, sf 827-831.
- Güçlü CNF Kardinalite Kısıtlamaları Kodlamalarına Doğru - Joao Marques-Silva ve Inês Lynce, Kısıt Programlamanın İlkeleri ve Uygulama 2007, LNCS 4741, s. 483-497.
Aslında bu tür problemleri çözmekle ilgileniyorsanız, belki de bunları sahte-boole problemleri olarak formüle etmek (sahte-boolean problemler hakkındaki wiki makalesine bakın ) ve sahte-boolean çözücüler kullanın (bkz. Sahte-boolean rekabet ). Bu şekilde kardinalite kısıtlamaları sadece sahte-boole kısıtlamalarıdır ve dilin bir parçasıdır - umarım sahte-boolean çözücü bunları doğrudan ve dolayısıyla daha verimli bir şekilde ele alır.