Rucksackproblem

Aus Stupidedia, der sinnfreien Enzyklopädie!
Wechseln zu: Navigation, Suche

Das Rucksackproblem gehört zu den typischen Problemen eines Mathematikers, der seine lange Studienzeit für etwas sinnvolles nutzen will. Natürlich hat Mathematik keinerlei praktischen Nutzen, denn Mathe ist ja bekanntermaßen ein Arschloch.

Was ist das Rucksackproblem?

Das Rucksackproblem beschäftigt sich damit, in einen Rucksack eine Menge von Wertgegenständen zu packen, sodass der Rucksack später nicht überfüllt ist und den maximalen Wert erreicht...Klingonisch, ist auch so. Dabei gehört das Rucksackproblem zu den NP-vollständigen Problemen.

NP-Probleme sind warscheinlich nicht effizient, sondern in Polynomialzeit entscheidbare Probleme bzw. Algorithmen. Das bedeutet im Klartext, dass es totaler Schwachsinn ist, da irgendetwas zu berechnen, weil es eh ewig dauert und jeder normale Mensch mit IQ über Zimmertemperatur die Lösung instinktiv finden kann. Typisch Mathematiker eben.

Szenario

Unser Mathematiker hat also erfolgreich sin Studium abgeschlossen. Nach zwei Jahren Arbeitslosigkeit (Was will man denn mit Mathematikern???) und einem Jahr an einer Schule als Mathematik- und Sportaushilfslehrer, hat unser Guter keinen Bock mehr (Klar, kann man verstehen, aber hätte er halt was gescheites studiert). Nach dem fünften Bier um drei Uhr mittags denkt er sich nun: "Ich hab ja studiert, also kann ich da bestimmt etwas von anwenden", und erinnert sich an das Rucksackproblem. Er entschließt sich natülich Einbrecher zu werden, da er ja berechnen kann, wie er seinen Rucksack am besten mit dem Diebesgut beladen kann...macht Sinn.

Dabei gibts aber folgende Probleme:

  1. Zum Berechen braucht man sehr viel Zeit (NP-Problem), also muss man vorher sich auskennen und alles zu Hause berechnen, nochmals einbrechen und erst dann alles mitnehmen. Oder vor Ort die drei Wochen Berechnungszeit durchführen, aber wer kann schon solange ungesehen im Haus rumrennen?
  2. Es wird vergessen, dass er ja noch Hände hat, indenen er einfach ja noch das eine oder andere nette mitgehn lassen kann. Was die Berechnung voll zunichte macht.
  3. Man geht davon aus, dass alles schön stabelbar ist. Jaaa sichi.

Rechnung

Ist man dennoch wahnsinnig genug, das alles zu berechen, kann man folgenden Algorithmus verwenden:
U: Die Objekte der Begierde
B: Größe des Rucksacks (in kg, Litern, Scoville, Bier, nach der Richterskala, etc.)
w: Gewichtungsfunktion für die Objekte. Zum Beispiel w(Vulkan) = 600.000; w(Atombombe) = 2; in Tonnen
v: Wertfunktion der Objekte. v(Vulkan) = 5; v(Atombombe) = 1; in der Richterskala

   Eingabe: U, B, w, v
       R := [1…(n+1), 0…B]-Matrix, mit Einträgen 0
       FOR i = n … 1
           FOR j = 1 … B
               IF w(i) <= j
                   R[i,j] := max( v(i) + R[i+1, j-w(i)], R[i+1,j] )
               ELSE
                   R[i,j] := R[i+1,j]
   Ausgabe: R[1,B]

Linktipps: Faditiva und 3DPresso