2015-03-08 3 views
0

Вход: 2-мерный NxN -симметричная матрица - с NxN положительные элементы.нахождение максимальной суммы в матрице

Выход: 2-мерная матрица NxN размера с N выбранных элементами таким образом, что его суммированием является максимальным среди все возможного выбора. Другие элементы, которые не выбраны, равны нулю. Другими словами, мы должны выбрать N элементов из матрицы для возврата максимум сумма.

Требование: Если размерность матрицы 4*4, мы должны выбрать целое. Каждая строка и столбец в матрице не должны использоваться больше, чем раз. Например, если мы имеем 4*4 матрицу, следующий элемент может быть выбран:

(1,2) 
(2,3) 
(3,4) 
(4,1) 

но если мы выбираем (1,2) и (4,1), мы не можем выбрать (1,3), потому что мы использовали 1 два раза.

Есть ли эффективный алгоритм для этой проблемы?

+0

Есть ли эффективный алгоритм, чтобы заставить кого-то другого выполнять домашнюю работу? –

+0

Это не домашнее задание, это просто часть моего проекта. Мне просто нужно имя алгоритма. –

+0

Можно ли выбрать 12, 23, 34, 14? –

ответ

0

Эта проблема заключается в том странном месте, где не очевидно, что существует многогранник решения с целыми вершинами, и все же его сходство с общим соглашением препятствует мне искать снижение твердости NP. Алгоритмы общего сопоставления достаточно сложны, так что модификация одной из них была бы непростой перспективой, даже если бы был способ сделать это, поэтому я бы посоветовал использовать целочисленный программный решатель. Там же формулировка, как

maximize sum_{ij} w_{ij} x_{ij} 
subject to 
sum_{ij} x_{ij} = n 
forall k, sum_i x_{ik} + sum_j x_{kj} ≤ 2 
forall ij, x_{ij} in {0, 1}, 

где w_{ij} является ij й элемент весовой матрицы.

Смежные вопросы