Я не буду выписывать фактическое доказательство для вас, но я надеюсь, что следующий план того, как структурировать ваше доказательство, поможет ответить на ваш вопрос.
Первый шаг к доказательству того, что проблема является NP-полнойиспользование сокращения - это фактическое доказательство того, что проблема в NP.То есть, проблема может быть проверена за полиномиальное время.
Как вы это делаете? Может ли ваша проблема быть превращена в проблему решения (например, проблема да / нет)Может ли это решение проблемы быть сертифицировано?Есть ли ответ / решение вашей проблемы?Можете ли вы проверить, что сертификат для решения проблемы может быть сделан за полиномиальное время?Если да, то вы доказали, что ваша проблема в NP.
Теперь, когда вы знаете, что проблема в NP, вы можете использовать сокращение, чтобы доказать, что проблема NP-полная или NP-сложная.(Если бы проблема была в NP, то было бы абсолютно бесполезно переходить к шагу сокращения, потому что проблема не может быть NP-полной, если она не в NP.)
Для сокращения вам следует преобразоватьпроблема клики в твою проблему. Как вы это сделаете? Хорошо, подумайте, какие элементы проблемы клики можно превратить в элементы вашей проблемы.В вашей задаче есть мужчины / женщины, но в задаче клика есть узлы / вершины.В вашей задаче есть соединения, равные 0 (не понравившиеся) или 1 (понравившиеся), но в задаче клика есть взвешенные (или невзвешенные ребра).Вы пытаетесь найти подмножество людей с наибольшим количеством лайков между ними, но в проблеме клика вы максимизируете количество вершин в клике.По большей части, это почти похоже на преобразование один-к-одному.Сложная часть вашей проблемы заключается в том, что должно быть четное количество мужчин и женщин.Для этого вам нужно проявить немного творчества и найти способы трансформировать проблему клики.
Как только вы трансформируете задачу из клики в свою проблему, вы можете просто доказать, что ответ на кликупроблема является ответом на вашу проблему и наоборот.
Это структура доказательства того, что проблема NP-трудна.Самая сложная часть - это процесс трансформации.Однако дело в том, что, если вы думаете достаточно глубоко, проблемой клики можно манипулировать, чтобы она превратилась в вашу проблему.
Надеюсь, это поможет!