• Azathoth - the king of all hills ...

    From John Metcalf@21:1/5 to All on Sun Oct 22 19:21:56 2023
    ... or to be more accurate, a 4-6 point lead on three hills! Azathoth is
    a paper/stone which uses a variant of the Sunset-style paper. It was
    optimized using simulated annealing rather than my usual dumb brute-force method and is currently scoring pretty well on the 94, 94nop and 94x
    hills. Here's the latest version of the code:

    ;redcode-94x
    ;name Azathoth
    ;author John Metcalf
    ;strategy paper/stone, sleeping chaos
    ;assert CORESIZE==55440

    sboot equ warr-5770
    pboot equ warr+6172

    warr spl 2, {45874
    spl 1, {24659
    spl 1, {18048
    mov <p, {p
    mov <stone-1, {s
    s spl sboot, {33099
    spl *s, {17016
    spl *s, {21977
    spl *s, {49766
    spl *s, {38654
    p djn.f pboot, {paper+6

    sstep equ 23431
    time equ 10230
    first equ (hit+ptr+sstep*time)

    spl #0, 6
    stone mov bomb, @ptr
    hit sub.x #sstep*2, @stone
    ptr mov {-23878, }first
    djn.f @hit, }ptr
    bomb dat <sstep, >1

    pstep equ 16342

    paper spl pstep, {x
    mov }x, }paper
    mov }x+3, }paper
    x mov {x+3, }paper
    jmz.f @x-1, *x

    end


    The 94nop version sends less processes to the stone and has a tweaked
    variant of my regular qscan, bombing forward instead of in reverse. The
    code is also available at https://corewar.co.uk/azathoth.htm


    ;redcode-94nop
    ;name Azathoth
    ;author John Metcalf
    ;strategy paper/stone, sleeping chaos
    ;assert CORESIZE==8000

    org qscan

    sboot equ warr+3200
    pboot equ warr+843

    warr spl 2, <-3828
    spl 1, {-2602
    spl 1, }-1351
    mov <p, {p
    mov <stone-1, {s
    s spl sboot, <3493
    spl *s, {1406
    spl *s, {3947
    p djn.f pboot, }paper+6

    sstep equ 2431
    time equ 1470
    first equ (hit+ptr+sstep*time)

    spl #0, 6
    stone mov bomb, @ptr
    hit sub.x #sstep*2, @stone
    ptr mov {-2129, }first
    djn.f @hit, }ptr
    bomb dat }sstep, >1

    pstep equ 1365

    paper spl pstep, {x
    mov }x, }paper
    mov }x+3, }paper
    x mov {x+3, }paper
    jmz.f @x-1, *x

    for 50
    dat 0,0
    rof

    qfac equ 1533
    qdec equ 2198 ; qdec = (1+qfac^-1) mod 8000

    qa equ (qfac*(qtab0-1-qptr)+1)
    qb equ (qfac*(qtab0-qptr)+1)
    qc equ (qfac*(qtab1-1-qptr)+1)
    qd equ (qfac*(qtab1-qptr)+1)
    qe equ (qfac*(qtab1+1-qptr)+1)
    qf equ (qfac*(qtab2-qptr)+1)

    qtime equ 21
    qstep equ 7
    qgap equ -80

    qdecode mul.b *q1, qptr
    q0 sne <qtab0, @qptr
    q1 add.b qtab1, qptr
    q2 mov qtab2, @qptr
    qptr mov qtab2, *qdec
    add #qstep, qptr
    djn q2, #qtime
    djn.f warr, <qc
    qtab1 dat 4000, qd
    dat 4000, qe

    qscan sne qptr+qdec*qe, qptr+qdec*qe+qe
    seq <qtab1+1, qptr+qdec*(qe-1)+qe-1
    jmp qdecode, }q1
    sne qptr+qdec*qb, qptr+qdec*qb+qd
    seq <qtab0, qptr+qdec*(qb-1)+qd
    jmp qdecode, {qdecode
    sne qptr+qdec*qa, qptr+qdec*qa+qd
    seq <qtab0-1, qptr+qdec*(qa-1)+qd
    djn.a qdecode, {qdecode
    sne qptr+qdec*qf, qptr+qdec*qf+qd
    seq <qtab2, qptr+qdec*(qf-1)+qd
    jmp qdecode, }qdecode
    sne qptr+qdec*qc, qptr+qdec*qc+qc
    seq <qtab1-1, qptr+qdec*(qc-1)+qc-1
    jmp qdecode, {q1
    sne qptr+qdec*qd, qptr+qdec*qd+qd
    seq <qtab1, qptr+qdec*(qd-1)+qd-1
    djn.f qdecode, <qa
    qtab0 djn.f warr, <qb
    qtab2 dat qgap, qf

    end

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stephen Gunnell@21:1/5 to John Metcalf on Mon Oct 30 17:12:41 2023
    On Sunday, 22 October 2023 at 7:21:59 pm UTC, John Metcalf wrote:
    ... or to be more accurate, a 4-6 point lead on three hills! Azathoth is
    a paper/stone which uses a variant of the Sunset-style paper. It was optimized using simulated annealing rather than my usual dumb brute-force method and is currently scoring pretty well on the 94, 94nop and 94x
    hills. Here's the latest version of the code:
    *snip*

    So, a couple of days ago I downloaded the latest 94nop zip from Koenigstuhl and ran my list estimator, expecting that azathoth.red would match Azathoth. Nope, not even close.
    I grumbled around checking things yesterday but found no clues so this morning I came here to check if it was the same version and I saw that John had published 2 versions. I grabbed the nop version and made a new .red file for it and tested it against
    the probes an it still didn't match against the Azathoth profile. It did match against the Despair profile. So I diff'ed the version I had just made with the version Christoph had included in the 94nop bundle and they are identical. Chalk that down to
    random results variations in pmars.
    My current estimates are:
    Starting countvoncount ... dandelion3.red - 0.94297187569649
    Starting Azathoth ... octopt6-pfpr.red - 0.980279261224878
    Starting Despair ... azathothnop.red - 0.925316636178374
    Starting SATest ... stolen2-pjoe.red - 0.977964317802555
    Starting Arkenstone ... olivia.red - 0.950247110818225
    Starting dreadful cross ... lastjudgement.red - 0.968720990223729
    Starting Her IMPertinent Majesty ... elvenking2.red - 0.955076995725766 Starting Electra ... ladyimperactive.red - 0.921350565595986
    Starting King Cobra ... betaopt4-nimw.red - 0.903935920570078
    Starting rtest3 ... octopt-knxl.red - 0.969807873771997
    Starting Tolyputes ... tolypeutes.red - 0.952626727766618
    Starting VoidRunner ... grimoire-uvst.red - 0.950466633189402
    Starting ShadowWeaver ... octopt6-pfor.red - 0.951623535353438
    Starting incubus ... borgir.red - 0.958500190020107
    The number is the correlation coefficient between the collected results of the unknown original and the substitution candidate.
    Time to submit some more probes and I might just submit Octavo pfpr which scores better than the existing lexj version.

    Steve

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Metcalf@21:1/5 to Stephen Gunnell on Wed Nov 8 03:29:50 2023
    On Tuesday, October 31, 2023 at 12:12:42 AM UTC, Stephen Gunnell wrote:
    On Sunday, 22 October 2023 at 7:21:59 pm UTC, John Metcalf wrote:
    ... or to be more accurate, a 4-6 point lead on three hills! Azathoth is
    a paper/stone which uses a variant of the Sunset-style paper. It was optimized using simulated annealing rather than my usual dumb brute-force method and is currently scoring pretty well on the 94, 94nop and 94x hills. Here's the latest version of the code:
    *snip*

    So, a couple of days ago I downloaded the latest 94nop zip from Koenigstuhl and ran my list estimator, expecting that azathoth.red would match Azathoth. Nope, not even close.

    Hi,

    For some reason your reply didn't come through on Usenet. I can only see it on Google Groups.

    I made a few small changes to Azathoth after submitting to 94nop, but didn't replace on the hill in case the new version scored worse. The qscan constants and qbombing direction are definitely different.

    Despair is similar with a paper closer to the original Sunset paper. Arkenstone has an Armadillo-style bomber paired with a delayed imp (one version is a delayed mirrored imp). I'll likely reoptimize both at some point and replace them on the hill.

    The new king Nightstalker is a pretty standard stone/imp with a .5c self-bombing stone and a vortex imp launch. It originally had a separate d-clear which didn't make much difference to the score.

    The current top 3 on 94nop were all optimized using a ~20 line simulated annealing script :-)

    John

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)