J'aimerais apprendre quelque chose sur ce problème d'optimisation: pour des nombres entiers non négatifs donnés , trouver une fonction minimisant l'expression
Un exemple utilisant une formulation différente pourrait le rendre plus clair: on vous donne un ensemble d'ensembles de vecteurs comme
{
{(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)}
}
Choisissez un vecteur dans chaque ensemble, de sorte que la composante maximale de leur somme soit minimale. Par exemple, vous pouvez choisir
(1, 0, 2, 0, 0) + (0, 1, 0, 0, 0) + (0, 1, 0, 1, 0) = (1, 1, 2, 1, 0)
avec la composante maximale égale à 2, ce qui est clairement optimal ici.
Je suis curieux de savoir s'il s'agit d'un problème bien connu et des méthodes de résolution approximative spécifiques au problème disponibles. Il doit être rapide et facile à programmer (pas de solveur ILP , etc.). Aucune solution exacte n'est nécessaire car ce n'est qu'une approximation du problème réel.
Je vois que j'aurais dû ajouter quelques détails sur les instances de problème qui m'intéressent:
- , c'est-à-dire qu'il y a toujours 64 lignes (lorsqu'elles sont écrites comme dans l'exemple ci-dessus).
- , c'est-à-dire qu'il n'y a que 2 vecteurs par ligne.
- N où (la longueur du vecteur) est compris entre 10 et 1000.
De plus, sur chaque ligne, la somme des éléments de tous les vecteurs est la même, c'est-à-dire
et la somme des éléments du vecteur somme est inférieure à sa longueur, c'est-à-dire,