Двухстороннее соответствие - PullRequest
0 голосов
/ 24 августа 2011

Мне нужно найти алгоритм (предпочтительно на Java) для решения следующей проблемы (в надежде, что она будет четко выражена):

Учитывая матрицу (не обязательно квадратную) из значений 1 и 0, например,следующее:

Sample matrix

Я должен иметь возможность определить максимальное количество ячеек, чтобы не было пар ячеек среди выбранных, имеющих общую строку или столбец.

Например, если была выбрана ячейка (Row_A, Col_Y), то ячейки (Row_A, Col_V), (Row_A, Col_S), (Row_C, Col_Y), (Row_G, Col_Y) должны быть исключены.

Проблема должна быть решенав виде двудольного графа, где разделение узлов представлено строками, а столбцы - другими.Существует связь только между узлами, которые имеют 1 в соответствующих ячейках.

Таким образом, у нас будет раздел Part_Row, который будет содержать следующие узлы: A, B, C, D, E, F, G.В то время как раздел Part_Col будет содержать узлы: Z, Y, X, W, V, T, S, R, Q. Арки будут:

A->Y, A-​​>S
B->Z, B->D
C->Y, C->X, C->S,
etc., etc.

Как определить максимальное количество ячеек?Имеет ли смысл решать проблему максимального соответствия как проблему максимального потока?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...