Rucksackproblem mit 2 unterschiedlichen maxGewicht

El Hadji

Bekanntes Mitglied
Servus Community,
Das Rucksackproblem versteh ich ja etwas. was mache ich aber wenn ich 2 unterschiedliche Begrenzungen habe.
dzge48936xcivwcd7.jpg

Ich hätte das Beispiel ganz einfach mit dem Rucksackproblem gelöst und statt Gegenständen die BEstellungen genommen. Als maxGewicht wollte ich den Lagerplatz für die einzelnen Artikel nehmen, aber das sind ja 2 verschiedene Werte. Wie gehe ich da also vor?
Code:
public class Rucksackproblem
{

    public List<Gegenstand> getBesteAuswahl(List<Gegenstand> liste, double maxW) {
        double bestValue = getBestValue(liste,maxW,0);
        double restW = maxW;
        double restV = bestValue;
        ArrayList<Gegenstand> erg = new ArrayList<>();
        for(int k=0; k<liste.size(); k++) {
            //mit Gegenstaenden ab Index k kann restV erreicht werden, ohne restW zu überschreiten
            if(getBestValue(liste,restW,k+1) < restV) {
                Gegenstand g = liste.get(k);
                erg.add(g);
                restW -= g.weight;
                restV -= g.value;
            }
        }
        return erg;
    }
   
    /*
     * Liefert den Wert der optimalen Auswahl von Gegenstaenden mit Index >=k.
     */
    private double getBestValue(List<Gegenstand> liste, double maxW, int k) {
        double erg = 0;
        if(k == liste.size()) return erg;
        Gegenstand g = liste.get(k);
        if(g.weight <= maxW) {
            erg = g.value + getBestValue(liste,maxW-g.weight,k+1);
        }
        double ergOhne = getBestValue(liste,maxW,k+1);
        if(erg > ergOhne) {
            return erg;
        } else {
            return ergOhne;
        }
    }

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
}
mfg El Hadji
 

mihe7

Top Contributor
Du hast eine Liste von Bestellungen, dann kannst Du doch in Abhängigkeit der Artikelnummer die Gesamtmenge ermitteln. Die darf halt nicht überschreiten, was das Lager hergibt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I In unterschiedlichen Applikation Zugriff auf eine gemeinsame Anwendung? Java Basics - Anfänger-Themen 8
I Gleiche Klassen und Methoden in unterschiedlichen Projekten nutzen Java Basics - Anfänger-Themen 2
luggas89 If else auch mit unterschiedlichen Antworten Java Basics - Anfänger-Themen 5
TimoN11 Array mit unterschiedlichen längen aktualisieren, dann als Methodenwert einsetzen Java Basics - Anfänger-Themen 1
B Tranportkosten berechnen mit unterschiedlichen MwSt Java Basics - Anfänger-Themen 9
B ID von unterschiedlichen Objekten bekommen? Java Basics - Anfänger-Themen 2
E OOP Array anlegen mit unterschiedlichen Werten Java Basics - Anfänger-Themen 8
S Objekte mit gleichem Namen in unterschiedlichen Klassen Java Basics - Anfänger-Themen 3
N Methoden Wohin mit einer Methode die in unterschiedlichen Klassen verwendet wird? Java Basics - Anfänger-Themen 5
B Watermark erstellen bei unterschiedlichen Bildgrößen Java Basics - Anfänger-Themen 3
O Schlüsselworte this bei unterschiedlichen Attributnamen? Java Basics - Anfänger-Themen 5
P jTable getColumnClass, mit unterschiedlichen Klassen in einer Column? Java Basics - Anfänger-Themen 5
M Listen erstellen mit unterschiedlichen Reihenfolgen Java Basics - Anfänger-Themen 3
M Konstruktor mit unterschiedlichen Parametern? Java Basics - Anfänger-Themen 3
N Aufrufen einer Methode mit unterschiedlichen Basistypen Java Basics - Anfänger-Themen 22
O Array mit unterschiedlichen Datentypen ausgeben... Java Basics - Anfänger-Themen 16
K OOP duplicate class, öffentliche Klasse in unterschiedlichen Java Dateien speichern? Java Basics - Anfänger-Themen 3
O Rückgabewert mit unterschiedlichen Datentypen Java Basics - Anfänger-Themen 10
J Datentypen Rechnen mit unterschiedlichen Datentypen Java Basics - Anfänger-Themen 3
J list mit unterschiedlichen farben Java Basics - Anfänger-Themen 6
G Überladen von Konstruktoren mit unterschiedlichen Datentypen Java Basics - Anfänger-Themen 4
L JLabel mit unterschiedlichen Farben Java Basics - Anfänger-Themen 4
T Mehrere paint Methoden in unterschiedlichen Klassen Java Basics - Anfänger-Themen 7
R Felder unterschiedlichen Typs Java Basics - Anfänger-Themen 9
J Datei aus unterschiedlichen Typen auslesen Java Basics - Anfänger-Themen 6
V Rechnungen mit Werten aus unterschiedlichen Objekten. Java Basics - Anfänger-Themen 10
0 Array mit unterschiedlichen Objekten füllen? Java Basics - Anfänger-Themen 8
G StringTokenizer mit unterschiedlichen Delimitern Java Basics - Anfänger-Themen 7
P Probleme mit Klassen in unterschiedlichen Dateien Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben