Sections
Home
Hills
Infinite Hills
Tournaments
Software
Evolving
Optimizer
Community
Newsletter
Discussion
History
Sections
 
For Beginners
First Steps
FAQ
Guides
Lexicon
Benchmarks
For Beginners
> Home > Redcoders Frenzy > The Shrinking Core Knockout Round

Redcoders Frenzy - The ongoing corewar tournament

The Shrinking Core Knockout Round
Organiser: Achille Astolfi

Your duel-warriors use to fight in a 8,000 core against their opponents, that means 4,000 cells per warrior; this is why they feel uncomfortable when fighting in a multi-warrior arena! Time has come to give your warriors the space they need: let them fight in a core providing 4,000 cells per warrior! There is only one drawback: your warriors will not know how many challengers there are, and so they will not know which will be the actual core size; will they be smart enough to survive the challenge?

Rules

Actually, this Redcoders Frenzy Round realizes the same rules of IRC#35 except in a "standard" core specification. This means that this will not be a single challenge round as usual; instead, each warrior will fight in a sequence of challenges, as long as it is eligible to pass to next challenge.

Each challenge is a multi-warrior run where all the warriors compete at once; the core size will be 4,000 times the count of warriors in the current challenge, and the other parameters will be adjusted proportionally. Let W be the count of warriors in the current challenge, the arena will then use these settings:

 Core size =      4,000 x W
 Max cycles =    40,000 x W
 Max processes =  4,000 x W
 Max length =           100 (fixed)
 Min distance =         100 (fixed)
 P-space size =     250 x W
 Number of rounds = 5 x 200 (5 fights of 200 rounds each)
Use of CORESIZE, MAXCYCLES, MAXPROCESSES, PSPACESIZE and any other mean to statically compute the core size is forbidden; the warrior code must dynamically adapt to the actual core size or be independent of the core size. This includes using values greater than 4000 or less than -3999 in your code if this will do; in few words, the compiled warrior must be the same in all the challenges, once that values greater than CORESIZE/2 have been converted to negative numbers. Note that this is the standard output when you run pmars.

P-space and PIN are allowed, so you can make a wise use of persistent memory and of handshake.

Challenge scoring: A warrior gets 1 point for each round it was the only survivor (same rule as standard multi-hill at KOTH).

Tie breaking: if two or more warriors happen to score the same, they will be sorted according to how many times they was one survivor out of 2, and so on; if the tie persists, the results of the previous challenge(s) will be considered.

Passing to next challenge: The warrior that scores least in the current challenge is knocked out, and all the other warriors will pass to next challenge; the arena of next challenge will then be adapted to the new number of warriors. This means that as the challenges proceed the core will shrink up to the standard size of 8,000 cells, until the last two survivor warriors will end up running a standard duel in a standard core.

Frenzy percent: This is the hardest thing to decide! I came up with this solution: say p is the score of the first warrior in the current challenge, q is the score of the knocked out warrior in the current challenge, and S is the Frenzy percent of the knocked out warrior computed for the previous challenge. The knocked out warrior in the current challenge should get of course more than S Frenzy percent and less than 100 Frenzy percent; this can be achieved by adding S to (q / p) x (100 - S). By the way I think about introducing some parameter f and replacing q / p with (q + f) / (p + f) in order to not having too low Frenzy percents for the last warriors and too close Frenzy percents for the first warriors; this f parameter will be high in the first challenge and will decrease down to 1 / 3 of the ties in the last challenge.

Hints

- The IRC#35 is of course a starting point, because it has the same rules as this RFT#24 except for the tiny core specification; you can even see which will be the pmars commands performed on the entries (well, just add some 0's around) so you can get a real grip on how this Frenzy Round works.

- Remember that location #0 of P-space holds -1 in the first round; it holds 0 if the warrior died in the previous round; it holds 1 if the warrior was the only survivor of the previous round; in the other cases, it holds the count of the warriors that survived the previous round, which can be greater than 2. This will affect P^x switchers.

- You can guess the actual size of the core in your first round of each fight and use the result in subsequent rounds by storing the value in your P-space; the handshaking friend can help computation or just use the result as far as both warriors are not knocked out.

- You can ;assert (CORESIZE % 4000 == 0) && (CORESIZE >= 8000) if you want, and do whatever you like with the other redcode constants; as far as the warrior always compiles, and the compiled code always looks the same in all the possible CORESIZE contexts, your entry will not be rejected.

Results

The two warriors by the organizer work well together and both succeed in reaching the final challenge. The handshaking warrior by Zul Nadzri goes third and the only warrior by Jens Gutzeit exploits to the fourth place: congratulations, this is a very good way to start as a new entry!

The first challenge seems to give a hint of who will be the winner, but sure gives a hint of what will be the winning strategy:
---------------------------------------------------------------
#  Name       Author     1 2 3 4 5 6  7   8   9  10 11   L   %
---------------------------------------------------------------
1  PartyFor   Adamowski 10 3 2 0 0 1  3   2  48 102 84 745 100.0
2  Lucky One  Astolfi    4 1 0 0 0 1  1   3 160 219 84 527  43.9
3  Lucky Two  Astolfi    2 0 0 0 0 1  0   4 169 221 84 519  25.2
4  Happy Fluf Gutzeit    0 3 0 2 2 4 14 224 373 271 84  23   6.5
5  Cabomba Sp Nadzri     0 1 2 1 2 3 12 225 373 271 84  26   6.5
6  Cabomba Gi Nadzri     0 1 1 2 3 2 11 224 374 271 84  27   6.5
7  Klug       Tomasev    0 1 0 1 3 4 13 223 374 271 84  26   6.5
8  PaperFan   Adamowski  0 0 1 0 2 1  7 223 373 271 84  38   6.5
9  GambleGoof van Rijn   0 0 0 1 2 1 12 225 374 271 84  30   6.5
10 CutStrom   van Rijn   0 0 0 1 0 2 12 224 374 271 84  32   6.5
11 VoyagerBul Tomasev    0 0 0 0 1 4 13 223 374 271 84  30   6.5
================================================================
The top warriors in the first challenge are those ones who have a poor chance to survive; anyway they have a high chance to be the only survivor if they survive. This is reflected in the second challenge, too:
---------------------------------------------------------------
#  Name       Author     1 2 3 4 5  6   7   8   9  10   L    %
---------------------------------------------------------------
1  PartyFor   Adamowski 10 3 2 0 1  1   2  68 111 110 692  100.0
2  Lucky Two  Astolfi    2 0 0 0 1  3   2 152 253 110 477   32.7
3  Lucky One  Astolfi    2 0 0 0 1  1   1 148 248 110 489   32.7
4  Happy Fluf Gutzeit    1 4 4 7 7 11 166 362 306 110  22   24.3
5  Cabomba Gi Nadzri     0 2 2 6 6 10 166 361 306 110  31   15.9
6  CutStrom   van Rijn   0 2 0 3 2 11 165 361 306 110  40   15.9
7  PaperFan   Adamowski  0 1 2 2 3  6 162 361 306 110  47   15.9
8  Cabomba Sp Nadzri     0 0 6 4 6 11 166 361 306 110  30   15.9
9  GambleGoof van Rijn   0 0 3 6 5  9 166 362 306 110  33   15.9
10 Klug       Tomasev    0 0 2 4 8  9 166 360 306 110  35   15.9
================================================================
Happy Fluffiness is the first "strong" warrior to score a point. By the way, it's still PartyFor to score much higher than the other warriors in the next challenge:
---------------------------------------------------------------
# Name           Author    1 2 3 4  5   6   7   8   9   L    %
---------------------------------------------------------------
1 PartyFor       Adamowski 8 3 1 1  3   6  56 122 116 684  100.0
2 Lucky Two      Astolfi   3 0 0 1  0   3 143 269 116 465   55.5
3 Lucky One      Astolfi   2 0 1 3  0   4 143 253 116 478   46.6
4 Cabomba Giant  Nadzri    1 3 5 4 17 160 340 322 116  32   37.7
5 GambleGoof     van Rijn  1 3 3 5 15 160 340 322 116  35   37.7
6 Happy Fluffine Gutzeit   0 5 9 5 18 159 339 322 116  27   28.8
7 Cabomba Sp     Nadzri    0 3 7 4 15 160 340 322 116  33   28.8
8 CutStrom       van Rijn  0 2 4 6 12 157 340 322 116  41   28.8
9 PaperFan       Adamowski 0 1 3 3 10 151 339 322 116  55   28.8
================================================================
Here Cabomba Giant and CutStrom score their first point; again it is Happy Fluffiness to be the first of the scoreless warriors. Next challenge is still a victory for PartyFor; the two Lucky warriors still score but other warriors at last start to score:
---------------------------------------------------------------
# Name            Author    1 2  3  4   5   6   7   8   L    %
---------------------------------------------------------------
1 PartyFor        Adamowski 9 5  4  2   2  47 126 131 674  100.0
2 Cabomba Giant   Nadzri    2 5 12 15 152 309 341 131  33   55.0
3 Cabomba Sp      Nadzri    1 3 14 14 155 309 341 131  32   48.6
4 Lucky Two       Astolfi   1 2  1  0   4 130 279 131 452   48.6
5 GambleGoof      van Rijn  1 1  7 13 154 309 341 131  43   48.6
6 Lucky One       Astolfi   1 1  1  1   3 132 278 131 452   48.6
7 Happy Fluffines Gutzeit   0 7 14 15 154 309 341 131  29   42.2
8 CutStrom        van Rijn  0 0  7  8 151 309 340 131  54   42.2
================================================================
Next challenge is the first surprise; maybe CutStrom was the natural partner of PartyFor? The fact is that the score of PartyFor drops suddenly:
---------------------------------------------------------------
# Name             Author     1  2  3   4   5   6   7   L    %
---------------------------------------------------------------
1 Lucky One        Astolfi    6  1  0   1 136 222 126 508  100.0
2 Lucky Two        Astolfi    6  0  1   4 150 234 126 479  100.0
3 Happy Fluffiness Gutzeit    2 10 26 163 348 297 126  28   73.2
4 Cabomba Giant    Nadzri     1 11 27 160 348 297 126  30   66.5
5 PartyFor         Adamowski  1  1  0   4  62 138 126 668   66.5
6 Cabomba Sp       Nadzri     0  7 25 162 348 297 126  35   59.8
7 GambleGoof       van Rijn   0  6 17 158 348 297 126  48   59.8
================================================================
At the same time the two Lucky warriors exploit. The same happens in next challenge:
---------------------------------------------------------------
# Name              Author       1  2   3   4   5   6   L    %
---------------------------------------------------------------
1 Lucky Two         Astolfi     12  3   2 151 245 152 435  100.0
2 Lucky One         Astolfi     10  6   2 132 253 152 445   95.1
3 PartyFor          Adamowski    5  2   3  52 144 152 642   82.8
4 Happy Fluffiness  Gutzeit      3 17 140 329 321 152  38   77.8
5 Cabomba Giant     Nadzri       1 11 137 332 321 152  46   72.9
6 Cabomba Sp        Nadzri       0  9 136 332 321 152  50   70.5
================================================================
Here the Cabomba pair loses the sparring partner. Next challenge is the second surprise:
---------------------------------------------------------------
# Name             Author           1   2   3   4   5   L    %
---------------------------------------------------------------
1 Happy Fluffiness Jens Gutzeit    20 151 340 304 144  41  100.0
2 Lucky One        Achille Astolfi 13   4 148 230 144 461   92.0
3 Lucky Two        Achille Astolfi 11   7 141 232 144 465   89.8
4 Cabomba Giant    Zul Nadzri       4 148 340 304 144  60   81.8
5 PartyFor         Lukasz Adamowski 4  10  51 146 144 645   81.8
================================================================
Happy Fluffiness suddenly exploits and PartyFor drops definitely to the fifth place. But on next challenge the exploit disappears just as suddenly:
---------------------------------------------------------------
# Name              Author              1   2   3   4   L    %
---------------------------------------------------------------
1 Lucky One         Achille Astolfi    25   4 311 256 404  100.0
2 Lucky Two         Achille Astolfi    15   3 314 256 412   95.7
3 Cabomba Giant     Zul Nadzri          2  73 625 256  44   90.1
4 Happy Fluffiness  Jens Gutzeit        1  72 625 256  46   89.6
================================================================
Maybe PartyFor was the partner of Happy Fluffiness? And here is my personal surprise, the next to last challenge:
---------------------------------------------------------------
#   Name               Author               1   2   3   L    %
---------------------------------------------------------------
1   Lucky One          Achille Astolfi     59 278 195 468  100.0
2   Lucky Two          Achille Astolfi     46 382 195 377   98.4
3   Cabomba Giant      Zul Nadzri          43 654 195 108   98.0
================================================================
Cabomba Giant has at last its exploit after having always scored low in the previous challenges, but they are the Lucky warriors that fight in the last challenge!
---------------------------------------------------------------
#  Name          Author                1   2   L    %
---------------------------------------------------------------
1  Lucky One     Achille Astolfi     504   0 496  100.0 (100.00)
2  Lucky Two     Achille Astolfi     496   0 504  100.0 ( 99.97)
================================================================
Here are the final results of the Core Shrinking Knockout Round:
---------------------------------------------------------------
#         Name                    Author                     %
---------------------------------------------------------------
1         Lucky One               Achille Astolfi          100.0
2         Lucky Two               Achille Astolfi          100.0
3         Cabomba Giant           Zul Nadzri                98.0
4         Happy Fluffiness        Jens Gutzeit              89.6
5         PartyFor                Lukasz Adamowski          81.8
6         Cabomba Sp              Zul Nadzri                70.5
7         GambleGoof              Roy van Rijn              59.8
8         CutStrom                Roy van Rijn              42.2
9         PaperFan                Lukasz Adamowski          28.8
10        Klug                    Nenad Tomasev             15.9
11        VoyagerBullet           Nenad Tomasev              6.5
================================================================
And here are the new rankings:
---------------------------------------------------------------
#    Author            Score   R24   R23   R22   R21   R20   R19
---------------------------------------------------------------
1(2) German Labarga    365.6        97.4  78.7 100.0  89.5  22.2
2(1) Chip Wendell      344.6              86.0  58.6 100.0 100.0
3(3) Roy van Rijn      340.8  59.8 100.0  97.8        83.2  22.9
4(5) Zul Nadzri        315.2  98.0        62.8  83.2  71.2  40.1
5(4) Lukasz Adamowski  260.3  81.8  34.1  69.5  25.8  74.9  23.8
6(6) Christian Schmidt 254.4        99.2  95.1  60.1
7(7) John Metcalf      195.2        69.2  86.1  25.9        14.0
8(8) Nenad Tomasev     178.9  15.9  93.3  69.7
9(10) John K. Lewis    119.6        58.3  61.3
10(11) Achille Astolfi 113.3 100.0                          13.3
11(12) Michal Janeczek 100.0             100.0
12(13) Sascha Zapf      98.4              60.7              37.7
13(14) el kauka         90.5              35.7        42.4  12.4
14(new) Jens Gutzeit    89.6  89.6
15(15) bvowk            74.8              74.8
16(9) Joshua Hudson     70.2                          70.2
17(16) Christopher Hubert 0.02                  0.02
================================================================
German Labarga is the new #1. Jens Gutzeit is the new entry at #14. No outs, at least for 2 other rounds.

The relative positions of the participants in this round did not change, except Zul Nadzri and Lukasz Adamowski excanged their position at #4 and #5.

2002-2009 corewar.info. Logo C. Schmidt
The Rounds
Round 25
Round 24
Round 23
Round 22
Round 21
Round 20
Round 19
Round 18
Round 17
Round 16
Round 15
Round 14
Round 13
Round 12
Round 11
Round 10
Round 9
Round 8
Round 7
Round 6
Round 5
Round 4
Round 3
Round 2
Round 1
The Rounds