ICFPC 2012 with crowdsourcing and neural networks
Good day to all.
Everyone is invited to play a slightly simplified browser version of the famous Supaplex game.
Why? And then, based on your actions, we will then train our bot. But first things first.
UPD: Here I will upload the numbers of random cards that you can most likely pass:
Simple: 20 , 24 , 32 , 37 , 41 , 43 , 47 , 51 , 56 , 57 , 61 , 62 , 67 , 73, 77 , 80
Average: 34 , 36 , 42 , 44 , 59 , 75 , 100
Complex: 45 , 313
From 12:00 GMT Friday, July 13th, to 12:00 GMT Monday, July 16th, the annual functional programming competition is held to coincide with the International Conference on Functional Programming 2012 (ICFP).
The contest is notable for many reasons. Personally, I conquered the task of 2010. First of all, the fact that it was necessary not only to program, but also to do a lot of reverse engineering, break the riddles of other teams and create your own so that it was as difficult to solve as possible.
For those who want to learn more about everything:
For the rest I will tell you briefly. It was necessary to invent and upload “cars” to the server and select “fuel” for other people's cars. But not so simple. Initially, even the format in which the answers were received was not known. And the decision of machines required a good knowledge of mathematics.
This year the task is not so fun - you just need to program a robot that extracts lambdas from the mine and suspiciously looks like the famous Supaplex game . In order for the participants not to relax, the organizers periodically add new conditions . The competition is divided into two separate tests - blitz (1 day) and the main competition (3 days).
Unfortunately, we learned too late about the contest and were unable to put together a full-fledged team. Therefore, our team consists of only two people (up to 20 are allowed, teams less than 4-5 people usually have a very difficult time): me and GreenPeace
First of all, the question was very acute - is it worth bothering at all? Together, after all, we’ll not have enough time. Moreover, no cracking of other people's decisions is provided for this year, and this was the most fun. Then they decided that you can try to make a robot with random behavior and a minimal instinct for self-preservation and send it to the blitz classification, just for fun. The next thought was to write an emulator of this game and go through your hands to train the neural network. And the logical consequence of this was the transfer of the game to JS and the creation of a site for crowdsourcing . Even a team of two people can do it. How good this will bring results - see later.
Time is short, there are no servers at hand, so the statics are on the people (I hope the habraeffect is not terrible for him), and the minimum necessary dynamics is on the first free hosting that comes across.
The robot's task is to collect all the lambdas and go to the elevator. For each lambda collected, the robot receives 25 points. If he brings them to the elevator - another 50 each. If it stops production (abort - button "A") - 25 for each. Well, if he drowns or gets a stone on the head, then the robot will not receive any additional points. For each step, the robot loses 1 point.
In addition, stones fall, if there is where, roll off from each other (to the right or left) and from lambdas (only to the right).
A few hours after the start, the organizers added a flood. Once a few moves, the water rises, the robot can dive into it, but not longer than a few moves. How much exactly makes up this very “few” depends on the card.
Detailed rules in Russian can be found in the next post .
At the moment, 999 cards are available for the game (15 cards from the organizers and 984 randomly generated). Cards from the organizers are made by hand, interesting and obviously passable. For random cards, we do not guarantee anything. On some, you can’t dial anything at all. On others, the optimal strategy would be to collect available lambdas and stop the game. In addition, there are no floods on random maps yet. But this will be fixed immediately after our team sleeps a little. 16 hours have passed since the beginning of the contest and now is the time to take a break for sleep.
Planned updates to the game:
Write questions, wishes, bug reports in comments or in private messages. Thank you all for playing.
Everyone is invited to play a slightly simplified browser version of the famous Supaplex game.
Why? And then, based on your actions, we will then train our bot. But first things first.
UPD: Here I will upload the numbers of random cards that you can most likely pass:
Simple: 20 , 24 , 32 , 37 , 41 , 43 , 47 , 51 , 56 , 57 , 61 , 62 , 67 , 73, 77 , 80
Average: 34 , 36 , 42 , 44 , 59 , 75 , 100
Complex: 45 , 313
A bit of history
From 12:00 GMT Friday, July 13th, to 12:00 GMT Monday, July 16th, the annual functional programming competition is held to coincide with the International Conference on Functional Programming 2012 (ICFP).
The contest is notable for many reasons. Personally, I conquered the task of 2010. First of all, the fact that it was necessary not only to program, but also to do a lot of reverse engineering, break the riddles of other teams and create your own so that it was as difficult to solve as possible.
For those who want to learn more about everything:
For the rest I will tell you briefly. It was necessary to invent and upload “cars” to the server and select “fuel” for other people's cars. But not so simple. Initially, even the format in which the answers were received was not known. And the decision of machines required a good knowledge of mathematics.
This year
This year the task is not so fun - you just need to program a robot that extracts lambdas from the mine and suspiciously looks like the famous Supaplex game . In order for the participants not to relax, the organizers periodically add new conditions . The competition is divided into two separate tests - blitz (1 day) and the main competition (3 days).
Unfortunately, we learned too late about the contest and were unable to put together a full-fledged team. Therefore, our team consists of only two people (up to 20 are allowed, teams less than 4-5 people usually have a very difficult time): me and GreenPeace
First of all, the question was very acute - is it worth bothering at all? Together, after all, we’ll not have enough time. Moreover, no cracking of other people's decisions is provided for this year, and this was the most fun. Then they decided that you can try to make a robot with random behavior and a minimal instinct for self-preservation and send it to the blitz classification, just for fun. The next thought was to write an emulator of this game and go through your hands to train the neural network. And the logical consequence of this was the transfer of the game to JS and the creation of a site for crowdsourcing . Even a team of two people can do it. How good this will bring results - see later.
Time is short, there are no servers at hand, so the statics are on the people (I hope the habraeffect is not terrible for him), and the minimum necessary dynamics is on the first free hosting that comes across.
About the game
The robot's task is to collect all the lambdas and go to the elevator. For each lambda collected, the robot receives 25 points. If he brings them to the elevator - another 50 each. If it stops production (abort - button "A") - 25 for each. Well, if he drowns or gets a stone on the head, then the robot will not receive any additional points. For each step, the robot loses 1 point.
In addition, stones fall, if there is where, roll off from each other (to the right or left) and from lambdas (only to the right).
A few hours after the start, the organizers added a flood. Once a few moves, the water rises, the robot can dive into it, but not longer than a few moves. How much exactly makes up this very “few” depends on the card.
Detailed rules in Russian can be found in the next post .
At the moment, 999 cards are available for the game (15 cards from the organizers and 984 randomly generated). Cards from the organizers are made by hand, interesting and obviously passable. For random cards, we do not guarantee anything. On some, you can’t dial anything at all. On others, the optimal strategy would be to collect available lambdas and stop the game. In addition, there are no floods on random maps yet. But this will be fixed immediately after our team sleeps a little. 16 hours have passed since the beginning of the contest and now is the time to take a break for sleep.
Planned updates to the game:
opportunity undodone- flood cards
- improved map generation algorithm
direct links toDonecards
Write questions, wishes, bug reports in comments or in private messages. Thank you all for playing.