Kalah tournament thread


Hmm you’re right, I couldn’t reproduce it neither with Humanplayers or TimeOut Agents. I could have sworn that I saw this move in the agent gameplay… Maybe I was just confusing the players… Thank you very much and sorry for the inconvenience!.


For some reason it isn’t getting killed in my case, and I have multiple threads trying to find a good move, for different rounds, setting [m]timeoutMove[/m] messing up the Agent. Has anyone else experienced anything like this?


Yes this is the reason I asked. I could not find the reason for this. Imo the thread should be dead after t.stop() was called but for some reason it still runs. My Quick fix was to check the tid before updating the variable and only allow the latest thread to modify it.
Another bug I found was that there were new threads created/still there after the game was over. I guess it’s the same reason behind this.

Edit: It does not happen all the time, but quite often. I thought it happened only on double moves but not sure.


I can confirm this issue too.


Sorry, I forgot about this. I’ll publish a submission link in an upcoming post.

I’ll also extend the submission deadline by a few days to allow for uploading.


I’ve made a studon submission site for Kalah.

I’ve extended the deadline to Sunday.

To allow for uploading the sources, I set the file type to zip.
If you want to upload a jar, just zip it again.

Whatever you upload, make sure it is clear how your code is to be compiled, called.

If anybody is trying to upload auxiliary files so big that studon crashes, please upload a text file to studon with a link to a git repo, from which your solution can be cloned.

First Results
Dear all,

Tom, who is running the tournament, asked me to post the following message:

I would like to give you an update on Kalah.

the zeroth and first round of the Kalah tournament have finished.
There were 26 student agents and one agent from a TA (Tobias).

In the zeroth round all agent repeatedly played against a random agent to check that

  • the agent did not randomly crash
  • the agent performed some intelligent work

Two agents had problems compiling and/or running. The students in question were provided with the opportunity to fix their agents, and both groups in question did.

In the first round all agents played against all other agents with 4 houses and 4 starting seeds.
Players were assigned points for each game played:

  • If an agent won a game, it was assigned 8 points
  • If an agent lost a game, it was assigned 0 points
  • If a game resulted in a tie, both agents were assigned 4 points

This resulted in the following scores and placements:

  1. BennoPaulJaro: 352
  2. Agent007: 352
  3. KDestroy: 344
  4. Stein3000 ([Tutor]): 344
  5. Movie_agent321: 336
  6. UniqueNameForAnAgent: 332
  7. Unhuman1InteligentAgent: 332
  8. Angela: 276
  9. SmahrtAgent: 272
  10. Ultrainstincts: 272
  11. AgentSmith: 212
  12. AgentDoubleCheck: 200
  13. preciousBabySloth: 196
  14. Agent Smith: 192
  15. SlowpokeRodriguez : 192
  16. FyDaAgent: 176
  17. Hserakas: 168
  18. Agent_(student id in name censored): 160
  19. Agent007 : 144
  20. SimpleModelBasedAgent8475: 140
  21. Marvin: 132
  22. Carlos, also called Monti: 128
  23. FyDaPrimitive: 104
  24. FirstAgent: 96
  25. EvolvedAgent: 60
  26. HALAK: 56
  27. Glittering_Clouds_MPL: 48

Note that several agents scored and thus have the same place.
Also there are two agents are named “Agent007”, and the names “AgentSmith” and “Agent Smith” are very similar.
The assignment said to pick a unique name for your agent, not going to deduct points for this though :slight_smile:

The tournament will now proceed into the second round.
Agents with a score of 200 points or above have been advanced.
This includes the following twelve agents:

  • BennoPaulJaro
  • Agent007
  • KDestroy
  • Stein3000
  • Movie_agent321
  • UniqueNameForAnAgent
  • Unhuman1InteligentAgent
  • Angela
  • SmahrtAgent
  • Ultrainstincts
  • AgentSmith
  • AgentDoubleCheck

In this and the following rounds we will aim for removing 2 agents each round while at the same time increasing difficulty.

More Information would be much appreciated :slight_smile:
Hey everyone,
I am looking forward to the finals. Nevertheless, I wanted to ask if you could provide us with more information on the Tournament. Personally, I would like to know the number of seeds acquired (close game or not) and the number of invalid moves of the AIs. Further, it would be cool to know what strategy is applied by the agent, while I know that is hardly possible to know for you without further information of the participants. It’s just that I don’t see much of a lesson learned without a little bit more information, which is disappointing for everyone participating. Still, might it be possible for you to do matches on varying sizes (e.g 4,7,12 houses) and calculate an average of some sort? The number of participants dropped, so it should be feasible and would provide more reliable results. :wink:


Our Agent has the name Agent007, unfortunately there are two Agents with this name.
My Question, which of the both Agents have a developer called Johannes?
Then i would know what is our agent :slight_smile:


That’s also interesting for us and I am sure that the second Agent007 does not have a Johannes :wink:


The Agent007 by Johannes (and others) has a score of 352.


And another update from Tom:

Dear all,

I would like to give another update on Kalah.
Since the last update we have had two more rounds (Rounds 2 + 3).
We were asked to remove student names from the last post, so you will only find agent names in this update.

Round 2 consisted of 5 houses and 5 seeds.
This time, winning agents gained 10 points, and tying agents each received 5 points.
This resulted in the following scores:

  1. Ultrainstincts: 185
  2. Agent007: 175
  3. UniqueNameForAnAgent: 165
  4. Movie_agent321: 145
  5. BennoPaulJaro: 140
  6. KDestroy: 135
  7. Unhuman1InteligentAgent: 110
  8. Angela: 90
  9. Stein3000: 50
  10. AgentDoubleCheck: 45
  11. AgentSmith: 45
  12. SmahrtAgent: 35

The original goal was to remove the two worst agents during this round.
However because two agents tied for 10th place, only the worst agent was removed during this round.
The resulted in 11 remaining agents.

Round 3 consisted of 6 houses and 6 seeds.
This time, winning agents gained 12 points, and tying agents each received 6 points.
This resulted in the following scores:

  1. Agent007: 222
  2. Ultrainstincts: 216
  3. Movie_agent321: 156
  4. BennoPaulJaro: 150
  5. UniqueNameForAnAgent: 144
  6. AgentDoubleCheck: 102
  7. KDestroy: 90
  8. Unhuman1InteligentAgent: 84
  9. Angela: 72
  10. AgentSmith: 60
  11. Stein3000: 24

After Round 3, the worst 3 agents were removed from the tournament, resulting in 8 remaining agents.

The tournament now continues into Round 4. We will post another update tomorrow.
Once the entire tournament is over we will post detailed logs, in particular the results of all individual games played.


Hello together,

the first round was with a very small setup, in which we threw out.
Just out of interest, could you please do another complete run after the tournament with a bigger volume?
It may be helpful to know if our agent gets a better or more worst result for more houses and seeds.

Thanks


And another update from Tom:

Dear all,

Here is yet another Kalah Update.

Since the last update we have had two more rounds (Rounds 4 + 5).

Round 4 consisted of 7 houses and 7 seeds.
This time, winning agents gained 14 points, and tying agents each received 7 points.
This resulted in the following scores:

  1. Agent007: 182
  2. BennoPaulJaro: 133
  3. Ultrainstincts: 126
  4. UniqueNameForAnAgent: 105
  5. Movie_agent321: 70
  6. KDestroy: 70
  7. AgentDoubleCheck: 56
  8. Unhuman1InteligentAgent: 42

The two worst agents in this round did not move on in the tournament.
After this round 6 agents were left.

Round 5 consisted of 8 houses and 8 seeds.
This time, winning agents gained 16 points, and tying agents each received 8 points.
This resulted in the following scores:

  1. Ultrainstincts: 160
  2. Agent007: 112
  3. KDestroy: 80
  4. BennoPaulJaro: 72
  5. Movie_agent321: 32
  6. UniqueNameForAnAgent: 24

After Round 5, the worst 2 agents were removed from the tournament, resulting in 4 remaining agents.

The tournament now continues into Round 6, and eventually into the final Round 7.
Unless some of the agents behave badly, these will finish today and we will make a final update post tomorrow morning.


How will the placement in the end work? Are you going to sum the scores from all rounds? (I am asking because I am curious why you don’t just give 0/1/2 points for a loss/draw/win)


And one more update from Tom:

Dear all,

the Kalah tournament has concluded with Rounds 6 + 6.5 + 7.

With this post I would like to give a final update.
Please read all the way until the end; some important updates regarding the Kalah lecture on Tuesday are also included.

Round 6 started with 9 houses and 9 seeds.
Winning agents gained 18 points, losing agents 9 points.
This resulted in the following scores:

  1. Ultrainstincts: 72
  2. BennoPaulJaro: 54
  3. Agent007: 54
  4. KDestroy: 18

KDestroy lost immediately, however to determine the finale Round 6.5 with BennoPaulJaro vs Agent007 was also run.
Round 6.5 had 10 houses and 10 seeds.

The first game, Agent007 vs. BennoPaulJaro resulted in a score of 140 : 60.
The second game, BennoPaulJaro vs. Agent007 resulted in a score of 101 : 99.

Adding these scores together, this resulted in a score of 239 : 161 in favor of Agent007.
Thus the final took place between Ultrainstincts and Agent007.

Round 7 started with 12 houses and 20 seeds.
Winning agents gained 40 points, losing agents 20 points.
The games resulted in the following scores:

The first game, Ultrainstincts vs. Agent007 resulted in a score of 249 : 231.
The second game, Agent007 vs. Ultrainstincts resulted in a score of 230 : 241.

However this scoring is not quite accurate.
Up until this point, whenever an agent attempted an illegal move, the event was logged and replaced by a random move.
In the second game of this round Ultrainstincts attempted an illegal move.
The above scores were the result of replacing it with a random move.

Precisely because Ultrainstincts attempted an illegal move in the final match of the tournament, we do not consider it fair to just make it the winner of the tournament.
At the same time, Ultrainstincts won the game despite the handicap of being assigned a random move, hence we could also not just disqualify it.
Therefore we declare the tournament undecided, and make both Agent007 and Ultrainstincts inners.
Congratulations to both.

As stated in the original exercise, the points for this exercise are the following:

  • 100 points for anyone who submitted an agent
  • 100 extra (!) points for first place
  • 90 extra (!) points for second place
  • 10 extra (!) points for tenth place

As we now have two agents in first place, we have the additional benefit of having one more agent on this list with bonus points.

The final placement is as follows.
These were derived by their relative placements within the rounds in which they were disqualified.
We also skipped the one agent that was submitted by a tutor.

  1. Agent007
  2. Ultrainstincts
  3. BennoPaulJaro
  4. KDestroy
  5. Movie_agent321
  6. UniqueNameForAnAgent
  7. AgentDoubleCheck
  8. Unhuman1InteligentAgent
  9. Angela
  10. AgentSmith
  11. Stein3000 (Tutor-submitted; doesn’t count w.r.t bonus points)
  12. SmahrtAgent

The students participating in these agents will be assigned 100 regular points + their bonus points shortly.
All other students that submitted an agent will be assigned 100 regular points.

As promised, we have also published detailed data about each round.
This can be found at https://gl.kwarc.info/teaching/AI/-/tree/master/WS2021/Kalah.

Finally, a lecture about Kalah has already been announced for Tuesday 26th January.

For this lecture we would like to ask the teams behind all agents that made it to round 6 to present their agent.

These are four agents, namely:

  • Ultrainstincts
  • BennoPaulJaro
  • Agent007 (the one where the class is named “Agent007”)
  • KDestroy

We would like you to give a ~10 minutes short talk presenting your agent and the strategy it used.
In addition, we would like to request a short writeup (max 1 page) which we intend to publish so that students next year have some idea about what strategies were successful.

Kindly confirm either by posting a response to this post, or sending us an email, that you are willing to present your agent & provide a writeup.
Note that this is entirely voluntary, and only for the benefit of the other students to see which strategies performed best.
You will receive your bonus points regardless if you participate on Tuesday or not.

Looking forward to Tuesday!

Pseudo Tournament after the Tournament
Hello together,

as I wrote before, I interesting how our agent would be placed if we start with a bigger setup.
We were thrown out in the first round which was with a very small setup.

Could you please do another complete run (with all agents) after the tournament with a bigger volume?
It may be helpful to know if our agent gets a better or worse result for more houses and seeds.
Actually, we only know that it works badly with 4 seeds and 4 houses but not e.g. for 8 seeds and 12 houses.

Thanks

1 „Gefällt mir“

Thank you for organizing the tournament, it was fun to participate.

Regarding KDestroy: I’ll gladly loose some words about it next Tuesday and provide a short writeup.

Johannes


Like JoKu, my team and I would like to thank the organizers of the tournament!
Also we congratulate the teams behind Ultrainstincts and BennoPaulJaro for this close game :slight_smile:

Regarding the offer: we would like to say a few words about it next Tuesday and also write a short summary.

Alex, Christian and Johannes
Developers of Agent007 (class Agent007)


We also like to thank you all for the exiting tournament.
Congrats to Ultrainstics and Agent007!

Regarding the offer:
We will gladly say a few words in the Tuesday Kalah Session and submit a document, describing the behaviour of our AI.

Greetings Benno, Paul and Jaro
Developers of BennoPaulJaro :huh: