Differences From Artifact [9ce063855f41ff05]:
- File
submission/README
- 2012-07-14 14:52:01 - part of checkin [3e683f8768] on branch trunk - W dead case. (user: kinaba) [annotate]
To Artifact [145a0b89a717cc17]:
- File
submission/README
- 2012-07-16 10:57:00 - part of checkin [1046fbae45] on branch trunk - README update. (user: kinaba) [annotate]
> 1 --------------------------------------------------------------------------------
1 Team: 2 Team:
2 Dark Integers 3 Dark Integers
> 4
3 Member: 5 Member:
4 Kazuhiro Inaba (www.kmonos.net / kiki@kmonos.net) 6 Kazuhiro Inaba (www.kmonos.net / kiki@kmonos.net)
> 7
5 Language: | 8 Programming Language:
6 D Programming Language (dlang.org) 9 D Programming Language (dlang.org)
> 10 --------------------------------------------------------------------------------
> 11
> 12 Three types of solvers are combined.
> 13
> 14 1. Solver "Forest"
> 15 It does breadth first search every turn for taking the game's dynamism
> 16 into account. Basically it tries to rush to the nearest lambda or open
> 17 lift, but if there is no route found, it tries other various options.
> 18 Pushing rocks, digging earth around rocks, wait a while...
> 19 It is slow, but relatively more clever.
> 20
> 21 2. Solver "Wind"
> 22 It does breadth first search and memorize the computed path. As far as
> 23 possible, it tries to follow the precomputed route. If some obstacle is
> 24 found, it redoes the BFS. It is dumb but fast. So it is used for large
> 25 maps.
> 26
> 27 3. Solver "Fire"
> 28 It is a kind of "higher-order" solver, that takes another solver and
> 29 creep into it to make it more careful. Precisely speaking, this higher
> 30 order solver runs the subsolver as a 10-20 step lookahead. While no
> 31 problem is found in the lookahed, it behaves exactly as same as the
> 32 sub solver. If there was a problem (i.e., subsolver dead or stuck),
> 33 it tries all the possible perturbations to the lookahead window, and
> 34 re-runs subsolvers many times and chooses the best one.
> 35
> 36 Fire<Forest> is used for W*H<=1600 instances. Fire<Wind> is used for any
> 37 instances. For smaller maps, the better result of the two is used as the
> 38 final output. In addition, all these outputs are guarded by a sentinel
> 39 who aborts by force the output sequence at the best score position (so
> 40 that left-over run does not make the score worse).
> 41
> 42
7 43
8 This submission for lightning division is not particulary interseting. | 44 For the added features, not quite much effort is paid. So if there came a
> 45 map that fully exploits the characteristics of the gadgets, I'll lose :(.
9 46
10 - Robot rushes to the nearest lambda (or the open lift) by breadth first search. | 47 Flood:
11 - Not at all taking into account the dynamics (falling rocks, floods). | 48 Almost nothing is done for it. The "fire" solver locally takes care
12 - To mitigate the staticness, the robot avoids the '.' below '*' as much as | 49 of it, and it is inclided to use "U" during perturbation. Also, "wind"
13 possible, so that it won't fall new rocks. | 50 solver's BFS is made to like "U" direction in larger maps.
> 51 Trampoline:
> 52 Just treated as one BFS edge.
> 53 Beard:
> 54 No clue. If there is nothing else to do, goes to the place where many
> 55 Wadler's are around, and uses the shaver.
> 56 Higher-order Rocks:
> 57 Tries to push them somehow randomly.
14 58
15 - Output routine is 'guarded' by a 'sudden death' or 'stray sheep' detector. <
16 That is, if the above search routine was hit by a rock or a water, or it <
17 couldn't find a way to the next target and walked in vain, the output guards <
18 trims the command history and inserts the 'A'bort at the optimal timing. <
19 This is also used for SIGINT handling. <
> 59
20 60
21 - gui.d is a windows GUI for the game, using DFL (http://github.com/Rayerd/dfl) | 61 Thanks for organizing the contest! I've enjoyed!
22 it is not compiled into the submitted routine. This is just a helper. <
23 <
24 Stay tuned for the full submission, judges! <