Kalah Tournament

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Kalah Tournament
I will use this thread so - over the next couple of days - keep you posted on the development. I will start by checking whether all of your classes compile in the first place and running a 4,4-tournament.

Note for the future: If you hand in code that will have to be bundled in the same project as other people’s code, be a bit creative with your naming. “Agent” is not a unique class name; neither is “KalahAgent” and neither are classes like “Tree” or “Node” if not packaged in a sub-namespace :wink:

1 „Gefällt mir“

Update:

After cleaning up all of your namespaces etc. I now have the following Agents. Please check that yours is in that list:

Jazzpirate
the_great_kalahmari_69
HeuristicsFTW
Agent_47
AgentStupidAF
AlphaKalah
Chiron
DeepKalah
DerBlankeWahnsinn
fe74c81bf25996ad3aa42445efa6ffcb8ac7cf6a94458d282326932440a8c7fde2936141309d0c1dae11c19c5a2229f619cabe456d01172d812dad8453437d71
JaPaNi
????????????????????????
Kalahmity
KalAI
Koalah
LeeWernAgent
MaMoDoHa
MinMaxDude
MySuperUniqueAgent1234
ShallowBlue
xi76puba
yeet
AlphaPlayer
Seedthief
AJAgent
ArtursAgent

I’m waiting for replies from BionicBeaver and TakeASeatLoseYourSeed regarding their “broken” code.

Jazzpirate is my own semi-smart Agent, Seedthief was supplied by Lucas Reeb, who wrote the GUI and wanted his agent to participate as well. Both will of course not be considered in the final evaluation :wink:


So here’s the result of running a (4,4)-Tournament with all Agents. Those who regularly(!) threw illegal moves (or exceptions even) have been disqualified (for now; if I get a “fixed” version rather soon I can still reintegrate them).

EDIT: I have received some fixes and updated this list accordingly.

AB1001 -score- 412
JaPaNi -score- 408
MinMaxDude -score- 404
Seedthief -score- 396
LeeWernAgent -score- 364
TakeASeatLoseYourSeeds -score- 352
Koalah -score- 332
Jazzpirate -score- 316
AlphaPlayer -score- 288
Chiron -score- 244
HeuristicsFTW -score- 240
KalAI -score- 232
Agent_47 -score- 216
MySuperUniqueAgent1234 -score- 212
AgentStupidAF -score- 200
Kalahmity -score- 200
xi76puba -score- 196
AlphaKalah -score- 184
BionicBeaver -score- 180
ShallowBlue -score- 168
DeepKalah -score- 156
the_great_kalahmari_69 -score- 156
AJAgent -score- 152
???????????????????????? -score- 120
Random3 -score- 104
DerBlankeWahnsinn -score- 88
Random2 -score- 84
MaMoDoHa -score- 48
Random1 -score- 44

The random players will now be removed. It seems that DerBlankeWahnsinn (EDIT and MaMoDoHa) do not perform better than chance, but since thuse two seem to be the only agents who don’t, I’ll take them to the next round and see they he won’t be in last place there. Next up: (6,6) :slight_smile:


EDITED: Included fixed versions of agents

After a (6,6)-Tournament, the score is now:

MinMaxDude -score- 980
Seedthief -score- 960
AB1001 -score- 940
JaPaNi -score- 906
LeeWernAgent -score- 880
TakeASeatLoseYourSeeds -score- 838
Koalah -score- 794
Jazzpirate -score- 790
AlphaPlayer -score- 528
HeuristicsFTW -score- 510
Chiron -score- 508
xi76puba -score- 484
AJAgent -score- 476
KalAI -score- 454
BionicBeaver -score- 432
AgentStupidAF -score- 404
ShallowBlue -score- 402
AlphaKalah -score- 388
DeepKalah -score- 384
Kalahmity -score- 380
MySuperUniqueAgent1234 -score- 368
Agent_47 -score- 348
???????????????????????? -score- 330
the_great_kalahmari_69 -score- 288
DerBlankeWahnsinn -score- 172
MaMoDoHa -score- 120

It really seems like DerBlankeWahnsinn and MaMoDoHa are the only ones consistently losing against the rest, so I will leave them out from now on. Next up: (8,8)


Result after (8,8):

1. MinMaxDude -score- 1668
-. Seedthief -score- 1632
-. AB1001 -score- 1564
2. JaPaNi -score- 1562
3. LeeWernAgent -score- 1528
4. Koalah -score- 1386
5. TakeASeatLoseYourSeeds -score- 1366
-. Jazzpirate -score- 1294
6. AJAgent -score- 884
7. HeuristicsFTW -score- 854
8. AgentStupidAF -score- 756
9. KalAI -score- 750
10. BionicBeaver -score- 720
11. ShallowBlue -score- 706
12. xi76puba -score- 692
13. AlphaPlayer -score- 680
14. Chiron -score- 660
---------------------------------------------------------------
15. Kalahmity -score- 628
16. the_great_kalahmari_69 -score- 608
17. ???????????????????????? -score- 570
18. DeepKalah -score- 568
19. AlphaKalah -score- 540
20. Agent_47 -score- 500
21. MySuperUniqueAgent1234 -score- 488

There does not seem to be an obvious “cut-off line” below which agents are clearly consistently worse than the ones above, so I more or less arbitrarily decide to disqualify agents below rank 14, because there’s at least a gap of 32 points. Unfortunately I have to exclude some agents, because time - tournaments already take longer than 24 hours :wink: Also, for fairness reasons I of course do not count Jazzpirate and Seedthief, since they’re not written by current KI1-students (but still serve as a nice baseline comparison across courses)

I think I’ll try a (12,12)-tournament next, if that is feasible runtime-wise, to try to narrow things down further.

.


And the (final) result after (12,12):

1. MinMaxDude -score- 2388
-. Seedthief -score- 2304
2. JaPaNi -score- 2258
-. AB1001 -score- 2188
3. LeeWernAgent -score- 2104
4. TakeASeatLoseYourSeeds -score- 1894
5. Koalah -score- 1890
-. Jazzpirate -score- 1630
6. AJAgent -score- 1292
7. HeuristicsFTW -score- 1118
8. ShallowBlue -score- 994
9. AgentStupidAF -score- 972
10. xi76puba -score- 932
11. KalAI -score- 918
12. BionicBeaver -score- 816
13. AlphaPlayer -score- 776
14. Chiron -score- 756

It seems to me that the top spots are rather stable, so I would take this as the result (only someone has valid complaints).

It would be great if someone from the top three teams can maybe write a small description of how their agents work, so that people get an impression of which strategies seem to work well :slight_smile:

1 „Gefällt mir“

Does this mean that, unlike previous year, there won’t be a lecture slot where we talk about the tournament?

EDIT: Thanks for hosting the tournament btw, was quite some fun


Unfortunately not. I would have liked to use a slot when Prof. Kohlhase wasn’t there for a week, but since we moved the deadline and the lectures are already slightly behind schedule, sacrificing a lecture slot doesn’t seem to be a good idea, sorry.


UPDATE: I’ve received a fixed version of -agent by now, and it seems to perform rather well, so I feel it would be unfair not considering this one as well. I’m rerunning the tournament with that agent now - fortunately that only means doing the individual games containing the new agent, so it shouldn’t take too long.


Update again: I can’t edit the previous comments anymore. Suffice it to say that I reran the tournament with and though it did reasonably in (4,4) and (6,6), it wasn’t good enough to qualify for the final (12,12)-round, hence to final ranking for the top 10 remains unchanged.


Hey there, the Ni part from team JaPaNi here :slight_smile:

Our agent basically uses alphabeta search. We just start with depth 1 and then increase the depth and run again as long as time allows.
The only exception is if we find a path where we get another turn. There we run down the path until it’s the enemys turn again and count the process as one step/depth in our alphabeta algorithm.
So this basically encodes the heuristic that it should be good if we can get multiple moves in our turn and looks more steps ahead in those cases.
Depending on the board size and probably computing power, we get to depth 5-6 in a few milliseconds and usually get cut of by time at around depth 7-8.
Our static evaluation function calculates the difference between our collected stones and the opponents stones.
The maximisation of the difference is equivalent to maximizing our own score while at the same time minimizing the opponents score.
Only in cases of terminating states, we also add up the stones still remaining on the board, because they will be added to the final score.

That should be it :slight_smile:
I also wanted to say thank you for hosting this tournament! It was really fun and we are happy to get the silver medal :wink:

3 „Gefällt mir“