Помогите, пожалуйста, с такой задачей. Ее нужно решить программным путем за приемлемое время.
Пусть

- натуральные числа (число

обычно порядка нескольких сотен или даже тысяч);

- известные (заданные) двумерные массивы (т.е. матрицы) размера

, элементы которых - нули или единицы (то есть двоичные массивы);

- перестановка множества

.
Требуется найти все перестановки

, максимизирующие следующую сумму:

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

перестановок невозможно. Нужно придумать алгоритм, который позволит решить эту задачу за приемлемое время.
Упрощенная задача для случая одномерных двоичных массивов

и

, состоящих из

элементов

легко решается с помощью перестановочного неравенства (транснеравенства).
Но что делать с задачей (1)? Там ведь одно

присутствует сразу в

слагаемых. И задача вроде как не расщепляется, не сводится к задачам типа (2).