15
4
This post is loosely inspired by this mathoverflow post.
A Vanisher is any pattern in Conway's Game of life that completely disappears after one step. For example the following pattern is a size 9 Vanisher.
An interesting property of Vanishers is that any pattern can be made into a vanishing one by simply adding more live cells. For example the following pattern can be completely enclosed into a vanishing pattern like so
However we can make that pattern into a Vanisher by adding even fewer live cells.
Your task is to write a program that does this task for us. That is given a pattern as input find and output a vanishing pattern containing the input. You do not necessarily have to find the optimal pattern just a pattern that works.
Scoring
To score your program you will have to run it on all of the size 6 polyplets (not double counting symmetrically equivalent cases). Here is a pastebin containing each polyplet on its own line. There should be 524 of them total. They are represented as a list of six coordinates ((x,y)
tuples) each being the location of a live cell.
Your score will be the total number of new cells added to make all of these polyplets into Vanishers.
Ties
In the case of ties I will provide a list of the size 7 polyplets for the programs to be run on.
IO
I would like IO to be pretty flexible you can take input and output in reasonable formats however you are probably going to want to take input in the same format as the raw input data I provided. Your format should be consistent across multiple runs.
Timing
Your program should run in a reasonable amount of time (approx <1 day) on a reasonable machine. I'm not going to really be enforcing this too much but I'd prefer if we would all play nice.
(of course you must be able to score your own code) – user202729 – 2018-01-04T16:31:13.997
Related meta for the last paragraph – user202729 – 2018-01-04T16:32:06.753
Are you going to ban hardcoding? – FlipTack – 2018-01-04T17:24:07.793
1@FlipTack I'm pretty sure its already a standard loophole. Plus a well written program is probably just as good as a human anyway. – Post Rock Garf Hunter – 2018-01-04T17:25:07.500
Is this a [tag:test-battery]? – H.PWiz – 2018-01-04T18:00:06.540
@H.PWiz Looks like it is. For some reason I had a different idea of what [tag:test-battery] was. – Post Rock Garf Hunter – 2018-01-04T18:05:22.473
the first person to successfully score their program [...] will be the winner [tag:fastest-scoring]? – Erik the Outgolfer – 2018-01-04T19:37:33.283
@EriktheOutgolfer I guess? It's the second tie breaker so I don't really anticipate having to break that out. – Post Rock Garf Hunter – 2018-01-04T19:38:41.567
"well written program is probably just as good as a human"... or even better... depends on the objective. Also... @WheatWizard The format of the test cases are a list of a
(row, column)
tuple, correct? – user202729 – 2018-01-05T00:58:15.193@user202729 Yes, I'll make that clear in the question. Although it doesn't matter if it's
row,column
orcolumn,row
because of symmetry. – Post Rock Garf Hunter – 2018-01-05T01:16:45.760Just to clarify, it has to work for any size of polyplets? – Οurous – 2018-01-05T02:18:58.790
@Οurous In theory it should work for any input pattern. You are free to optimize for polyplets though. – Post Rock Garf Hunter – 2018-01-05T02:29:19.127
Would it not make more sense to have the tie break be runtime speed? Since people have different time-zones, the fastest posted scoring could disadvantage some people by many hours, simply because they're sleeping or at work. – Οurous – 2018-01-05T02:55:34.413
1@Οurous I think I'll just remove the third tie breaker. – Post Rock Garf Hunter – 2018-01-05T02:59:19.007