Помогите, пожалуйста, с такой задачей. Ее нужно решить программным путем за приемлемое время.
Пусть
- натуральные числа (число
обычно порядка нескольких сотен или даже тысяч);
- известные (заданные) двумерные массивы (т.е. матрицы) размера
, элементы которых - нули или единицы (то есть двоичные массивы);
- перестановка множества
.
Требуется найти все перестановки
, максимизирующие следующую сумму:
Можно сначала для простоты найти хотя бы одну такую перестановку, а затем пытаться найти уже все такие перестановки.
Проблема в том, что перебрать тупым полным перебором все
перестановок невозможно. Нужно придумать алгоритм, который позволит решить эту задачу за приемлемое время.
Упрощенная задача для случая одномерных двоичных массивов
и
, состоящих из
элементов
легко решается с помощью перестановочного неравенства (транснеравенства).
Но что делать с задачей (1)? Там ведь одно
присутствует сразу в
слагаемых. И задача вроде как не расщепляется, не сводится к задачам типа (2).