Зменшіть наступну проблему до SAT


21

Ось проблема. Дано , де кожен . Чи є підмножина розміром не більше таким, що для всіх ? Я намагаюся звести цю проблему до SAT. Моєю ідеєю рішення було б мати змінну для кожного з 1 до . Для кожного створіть пункт якщо . Потім і всі ці пункти разом. Але це явно не є повноцінним рішенням, оскільки воно не представляє обмеження, щоT i{ 1 , , n } S { 1 , , n } k S T ii x i n T i ( x i 1x i k ) T i = { i 1 ,k,n,T1,,TmTi{1,,n}S{1,,n}kSTiixinTi(xi1xik)S kTi={i1,,ik}Sповинно мати не більше елементів. Я знаю, що треба створити більше змінних, але я просто не впевнений, як. Тож у мене є два питання:k

  1. Моя ідея рішення на вірному шляху?
  2. Як слід створити нові змінні, щоб їх можна було використати для представлення обмеження kardinality ?k

5
Лише зауваження: Ваша проблема відома як HITTING SET , яка є рівнозначною формулою проблеми SET COVER .
А.Шульц

Відповіді:


13

Схоже, ви намагаєтеся обчислити поперечний гіперграф розміром . Тобто { T 1 , , T m } - ваш гіперграф, а S - ваш поперечний. Стандартний переклад полягає в тому, щоб висловити пропозиції, як у вас є, а потім перекласти обмеження довжини в обмеження для кардинальності.k{T1,,Tm}S

Тому використовуйте наявне кодування, тобто а потім додайте пропозиції кодування .1jmiTjxi1inxik

1inxik - обмеження кардинальності. У SAT є різні різні переклади обмеження кардинальності.

Найпростіший, але досить великий переклад обмеження для кардинальності - це просто . Таким чином , кожен диз'юнкція являє собою обмеження - для всіх підмножин з розміром до + 1. Тобто ми гарантуємо, що немає можливості встановити більше k змінних. Зауважимо, що це не многочленний розмір у ¬ i X x i X { 1 , , n } kX{1,,n},|X|=k+1iX¬xi¬iXxiX{1,,n}k

Деякі посилання на документи про більш просторові трансляції обмежень для кардинальності, які мають поліном вk :

Якщо ви насправді зацікавлені у вирішенні подібних проблем, можливо, краще сформулювати їх як псевдобулеві проблеми (див. Статтю у вікі про псевдобулеві проблеми ) та використовувати псевдобулеві розв’язувачі (див. Псевдобулеву конкуренцію ). Таким чином обмеження кардинальності є лише псевдобулевими обмеженнями і є частиною мови - сподіваємось, псевдобулевий розв'язувач потім обробляє їх безпосередньо та, отже, більш ефективно.


1
Будь ласка, опишіть усі посилання коротко (принаймні автор та заголовок), щоб люди могли знайти документи у разі перерви посилань. Напевно, найкраще використовувати DOI, якщо він є.
Рафаель

1
@Raphael Добрий момент! Вибачення, я мав би зробити це для початку. Зараз я оновив усі посилання; Я не впевнений, чи Springer надає DOI, але зараз має бути достатньо інформації, щоб знайти їх, якщо посилання розриваються. Примітка. Я не посилаюсь на офіційні файли PDF від Springer, щоб уникнути проблем із доступом.
MGwynne

Але здається, що скорочення, яке ви дали, не в поліноміальний час, правда?
Аден Донг

@AdenDong Ви нічого не сказали про поліном;). Просте кардинальне обмеження переклад я Згадка НЕ многочлен (але при фіксованому до ). Переклади обмежень кардинальності, наведені в перелічених нижче роботах, є многочленними в k - з використанням нових змінних. Я оновив свою відповідь, щоб зробити це зрозумілішим. kkk
MGwynne

MGwynne, я, як правило, завжди пов'язую офіційний DOI, навіть якщо він виплачується для того, щоб бути надійним, а також безкоштовними версіями додатково. Але як зараз, будь-хто зможе знайти папери, тому це цілком добре.
Рафаель

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.