Obecnie jestem zainteresowany pozyskiwaniem (lub konstruowaniem) i badaniem formuł 3-CNF, które są niezadowalające i mają minimalny rozmiar. Oznacza to, że muszą składać się z jak najmniejszej liczby klauzul (najlepiej m = 8) i możliwie jak najmniejszej liczby odrębnych zmiennych (n = 4 lub więcej), tak że usunięcie co najmniej jednej klauzuli sprawi, że formuła będzie zadowalająca.
Bardziej formalnie, każda kwalifikująca się formuła 3-CNF musi spełniać następujące warunki:
- F jest niezadowalający
- F ma minimalną ilość (4+) różnych zmiennych (lub ich negację)
- F ma minimalną liczbę klauzul (8+)
- każdy właściwy podzbiór F jest satysfakcjonujący (umożliwiając usunięcie dowolnej arbitralnej klauzuli lub klauzul).
- F nie ma 2 klauzul, które można zredukować do klauzuli 2-CNF, np.
(i, j, k) & (i, j, ~k)
NIE jest dozwolone (redukują do(i,j)
)
Na przykład przy n = 4 istnieje wiele minimalnych 8-klauzulowych wzorów 3-CNF, które są niezadowalające. Po pierwsze, patrząc na 4-hipersześcian i próbując pokryć go krawędziami (2-ścianami), można skonstruować następującą niezadowalającą formułę:
1. (~A, B, D)
2. (~B, C, D)
3. ( A, ~C D)
4. ( A, ~B, ~D)
5. ( B, ~C, ~D)
6. (~A, C, ~D)
7. ( A, B, C)
8. (~A, ~B, ~C)
Kwalifikuje się to jako minimalnie niezadowalająca formuła 3-CNF, ponieważ:
Jest niezadowalający:
- Punkty 1-3 są równoważne z:
D or A=B=C
- Punkty 4-6 są równoważne z:
~D or A=B=C
- Sugerują
A=B=C
, ale w klauzulach 7 i 8 jest to sprzeczność.
- Punkty 1-3 są równoważne z:
Istnieją tylko 4 różne zmienne.
- Jest tylko 8 klauzul.
- Usunięcie dowolnej klauzuli czyni ją satysfakcjonującą.
- Żadne 2 klauzule nie są „redukowalne” do klauzuli 2-CNF.
Sądzę więc, że moje ogólne pytania są w kolejności według mnie:
Jakie są inne małe minimalne formuły, które spełniają powyższe warunki? (tj. powiedzmy 4,5,6 zmiennych i 8,9,10 klauzul)
Czy istnieje jakaś baza danych lub „atlas” takich minimalnych formuł?
Jakie nielosowe algorytmy istnieją, by je skonstruować wprost, jeśli w ogóle?
Jakie są wgląd w cechy tych formuł? Czy można je policzyć lub oszacować, biorąc pod uwagę n (# zmiennych) im (# klauzul)?
Z góry dziękuję za odpowiedzi. Czekam na każdą odpowiedź lub komentarz.