Для заданных чисел таких что , существует ли присвоение чисел который является перестановкой такой, чтоA 1 ≤ A 2 ≤ . , , ≤ к к Σ я = 1 А я = K ( 2 K + 1 ) я 1 , я 2 , . , , , Я 2 к 1 , 2 , . , , , 2 к
?
Я не могу найти эффективный алгоритм, и это решает эту проблему. Кажется, это комбинаторная проблема. Мне не удалось найти подобную проблему NP-Complete. Эта проблема выглядит как известная проблема NP-Complete или ее можно решить с помощью полиномиального алгоритма?
np-complete
decision-problem
Gprime
источник
источник
Ответы:
Эта проблема сильно NP-полная.
Предположим, что все нечетны. Тогда мы знаем, что, поскольку i 2 j - 1 + i 2 j = A j нечетно, один из i 2 j - 1 и i 2 j четный, а другой нечетный. Можно предположить, что i 2 j - 1 нечетно, а i 2 j четно. Пусть π j = 1Aj i2j−1+i2j=Aj i2j−1 i2j i2j−1 i2j иσj=1πj=12(i2j−1+1) , мы можем показать, что это эквивалентно запросу двух перестановокπиσчисел1…n,таких чтоπj+σj=1σj=12(i2j) π σ 1…n .πj+σj=12(Aj+1)
Эта проблема, как известно, является NP-полной; см. эту проблему cstheory.se и эту статью W. Yu, H. Hoogeveen и JK Lenstra, на которые даны ссылки в ответе.
источник
Вот подсказка для начала: поскольку сумма всех чисел от до 2 k в точности равна k ( 2 k + 1 ) , решение возможно только в том случае, если на самом деле i 1 + i 2 = A 1 , i 3 + я 4 = A 2 и так далее. Итак, учитывая, что я 1, мы знаем, что я 2 , и так далее. Также 3 ≤ A j ≤ 4 k - 1 .1 2k k(2k+1) i1+i2=A1 i3+i4=A2 i1 i2 3≤Aj≤4k−1
источник
Это проблема соответствия, и поэтому ее можно решить с помощью алгоритма Эдмонда. Смотрите википедию
источник