Oto problem. Biorąc pod uwagę , gdzie każdy T i ⊆ { 1 , … , n } . Czy istnieje podzbiór S ⊆ { 1 , … , n } o rozmiarze co najwyżej k taki, że S ∩ T i ≠ ∅ dla wszystkich ja ? Próbuję zredukować ten problem do SAT. Moim pomysłem na rozwiązanie byłoby posiadanie zmiennej x idla każdego z 1 do . Dla każdego T i utwórz klauzulę ( x i 1 ∨ ⋯ ∨ x i k ), jeśli T i = { i 1 , … , i k } . Następnie i wszystkie te klauzule razem. Ale to wyraźnie nie jest kompletne rozwiązanie, ponieważ nie reprezentuje ograniczenia, które S musi mieć co najwyżej k elementów. Wiem, że muszę tworzyć więcej zmiennych, ale po prostu nie jestem pewien, jak to zrobić. Mam więc dwa pytania:
- Czy mój pomysł na rozwiązanie jest właściwy?
- Jak należy utworzyć nowe zmienne, aby można je było wykorzystać do przedstawienia ograniczenia liczności ?