ALgorithmus der die Optimla Zusammenstellung von Datein errechnet...



  • Hallo..

    diesen Ansatz hatte ich auch schon, das Problem iost, das ich mit 5 Dateien schon 12 Durchläufe brauche .. wenn ich nun 5000 Dateien oder 50000 Dateien habe wird das ein zu grosser rechenaufwand ... deswegen suche ich ja einen Optimierungsalgorithmus ... aber Danke trotzdem für deine Hilfe .



  • war das nicht das rucksackproblemchen?



  • war das nicht das rucksackproblemchen?

    Mir war doch so, als hätte ich für ein ähnliches Problem im letzten Semester die NP-Vollständigkeit bewiesen.
    Hatte ich schon wieder vergessen. Danke für die Synapsenanregung 🙂



  • Im allgemeinen findet man auch was unter greedy-Alg.
    Ist auch nur ein neuer Hut für Rucksackprob.



  • daishi schrieb:

    Im allgemeinen findet man auch was unter greedy-Alg.
    Ist auch nur ein neuer Hut für Rucksackprob.

    hmm greedy ist doch einfach das wenn man immer die grösst mögliche variante wählt also in dem fall wär das 1, 2 und schon haben wir den käse das programm war zu giereig (greedy) und hat einen falschen weg gewählt 🙂



  • das problem ist folgendermaßen lösbar:

    zuerst musst du die dateien nach ihrer dateigröße linear sortieren.
    in deinem beispiel ist das schon gegeben!

    1. 500 MB
    2. 180 MB
    3. 130 MB
    4. 70 MB
    5. 30 MB

    wenn du nun die differenz von dem größten element mit der maximalen größe betrachtest so erhälst du:

    700-500 = 200

    als nächstes kannst du dann schaun ob das zweite element kleiner oder gleich groß ist wie die differenz

    180<=200

    wenn das passt kann man den wert des 2ten elements wieder abziehen und man erhällt die neue differenz.

    200-180=20

    so machst du das immer weiter bis du alle linear durchgangen bist und fängst dann von neuem an bis keine files mehr da sind.

    der aufwand ist nur noch linear statt exponentiell, allerdings bekommt man nicht immer die besten lösungen-> s. bsp -> 20 mb werden verschenkt.

    ich hoffe ich habe geholfen



  • eben genau das ist greedy und das mag in dem fall hamlos erscheinen wenn da 20 mb fehlen... aber was macht man bei folgenden dateigrössen:

    zu erreichen 700
    dateien:
    400
    310
    300
    90

    da verschenkt man dann einiges 🙂



  • wieso ?
    in deinem beispiel löst er optimal !

    700-400=300
    310>300
    300<=300
    300-300=0

    erstes paket fertig !



  • hmm shice... war ein fehler drinn
    bei
    400
    350
    350
    baut er aber definitv mist 🙂



  • ne wieder falsch 🙂
    700 - 400 = 300
    350 > 300
    400 auf die erste

    700 auf die zweite 🙂

    aber ich weis was du meinst:

    wenn z.b.

    300
    350
    350
    dann nimmt er die ersten beiden = 650
    und den letzten 350

    besser wäre deiner ansicht anch dann 700 und 350 .. aber ist letztendlich auch egal, da letztendlich nur 50 verloren gehen ! und nich 350 ...

    also wenn die rechenleistung mehr wiegt als der speicherpllatz dann sollte man diese lösung nehmen !



  • japro schrieb:

    daishi schrieb:

    Im allgemeinen findet man auch was unter greedy-Alg.
    Ist auch nur ein neuer Hut für Rucksackprob.

    hmm greedy ist doch einfach das wenn man immer die grösst mögliche variante wählt also in dem fall wär das 1, 2 und schon haben wir den käse das programm war zu giereig (greedy) und hat einen falschen weg gewählt 🙂

    Ok, dies ist halt ein Problem dieser Algorithmengruppe, aber wenn nach greedy gesucht wird, bekommt man auch eine Reihe anderer Lösungswege genannt, die mglw. die gewünschte Lösung bringen.



  • ulath schrieb:

    besser wäre deiner ansicht anch dann 700 und 350 .. aber ist letztendlich auch egal, da letztendlich nur 50 verloren gehen ! und nich 350 ...

    jo genau bei der neuen version von word wurde darauf rücksicht genommen und ein par speed verbesserungen vorgenommen... das programm druckt jetzt nicht genau das, was du willst, aber etwas ähnliches. 😃


Anmelden zum Antworten