Я хотів би дізнатися щось про цю проблему оптимізації: Для заданих невід’ємних цілих чисел знайдіть функцію мінімізуючи вираз
Приклад, що використовує іншу формулювання, може зробити це зрозумілішим: вам надають набір векторів на кшталт
{
{(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, що тут явно оптимально.
Мені цікаво, чи це загальновідома проблема і які методи конкретного рішення для конкретних проблем доступні. Він повинен бути швидким і легким для програмування (без вирішення ILP тощо). Точне рішення не потрібно, оскільки це лише наближення реальної проблеми.
Я бачу, що я повинен був додати деякі деталі щодо проблемних примірників, які мене цікавлять:
- , тобто завжди є 64 рядки (коли написано, як у наведеному вище прикладі).
- , тобто є лише 2 вектори на рядок.
- де (довжина вектора) становить від 10 до 1000.
Причому в кожному рядку сума елементів усіх векторів однакова, тобто
а сума елементів вектора суми менша за його довжину, тобто