Zweipunktnull
Commander
- Registriert
- Dez. 2004
- Beiträge
- 2.546
Es ist noch immer sehr mühselig, sich in den Thread hineinzudenken, da immer noch sehr schwamming und händewedelnd diskutiert wird. Ich versuche mal (für mich) etwas Klarheit in die Sache zu bringen.
Gegeben ist also oBdA ein vollständiger (!) Graph G=(V,E), wobei jeder Knoten eine Stadt repräsentiert und jede Kante einen kürzesten Weg zwischen ihren beiden Endpunkten (bzgl. der Metrik Reisezeit). Sind zwei Städte nicht erreichbar, so besitzt die entsprechende Kante einfach Reisezeit unendlich. Zusätzlich ist jede Kante mit "ihrem Profit" gelabelt. Jede Kante e=(u,v) unterliegt also eine 2-dim. Bewertung c : e -> (t, p), wobei t die Länge eines kürzesten Weges (in sec.) zwischen u und v ist und p die Differenz (Verkaufspreis in v - Einkaufspreis in u)*LKW-Größe bzgl. des optimalen Guts auf e ist. OBdA ist das Ganze deshalb, weil wir uns einen solchen vollständigen Graphen inkl. der Bewertungsfunktion berechnen können, sollten wir nur ein normales Straßennetz gegeben haben.
Gesucht ist nun ein (nicht notwendigerweise zyklenfreier) Pfad, so dass (a) die Summe der c(e).t aller Kanten e auf dem Pfad kleiner-gleich 3h ist und (b) die Summe der c(e).p maximiert wird. Der Pfad muss dabei nicht notwendigerweise geschlossen sein.
Legt man dieses Verständnis zugrunde, sehe ich im Moment nicht, inwiefern deine Lösung (daemon) das Problem löst (kann auch an mir legen
). So wie ich das Verstehe, entspricht deine Funktion Profit(u, v) = c((u,v)).p, oder? Mir ergeben sich nun mehrere Fragen. Zum einen wird der Zeitconstraint bei dir irgendwie nicht (direkt) berücksichtigt. Weiterhin ist zu bedenken, dass eine Kante e mit hohem c(e).p nicht unbedingt "gut" sein muss. Man muss dies ja immer auch in Relation zur Reisezeit c(e).t setzen. Daneben ist zu bedenken, dass selbst eine Kante e*=(u,v), die maximalen Profit pro Zeit verspricht (d.h. c(e*).p / c(e*).t ist am höchsten unter allen Kanten e in E), nicht unbedingt in der Lösung sein muss. Denn möglicherweise geht es nach v nur noch mit kaum Profit weiter, sodass ein Pfad ohne e* ingesamt (eben auf die <= 3h gesehen) besser ist.
Mich würde interessieren, was du dazu sagst. Hab ich dich irgendwo falsch verstanden?
Edit: Btw:
Was wäre denn dein Algorithmus dafür? Ich frag nur, weil du dann die P-NP-Frage beantwortet hättest.
LONGEST CYCLE ist mindestens so schwer (EDIT: ok, es ist leicht einzusehen, dass es exakt genauso schwer ist) wie HAMILTONIAN CYCLE, was wiederum eines der klassischen 21 NP-vollständigen Probleme ist.
Gegeben ist also oBdA ein vollständiger (!) Graph G=(V,E), wobei jeder Knoten eine Stadt repräsentiert und jede Kante einen kürzesten Weg zwischen ihren beiden Endpunkten (bzgl. der Metrik Reisezeit). Sind zwei Städte nicht erreichbar, so besitzt die entsprechende Kante einfach Reisezeit unendlich. Zusätzlich ist jede Kante mit "ihrem Profit" gelabelt. Jede Kante e=(u,v) unterliegt also eine 2-dim. Bewertung c : e -> (t, p), wobei t die Länge eines kürzesten Weges (in sec.) zwischen u und v ist und p die Differenz (Verkaufspreis in v - Einkaufspreis in u)*LKW-Größe bzgl. des optimalen Guts auf e ist. OBdA ist das Ganze deshalb, weil wir uns einen solchen vollständigen Graphen inkl. der Bewertungsfunktion berechnen können, sollten wir nur ein normales Straßennetz gegeben haben.
Gesucht ist nun ein (nicht notwendigerweise zyklenfreier) Pfad, so dass (a) die Summe der c(e).t aller Kanten e auf dem Pfad kleiner-gleich 3h ist und (b) die Summe der c(e).p maximiert wird. Der Pfad muss dabei nicht notwendigerweise geschlossen sein.
Legt man dieses Verständnis zugrunde, sehe ich im Moment nicht, inwiefern deine Lösung (daemon) das Problem löst (kann auch an mir legen
Mich würde interessieren, was du dazu sagst. Hab ich dich irgendwo falsch verstanden?
Edit: Btw:
Wenn man natürlich einen optimalen Kreis sucht wird das Ganze wieder aufwendiger (wenn auch nicht NP-vollständig).
Was wäre denn dein Algorithmus dafür? Ich frag nur, weil du dann die P-NP-Frage beantwortet hättest.
Zuletzt bearbeitet:
