Hallo,
ich muss ein etwas erweitertes multidimensionales Rucksackproblem in VBA lösen, sprich eines mit 2 Schranken ( z.B. Gewicht und Volumen). Wie programmiere ich das, das eindimensionale war kein Problem, hier ein kleiner Ausschnitt davon.
Sub Schaltfläche1_Klicken()
Dim limit As Double, weight As Double, value As Double, totalWeight As Double, maximumValue As Double
Dim j, k, l, m As Integer
If Range("E23") <= Range("E17") Then
Range("E25").value = " "
limit = Range("S17").value
maximumValue = 0
For j = 2 To Range("G17")
For k = 2 To Range("I17")
For l = 0 To Range("Q17")
For m = 0 To Range("U23")
weight = 1 * (Range("E17") - Range("E23")) + 1 * j + 1 * k + 1 * l + 1 * m
value = Range("E9") * (Range("E17") - Range("E23")) + Range("G9") * j + Range("I9") * k + Range("Q9") * l + Range("S9") * m
If value > maximumValue And value <= Range("Y23") And weight = limit Then
Range("G29").value = j
Range("I29").value = k
Range("Q29").value = l
Range("U29").value = m
totalWeight = weight
maximumValue = value
End If
Next m
Next l
Next k
Next j
Range("E31").value = totalWeight
Range("E33").value = maximumValue
Else
Range("E25").value = "mehr als möglich"
End If
|