Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Welchen Optimierungsalgorithmus brauch ich (https://www.delphipraxis.net/179096-welchen-optimierungsalgorithmus-brauch-ich.html)

Blup 14. Feb 2014 10:43

AW: Welchen Optimierungsalgorithmus brauch ich
 
Zitat:

Zitat von Gutelo (Beitrag 1247813)
1) Einfacher Fall: EG > AP1+AP2+AP3 (Gewinn), dann bekommt jeder seine Ausgaben zurueck und der Rest wird gerecht geteilt.

Alles entscheidend ist, was versteht man unter gerecht geteilt?
Normalerweise teilt man die Gesamteinnahme.

EP1 = EG * (AP1 / AG)
EP2 = EG * (AP2 / AG)
EP3 = EG * (AP3 / AG)

Diese Formel lässt sich in beiden Situationen anwenden.
Im Gewinnfall ist EP1 > AP1, im Verlustfall EP1 < AP1

Gutelo 14. Feb 2014 10:52

AW: Welchen Optimierungsalgorithmus brauch ich
 
Zitat:

Deutlich wird das vor allem im Extremfall: 4 kaufen 1 Los, ein weiterer kauft 496. Wenn niemand was gewinnt, müssen alle 100 Lose bezahlen. Klingt nicht wirklich fair
Falsche Denkweise. Die Gemeinschaft kauft 500 Lose. 4 Legen das Geld fuer 4 Lose aus, einer fuer 496 Lose. Ich verstehe das Problem nicht.

Zoot 14. Feb 2014 10:56

AW: Welchen Optimierungsalgorithmus brauch ich
 
Zitat:

Zitat von Gutelo (Beitrag 1247843)
@Zoot: wie hilft einem das Trennen bei der Abrechnung? Es muss immer Geld zwischen den einzelnen Spielern fliessen...

Dass die Rechnung ganz einfach ist?
Jeder zahlt Ausgaben/3 ein und erhält Einnahmen/3 zurück.
Wenn der Saldo negativ ist, weil z.B. Einnahmen=0, muss er nachzahlen, sonst erhält er Geld.

Also
1: EG/3 - AG/3 + AG1
2: EG/3 - AG/3 + AG2
3: EG/3 - AG/3 + AG3

Sollte immer stimmen und ist ganz einfach.

Gutelo 14. Feb 2014 11:00

AW: Welchen Optimierungsalgorithmus brauch ich
 
Zoot: und wie genau laeuft das Zahlen und Erhalten ab? Es geht darum genau diese Transaktionen moeglichst optimiert zu bestimmen. Was jeder am Ende haben muss ist wie vorher gesagt trivial zu bestimmen.


Es soll nicht so laufen, dass alle Schuldner das Geld in einen Pott werfen und anschliessed Glaeubiger aus dem Topf bezahlt werden. Ich moechte eine optimnierte Liste, wer an wen direkt was bezahlen muss.

Zoot 14. Feb 2014 11:03

AW: Welchen Optimierungsalgorithmus brauch ich
 
Beispiel:

1 kauft 10 Lose, 2 kauft 50 Lose, 3 kauf kein Los.
Lose kosten 1 Euro, Gewinn beträgt 120 Euro.

1. 40 + 10 - 20 = 30
2. 40 + 50 - 20 = 70
3. 40 + 0 - 20 = 20

Alles paletti!

Beispiel2:

1 kauft 10 Lose, 2 kauft 50 Lose, 3 kauf kein Los.
Lose kosten 1 Euro, Gewinn gibts nicht.

1. 0 + 10 - 20 = -10
2. 0 + 50 - 20 = 30
3. 0 + 0 - 20 = -20

auch alles paletti!

Zoot 14. Feb 2014 11:05

AW: Welchen Optimierungsalgorithmus brauch ich
 
Zitat:

Zitat von Gutelo (Beitrag 1247853)
Zoot: und wie genau laeuft das Zahlen und Erhalten ab? Es geht darum genau diese Transaktionen moeglichst optimiert zu bestimmen. Was jeder am Ende haben muss ist wie vorher gesagt trivial zu bestimmen.

Ich weiß jetzt nicht, was es bei der kurzen Formel noch zu optimieren geben soll. Alle Einnahmen teilen, alle Ausgaben teilen, getätigte Ausgaben rückerstatten - fertig.

Gutelo 14. Feb 2014 12:10

AW: Welchen Optimierungsalgorithmus brauch ich
 
Ich rede von Transaktionen, dynamische Prozesse, basierend auf den Zahlen die du alles paletti berechnet hast.

In deinem Zweiten Beispiel waeren das:

Transaktion 1: Spieler 1 gibt Spieler 2 den Betrag von 10 Euro
Transaktion 2: Spieler 3 gibt Spieler 2 den Betrag von 20 Euro

Nun nimm 10 Spieler und weniger Schoene Betraege, dann gibt es zig Moeglichkeiten die Transfers zu machen, und einige Spieler muessen dann auch Betraege an 2 oder sogar mehr Spieler transferieren...

Zoot 14. Feb 2014 12:18

AW: Welchen Optimierungsalgorithmus brauch ich
 
Zitat:

Zitat von Gutelo (Beitrag 1247863)
Ich rede von Transaktionen, dynamische Prozesse, basierend auf den Zahlen die du alles paletti berechnet hast.

Welche Transaktionen, welche dynamischen Prozesse?

Die Verteilung der Kosten/Gewinne beruht auf einer einfachen Formel, wie wenige Variablen und wenige Rechenoperationen umfasst. Das ändert sich doch nicht in einem anderen Umfeld.
Mir ist völlig schleierhaft, auf was du hinauswillst, würde es aber gerne verstehen.

Das monetäre Ergebnis eines Teilnehmers n (von N Teilnehmern) ist EG/N - AG/N + agn
Was dasselbe ist wie (EG-AG)/N - agn

(EG-AG)/N wird ein einziges Mal berechnet, agn ist als Größe bekannt.
Wo sind hier Transaktionen und dynamische Prozesse?

Zoot 14. Feb 2014 12:20

AW: Welchen Optimierungsalgorithmus brauch ich
 
Zitat:

Zitat von Gutelo (Beitrag 1247863)
Ich rede von Transaktionen, dynamische Prozesse, basierend auf den Zahlen die du alles paletti berechnet hast.

In deinem Zweiten Beispiel waeren das:

Transaktion 1: Spieler 1 gibt Spieler 2 den Betrag von 10 Euro
Transaktion 2: Spieler 3 gibt Spieler 2 den Betrag von 20 Euro

Nun nimm 10 Spieler und weniger Schoene Betraege, dann gibt es zig Moeglichkeiten die Transfers zu machen, und einige Spieler muessen dann auch Betraege an 2 oder sogar mehr Spieler transferieren...

Ok, jetzt kapier ich was du meinst.
Da würde sich aber doch eine gemeinsame Kasse anbieten, aus der jeder erhält, bzw. in die jeder einzahlt, oder?

Jumpy 14. Feb 2014 12:25

AW: Welchen Optimierungsalgorithmus brauch ich
 
Sortiere die Spieler von Gewinn nach Verlust.
Ziehe die raus, wo Gewinn auf gleichen Verlust trifft, diese können sich mit einer Transaktion ausgleichen.
Der Rest gibt von oben nach unten jeweils seinen Überschuss weiter.

So muss jeder maximal eine Transaktion machen. Das ist natürlich nicht optimal, aber dafür fair. Ein anderer Algo würde vllt. die Zahl der Transaktonen insgesamt verringern, dafür müssten aber u.U. einzelne Leute mehrere Transaktionen durchführen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:44 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz