Fußballspiel mit unterschiedlichen Würfeln simulieren

Neue Frage »

Ulrich Ruhnau Auf diesen Beitrag antworten »
Fußballspiel mit unterschiedlichen Würfeln simulieren
Angeregt, durch eine Anfrage über einen Fußballsimulationsmanager habe ich mir ausgedacht, wie man mit unterschiedlichen Würfeln Fußballspiele simulieren kann, bei denen die Spieler unterschiedlich gut spielen. Die Regeln habe ich wie folgt zusammengefaßt:

Die Würfel jeder Mannschaft sind von 1 bis 11 nummeriert. Hohe Nummern sind Stürmer, niedrige Nummern sind Verteidiger und 1 ist der Torwart. Es treten im Spielverlauf immer zwei Würfel gegeneinander an. Die höhere Zahl gewinnt. Solange Gleichstand ist, wird neu gewürfelt. Der Anstoß vollzieht sich zwischen den Würfeln der Nummer 6 beider Mannschaften. Der siegreiche Würfel übergibt den Ball der nächsthöheren Nummer seiner Mannschaft (in diesem Fall 7). Gegen ihn tritt der Würfel mit einer Nummer niediger der Gegenmannschaft an (in diesem Fall 5). Ein Tor vollzieht sich, wenn der Ball auf diese Weise am Torwart vorbei geht. Damit ist das Spiel entschieden.

Fragen über die wir alle mal nachdenken könnten:
1. Normale Würfel haben Augen von 1 bis 6. Wie würde es sich auswirken, wenn man einen Würfel einer Mannschaft durch einen ersetzt, mit dem man von 1 bis 8 würfeln kann?
2. Hätte seine Position einen Einfluss auf die Siegwahrscheinlichkeit seiner Mannschaft?
3. Wieviele Spiele müßte man ausführen, damit man mit 95% Wahrscheinlichkeit darauf schließen kann, daß in einer Mannschaft so ein Würfel existiert?

Den ersten beiden Fragen bin ich nachgegangen und habe bereits in einem anderen Beitrag Berechnungen dazu angestellt. Da habe ich ausgerechnet, daß wenn ein Hexaederwürfel (gewöhnlicher Würfel) gegen einen Oktaederwürfel (1-8) antritt, der Zweikampf nur mit einer Wahrscheinlichkeit von vom Hexaederwürfel (1-6) gewonnen wird. Mit der Gegenwahrscheinlichkeit gewinnt der Oktaederwürfel.

Nun habe ich pro Balken jeweils 10 Millionen Spiele simuliert, um zu den folgenden beiden Statistiken zu gelangen. In der linken Statistik tritt meine Mannschaft mit 11 Hexaederwürfeln gegen eine Mannschaft an, die aus 10 Hexaederwürfeln und einem Oktaederwürfel besteht. Dargestellt werden die Siegchancen meiner Mannschaft. Spielt der Oktaederwürfel auf Position 6 der gegnerischen Mannschaft, dann hat der Gegner die besten Chancen, das Spiel zu gewinnen.
[attach]55735[/attach][attach]55736[/attach]
Im rechten Diagramm steht meiner Mannschaft der Oktaederwürfel zur Verfügung, während die Gegenmannschaft nur über Hexaederwürfel verfügt. Je nachdem an welcher Position (x-Achse) ich diesen Spieler einsetze, stehen und fallen meine Siegchancen. Die untere Achse bezieht sich jeweils auf die eigenen Spieler. Links ist es der Spieler, der den Oktaederwürfel zum Zweikampfgegner hat. Z.B mit dem Balken 2 im linken Diagram, wird mein Spieler 2 durch einen Hexaederwürfel repräsentiert, dem ein Spieler mit der Nummer 10, dargestellt durch einen Oktaederwürfel, im Zweikampf gegenüber steht.

Meine Frage:
Wie kann man die simulierten Werte analytisch berechnen?
Meine Idee:
Ich versuche, mir an Leopold ein Beispiel zu nehmen, der mir auf Matheboard gezeigt hat, wie man so etwas mittels Rekursionen berechnet.

Sei die Wahrscheinlichkeit das Spiel zu gewinnen, wenn sich der Ball beim eigenen Spieler der Nummer befindet. Mit der Wahrscheinlichkeit kommt der Ball einen Spieler weiter auf das gegnerische Tor zu. Mit der Gegenwahrscheinlichkeit landet der Ball einen Spieler weiter in Richtung auf das eigene Tor. Damit setze ich die folgende Rekursion an:



Für den Rekursionsanfang könnte man von und ausgehen, was soviel bedeutet, daß nach einem Tor, meiner Regel nach, das Spiel entschieden ist. Ich stelle die Rekursionsformel mal nach dem höchsten um.



Als nächstes könnte man sich überlegen, daß wenn man die Balken im rechten Diagram in ihrer Reihenfolge umkehrt und zum linken Diagramm addiert, jeweils 1 herauszukommen hat (man addiere Balken 1 rechts zu Balken 11 links, 2 zu 10, usw.).

Ab hier gebe ich es auf, weiter zu rechnen. Ich habe hier keinen Plan zu einer übersichtlichen Gleichung zu gelangen, mit der ich die ohne viel Numerik bestimmen kann. Die Normierung muß ja auch noch gemacht werden. Auch weiß ich nicht, wie in die Gleichung eingehen soll, daß der Anstoß zwischen den Spielern der Nummer 6 erfolgt.

Wie komme ich an eine gute Formel für ?

Hier sind die Zahlenwerte aus den beiden Balkendiagrammen:
0.4810618 0.5312308
0.4598154 0.5589167
0.4374740 0.5834361
0.4129034 0.6051513
0.3862455 0.6251564
0.3571992 0.6427058
0.3750540 0.6137958
0.3948600 0.5870579
0.4165708 0.5624996
0.4412993 0.5401486
0.4687043 0.5192184
Ulrich Ruhnau Auf diesen Beitrag antworten »
RE: Fußballspiel mit unterschiedlichen Würfeln simulieren
Leute ich habe etwas verwechselt und muß meine Anfrage noch mal überarbeiten. Ups

So, jetzt steht die finale Version meiner Anfrage da und ihr könnt antworten. Augenzwinkern
Huggy Auf diesen Beitrag antworten »
RE: Fußballspiel mit unterschiedlichen Würfeln simulieren
Mich wundert deine Tabelle etwas, weil die Summe der Wahrscheinlichkeiten nicht ergibt. Das sollte sich doch automatisch ergeben, wenn man die Fälle nicht mitzählt, bei denen der Ball zum Schluss noch nicht in einem der beiden Tore ist.

Auch erscheint mir eine Simulation nicht sehr praktisch. Man kann mit den Übergangswahrscheinlichkeiten doch von Runde zu Runde exakt ausrechnen, mit welcher Wahrscheinlichkeit sich der Ball auf einer der Positionen befindet. Schon mit 500 Runden ergibt sich eine hohe Genauigkeit:

[attach]55745[/attach]

Als Fehler ist die Wahrscheinlichkeit angegeben, mit der der Ball nach 500 Runden noch nicht im Tor ist, also die Wahrscheinlichkeit, dass er sich noch auf einer der Positionen befindet. Die Rechenzeit ist vernachlässigbar.

Über eine analytische Lösung habe ich mir noch keine Gedanken gemacht.

Edit: Tabelle korrigiert.
HAL 9000 Auf diesen Beitrag antworten »

Zitat:
Original von Ulrich Ruhnau
Sei die Wahrscheinlichkeit das Spiel zu gewinnen, wenn sich der Ball beim eigenen Spieler der Nummer befindet. Mit der Wahrscheinlichkeit kommt der Ball einen Spieler weiter auf das gegnerische Tor zu. Mit der Gegenwahrscheinlichkeit landet der Ball einen Spieler weiter in Richtung auf das eigene Tor. Damit setze ich die folgende Rekursion an:



Für den Rekursionsanfang könnte man von und ausgehen, was soviel bedeutet, daß nach einem Tor, meiner Regel nach, das Spiel entschieden ist.

Stimmt soweit genau. Nun kennst du aber alle :

a) Setzen sowohl dein Spieler als auch der Gegner-Spieler den normalen Hexaeder-Würfel ein, so ist

b) Setzt der Gegner von Spieler hingegen den Oktaeder-Würfel ein, so ist

Es entsteht so ein vollständig bekanntes lineares Gleichungssystem für , was sich lösen lässt. Kurioserweise (aber vielleicht auch logisch begründbar, habe ich noch nicht erforscht) kommt im Fall dann tatsächlich Siegwahrscheinlichkeit raus. Alle durchgegangen sind es folgende -Werte:



Man sieht eine gewisse Regelmäßigkeit: für sowie für , einen plausiblen Grund dafür habe ich nicht. Augenzwinkern
Ulrich Ruhnau Auf diesen Beitrag antworten »
RE: Fußballspiel mit unterschiedlichen Würfeln simulieren
Zitat:
Original von Huggy
Mich wundert deine Tabelle etwas, weil die Summe der Wahrscheinlichkeiten nicht ergibt. Das sollte sich doch automatisch ergeben, wenn man die Fälle nicht mitzählt, bei denen der Ball zum Schluss noch nicht in einem der beiden Tore ist.

Was ich mit meiner Simulation ermitteln wollte, war u.a. die Frage, ob es eine Auswirkung auf das Spielergebnis hat, wo der Oktaederwürfel in der Mannschaft eingesetzt wird. Wenn man Sieg-Balken für die Mannschaft ohne Oktaederwürfel zu den Sieg-Balken für die Mannschaft mit einem einzigen Oktaederwürfel zusammen zählt, kommt man mit den ersten drei oder vier Stellen recht gut auf die 1. Man muß nur jeweils Balken 1 zu Balken Nummer 11, 2 zu 10, 3 zu 9, usw. zählen.

Zitat:
Auch erscheint mir eine Simulation nicht sehr praktisch. Man kann mit den Übergangswahrscheinlichkeiten doch von Runde zu Runde exakt ausrechnen, mit welcher Wahrscheinlichkeit sich der Ball auf einer der Positionen befindet. Schon mit 500 Runden ergibt sich eine hohe Genauigkeit:

Über eine Derartige Näherungsrechnung habe ich auch schon einmal nachgedacht. Ich habe mich aber dagegen entschieden, weil in der reinen Simulation noch die größte Sicherheit liegt, ein richtiges Ergebnis zu bekommen. Ich wollte die Simulation nur als Kontrolle für eine genaue analytische Rechnung haben.
Mit Runde meinst Du schätzungsweise einen Zweikampf, der die Wahrscheinlichkeiten für die Ballposition neu festlegt. Ich kann außerdem Statistiken für die Ballkontakte anbieten, die mir verstehen helfen, wie der Ball zu den Toren diffundiert. Sogar mit Unterscheidung wo der Ball nach einem Zweierduell hingeht.
[attach]55740[/attach][attach]55741[/attach]
Zitat:

Über eine analytische Lösung habe ich mir noch keine Gedanken gemacht.

Aber trotz dem vielen Dank! smile
Ulrich Ruhnau Auf diesen Beitrag antworten »

Zitat:
Original von HAL 9000


Man sieht eine gewisse Regelmäßigkeit: für sowie für , einen plausiblen Grund dafür habe ich nicht. Augenzwinkern

Toll! Dieses Ergebnis finde ich einfach Klasse! Freude

Kann es sein, daß Du gemeint hast:

für sowie für

Nein! Jetzt fällt es mir auf: Der Ball wird in der Spielfeldmitte angestoßen. Das bedeutet, daß nach gefragt ist. Wenn dieses aber davon abhängt, wo der Gegner seinen Oktaederwürfel einsetzt, dann muß davon abhängen. Sei der Spieler aus meiner Mannschaft derjenige, der gegen den Oktaederwürfel anzukämpfen hat, dann gilt also:

für sowie für

Außerdem hilft mir sehr die Erkenntnis, daß man das Problem mit einer Matrizengleichung löst, die sich aus meiner Rekursionsformel ergibt. Ich werde auch gleich versuchen, diese Matrizengleichung aufzuschreiben.
 
 
HAL 9000 Auf diesen Beitrag antworten »

Nein, kein Verschreiber - ich meine wirklich , denn 6 ist ja die Position wo dein Spiel immer anfängt, während die Position ist, wo dein Spieler auf das Oktaeder des Gegners trifft.

------------------------------------------------------------------------

Ok, mal etwas allgemeiner: Mannschaft mit Spielern (beim Fußball ) trifft auf Gegner mit ebensoviel Spielern und es wird nach den Regeln von U.Ruhnau so gespielt wie oben. Alle Würfelduelle seien fair außer eins, nämlich Spieler gegen Spieler vom Gegner - dieses gewinne mit Wahrscheinlichkeit (bei dir )

Nun sei die Wahrscheinlichkeit, dass bei Start des Duells mit Spieler das Gesamtspiel gewonnen wird. Dann haben wir die Randbedingungen und dazwischen die Rekursionen



Für haben wir , was mit zu für alle führt.

Für haben wir , was mit zu für alle führt.

Bei treffen die beiden Zweige zusammen: , es ist somit .

Das packen wir jetzt in die noch nicht verarbeitete Iteration und lösen nach auf:








Somit gilt damit schlussendlich

.

Jetzt vom allgemeinen mal wieder runtergestrippt: Für heißt das

,

jetzt noch eingesetzt

,

und dies schließlich noch für festes

,

also genau das Resultat, was ich oben angegeben hatte.


Formel (*) liefert übrigens für den Spezialfall tatsächlich das vermutete .
Ulrich Ruhnau Auf diesen Beitrag antworten »
RE: Fußballspiel mit unterschiedlichen Würfeln simulieren
Zitat:
Original von Ulrich Ruhnau


Für den Rekursionsanfang könnte man von und ausgehen, was soviel bedeutet, daß nach einem Tor, meiner Regel nach, das Spiel entschieden ist.

Um aus dem rekursiven Ansatz eine Matrizengleichung zu machen, stelle ich also die Gleichung um.

oder



Mit und ergibt sich daraus



Das muß in Matrizenschreibweise gebracht werden.



Ab hier könnte man die inverse Matrix von links dran multiplizieren, sodaß man u.a. das berechnet, das die Gewinnwahrscheinlichkeit für die eigene Mannschaft ist.



Das müßte ich jetzt nur noch ausprobieren. Danke HAL für Deine Hilfe! smile
Ulrich Ruhnau Auf diesen Beitrag antworten »

Zitat:
Original von HAL 9000
Für haben wir , was mit zu für alle führt.

Für haben wir , was mit zu für alle führt.

Bis hier hin habe ich Deine Herleitung, für die ich dankbar bin, mit Interesse verfolgt. Lesen2 Aber an dieser Stelle wüßte ich gerne, wie man diese beiden Schlußfolgerungen durch Rechnung herleitet. Da muß es doch einen Trick geben! Erstaunt1 Oder muß man sowie erraten?
HAL 9000 Auf diesen Beitrag antworten »

Die lineare Differenzengleichung kann man zu umschreiben, d.h., konstante Differenzen aufeinander folgender Glieder - was kennzeichnend ist für eine arithmetische Folge...
Ulrich Ruhnau Auf diesen Beitrag antworten »

Zitat:
Original von HAL 9000
Es entsteht so ein vollständig bekanntes lineares Gleichungssystem für , was sich lösen lässt.

Das habe ich bereits in ein Matlab-Program implementiert und erhalte für den allgemeinen Fall von zwei unterschiedlichen Mannschaften:

[attach]55749[/attach]

Im Titel des Diagramms stehen die unterschiedlichen Würfeltypen. Eigentlich ist nur die Anstoßposition 6 (mittlerer Balken) wichtig. Er gibt an, mit welcher Wahrscheinlichkeit die Mannschaft links im Diagramtitel die Mannschaft rechts im selben besiegt. Die Würfeltypen sind vom Torwart (Nr. 1) bis zum Stürmer (Nr.11) der Reihe nach aufgelistet. Man erkennt, daß es vorteilhaft ist, im Mittelfeld gut aufgestellt zu sein. Augenzwinkern

Außerdem finde ich noch eine kleine Formel, die ich gefunden habe, erwähnenswert.
Mit welcher Wahrscheinlichkeit p gewinnt ein Würfel, der von bis würfelt, gegen einen Würfel, der von bis würfelt, wenn so lange gewürfelt wird, bis eine Zahl größer ist?



edit: Formel korrigiert
Ich weiß nicht, wer außer mir noch mit Matlab arbeitet, aber hier ist das Programm:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
function tab = fmatw(w1,w2,fig)
%Fussballspielberechnung fuer beliebige Würfelkombinationen
%fig = Figurnummer
%w1 = Würfelaugenmax. der 11 Spieler von Mannschaft 1
%w2 = Würfelaugenmax. der 11 Spieler von Mannschaft 2
% p = 0.5 * (min(w1,w2) - 1) ./ (max(w1,w2) - 1);
% s = find(w1 > w2);
% p(s) = 1 - p(s);
b = zeros(11,1); % Wahrscheinlichkeitsvektor fuer die lin-Gleichung
txtTitle1 = '[ ';
txtTitle2 = ' ]';
p = zeros(11,1);
for k = 1:11
    if w1(k) < w2(k)
        p(k) = 0.5 * (w1(k) - 1) / (w2(k) - 1);
    else
        p(k) = 1 - 0.5 * (w2(k) - 1) / (w1(k) - 1);
    end
    txtTitle1 = [txtTitle1, num2str(w1(k)), ' '];
    txtTitle2 = [' ', num2str(w2(12-k)), txtTitle2];
end
b(11) = p(11);
q = 1 - p;
m = eye(11);
for k=1:10
    m(k, k+1) = -p(k);
    m(k+1, k) = -q(k+1);
end
v = m \ b;
tab = [w1,w2,p,v];
figure(fig)
bar(v);
set(gca,'FontSize',14)
grid on
xlabel('Anstoßposition')
ylabel('Siegwahrscheinlichkeit') 
title([txtTitle1, '] gegen [', txtTitle2])
end
Jetzt bin ich erst einmal zufrieden. Ich hatte zwar überlegt, ob ich versuchen sollte, eine Rekursionformel zur Bestimmung der Ballkontakte pro Spielerposition zu finden, aber mir sind jetzt andere Dinge wichtiger. smile smile
HAL 9000 Auf diesen Beitrag antworten »

Anscheinend fehlen da Faktoren 2 im Nenner:

Zitat:
Original von Ulrich Ruhnau (korrigiert)
Ulrich Ruhnau Auf diesen Beitrag antworten »

@HAL
stimmt ja Erstaunt2 , - die richtige Version der Formel habe ich implementiert aber die falsche Version später aufgeschrieben.

Vielen Dank für Deine Hilfe! smile
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »