В литературе есть тысячи NP-полных проблем, и большинство пар не имеют явных сокращений. Поскольку полиномиальное сокращение многих единиц составляет, для исследователей достаточно остановиться, когда график опубликованных сокращений сильно связан, что делает исследование NP-полноты гораздо более масштабируемой деятельностью.
Хотя я на самом деле не вижу в этом смысла, я расскажу вам достаточно простое сокращение от 3-РАЗДЕЛЕНИЯ до СБАЛАНСИРОВАННОГО РАЗДЕЛА с несколькими подсказками о том, как проходит доказательство правильности.
Пусть вход для редукции будет , пример 3-РАЗДЕЛА. Убедитесь , что Е я ∈ [ 3 п ] х я = п B . Пусть β будет большим числом, которое будет выбрано позже. Для каждого i ∈ [ 3 n ] и каждого j ∈ [ n ] выведите два числа
x i β j + β n +x1,…,x3n,B∈Z∑i∈[3n]xi=nBβi∈[3n]j∈[n]
Интуитивно понятно, что первое число означает, что x i назначено 3-сегментному j , а второе число означает противоположное. Х я β J термин используется для отслеживания суммы 3-разбиения J . Β п + J термин используется для отслеживания мощности 3-разбиений J . Β 2 п + я термин используетсячтобы гарантироватьчто каждый х я присваивается ровно один раз. Β (
xiβj+βn+j+β2n+i+β(i+4)n+jβ(i+4)n+j.
ИксяJИксяβJJβн + жjβ2n+ixi термин
n + j используется для принудительного ввода этих чисел в различные сбалансированные разбиения.
β(i+4)n+j
Выведите еще два числа
Первое число идентифицирует свой сбалансированный раздел как «true», а другое - как «false». 1 термин используетсячтобы заставить эти цифры в различные сбалансированные разделы. Другие члены составляют разницу между суммой 3-разбиения и суммой его дополнения и размером 3-разбиения, размером его дополнения и количеством назначений x i .
1+∑j∈[n]((n−2)Bβj+(3n−6)βn+j)+∑i∈[3n](n−2)β2n+i1.
1xi
следует выбирать достаточно большим, чтобы исключить «переполнение».β