Die optimale Lösung lautet wie folgt: Setzen Sie alle Variablen auf das Minimum. Setzen Sie dann vom größten bis zum kleinsten iterativ das entsprechende so groß wie möglich, bis Sie treffen . Wenn oder ist, ist das Problem nicht realisierbar. Ich glaube, dass dies die gleiche Lösung ist, die Geoffrey Irvings Algorithmus ausgibt.aixi∑ixi=1∑ixi,min>1∑ixi,max<1
Der Grund dafür ist, dass Sie Ihr Problem über in die LP-Relaxation des 0-1-Rucksackproblems umwandeln können
yi=xi−xi,minxi,max−xi,min.
Im variablen Raum wird das Problem zu
y
MaximizeSubject to∑iciyi0≤yi≤1, for each i∑ibiyi=d,
wobei , und . Wenn das ursprüngliche Problem durchführbar ist, ist . Die und sind nicht negativ, also haben wir die LP-Relaxation von 0-1 Rucksack. (Der Ausdruck erscheint technisch auch im Ziel, aber da es sich um eine Konstante handelt, können wir ihn fallen lassen.)ci=ai(xi,max−xi,min)bi=(xi,max−xi,min)d=1−∑ixi,mind≥0cibi∑iaixi,min
Unter der Annahme , die Variablen durch das Verhältnis sortiert vom größten zum kleinsten, die bekannten optimalen Lösung ist die gierige one: Set für so groß a wie möglich , setze und setze . Wenn Sie diese Lösung wieder in den variablen Problemraum umwandeln, erhalten Sie die gerade beschriebene Lösung.cibi=aiy1=y2=⋯=yk=1kyk+1=d−∑ki=1biyk+2=⋯=yn=0x
Außerdem hat der 0-1-Rucksack eher eine Einschränkung als eine -Einschränkung. Wenn Sie alle Gegenstände im Rucksack mit noch freiem Platz unterbringen können, ist das ursprüngliche Problem mit der Variablen nicht realisierbar, da .≤=x∑ixi,max<1