Ludii Forum
Crazy Zero wants to join - Printable Version

+- Ludii Forum (https://ludii.games/forums)
+-- Forum: Competitions (https://ludii.games/forums/forumdisplay.php?fid=18)
+--- Forum: Computer Olympiad 2020 (https://ludii.games/forums/forumdisplay.php?fid=20)
+--- Thread: Crazy Zero wants to join (/showthread.php?tid=87)



Crazy Zero wants to join - Crazy Rémi - 07-09-2020

Hi,

I am very interested in participating in the Computer Olympiad with my generic Alpha Zero implementation.

I already have neural networks for Go, Chess, Shogi, Renju, Gomoku, Ataxx, Breaktrough, Othello, Twixt, and Ultimate Tic Tac Toe. Adding one more game usually does not take more than 1 day of work to program the rules, and a few days of computation to produce a good network. I would be happy to implement any game of the Olympiad if I am told early enough that a tournament will take place.

I guess I would also have to implement a java interface like this:
https://github.com/Ludeme/LudiiExampleAI

Or do you have UCI or GTP wrappers?

Thanks,

Rémi


RE: Crazy Zero wants to join - DennisSoemers - 07-09-2020

Currently we do not yet have any wrappers. Right now, the only automated playing approach would indeed require using that Java API.

We leave the choice of how to handle this stuff to the organisers of every individual game's Olympiad. I'm not sure for how many of them final decisions have already been made. To be sure, I think it would be safer to contact the organisers of all the games you're interested in participating in. If they ask us to set up specific communication protocols, we may still add that.

It is also a possibility that participants will just be expected to run their own programs, look at the moves their programs want to make, and then manually enter them in Ludii's GUI and send the moves over the network that way; this would most closely resemble the non-remote situations where participants would manually make the moves for their programs on a physical board.


RE: Crazy Zero wants to join - Crazy Rémi - 07-09-2020

Thanks for your reply. I already have a java interface to my code, so I'll probably use the java API.

I'd like to participate in many games. If tournaments are run simultaneously, then automatic play is likely to be necessary.

Any ideas of the games of the Olympiad?


RE: Crazy Zero wants to join - cambolbro - 07-10-2020

Hi Remi,

We plan to support most of the games used in previous Computer Olympiads (here is a partial list https://en.wikipedia.org/wiki/Computer_Olympiad) but probably not the more rules-complex ones like Mahjong and Bridge.

But any of the 250+ games implemented for Ludii could be an Olympiad event (https://ludii.games/library.php); all it takes is someone to act as the organiser for that event and to create the tournament. We are making this process as easy as possible, and automating most of the running of each event, so hopefully many people will run events for a range of games. 

We already support the games you list except for Renju. You could create an event for each of those games yourself, though if your bot is going to win then it might be diplomatic to ask someone else to act as organiser Smile

We were assuming that most play would involve manual move entry for this inaugural online event. But we could look at adding an automated alternative if that would be useful for you. You would then need to update your software to send and receive messages to/from a Ludii client running on your machine to communicate moves etc.

Regards,
Cameron


RE: Crazy Zero wants to join - DennisSoemers - 07-10-2020

(07-10-2020, 11:43 AM)cambolbro Wrote: We already support the games you list except for Renju.

@Remi, on this topic: Renju has lots of different openings. Which would be the most common / important / expected to be included in an initial version?


RE: Crazy Zero wants to join - Crazy Rémi - 07-10-2020

Hi Dennis

I am not sure about the meaning of your question. The point of choosing openings for a tournament is to make the openings as uncommon and unexpected as possible in order to avoid manual opening book preparation. The difficulty is to find positions that are as balanced as possible.

For renju, you can use the openings of the gomocup. I think they are available on their web site somewhere. If you wish to prevent participants from preparing openings in advance, you could pick a few of them at random among the past gomocup openings on the day of the tournament.

I have an online opening book there, from which you may pick balanced positions:
https://www.crazy-sensei.com/book/renju_15x15/
They were quickly evaluated with my engine, so the evaluation may be a little wrong. But that may be another source of many balanced opening positions.

Renju is usually played on 15x15, but I am not sure the gomocup is played on 15x15. Maybe 20x20. I don't remember well.

Hi Cameron,

I have not looked yet at how ludii works. I will take a closer look later.

Is there a way I can simulate the tournament conditions to test my system? Even if I end up participating in only one tournament, automated play is a lot more comfortable in my experience. I will try to make it work.


RE: Crazy Zero wants to join - cambolbro - 07-10-2020

Hi Remi,

> Is there a way I can simulate the tournament conditions to test my system?
No, not yet sorry.

We will provide tournament support in the next release of Ludii (hopefully next week). This will provide basic tournament support for testing, using manual entry of moves, then we will add the automated option after that.

Regards,
Cameron


RE: Crazy Zero wants to join - DennisSoemers - 07-13-2020

@Remi

Do you know who organised the most recent Renju olympiads? I'm still trying to find clear, formal, and tight definitions somewhere of exactly which forks the first player is allowed to create, and which ones not, and hoping such an event would have 100% tight rules described. Online I usually find mostly example situations of "this is allowed, this isn't", but not so many 100% complete definitions.

From what I understand so far, forks of two open threes are not allowed, two closed (or open) fours are not allowed, but one open three and one closed four is allowed... but then the definitions of "closed" and "open" can also be a bit confusing. Intuitively I would expect a line of three to be closed if and only if it is capped by opposing pieces or board edges on both sides of the three pieces (with one of the three being a "virtual" piece-to-be-placed). But the first image on http://www.renju.net/study/advanced.php describes Z as being allowed because the diagonal three it makes is a closed three. So, it seems that "closed" is defined in terms of the full line of five, rather than just the three (so really it's more like a "closed three-out-of-five").


RE: Crazy Zero wants to join - Crazy Rémi - 07-13-2020

I also struggled to figure out the rules.



I'll try to make a simple summary:

 - winning with a line of 5 is always legal even if it is a double 3, double 4, or overline in another direction

 - double 3 is forbidden

 - double 4 is forbidden

 - overline (more than 5) is forbidden




"double" means in two different directions. An open 4 where it is possible to win on both ends is not forbidden.



a 4 means 4 stones that can be completed into a winning 5 with at least one move.




an open 4 is a 4 with two winnings moves. For instance: ..xxxx..





a 3 means 3 stones that can be completed into an open 4. For instance ...xxx...





Whether 3 stones are really a 3 depends on whether the empty points of the line are legal, so you have recursive calls for move legality. In the example that you linked:


o.xxx..x


x cannot add a move to make it an open 4.


After oxxxx..x white can block with oxxxxo.x


After o.xxxx.x white can block with ooxxxx.x because moving at the '.' is illegal (overline).





This position has deep recursion:


https://twitter.com/Remi_Coulom/status/1057173820547784704/photo/1



Tianyi Hao is an organizer of the gomocup:

https://www.wind23.com/

He may be able to answer your questions and help with tournament organization