02:42:19: -!- Doxin has quit (Remote host closed the connection).
06:04:13: -!- impomatic_ has joined #corewars.
06:06:52: -!- impomatic has quit (Ping timeout: 272 seconds).
06:06:54: -!- impomatic_ is now known as impomatic.
07:33:14: -!- inversed has joined #corewars.
08:48:37: <impomatic> Hi Inversed :-)
08:48:58: * impomatic is working on another entry for the Tiny Stone Challenge.
09:15:52: <inversed> Hi impomatic
09:17:20: <inversed> I wish other authors were as active as you
09:17:23: <impomatic> I'm hoping for a few more entries. It's lonely at the top!
09:18:10: <inversed> I've sent some email invitations
09:18:42: <inversed> But I can't find address of David Hillis, maybe you know it
09:19:18: <impomatic> Sending a msg
09:19:36: <inversed> Got it
09:21:03: <inversed> Two evolved entries (Bvowk and Jacob Rohal) were disqualified for not being a stones
09:21:44: <inversed> So I'm still waiting for the first evolved warrior
09:22:48: <impomatic> It might be tricky to evolve a stone without seeding the evolver.
09:23:20: <impomatic> The "no clones" rule might make things a bit tricky.
09:23:31: <inversed> True, but should be feasible with seeding
09:24:15: <impomatic> E.g. if someone writes a Carbonite style stone (or a .5c Carbonite style) there's not much to vary apart from the step, etc (or adding a decoy-maker)
09:24:55: <inversed> But you can use a different imp launcher
09:25:19: <inversed> Moreover, the rule only applies to the published tiny warriors
09:25:32: <impomatic> I was wondering if I can dominate all of the seed warriors with three entries but it doesn't look like I'll manage.
09:27:04: <inversed> I've done some testing with my unpublished warriors and I'm pretty sure it is possible
09:27:58: <inversed> Yukikaze at the tiny hill uses a stone evolved from the silkdwarf-seeded population
09:33:32: <impomatic> Is a Silent Snowfall style imp launcher allowed, or is that too much like a paper?
09:38:42: <inversed> Paper-launched imps are allowed as long as there is only one silk
09:39:37: <inversed> Otherwise it'd replicate like a paper
09:54:40: <impomatic> I've just sent a test warrior to see how it scores :-)
10:05:22: <inversed> Scans 169.1, papers 87.0
10:07:32: <impomatic> Hmmm... not very good!
10:07:53: <impomatic> I'll optimize it and send another version tomorrow.
10:26:55: <impomatic> At the end of the tournament is everyone with rank 1 joint winner?
10:29:46: <inversed> Yes, rank 1 = winners
10:30:18: <inversed> I thought about tie-breaks (convex hull, mean score), but abandoned the idea
10:31:30: <inversed> The only contest where everyone can win at the same time :)
11:32:53: -!- Doxin has joined #corewars.
12:47:12: <impomatic> I'm working on a new version of Wraith.
13:21:49: <impomatic> Inversed: are you saving the results and graph every day? It might be interesting to see how it changes.
13:25:43: <inversed> No, I just overwrite the graph. But I'm keeping a history of submissions.
14:41:31: <bvowk> ...
15:41:07: <inversed> ....
15:50:03: -!- snapfractalpop has joined #corewars.
15:52:51: <bvowk> how's it going inversed?
16:00:03: -!- snapfractalpop has parted #corewars.
16:20:28: <inversed> Hi bwovk
16:21:30: <inversed> Perhaps you can give me an advice on how should I promote my research
16:26:56: <inversed> I've completed my PhD thesis but there is no way I can publish it in Russia
16:30:37: <bvowk> Sorry, I'm not much help there.
16:31:04: <bvowk> PK would be your best bet.
16:31:17: <bvowk> Or at least who I'd ask ;)
16:32:49: <inversed> Paul Kline also has an academic background?
16:35:36: <bvowk> PK Huong
16:37:19: <bvowk> https://twitter.com/pkhuong
16:46:37: <inversed> I see, thanks
16:48:27: <inversed> One of the next CoreOps issues will deal with evolvers
17:01:56: <bvowk> oooo :)
17:06:01: <inversed> Expect a scathing critique of existing evolvers including yours
17:15:56: <bvowk> lol
17:17:10: <inversed> What replacement scheme do you use?
17:26:43: <bvowk> It's a hill
17:26:55: <bvowk> better pushes off the bottom.
17:27:47: <bvowk> which doesn't work well by itself, so I have a large pile of threads all running their own hill that is made by sampling at random from a large pool that never drops any members
17:28:08: <bvowk> periodically they return their improvements to the larger pool and retrieve a new selection
17:35:41: <inversed> A simple scheme where the worst warriors are replaced performs very poorly because of the premature diversity loss
17:37:11: <inversed> Your modification should alleviate the problem at the cost of introducing extra parameters
17:38:22: <bvowk> It makes it really easy to run clients on random hardware in strange devices too.
17:39:26: <bvowk> I think I need to tweak my mutation algorithm to do instruction inserts instead of just mutation, breeding and cutting lines.
17:39:38: <bvowk> That would make evolving stones easier.
17:39:44: <inversed> Well, I don't have a lot of hardware and just run 4 threads
17:39:53: <inversed> I use non-parametric diversity-preserving strategies
17:40:23: <bvowk> Well, I've got a hack where I can change the score parameters of the hill.
17:41:19: <bvowk> it doesn't have to be a simple score against a benchmark or a score against the hill.
17:41:28: <bvowk> bbiab tho.
18:03:48: <impomatic> Inversed: did you send Paul Kline and Robert Macrae an invite?
18:06:31: <inversed> Yes, i've sent (late) invites to anyone who participated in the last few tournaments
18:08:35: <inversed> Paul Kline, Steve Gunnell, Robert Macrae, Philip Thorne, Dave Hillis, David Houston, Fizmo
18:08:42: <inversed> Missed anyone?
18:13:57: <impomatic> I think that's it from the last couple of tournaments.
18:21:54: <inversed> Also Simon Wainwright, but I could not find his email
18:26:16: <impomatic> It's on the multiwarrior hill :-) http://koth.org/lcgi-bin/current.pl?hill94m
19:17:56: <bvowk> inversed: what would you suggest for replacement?
19:32:49: <inversed> It is an issue I'm actively investigating
19:34:01: <inversed> There is a dilemma: replacement must preserve diversity, but at the same time eventually lead to convergence
19:34:41: <inversed> I've tried a few basic replacement schemes
19:35:29: <inversed> In order of diversity preservation: replace most similar in population, most similar parent, random parent, worst parent, worst in population
19:36:24: <inversed> Of these schemes, "replace random parent" appears to be the best overall choice
19:37:44: <inversed> I'm also investigating hybrid and other unusual schemes like stratified population and sometimes they seem to provide good results
19:38:50: <inversed> The best method I came up with involves changing the replacement strategy with time
19:40:43: <inversed> During a typical RedShift run I start with the diversity-preserving strategy and gradually "downgrade" it towards "replace worst in population"
19:41:54: <bvowk> interesting.
19:42:10: <bvowk> what do you use to decide when to switch?
19:42:46: <bvowk> Or could you just switch back and forth and get reasonable results? (assuming none of those switches really depleted the diversity too badly)
19:43:37: <inversed> I monitor the progress and when I see that the evolution stagnates at some stage, I switch to the next replacement
19:44:59: <inversed> I do not switch back because this will not increase the diversity
19:46:37: <bvowk> so your runs only go one way? random -> diversity -> replacement -> done?
19:47:11: <inversed> Yes, the run is finished after all the diversity has been depleted
19:47:44: <bvowk> do you feed it's results back into another run?
19:48:38: <inversed> Generally no, as it would greatly reduce the initial diversity
19:49:42: <inversed> But I've done a few runs seeded with many different handcoded replicators and got very good results
19:50:35: <bvowk> That's pretty much now mine functions, I start randomly many times and feed it back to a large pool, and then start mixing random code with my previous pooled results
19:51:30: <bvowk> so, I've got an archive pool, and island pool, and the running hills.
19:51:42: <inversed> That's a good method in a sense that you reuse existing knowledge
19:52:06: <bvowk> the archive pool is fed with the results of the island runs, and the island runs get seeded with a small sample of the archive pool.
19:52:19: <bvowk> the running hills pull samples of the island, and feed back to the island.
19:52:36: <inversed> But you also have to start some runs from scratch, otherwise your archive will stagnate
19:53:39: <bvowk> yeah, pretty much.
19:54:10: <inversed> Again there is a diversity / convergence tradeoff that so frequently appears in metaheuristic algorithms
19:55:07: <bvowk> it eventually seems to find some interesting things.
19:55:52: <bvowk> Although I think I should start tagging warriors in the archive with more information, because the score isn't really all that is interesting.
19:56:30: <inversed> Are you still evolving for nano? I think tiny is much more exciting
19:57:03: <bvowk> I'm doing tiny right now.. I had the koth for nano for a (depressingly short) while.
19:58:09: <inversed> I challenge you to beat my tiny results :)
19:58:52: <inversed> Preferably without seeding with instructions from handcoded warriors
20:00:39: <bvowk> I don't seed anything with this codebase.
20:00:48: <bvowk> it's all random.
20:01:19: <bvowk> I used to run it benchmarking against itself too, but that took *WAY* too long.
20:02:33: <inversed> I reckon your previous warriors relied on bigrams extracted from human code
20:05:05: <bvowk> it definitely made things faster to seed the distributions like that.
20:05:41: <inversed> But it hurt the diversity a lot
20:06:49: <inversed> Your 94nop warriors are all silk-based, something that could never appear from scratch
20:07:22: <bvowk> not never. it just might take forever to get the magic just right.
20:08:07: <inversed> Maybe one front silk with a great amount of luck
20:08:38: <inversed> But as a general rule, evolution finds solutions very different from human ones
20:08:51: <bvowk> the 94nop warriors also had some human tweaked bootup/blocking
20:08:58: <inversed> It is a blessing, not a curse
20:09:14: <bvowk> I've got some nifty papers and paper clears coming right now.
20:09:39: <bvowk> They're a bit brittle for evolving well tho.
20:10:04: * impomatic has just been playing Core War on a ZX Spectrum! 8-bit Z80 CPU @ 3.5MHz, 128K memory.
20:10:30: <bvowk> damn.
20:11:24: <inversed> 250 94nop battles must take quite some time
20:11:51: <bvowk> heh
20:11:56: <bvowk> You'd be there for ages.
20:12:01: <bvowk> You'll need to cluster them ;)
20:13:24: <inversed> BTW bwovk, if you want to enter the tiny stone challenge, seeding the population with handcoded stones might actually be a good idea
20:14:29: <impomatic> 1 battle took ages!
20:24:00: <impomatic> Make a quick video https://youtu.be/VFuzVBuDUNk - runs at approx 250 instructions per second.
20:25:20: <inversed> Cool
20:30:03: <impomatic> There are three MARS for the Spectrum. I'll try to get one of the others running tomorrow.
20:33:28: <inversed> ZX Spectrum demoscene is fairly active in Russia
20:35:58: <impomatic> I always wanted a Хоббит Spectrum clone. They have a few extra features like Forth and Logo built in.
20:36:07: <impomatic> Not too bothered about the other clones.
20:41:47: <inversed> Random chiptune: http://www.youtube.com/watch?v=9xk63yq56OU
21:10:55: <inversed> I'm off to sleep, bye
21:11:06: -!- inversed has parted #corewars.