Task
(UPDATE: Frequently Asked Questions on the task description.)
(UPDATE 18:40 GMT: We’re having trouble with the weather. See the spec extension)
(UPDATE 16:45 GMT Saturday: We’ve found a way to make the maps easier to navigate. See the spec extension)
(UPDATE 21:45 GMT Saturday: We’ve found some strange growths underground. See the spec extension)
(UPDATE 12:00 GMT Sunday: It looks like there are more Lambdas underground than we first thought. See the spec extension)
This year’s task is to implement a Lambda Lifter. If you’re familiar with the implementation of functional programming languages, you probably know what this is. If not, this is a Lambda:
And this is a Lambda Lifter:
Of course, to successfully lift Lambdas, you need to get them into the Lambda Lift:
The reason we need a Lambda Lifter is that the recent increase in popularity of functional languages and the rise in multicore and parallel programming has led to a worldwide shortage of Lambdas, with current models predicting we’ll run out by October. Fortunately, we have discovered a plentiful supply in the Lambda mines beneath the Lomond Hills, not far from St Andrews in Scotland. We have surveyed the mines, and have a number of maps. Your job is to implement a mining robot which will find the Lambdas and Lift them to the surface, using the maps as a guide.
For more details, see the full specification. There are now also some extensions:
Note that we are still working on the surveying equipment, and we may find some unexpected things underground as the contest progresses. We will let you know, via this web site and via email (once you have registered) if we find anything.
We have some sample maps:
We also have a validator so that you can check whether your implementation of the robot behaves according to our specification. We make no guarantees about the availability or efficiency of this validator, however – please be kind to it!
If you need to contact us during the contest, you can do any of the following:
- (Preferred) Send an email to
icfpcontest at cs dot st-andrews dot ac dot uk
. Note that this is a mailman mailing list, including the organisers and anyone else interested. Anyone may post, and you may subscribe here.
Note that all messages are archived here – please check whether your question has already been answered before posting. - Ask @icfpcontest2012 on Twitter. You can also use the hash tag
#icfpc
, though asking directly will be more likely to get a speedy response. - Ask on the
#icfp-contest
IRC channel, onirc.freenode.net
At least one of the organisers should be available throughout the contest, though please be aware that we may be less responsive during UK night time!
It is Friday 13th. Are you scare? 😉
51 minutes to go
F5
Thank you for this task. What could be the maximum size of the map? E.g. could it be larger than 500×500?
It could be… it would be best to try to cope with as large a map as you can, remembering that the VM is limited to 1Gb and so we’re likely only to provide maps that have a hope of fitting in that.
Please, make a single archive with maps
You have some of the map icons on this page, and all of them are in the PDF. Could you put all the map icons on this page so we can make our own Dig Dug map visualizations?
I’ve put some BMPs at http://www-fp.cs.st-andrews.ac.uk/~icfppc/bitmaps/
A BMP for earth (corresponding to the map character ‘.’) is missing.
Thank you!
It is unclear from the rules:
If the robot moves into the cell with Earth, does that cell become Empty?
It’s actually pretty clear. The cell will be left empty when the robot leaves the square.
The spec is silent on the treatment of STDERR. May we use it to produce debugging output and have it ignored by the testing environment?
Another question.
It is said that score decreases for every move. Is score decrease while the Robot Wait?
Yes, the score does decrease if you wait.
Scoring rules description seems to be incomplete. While playing with web validator I found the following facts:
1. ‘A’ is assumed to implicitly added at the end of the given sequence. (This implies that each collected Lambda gains 50 (not 25) points if no ‘A’ issued explicitly.)
2. Abort command costs nothing by itself. (For example program “A” gains 0 points, not -1.)
1. This is correct. You don’t get those points if you’re squashed or if you drown
2. This is also correct. Abort is not counted as a move.
I wanted to upload my submission. Gone thru the pain of creating a Google account. Now Google tells me I can’t share my submission. It says: “Sorry, you have exceeded your sharing quota.” So what?
I’ve just checked with a freshly created account. I got the same error as you initially but a few minutes later, it worked (from the drive menu rather than the documents menu). I think it’s just because the google account setup process goes through a few steps. Our testing didn’t show this up because we used existing accounts rather than new ones!
Can my ./lifter file by an executable (chmoded +x) python file with “#!/usr/bin/python” first line?
Yes, that’s fine.
Will there be a way to check how the submission did – to see the score it achieved on test data or at least to ensure that it works correctly on server?..
When we run the tests we will post a scorecard. We will determine the winner by a series of knock out rounds.
Guys, will all maps be rectangular like 1-6 or it will be with ragged borders like 7 – 9?
The test maps that we use may be any that meet our specification. So not necessarily rectangular.
I mean will maps be supplemented with spaces to rectangular form rows*cols ?
No, like the example maps, they could be any shape.
How exactly can we upload the new version of submission? Do we have to use “Manage Revisions > Upload New Revision” ?…
Yes.
Is there a limit to the number of moves web-based validator accepts?
Yes. It will ignore any moves after the first m*n, where m and n are the dimensions of the map.
Dudes, please wait!