Entelect AI Challenge ( R100K grand prize)
I have no idea how legit this is, but passing it on anyway. Challenge seems to be to build a tron light cycle AI bot. Finale at Rage expo, in association with NAG. Probably worth considering. Sadly teams aren't allowed:
http://challenge.entelect.co.za/
(Still can't figure out why a JAVA enterprise shop wants to drop so much money on something like this, unless they're hoping to turn it into a recruitment drive)
http://challenge.entelect.co.za/
(Still can't figure out why a JAVA enterprise shop wants to drop so much money on something like this, unless they're hoping to turn it into a recruitment drive)
Comments
THAT could be interesting :)
I'm wondering how Entelect is going to prevent people using the google challenge code? I mean, I'm not seeing many differences in these examples to what I was thinking would be a solid heuristic, but there are bunches of optimisations and stuff that would be really helpful.
Hang on, what the hell does "The game is played on a 30 x 30 board mapped onto the surface of a sphere. This means that the board wraps around on its horizontal ends and meets on its vertical ends." mean? The image they show doesn't help at all... What the crap happens if a player tries to move out the top or bottom of the grid?
Would be really annoying to see someone walk away with 100k who just ripped the google entries.
Not really sure how much of a difference this would make to an algorithm. Imagine it would be like world wraps, but with tweaked logic for dealing with top and bottom edges.
That changes the problem space somewhat, though I think a lot of the ideas and algorithms used in the prior google challenge (minimax, Voronoi diagrams) will apply here too.
Worth a shot, just for fun ^_^
For a 30x30 grid game with two pieces, that's 30^30 game states. But light cycle adds a history mechanic WRT the trailing walls of each player so the possible game states actually increase exponentially in addition to the 30^30 at every iteration.
In any case if the the grid is in fact a sphere with two poles instead of a torus-like structure, it makes it very interesting because the poles would become significant points of control. In what way though, you'd have to decide for yourself.
1. The whole "sphere" thing is not properly explained. The behavior for what happens when a player attempts to move out of the top or bottom of the grid is undefined. Either the sphere thing is wrong and they meant that it wraps vertically too, or there's some sort of custom ruleset for vertical grid re-entry: Teleporting to any desired top space if exiting from the top, moving to a mirrored point some fixed offset away along the edge, etc. This shit is not trivial, if you get the ruleset wrong your AI will be disqualified when it does something it thinks is totally legit but the auditing software cries foul at. Nor is the correct interpretation obvious, as it is with horizontal wrapping.
2. @Aequitas pointed out that no testing environment is provided. So people have to build their own take on the contest rules (including the sphere verticality ambiguity) and test that way. That's pretty weird... Presumably they have this legality testing tool already, why not give it to entrants so that they can, y'know, do what you want them to do?
@someone_else: Don't make the mistake of simply counting game states and assuming that means complexity. That's what heuristics are for: Reducing simple state enumeration into related groupings so that searching becomes easier. Remember that your transition space is limited by previous moves, so there are only three possible reachable states from any given state (the three new cells that the current player can move into) so your state space is much more controllable than something like, say, Go - where any particular state has far more transition options.
I'm pretty sure that for a specific board layout like the one specified, the game is indeed solved, the Google AI challenge seems to have relied on random board generation in order to force coders to come up with generalist AIs. Even if the given board has random starting locations, which I don't believe it will (more state space reduction), that's still totally within the bounds of solveability. Here's why: This type of Lightcycles game has 3 distinct phases, the opening phase where players are trying to establish areas that the other player can be locked out of, the maximisation phase where players attempt to increase the amount of space available to them and decrease the space available to enemies before locking them in to whichever spaces have been created, and finally the end-game of using up that space as efficiently as possible so that the other player runs out of space first.
This means that, given a fully wrapping board with no "hard" boundaries, the best thing to do is try to cut the play-space in half and claim the larger half. If you're the first player to move, the best location to do that is to move towards the closest space on the board that you can reach before they do, seeing as you'll always have the move advantage and then keep moving towards the point 1 space away from your starting position, exactly one board-space removed in your current direction of travel. Your opponent will be trying to maximise their space and will have to keep level with you, for every move that they don't, all you need to do is keep moving towards them so that you'll still reach your cutoff point first, but now you've taken a bite out of the space they have available. Then, once you're close to your cutoff point to create the two territories, use up all available move advantages you have over your opponent "on their side" of the cutoff, thus wasting their open space. After you finally close off the territory, you'll simply have to min-max your way to using space efficiently and you'll win.
Of course, I could easily be wrong, having not written an AI to do this (the first game I ever completed was Lightcycles, it sucked turn-based because of the domninance of exactly this type of strategy and only became a game when I figured out how to do the real-time controls) but I suspect that you'll see the winning AI displaying exactly this strategy in a completely mathematically proveable sense... You'll probably also see factors of the board coming into play, emphasising straight territory border lines due to the wrapping :)
Without a working demo of a valid entry or starter pack (much like other AI challenges), or a forum to raise questions and concerns, I find myself a bit hesitant about diving into this.
Hopefully time will reveal such things.
The writing to console thing also seems a bit silly, and yes... without a starter kit or test harness, this seems like a waste of effort. So until they release one, I'm on the bench too.
A more concise way to ask the question would be, are we dealing with a Torus or a Sphere? See pics attached.
Torus: all the lines of an axis will always remain parallel
Sphere: there will always be two poles where seemingly parallel lines converge.
[Edit: Never mind, read the FAQ and it's quite clear now that it's a sphere.]
Even if they've explained the sphere, they've left ambiguities in the state of the (x, 0) row: Is it essentially the same cell, so that you can move in there and then you have to move out of that row next move, or is a whole row that you can simply EXIT to any cell in the adjacent row from. What happens when there are walls there? Why did they use (1, 0) and then move to (x, 1), instead of somewhere ELSE on row 0? That isn't a spec I can code to ;)
I take that as being 30 total
This is not actually a sphere, it's an ellipsoid.
Doing a full rotation over the poles will take 30 + 28 = 58 moves.
But doing a full rotation over the horizontal will only take 30 moves.
Thus this "sphere" is twice as long as it is wide.
Am I correct in thinking this?
The image @someone_else posted with the sphere with longitude and latitude lines is correct. It is a sphere.
Let's say you want to make a full vertical (over the poles) rotation. You start at (0; 1) moving in a straight line upwards. Thus your next moves will be (0; 0), then (15; 1), (15; 2) ... (15; 28), (15; 29), (0; 28), (0; 27) ... (0; 3), (0; 2) and finally you are back at (0; 1) where you started.
Count all those moves, it's 58. Contrast that with moving horizontally which is only 30 moves.
http://necrobones.com/atrobots/
https://sites.google.com/site/atr3portal/info
It's more like a cylinder though, the whole top and bottom rows being the same cell and all that feels hacky and horrible... Still, it does point towards establishing a horizontal line in order to dictate space separation as a successful strategy: It's the shortest distance before you can start controlling space without your opponent being directly involved.
Currently I have the "Board" drawing, with a free camera to move around (horizontal, vertical, zoom in or out) and my storage structure in place, the next step is to validate moves as well as run an "agent" via bat files to play (with their specified time restrictions).
Im still reading up on the methods I want to use for my AI, so nothing there. I wonder if I am allowed to share the runner under their rules?
I just have a flat 2D grid representation, though. Makes it a bit easier to see what's going on in my opinion.
@dislekcia Im looking at a more deterministic machine learning approach, Im specifically looking at a modified Markov chain for my AI.
facebook page: SuperHappyDevHouse Cape Town - Entellect R100K Challenge / Arduino / ...
In case you don't have facebook, here is the description:
We're finally hosting the first SuperHappyDevHouse at codebridge on Saturday, August 11th.
It is a non-exclusive event intended for creative and curious people interested in technology. We're about knowledge sharing, technology exploration, and ad-hoc collaboration. Come to have fun, build things, learn things, and meet new people. It's called hacker culture, and we're here to encourage it. (borrowed from superhappydevhouse.org).
You're free to come past and hack away on whatever you want. We'll have a whole lot of people working on entries to the Entelect Challenge[1] (hopefully with a visual interface to challenge each other), likely some people working on hardware/arduino tools, and whatever you plan on working on.
It will be hosted at codebridge in Claremont (directions at [2]). We'll have the doors open by 8:30am, hopefully we'll find a sponsor for some lunch/snacks/beers. We're also in dire need of additional tables/chairs so if anyone knows a cheap source *please* let us know. If you can bring along some networking equipment that would help too.
We'll get a wiki set up in the next couple days with more detail.
[1] http://challenge.entelect.co.za/Home/Rules
[2] http://www.codebridge.co.za/directions.htm
A large majority of the questions that we have received have been around behaviour at the poles. It looks like we've got to the bottom of this question here already though (polar row collapsing to a single 'logical' point). Your bots are responsible for marking the entire polar row (X, 0) (in the case of the north pole) with your wall or player, depending on whether you're moving to or from a polar row point.
In terms of the test-harness, we're putting up a cool visualisation on the website in the next 2 weeks (holding thumbs!) Although we've formally said this will be available by 1st September. You will be able to upload your .zip solution and watch your bot play-off in real time against a reference player. If there are any problems with your solution, it will let you know. It will also inform you of any invalid move attempts etc.
In terms of the clarity of the rules and details regarding the competition - the rules & FAQ on the website is growing on a daily basis. We're updating it as the questions come through, as we realize where the gaps are and where descriptions can be improved.
Please feel free to drop us an email on challenge@entelect.co.za. I'll ensure that we respond within 24 hours.
Good luck!
Tim
We have had playoffs (http://www.house4hack.co.za/first-tron-bot-play-off) the previous two weeks and the next one is scheduled for coming Wednesday the 8th.
Everyone is welcome to stop by from 18:00 onwards.
In case there is some confusion, we have Randburg and Centurion chapters, but most of the action on the bots currently at H4H Randburg :)
It is now a couple of hours before the deadline. Have anyone else experienced problems with the test harness?
I want to test my bot one final time before I'm 100% confident in my submission, but at the moment I'm unable to do so. Considering the amount of effort I put into it it would be a pity if there's some problem in my submission that I didn't pick up because I couldn't test that causes it to fail during the competition.
I'm pretty confident my Bot plays by the rules, but I've seen some strange behaviour, such as:
* Thelma being declared the winner as soon as she reaches the pole, despite my bot still having plenty of room to maneuver.
* Thelma bot losing at arbitrary points in time by not moving.
* My own bot running out of time within the first couple of seconds of the game or being declared the loser because it didn't move. I've been very careful to make sure that it makes a decision within 4.5 seconds and if can't that it returns the best move it has. If it's a problem on my side it is difficult to troubleshoot anyway because there's no feedback other than what you see in the visualisation.
* The test harness failing to display anything at all. Firefox seems to be the best browser to use. It sometimes works on Chrome. I've never seen it working on Internet Explorer 9.
I've sent several emails to challenge@entelect.co.za, but there's no indication anywhere of whether or not they've actually been received.
In the meantime I'll submit what I believe to be a working version, but as it stands I'm really nervous about it.
I still feel uncomfortable about submitting an entry which haven't been tested on their servers, since I've been tuning it a lot over the weekend.