#todo ![[Pasted image 20250124095546.png]] > Задача является NP-полной, если она одновременно является NP-задачей и NP-трудной задачей. ## Задачи разрешимости Задача разрешимости подразумевает ответ «да» или «нет» ## Задачи выполнимости (SAT, Satisfiability Problem) Задача SAT всегда ищет ответ «да» или «нет», поэтому это задача разрешимости. Характеризуется временем выполнения $O(2^n)$. ## Классы задач P и NP Решения задачи SAT быстро проверяются, поэтому она относится к классу NP. В класс NP входят задачи, решения которых могут быть проверены за полиномиальное время. NP-задачи могут быть простыми или трудными в решении, но их решения легко проверить. Этим они отличаются от класса P. ![[Pasted image 20250124100003.png]] Задача относится к классу P, если ее можно решить и проверить за полиномиальное время. ![[Pasted image 20250124100009.png]] ![[Pasted image 20250124100108.png]] ## Сведе́ние Задача, которую вы не умеете решать, сводится к задаче, которую вы решать умеете ![[Pasted image 20250124100222.png]] ## NP-трудность типы NP-трудных задач: - задача о покрытии множества - задача о коммивояжере - задача SAT Задача называется NP-трудной, если какая-либо задача из класса NP может быть сведена к этой задаче. Все NP-задачи также могут быть сведены к любой NP-трудной задаче. Например, все задачи NP можно свести к SAT ![[Pasted image 20250124100407.png]] ## NP-полнота ![[Pasted image 20250124100520.png]] Источники: - [[Адитья Бхаргава - Грокаем Алгоритмы]]