Autor |
Beitrag |
Martok
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Sa 09.04.11 17:44
Grundsätzlich sehe ich persönlich das so wie Thom. "Offiziell" müssen wir uns da mal noch genauer abstimmen und werden das Ergebnis dessen dann verkünden.
Wenn ihr aber echt schon so gut seid, dass diese Art der Optimierung das einzige ist was noch hilft - Gratulation. Mir fallen spontan 4 Varianten ein, die ohne große Tabellen zum Erfolg führen und bei denen nicht jeder auf die gleichen Ergebnisse kommen wird, ergo Wettbewerb da ist.
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
jaenicke
Beiträge: 19288
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 09.04.11 18:09
Bis jetzt habe ich nur einen kleinen Client, der aus relativ wenig Code besteht.
Als ich dann eine Threadvariante (von der ich noch nicht weiß wie gut oder sinnvoll die laufen wird ) angefangen habe, ist mir halt aufgefallen, dass sich so die Clients gegenseitig behindern würden, wenn ich das so mache, dass die Threads ungedrosselt weiterlaufen. Deshalb habe ich gefragt, ob sie das überhaupt dürfen.
Ich hätte auch nichts dagegen, wenn Threads gar nicht so viel eingesetzt werden dürften, dann wäre ich nämlich praktisch fertig.
|
|
Flamefire
Beiträge: 1207
Erhaltene Danke: 31
Win 10
Delphi 2009 Pro, C++ (Visual Studio)
|
Verfasst: Sa 09.04.11 18:10
Nja ich bin an einem Punkt, an dem ich meine Zugriffe optimieren muss, wenn ich nicht die gleiche Arbeit mehrfach machen will.
4 Varianten? Mir ist nur ein einziger Ansatz eingefallen. Der ermöglicht zwar verschiedene Optimierungsstufen, aber sonst?
Ich wäre auch für ein Begrenzen auf 2 Threads (wovon einer als reine Überwachung eingesetzt wird)
|
|
Kha
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Sa 09.04.11 18:29
Man sollte sich nicht wundern, warum nichts in der Sparte passiert, wenn man die Quicksearch-Spartenwahl nicht aktualisiert hat . Da ich eigentlich auch schon wieder auf dem Sprung bin, hier kurz meine ebenfalls ganz persönlichen Ansichten, die wahrscheinlich noch allesamt aus der Zeit vor dem Lesen dieses Threads stammen :
Zeitlimit: Da das Finale bisher als KO-Turnier angedacht ist, müssen wir uns um Überlänge keine Gedanken machen. Die 10s haben wir aber vor allem wegen eventueller Netzwerk-Latenz gewählt, ursprünglich war es 1s. Diese Zahl finde ich eigentlich ziemlich sympatisch und dürfte auch eher ins Thoms Richtung gehen, es mit den Ressourcen nicht zu übertreiben. Falls das Finale, wie es sich abzeichnet, auf meinem Rechner stattfinden wird, hoffe ich auch, dass ihr euch mit diesem Limit mit einem Bruchteil der 4GB Speicher begnügt...
Multithreading: ...im Gegenzug würde ich euren Bots den Q6600 aber komplett überlassen. Die Algorithmen, die ihr dabei im Kopf habt, dürften in der Mehrzahl nicht in die embarrasingly parallel-Schublade fallen, also bin ich eigentlich dafür, dass Aufwand in dieser Richtung auch entlohnt wird. Deswegen sehe ich das auch nicht als "viel hilft viel", sondern durchaus auch theoretisch interessante Herausforderung.
Das schließt aber natürlich aus, dass während des Zugs des Gegners weitergerechnet werden darf.
Veröffentlichen des Codes: Das sollten wir auf jeden Fall noch in die Regeln aufnehmen, wie nach einem entsprechenden Fall schon die Google-AI-Challenge gelernt hat .
Thoughts ?
Horst_H hat folgendes geschrieben : | der ständig vorhandene Testgegner vom Forum? |
So etwa ist es gedacht, ja . Wobei ich gerade zwischen einem null- und einem halb-intelligenten Bot hin- und herwechsle, bis ihr sie dann hoffentlich bald überflüssig macht .
_________________ >λ=
|
|
Thom
Beiträge: 70
Erhaltene Danke: 5
Delphi 10 Seattle Prof.
|
Verfasst: So 24.04.11 23:37
Auch an dieser Stelle noch einmal einen herzlichen Dank für die schöne Aufgabe!
Auf Grund eines familiären Problems, das die Osterfeiertage überschattete, habe ich mein Programm leider nicht ganz fertigstellen können.
Trotzdem wünsche ich allen Teilnehmern viel Erfolg!
Es wäre toll, wenn die Möglichkeit bestehen würde, den Onlinetest über den Server auch weiterhin (zumindest eine Weile) nutzen zu können.
Ich hoffe, daß ich in den nächsten Tagen ein wenig Ruhe finde, um die KI (außer Konkurrenz) wenigstens einmal online testen zu können.
|
|
Thom
Beiträge: 70
Erhaltene Danke: 5
Delphi 10 Seattle Prof.
|
Verfasst: So 01.05.11 22:47
Erst einmal vielen Dank für die Verlängerung! Die hatte mich richtig motiviert.
Aber was soll ich sagen: Ich habe in dieser Woche viele Stunden an der KI verbracht mit dem Erfolg, daß die Nächte immer kürzer wurden und mein Programm jetzt in den 5 Sekunden rund 1.000.000 Züge analysieren kann.
Aber irgendwo sind doch noch einige Bugs verborgen, die ich in den verbleibenden 10 Minuten ganz sicher nicht mehr finden werde. Schade, aber nicht zu ändern.
Ich könnte jetzt zwar darauf spekulieren, daß es insgesamt nur drei Teilnehmer gibt und ich so meine Arbeit trotzem abgeben könnte - aber das mache ich nicht...
Deshalb bleibt mir nur noch übrig, allen anderen Teilnehmern viel Erfolg und ihren KI's einen IQ von 200 zu wünschen!
Noch einmal vielen Dank für die tolle Aufgabe!
Es wäre schön, wenn der Testserver noch online bleiben könnte und es vielleicht einige Interessenten gibt (vielleicht auch von denen, die bisher keine Zeit fanden), um auch weiterhin (auch ohne Preise - oder vielleicht denken sich die Moderatoren einen "Langzeitpreis" aus) etwas an den KI's zu basteln.
|
|
Martok
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: So 01.05.11 23:07
Thom hat folgendes geschrieben : | Ich könnte jetzt zwar darauf spekulieren, daß es insgesamt nur drei Teilnehmer gibt und ich so meine Arbeit trotzem abgeben könnte - aber das mache ich nicht... |
Ich glaube ich verrate nicht zuviel, wenn ich sage, dass wir keine 100.000 Einsendungen haben
Thom hat folgendes geschrieben : | Deshalb bleibt mir nur noch übrig, allen anderen Teilnehmern viel Erfolg und ihren KI's einen IQ von 200 zu wünschen! | Besser nicht
Thom hat folgendes geschrieben : | Noch einmal vielen Dank für die tolle Aufgabe!
Es wäre schön, wenn der Testserver noch online bleiben könnte und es vielleicht einige Interessenten gibt (vielleicht auch von denen, die bisher keine Zeit fanden), um auch weiterhin (auch ohne Preise - oder vielleicht denken sich die Moderatoren einen "Langzeitpreis" aus) etwas an den KI's zu basteln. |
Ja, das ist in der Tat geplant. Die Serversoftware wird dann auch nochmal etwas überarbeitet und veröffentlicht; aber auch hier offiziell wird etwas online bleiben. Je nachdem, wie gut das läuft, werden solche Aktionen vielleicht auch für andere Spiele und/oder in anderem Rahmen wiederholt.
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
Thom
Beiträge: 70
Erhaltene Danke: 5
Delphi 10 Seattle Prof.
|
Verfasst: So 01.05.11 23:41
Das hört sich doch gut an!
Wenn ich mir die Anzahl der Forenbeiträge und die der Testspiele anschaue, komme ich auch auf etwas weniger als 100.000 Einsendungen.
Irgendwie schade - vermutlich macht es wesentlich mehr Spaß, sich über Hausaufgabenthread auszulassen oder über Staubsauger zu diskutieren (sorry - ist sicherlich eine Frage des Alters), als sich mit einer längerfristigen und etwas kniffligeren Aufgabe zu beschäftigen.
Noch einige Überlegungen zur Nuss-KI, die im Laufe der Programmierung bei mir aufgetaucht sind:
- Kann man auch einen Zug aussetzen, wenn man zwar ziehen könnte - dieser Zug aber zu einem Punktverlust führen würde? In den Regeln habe ich nichts gefunden, was das ausschließen würde. Daraus ergibt sich gleich die nächste Frage:
- Wenn der Gegner auch auf den Zug verzichten würde, käme das Spiel zum Stehen - keiner führt mehr einen Zug aus. Wäre das dann unentschieden, würde der aktuelle Spielstand genommen oder das Spiel einfach neu gestartet? Oder wäre es sinnvoll - ähnlich dem Pokerspiel - eine maximal Anzahl an "Schieberunden" festzulegen?
- Bei meinen Tests habe ich interessante Spielstellungen gefunden, die ebenfalls zu einem "Endlosspiel" führen: Durch einen Sprung wird ein Feld frei, in das der Gegner springt. Dadurch wird wieder ein Feld frei, in das hineingesprungen werden kann. Das geht dann teilweise über drei oder vier Runden und wiederholt sich dann. Noch interessanter wird es, wenn während dieses "Kreisverkehrs" das Punkteverhältnis wechselt. Ist das Spiel dann unentschieden? Auch daraus ergibt sich wieder eine Frage:
- Sobald die Spielfeldanzahl gerade ist, besteht die Möglichkeit eines Unentschieden. Das ließe sich zwar durch eine entsprechende Anzahl von Hindernissen vermeiden - trotzdem wäre die Wertung interessant: Gibt es für ein Unentschieden für jede Partei einen Punkt und für einen Sieg zwei? Wieviele "Gewinnsätze" werden jeweils zwischen den gleichen Gegnern gespielt? Habe ich da eventuell irgendwo etwas überlesen?
- Auch über die Threadanzahl habe ich gegrübelt (eigentlich war die Begrenzung auch mit meine Idee). Geschrieben wurde ja pro KI. Werden jetzt mehrere Spiele simultan ausgeführt: Kommt dann eine KI auf ein Spiel oder muß eine KI mehrere Spiele durchführen? Sprich: Pro Prozess zwei Rechen-Threads oder pro Spiel?
Na gut: Das sind zwar jetzt (nach Abgabetermin) nur noch rhetorische Fragen - aber vielleicht findet sich doch noch die eine oder andere Antwort.
|
|
Nikolata
Hält's aus hier
Beiträge: 6
|
Verfasst: Di 06.11.12 10:24
Überall wird hier von der Paranuss gesprochen. Jetzt hört es sich so an, als wäre das ein Spiel. Was hat es denn damit auf sich? Sorry für die blöde Frage
|
|
Martok
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Di 06.11.12 10:36
Hey, nur ein 3/4tel Jahr zu spät für dieses Thema
Die Paranüsse bei uns sind (wie auch die "echten") besonders harte Nüsse im Adventsgewinnspiel, die außer Konkurrenz parallel zu den normalen Rätseln laufen. Es gibt für die nichts zu gewinnen, aber dafür für ein Jahr den Titel "Nussknacker" der Stufe 1, 2, 3.., je nachdem wie viele Paranüsse man richtig gelöst hat. Und natürlich viel gehabten Spaß beim Knobeln
Genaueres wird wie immer im Ankündigungstopic Ende November stehen (du kannst aber auch in den alten Ankündigungen nachlesen, da ändert sich nix wesentliches).
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
Hidden
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Di 06.11.12 13:16
Martok hat folgendes geschrieben : | da ändert sich nix wesentliches |
Nur die Verschlüsselung
Tja, warum antworte jetzt auch noch ich auf dieses alte Topic? Hab' hier noch was, Thom: Das vierte Spiel hier von oben (22.07.2011 00:21: Jekylled - Jekylled) wäre tatsächlich ein Endlosspiel geworden; habe nur von Hand irgendwann einen anderen Zug gemacht, damit es noch eingetragen wurde.
lg, Daniel
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
|