Hallo Lude,
So wird das natürlich interessanter. Allerdings bringt das kooperieren von zwei Spielpartnern nicht viel: Du hast geschrieben, das Turnier läuft nach dem Motto "jeder gegen jeden" ab. Dann würden die beiden "Cheater" also nur einmal gegeneinander Spielen. Dabei würden sie idealerweise denjenigen gewinnen lassen, der bereits mehr Punkte hat, weil es bei diesem Spieler wahrscheinlicher ist, dass er unter die Sieger kommt. Es sei denn, es wurden bereits so viele Spiele gespielt, dass klar ersichtlich ist, dass einer der beiden Spieler sowieso schon unter die Sieger kommt. In diesem Fall müsste man den anderen gewinnen lassen.
Richtig, aber warum bringt das nicht viel?
(Erinnerung: vielleicht 100 Teilnehmer, jeder gegen jeden, mehrere tausend Spiele)
Genau deshalb: Wenn man zwei Spieler kooperieren lässt, dann weiß man bei einem Turnier "jeder gegen jeden", dass diese beiden Spieler genau einmal gegeneinander Spielen werden. Bei diesem einen Spiel kann man den Ausgang so entscheiden, wie man es gerade braucht. Bei den über tausend anderen Spielen (bei 100 Teilnehmern sind es knapp 5000) kann man aber nichts beeinflussen. Man kann also eines von knapp 5000 Spielen beeinflussen - das sind etwas mehr als 0,02%. Oder anders gesagt: man kann eines von 100 Spielen beeinflussen, bei denen man selbst teilnimmt - also 1%.
Verstehst du jetzt, wieso ich schrieb "das bringt nicht viel"?
Wenn allerdings n größer wird, geht die zu erwartende Gewinnsteigerung dieser Strategie im Verhältnis zum Mindestgewinn für einen Preis gegen null. Man müsste also die Auswahlkriterien für die Teilnahme am Turnier besser kennen, da man mehr Chancen hat, mit mindestens einem Programm zu gewinnen, wenn man sehr viele Programme kooperieren lässt. Da die Gegner aber sicher auch auf diese Idee kommen werden, ist das uferlos.
Was ist denn da "uferlos"? - Es sollte doch klar sein, dass nur Programme Preise gewinnen (bzw. ganz unten landen) die entweder Mustererkennung machen und/oder kooperieren.
Mit uferlos meinte ich etwas anderes: Es ist offensichtlich, dass die Gewinnchancen steigen, wenn man sehr viele der eigenen Programme kooperieren lässt. Es wird also jeder Programmierer darauf pochen, dass er möglichst viele seiner Programme an dem Turnier teilnehmen lassen darf. Wenn aber meine Programmierer-Gegner genauso viele ihrer Programme teilnehmen lassen wie ich von meinen, bringt mir das nichts, dann müsste ich noch mehr meiner Programme zum Turnier schicken. Damit ist mein Gegner wieder im Rückstand und muss noch mehr von seinen Programmen teilnehmen lassen. Das ganze würde also nie aufhören.
Ach, so die Programmierer kennen sich nicht. Die "Kooperation" muss von den Programmen im Turnierverlauf selbst kommen.
Das fände ich jedenfalls um einiges interessanter.
Also: Ich habe die Sache natürlich auch nur in engen Grenzen verstanden, aber man kommt dem Kern noch näher, wenn man sich überlegt, welche Konzepte man in "sein" Programm implementieren sollte und wie die Umsetzung desselben aussieht. - Was kommt dann am Ende raus?
Das ist eben die frage: Wenn man nach meinen Spielregeln lauter genau gleiche Programme in das Turnier schicken würde, die im Verlauf des Turnieres untereinander Kooperationen bestimmen, würde dann schon nach wenigen Spielen ein chaotisches System entstehen? Das heißt, würde das Programm, das die ersten paar Spiele gewinnt, gute Kooperationspartner finden, so dass es weiter gewinnt, dadurch weitere gute Kooperationspartner finden, wodurch es noch mehr gewinnt und am Schluss mit rießigem Abstand auf Platz 1 landen?
Oder würde sich ein einigermaßen stabiles System einpendeln, bei dem bis kurz vor Turnierende noch nicht huntertprozentig entschieden ist, wer gewinnen wird, bei dem sich die Kooperationspartner immer wieder ändern, und bei dem die Gewinner am Ende nur relativ knappen Vorsprung vor den Verlierern haben?
viele Fragen...
Robert