Я хотел бы кое-что узнать об этой задаче оптимизации: для заданных неотрицательных целых чисел найдите функцию минимизирующую выражение
Пример, использующий другую формулировку, может прояснить ситуацию: вам дан набор наборов векторов, таких как
{
{(3, 0, 0, 0, 0), (1, 0, 2, 0, 0)},
{(0, 1, 0, 0, 0), (0, 0, 0, 1, 0)},
{(0, 0, 0, 2, 0), (0, 1, 0, 1, 0)}
}
Выберите один вектор из каждого набора, чтобы максимальная составляющая их суммы была минимальной. Например, вы можете выбрать
(1, 0, 2, 0, 0) + (0, 1, 0, 0, 0) + (0, 1, 0, 1, 0) = (1, 1, 2, 1, 0)
с максимальным компонентом, равным 2, что здесь явно оптимально.
Мне интересно , если это хорошо известная проблема , и какие проблемы , специфичные приближенные методы решения доступны. Это должно быть быстро и легко программировать (без ЦЛПА решателя и т.д.). Нет точного решения не требуется , поскольку это всего лишь приближение реальной проблемы.
Я вижу, что я должен был добавить некоторые подробности о проблемах, которые меня интересуют:
- , т. е. всегда есть 64 строки (при записи, как в приведенном выше примере).
- , то есть, там уже только 2 векторов в ряд.
- N , где (длина вектора) составляет от 10 до 1000.
Более того, в каждой строке сумма элементов всех векторов одинакова, т.е.
и сумма элементов вектора суммы меньше его длины, т.е.