Розширення коментаря vzn до відповіді: Стандартне скорочення від CNF-SAT до покриття вершин досить легко: складіть вершину для кожного терміна (змінної або її заперечення), підключіть кожну змінну до її заперечення краєм, зробіть клік для кожного пункту , і підключіть кожну вершину в кліці до вершини для одного з доданків у пункті. Якщо ви почнете з проблемою задоволеності з відомим задовольняючим завданням, це дасть вам проблему покриття вершин із відомим оптимальним рішенням (виберіть термін вершини, заданий присвоєнням, і в кожній кліці пункту виберіть усі, крім однієї вершини, так що вершина пункту, яка не обрана, суміжна з обраною вершиною терміна, яка обрана).
Отже, зараз вам потрібно знайти проблеми із задоволенням, які мають відоме задовольняюче завдання, але де важко знайти рішення. Відомо багато способів генерування важких проблем задоволеності (наприклад, генерування випадкових випадків k-SAT, близьких до порогу задоволення), але додаткова вимога, що ви знаєте, що задовольняє завдання, обмежує можливості. Одне, що ви можете зробити тут, - це пройти інший рівень зниження, від криптографічно важкої проблеми, такої як факторизація. Тобто виберіть два великих простих числа p і q, встановіть булеву схему для множення p і q як двійкові числа і переведіть її у формулу CNF, в якій є змінна для кожного вводу (p і q) і для кожного проміжного значення на провід в ланцюзі, пропозиція для кожного виходу змушує його мати правильне значення, і пункт для кожного затвора, примушуючи входи та виходи воріт узгоджуватися один з одним. Потім перекладіть цю формулу CNF у вершину обкладинку.
Для більш простої стратегії виберіть спочатку призначення, що відповідає формулі 3CNF, а потім генеруйте пропозиції навмання, зберігаючи лише ті пропозиції, які відповідають призначенню, а потім перетворіть у вершину. Якщо пропозиції мають однакову ймовірність, це буде вразливим до евристики на основі ступеня (термін вершин, що відповідають обраному призначенню, матиме нижчий ступінь, ніж термін вершини, які не мають), але цього недоліку можна уникнути, скоригувавши ймовірність пропозицій. відповідно до того, скільки умов пункту узгоджується з обраним завданням. Ймовірно, це вразливий для якоїсь поліномічної атаки в часі, але це може бути не тим, що є природним для вершинного покриття, тому це може зробити гарний набір тестових примірників, не маючи великих гарантій твердості.