Der Bademeister: Mathematisches Problem: Bester aus 5 Ranglisten?

Hallo zusammen!

Dieses Mal gibts eine wenig wie früher eine telegene Mathestunde:
Also....

Problemstellung:
Vorhanden sind 5 Spiele bei denen jedes Spiel eine eigene Rangliste/Higshcore besitzt. Die Spieler kriegen ein Login wo sie jedes Spiel spielen dürfen und sich je einmal mit dem besten Resultat eintragen.
Nun gibts eine Topscoreliste. Quasi "Best of 5"
Dort soll mathematisch Korrekt der Beste aus allen 5 Spielen zuoberst sein.

Zusatzproblem:
Man muss aber schon in der Top5-Liste aufgeführt werden, auch wenn man noch nicht alle Spiele gespielt hat. Er sollte aber dann natürlich schlechter gewichtet sein als einer der alle Spiele gespielt hat.

Nun hat jemand da draussen schon mal sowas programmiert?

  1. Sup!

    Wie wär's mit der hochkomplizierten Funktion "Summe"?

    Für alle Spieler X und Spiele Y (1..N) mit Gewichtungsfaktor Y (1..N) ist Gesamtepunkte =

    PunkteSpiel[Y1][X] * GWF[Y1] + PunkteSpiel[Y2][X] * GWF[Y2]+ ... + Punktespiel[YN][X] * GWF[YN]

    Für alle Spiele, die Spieler X nicht gespielt hat, ist Punktespiel[Y][X] = 0

    Gruesse,

    Bio

    1. Ja das habe ich mir auch schon überlegt, aber wieder verworfen, wegen der Gewichtung.
      Wie soll ich diese Bestimmen.
      Ich habe folgende Arten von Punkten:

      Spiel 1: 100 Punkte pro Zug. (wahrscheinlich maximum von 15'000)
      Spiel 2: Züge mal Zeit (maximum um die 2500)
      Spiel 3: Zeit in ms (maximum um die 8700)
      Spiel 4: 10 Punkte pro Treffer (maximum von ca. 3000)
      Spiel 5: Roulette (mmmmmhhh bis oben offen)

      Also Gewichtung wäre dann etwa:

      1: 1x
      2: 6x
      3: 2x
      4: 5x
      5: puh keine Ahnung, man fängt mit 300.- an.

      Also ich finde es schon schwierig da wirklich eine gerechte mathematische Gewichtung zu finden.

      Danke aber trotzdem

      1. Hallo Bademeister,
        vielleicht machst Du es so:
        Du gibst dem Ersten einer Rubrik 100 Pkt und allen anderen prozentual ihre Anteile, also einem, der halbsoviele Pkt in einer Rubrik hat 50 Pkt, u.s.w. Einer, der noch nicht in einer Rubrik steht, bekommt 0 Pkt. Und dann erst bildest Du die Summe aller Rubriken...

        SachauMan

        1. Du gibst dem Ersten einer Rubrik 100 Pkt und allen anderen prozentual ihre Anteile, also einem, der halbsoviele Pkt in einer Rubrik hat 50 Pkt, u.s.w. Einer, der noch nicht in einer Rubrik steht, bekommt 0 Pkt. Und dann erst bildest Du die Summe aller Rubriken...

          Hey hey das könnte die Lösung sein, dachte ich doch das es einfach gehen muss. Ach ist es ja schon lange Wochenende. Nun gut. Baue und überlege mir das mal ein und dann schauen wir mal.

      2. Spiel 1: 100 Punkte pro Zug. (wahrscheinlich maximum von 15'000)
        Spiel 2: Züge mal Zeit (maximum um die 2500)
        Spiel 3: Zeit in ms (maximum um die 8700)
        Spiel 4: 10 Punkte pro Treffer (maximum von ca. 3000)
        Spiel 5: Roulette (mmmmmhhh bis oben offen)

        Also ich finde es schon schwierig da wirklich eine gerechte mathematische Gewichtung zu finden.

        Als Alternativvorschlag zu dem Anderen und eher weil es mir durch den Kopf schießt, als das ich ihn "besser" fünde.
        Is aber ein bisschen aufwendiger ...

        Du speicherst die Ergebnisse aller einzelnden Spiele, die ein Spieler erziehlt und errechnest einen Mittelwert daraus (Summe gemachter Spiele geteilt durch Anzahl gemachter Spiele) Dann schaust du
        1.) Wie dicht in % ist das beste Spiel vom Max.Ergebnis weg.
        2.) Wie gut in % ist derjenige im Durchschnitt.
        Das machst du für jeden der Spieler und für jedes der 5 verschiedenen Spiele.
        Jetzt kannst du 2 "unabhängige" Listen führen. Jede für sich aussagekräftig und zusammengenommen ebenfall interessant.

        Gewichtung würde ich ganz einfach machen. Ich schnappe mir die Platzierungen der Leute auf den Einzellisten, addiere ihre Platzzahl und derjenige mit den WENIGSTEN Punkte ist demnach vorne.

        Beispiel: (nur mal für 3 Spiele)
        Spiel 1
        1.Adam
        2.Berta
        3.Clara
        4.Detlef

        Spiel 2
        1.Berta
        2.Detlef
        3.Adam
        4.Clara

        Spiel 3
        1.Detlef
        2.Adam
        3.Berta
        4.Clara

        Ergibt die platzierungen:
        Adam 1+3+2 = 6 (hier schauen wer prozentual besser ist)
        Berta 2+1+3 = 6 (hier schauen wer prozentual besser ist)
        Clara 3+4+4 = 11
        Detlef 4+2+1 = 7

        Daraus ergibt sich (angenommen Berta hat die beste Prozentplazierung)

        Gesammt
        1.)Berta
        2.)Adam
        3.)Detlef
        4.)Clara

        Durch das mitlogen der einzelspiele kannst du dir noch viele verschiedene andere Auswertungsmöglichkeiten ausdenken. Etwa zeitliche Verbesserung oder sonstwas.

        Wie gesagt, kompliziert, aber sicher interessant die Lösung zu entwickeln :)

      3. Hi Bademeister,

        Ich habe folgende Arten von Punkten:
        Spiel 1: 100 Punkte pro Zug. (wahrscheinlich maximum von 15'000)
        Spiel 2: Züge mal Zeit (maximum um die 2500)
        Spiel 3: Zeit in ms (maximum um die 8700)
        Spiel 4: 10 Punkte pro Treffer (maximum von ca. 3000)
        Spiel 5: Roulette (mmmmmhhh bis oben offen)

        Dein Ansatz ist schon der Richtige - aber von einer guten Lösung bist Du noch ein ganzes Stück entfernt.

        Also Gewichtung wäre dann etwa:
        1: 1x
        2: 6x
        3: 2x
        4: 5x
        5: puh keine Ahnung, man fängt mit 300.- an.
        Also ich finde es schon schwierig da wirklich eine
        gerechte mathematische Gewichtung zu finden.

        Das ist auch schwierig.

        Das Problem beginnt damit, daß Du keine Aufgabenstellung hast.
        "Gerecht" ist leider kein definierter mathematischer Begriff, sondern reine Geschwackssache.

        Was willst Du denn eigentlich bewerten?

        Geht es Dir darum, den besten 'Durchschnitt' zu finden (was immer das bedeuten mag)? Sollen also alle fünf Spiele mit demselben 'Gewicht' in die Gesamtwertung eingehen?
        Oder sollen diese Spiele eine unterschiedliche Bewertung haben dürfen? Bei manchen Hitparaden - etwa der Tennis-Welttrangliste - gibt es sogar Streich-Ergebnisse, d. h. es werden nur die besten Ergebnisse gewertet. Also "Mut zur Lücke", nicht "Masse statt Klasse" - d. h. ein anderes Konzept.

        Nehmen wir mal an, Du willst wirklich alle fünf Spiele gleich bewerten.
        Dann solltest Du anstreben, den Spiel-Erfolg auf ein gemeinsames Koordinatensystem zu bewerten.
        Zur besseren Anschaulichkeit verwende ich dafür Prozentwerte - diese suggerieren dem Betrachter, daß man anschließend tatsächlich diese Werte addieren, einen Durchschnitt bilden kann usw. Die Ergebnisse werden dadurch 'kompatibel'.

        Das löst allerdings noch keineswegs die Frage, _wie_ eine solche Normalisierung denn statt finden soll.
        Ein erster Ansatz _könnte_ darin bestehen, bei jedem Spiel den minimalen (X) und den maximalen (Y) möglichen Wert zu bestimmen und das Ergebnis Z auf (Z-X)/(Y-X) abzubilden. Das gibt definitiv einen Wert zwischen 0 und 1.
        Sinn macht diese Normalisierung allerdings nur dann, wenn vorausgesetzt werden darf, daß ein höherer Wert ein _besseres_ Ergebnis darstellt. Das ist in Deinem Beispiel allerdings vermutlich nicht der Fall - speziell Spiel 3 wäre ein Kandidat, wo eine niedrigere Zeit ein besseres Ergebnis sein _könnte_. (Hier lieferst Du nicht genügend Informationen über Deine Aufgabenstellung mit.)
        Im Falle einer inversen Erfolgsbewertung hättest Du das zusätzliche Problem, eine Abbildung vorzunehmen, welche die geforderte Voraussetzung erfüllt. Das _kann_ eine multiplikative Invertierung (Z -> 1/Z), aber auch eine additive Invertierung (Z -> Y - Z) sein - je nachdem, was sich für Dein jeweiliges Spiel im Einzelnen anbietet.

        Durch eine beliebige Abbildung Deiner Ergebnisse in ein Intervall zwischen 1 und 100 ist der "Gerechtigkeit" allerdings noch nicht annähernd Genüge getan.
        Als Beispiel mögen zwei Spiele dienen:

        • In Spiel A bekommt der Sieger 100 Punkte, alle anderen aber 0 Punkte.
        • In Spiel B bekommt der Sieger 100 Punkte, jeder andere gemäß seinem Platz innerhalb dieser Partie äquidistant weniger bis herab zu 0. Eine 5-Spieler-Partie würde also mit 100 - 75 - 50 - 25 - 0 Punkten bewertet werden. (Allfällige Rundungsfehlerbetrachtungen bei z. B. 4 Spielern überlasse ich dem Leser als Übung.)
          In diesem Beispiel ist es klar, daß "Gerechtigkeit" bedeuten _könnte_, daß ein Sieg in Partie A und ein "dritter Platz" in Partie B dieselbe Gesamtwertung produzieren _sollten_ wie die umgekehrte Verteilung. Die beschriebenen Punktesysteme geben das aber nicht her: Ein Sieg in Spiel A ist mehr wert als ein Sieg in Partie B, weil für die Addition als Gesamt-Bewertungsfunktion nicht die absolute, sondern die _relative_ Punktzahl entscheidend ist. Und ein Sieg gegenüber einem dritten Platz (bei 5 Spielern) bringt nach der beschriebenen Wertung in Spiel A 100 Punkte, in Spiel B aber nur 50 Punkte Differenz. Insofern eignet sich die beschriebene Normalisierung _nicht_ für eine additive Gesamtwertung. (Und noch viel weniger für eine multiplikative, nebenbei bemerkt.)

        Das liegt zum Teil (!) daran, daß die _Summe_ der vergebenen Punkte zwischen beiden Partien nicht übereinstimmt: In Spiel A gibt es weniger Punkte zu verteilen, also sind die dort erworbenen Punkte mehr wert als in Spiel B.
        Stell Dir vor, die Bewertung von Partie A würde so geändert, daß bei 5 Spielern der Sieger 100 und jeder andere Teilnehmer 37,5 Punkte erhalten würde. Nun werden in beiden Partien 250 Punkte verteilt - was die Hoffnung, beide Siege ähnlich hoch zu bewerten, verbessert hat. Nun ist der Abstand zwischen Platz 1 und Platz 3 zwar immer noch nicht in beiden Spielen gleich hoch (nämlich 50 gegenüber 62,5 Punkten), aber im Mittel über alle Tabellenplätze (!) ist die gewünschte Gleichberechtigung bezüglich der Addition erreicht worden. Die Ungerechtigkeiten sind also nicht eliminiert worden, aber sie werden nun wenigstens zufällig verteilt. ;-)
        Mein Beispiel nimmt übrigens eine weitere Eigenschaft der Punkte-Normalisierung vorweg, nämlich eine vergleichbare _Streuung_ der Ergebnisse. Wenn im einen Spiel durch den Regelmechanismus (oder den typischen tatsächlichen Spielverlauf!) der Abstand der Ergebnisse immer sehr klein ist (sagen wir mal: 60-55-55-45-40) und beim anderen Spiel sehr groß werden kann (sagen wie mal: 80-65-50-35-20), dann ist ein Sieg in einer Partie des erstgenannten Spiels wiederum sehr viel weniger wert als ein Sieg in der letztgenannten Bewertung. Es kommt also nicht nur auf die Abbildung der theoretisch möglichen, sondern der tatsächlich _auftretenden_ Ergebnisse an, ob die Normalisierung gelungen ist oder nicht.

        Meine Beispiele haben bewußt vereinfachend Punkte lediglich für Platzierungen innerhalb einer Rangliste vergeben, also die Ergebnisse eines Teilnehmers nicht absolut, sondern im direkten Vergleich mit den Ergebnissen anderer Spieler bewertet. Das mag Sinn machen oder auch nicht - jedenfalls kommen dabei definitiv _andere_ Ergebnisse dabei heraus, als wenn die absoluten Erfolgswerte der Spieler bewertet worden wären.
        Was von beidem wie sinnvoll ist, darüber kann man sich trefflich streiten - ich habe für 1835-Turniere (ein Eisenbahnbau-Simulations-Wirtschaftsspiel mit Geldbeträgen eines Aktienvermögens als Ergebnisse) an den entsprechenden Bewertungsmechanismen mitgearbeitet (und die zugehörige Software gestellt), und die Ausrichter haben in manchen Turnieren _mehrere_ Bewertungskriterien als Ergebnislisten veröffentlicht, weil sie sich selbst nicht zu einer entsprechenden 'besten' Bewertung durchringen konnten (soll ein knapper Sieg mehr wert sein als ein guter zweiter Platz oder nicht?).
        Man könnte sich ja beispielsweise auch fragen, ob die Punktewertung im Fußball "gerechter" ist, als einfach das Torverhältnis zu nehmen. Die Punktewertung zählt nämlich zwei 1:0-Siege höher als ein 2:2 und ein 5:0 ... und 7 Tore bestaunen zu können mag vielen Zuschauern mehr Freude bereiten. Natürlich ist die Punktewertung trotzdem die bessere: Erstens geht es jha um den Sieg und nicht um das schöne Spiel, und zweitens wäre bei einer Wertung nach dem Torverhältnis der Manipulation Tür und Tor geöffnet - ein einziges 20:0 per Absprache würde eine gesamte Saison entscheiden.

        Die 18xy-Spiele sind überhaupt ein gutes Beispiel für die Probleme, die Du zu lösen haben wirst. Obwohl der Mechanismus von 1830 (auf der USA-Karte) und 1835 (auf der Deutschland-Karte) praktisch identisch ist, kommen am Ende des Spiels völlig unterschiedliche Ergebnisse heraus.
        1835 ist ein "stabiles" Spiel - man kann nur sehr wenig "richtig" machen und verliert eher durch kleine Fehler, als daß man durch große Coups gewinnen kann - insofern ist eine Punkteverteilung der Art 60-55-50-45-40 nicht ungewöhnlich.
        1830 dagegen simuliert den amerikanischen Aktienmarkt der frühen Eisenbahngeschichte und bietet eine hohe Wahrscheinlichkeit für den Bankrott eines Spielers. _Falls_ dies eintritt (zu etwa 50%), dann streuen die Punktzahlen extrem (etwa 75-65-55-45-10), andernfalls weniger, aber immer noch mehr als bei 1835 (etwa 66-58-50-42-34). In keinem der beiden Fälle ist jedoch eine rein prozentuale Normalisierung ausreichend, um Ergebnisse von 1830 mit Ergebnissen von 1835 zu vergleiche - und das, obwohl die Spielregeln nahezu identisch sind!

        Fazit: Deine Aufgabe besteht darin, Äpfel mit Birnen zu vergleichen.
        Entsprechend werden die Ergebnisse ausfallen.

        Lesetip:
           http://www.schroepl.net/pbm/software/ranglist/

        Guten Appetit bei Deinem Obstsalat wünscht Dir
              Michael