Ich möchte etwas über dieses Optimierungsproblem erfahren: Finden Sie für gegebene nicht negative ganze Zahlen eine Funktion die den Ausdruck minimiert f
Ein Beispiel mit einer anderen Formulierung könnte es klarer machen: Sie erhalten eine Reihe von Vektorsätzen wie
{
{(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)}
}
Wählen Sie einen Vektor aus jedem Satz, so dass die maximale Komponente ihrer Summe minimal ist. Zum Beispiel können Sie wählen
(1, 0, 2, 0, 0) + (0, 1, 0, 0, 0) + (0, 1, 0, 1, 0) = (1, 1, 2, 1, 0)
mit der maximalen Komponente gleich 2, was hier eindeutig optimal ist.
Ich bin gespannt, ob dies ein bekanntes Problem ist und welche problemspezifischen Näherungslösungsmethoden zur Verfügung stehen. Es sollte schnell und einfach zu programmieren sein (kein ILP- Solver usw.). Es ist keine genaue Lösung erforderlich, da dies nur eine Annäherung an das eigentliche Problem darstellt.
Ich sehe, dass ich einige Details zu den Probleminstanzen hätte hinzufügen sollen, an denen ich interessiert bin:
- , dh es gibt immer 64 Zeilen (wenn wie im obigen Beispiel geschrieben).
- , dh es gibt nur 2 Vektoren pro Zeile.
- N. wobei (die Vektorlänge) zwischen 10 und 1000 liegt.
Darüber hinaus ist in jeder Zeile die Summe der Elemente aller Vektoren gleich, dh
und die Summe der Elemente des Summenvektors ist kleiner als seine Länge, dh