Добрый день,
имеется довольно большая матрица, близкая к квадратной (то есть число столбцов-строк близко по значениям). В моем случае ее размерность составляет около 10к * 10к. Каждый матричный элемент - это или 0, или 1. Надо выбрать
столбцов, так, чтобы максимизировать число строк в этих столбцах, в которых есть хотя бы одна единица. По условию
- довольно маленькое, но, к сожалению, не 1 или 2, в моем случае, значение
находится в пределе 10.
Кроме как перебором по всем столбцам или запуском чего-то типа метода отжига без гарантии того, что решится, ничего в голову не приходит. Перебор даже на суперкомпьютере не осуществим. Метод отжига попробовал, но за день на довольно быстрой рабочей станции и с распараллеливанием по ядрам - не дало результата, всяко находятся каждый час все новые и новые варианты, и на сколько долго будут находится - не понятно. То есть или есть монотонная сходимость без гарантии попадания в глобальный максимум, или совсем нет сходимости.
Скажите, пожалуйста, есть ли какой-то детерминистический или с гарантированной сходимостью, но, в то же время, не NP-полный алгоритм для решения этой задачи?
Спасибо