Musisz zrozumieć, że problemy z mają strukturę, której nie mają ogólne problemy z . Dam ci prosty przykład. Niech . Ten język umożliwia wyrażanie tylko równości i nierówności między dwiema zmiennymi. Oczywiście każdy taki zestaw ograniczeń można rozwiązać w czasie wielomianowym.CSPSATΓ={{(0,0),(1,1)},{(0,1),(1,0)}}
Podam dwa argumenty, aby wyjaśnić związek między
a klauzulami. Zauważ, że wszystko, co następuje, zakłada .CSPP≠NP
Po pierwsze : ograniczenia mają stałą liczbę zmiennych, podczas gdy kodowanie problemów pośrednich może wymagać dużych klauzul. Niekoniecznie jest to problemem, gdy tak duże ograniczenia można wyrazić jako połączenie małych z wykorzystaniem zmiennych pomocniczych. Niestety nie zawsze tak jest w przypadku ogólnego .Γ
Załóżmy, że zawiera po prostu pięciu zmiennych. Oczywiście można wyrazić mniej zmiennych, powtarzając dane wejściowe. Nie możesz wyrazić większego ponieważ sposób na zrobienie tego przy użyciu zmiennych rozszerzeń wymaga rozróżnienia literałów dodatnich i ujemnych. reprezentuje relacje na zmiennych , a nie na literałach . Rzeczywiście, gdy myślisz o 3- jako , potrzebujesz aby zawierać cztery relacje rozłączności z pewnymi zanegowanymi danymi wejściowymi (od zera do trzech).ΓORORORΓSATCSPΓ
Po drugie : każda relacja w może być wyrażona jako seria zdań zawierających (powiedzmy) trzy literały. Każde ograniczenie musi być całą serią takich klauzul. W przykładzie z ograniczeniami równości / nierówności nie można mieć pliku binarnego (tj. Relacji ) bez wymuszenia binarnego negacji (tj. Relacji ) na tych samych zmiennych.ΓAND(1,1)OR(0,0)
Mam nadzieję, że to pokazuje, że wystąpienia uzyskane z mają bardzo osobliwą strukturę, która jest wymuszona przez naturę . Jeśli struktura jest zbyt ciasna, nie możesz wyrazić trudnych problemów. SATCSPΓ
Następstwem twierdzenia Schaefera jest to, że ilekroć wymusza strukturę wystarczająco luźną, aby wyrazić problemy decyzyjne z , wtedy ta sama pozwala na wystarczającą swobodę wyrażania ogólnych wystąpień 3- .ΓNP∖PΓSAT