D @ ICFP 2012

bearophile bearophileHUGS at lycos.com
Thu Sep 13 08:30:29 PDT 2012


Kazuhiro Inaba ("Dark Integers" Team) has reached position 6 in 
the prestigious ICFP 2012, it's not bad:

http://www.kmonos.net/repos/icfpc12/wiki?name=icfpc12

Code:
http://www.kmonos.net/repos/icfpc12/dir?ci=tip

Info on the contest and its results:
http://www.youtube.com/watch?v=5TCqUU3-GT0
http://icfpcontest2012.wordpress.com/

The winning entry was in C++, by "Frictionless Bananas" team:
http://www.sawicki.us/icfp/2012/

The C++ code contains some interesting parts:

>To represent multiple states efficiently, my program stores 
>diffs between states. Only one full grid is stored at a time. 
>Executing a robot command updates the grid and produces a diff 
>that represents the changes needed to restore the previous 
>state. Applying the diff will undo the changes and produce the 
>opposite diff that can be used to redo the changes. An entire 
>tree of states can be represented by storing each state as a 
>diff from an earlier state in the tree. To improve the 
>performance when reconstructing a desired state from diffs, 
>several diffs can be merged together to produce a diff that will 
>undo or redo several robot commands at once. My program merges 
>diffs in such a way that n commands can be undone/redone by 
>applying O(log n) diffs.<

>To avoid the exponentially increasing size of the state space, 
>states are grouped into buckets with similar characteristics. 
>Only the first state to be reached in a given bucket is kept; 
>other states in the same bucket are discarded and not explored 
>further.<

The C++ code, it's nice, about 67 KB:
http://www.sawicki.us/icfp/2012/submission2.tar.gz

Bye,
bearophile


More information about the Digitalmars-d-announce mailing list