diff --git a/ipynb/Advent 2017.ipynb b/ipynb/Advent 2017.ipynb
index b6bec63..c2db159 100644
--- a/ipynb/Advent 2017.ipynb
+++ b/ipynb/Advent 2017.ipynb
@@ -8,7 +8,7 @@
"\n",
"Peter Norvig\n",
"\n",
- "I'm doing the [Advent of Code](https://adventofcode.com) puzzles, just like [last year](https://github.com/norvig/pytudes/blob/master/ipynb/Advent%20of%20Code.ipynb). This time, my terms of engagement are a bit different:\n",
+ "I'm doing the [Advent of Code](https://adventofcode.com) puzzles, just like [last year](https://github.com/norvig/pytudes/blob/master/ipynb/Advent%20of%20Code.ipynb). This time, my terms of engagement are:\n",
"\n",
"* I won't write a summary of each day's puzzle description. Follow the links in the section headers (e.g. **[Day 1](https://adventofcode.com/2017/day/1)**) to understand what each puzzle is asking. \n",
"* What you see is mostly the algorithm I first came up with first, although sometimes I go back and refactor if I think the original is unclear.\n",
@@ -259,6 +259,10 @@
" for line in iterable:\n",
" if re.search(pattern, line):\n",
" print(line)\n",
+ " \n",
+ "class Struct:\n",
+ " \"A structure that can have any fields defined.\"\n",
+ " def __init__(self, **entries): self.__dict__.update(entries)\n",
"\n",
"################ A* and Breadth-First Search (tracking states, not actions)\n",
"\n",
@@ -375,7 +379,7 @@
},
{
"cell_type": "code",
- "execution_count": 183,
+ "execution_count": 3,
"metadata": {},
"outputs": [
{
@@ -384,7 +388,7 @@
"2014"
]
},
- "execution_count": 183,
+ "execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
@@ -835,7 +839,7 @@
"source": [
"Now I'll make a little interpreter, `run`, which takes a program, loads it into memory,\n",
" and executes the instruction, maintaining a program counter, `pc`, and doing the incrementing/branching as described in the puzzle,\n",
- "until the program counter is out of range:"
+ "until the program counter no longer points to a location in memory:"
]
},
{
@@ -857,9 +861,9 @@
"source": [
"def run(program):\n",
" memory = list(program)\n",
- " mlen = len(memory)\n",
" pc = steps = 0\n",
- " while 0 <= pc < mlen:\n",
+ " M = len(memory)\n",
+ " while 0 <= pc < M:\n",
" steps += 1\n",
" oldpc = pc\n",
" pc += memory[pc]\n",
@@ -913,9 +917,9 @@
"source": [
"def run2(program, verbose=False):\n",
" memory = list(program)\n",
- " mlen = len(memory)\n",
" pc = steps = 0\n",
- " while 0 <= pc < mlen:\n",
+ " M = len(memory)\n",
+ " while 0 <= pc < M:\n",
" steps += 1\n",
" oldpc = pc\n",
" pc += memory[pc]\n",
@@ -938,6 +942,14 @@
"execution_count": 21,
"metadata": {},
"outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "CPU times: user 6.21 s, sys: 24.6 ms, total: 6.24 s\n",
+ "Wall time: 6.28 s\n"
+ ]
+ },
{
"data": {
"text/plain": [
@@ -950,14 +962,14 @@
}
],
"source": [
- "run2(program)"
+ "%time run2(program)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "Thanks to [Clement Sreeves](https://github.com/ClementSreeves) for the suggestion of making a distinction between the `program` and the `memory`. In my first version, `run` would mutate the argument, which was OK for a short exercise, but not best practice for a reliable API."
+ "Thanks to [Clement Sreeves](https://github.com/ClementSreeves) for the suggestion of making a distinction between the `program` and the `memory`. In my first version, `run` would mutate the argument, which was OK for a short exercise, but not best practice for a reliable API. And thanks to [Max Albert](https://github.com/maxalbert) for speeding up the loop by pulling the `len(memory)` out of the loop."
]
},
{
@@ -1109,7 +1121,7 @@
},
{
"cell_type": "code",
- "execution_count": 29,
+ "execution_count": 27,
"metadata": {},
"outputs": [
{
@@ -1118,7 +1130,7 @@
"8038"
]
},
- "execution_count": 29,
+ "execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
@@ -1150,7 +1162,7 @@
},
{
"cell_type": "code",
- "execution_count": 30,
+ "execution_count": 28,
"metadata": {
"collapsed": true
},
@@ -1180,7 +1192,7 @@
},
{
"cell_type": "code",
- "execution_count": 31,
+ "execution_count": 29,
"metadata": {},
"outputs": [
{
@@ -1189,7 +1201,7 @@
"{'wiapj'}"
]
},
- "execution_count": 31,
+ "execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
@@ -1209,7 +1221,7 @@
},
{
"cell_type": "code",
- "execution_count": 32,
+ "execution_count": 30,
"metadata": {
"collapsed": true
},
@@ -1227,7 +1239,7 @@
},
{
"cell_type": "code",
- "execution_count": 33,
+ "execution_count": 31,
"metadata": {
"collapsed": true
},
@@ -1249,7 +1261,7 @@
},
{
"cell_type": "code",
- "execution_count": 34,
+ "execution_count": 32,
"metadata": {},
"outputs": [
{
@@ -1258,7 +1270,7 @@
"{'eionkb', 'lsire', 'wiapj', 'ycpcv'}"
]
},
- "execution_count": 34,
+ "execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
@@ -1276,7 +1288,7 @@
},
{
"cell_type": "code",
- "execution_count": 35,
+ "execution_count": 33,
"metadata": {},
"outputs": [
{
@@ -1285,7 +1297,7 @@
"'eionkb'"
]
},
- "execution_count": 35,
+ "execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
@@ -1308,7 +1320,7 @@
},
{
"cell_type": "code",
- "execution_count": 38,
+ "execution_count": 34,
"metadata": {},
"outputs": [
{
@@ -1317,7 +1329,7 @@
"1072"
]
},
- "execution_count": 38,
+ "execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
@@ -1342,7 +1354,7 @@
},
{
"cell_type": "code",
- "execution_count": 39,
+ "execution_count": 35,
"metadata": {},
"outputs": [
{
@@ -1351,7 +1363,7 @@
"6828"
]
},
- "execution_count": 39,
+ "execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
@@ -1381,7 +1393,7 @@
},
{
"cell_type": "code",
- "execution_count": 40,
+ "execution_count": 36,
"metadata": {},
"outputs": [
{
@@ -1390,7 +1402,7 @@
"7234"
]
},
- "execution_count": 40,
+ "execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
@@ -1419,7 +1431,7 @@
},
{
"cell_type": "code",
- "execution_count": 41,
+ "execution_count": 37,
"metadata": {},
"outputs": [
{
@@ -1428,7 +1440,7 @@
"'{{{{{{{},},{{},}},{{{{}},{{{{{}}},{}},},{{{{},{,{{{}}}}},},{{{}},{{}}}'"
]
},
- "execution_count": 41,
+ "execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
@@ -1449,7 +1461,7 @@
},
{
"cell_type": "code",
- "execution_count": 42,
+ "execution_count": 38,
"metadata": {},
"outputs": [
{
@@ -1458,7 +1470,7 @@
"9662"
]
},
- "execution_count": 42,
+ "execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
@@ -1490,7 +1502,7 @@
},
{
"cell_type": "code",
- "execution_count": 43,
+ "execution_count": 39,
"metadata": {},
"outputs": [
{
@@ -1499,7 +1511,7 @@
"5989"
]
},
- "execution_count": 43,
+ "execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
@@ -1517,7 +1529,7 @@
},
{
"cell_type": "code",
- "execution_count": 44,
+ "execution_count": 40,
"metadata": {},
"outputs": [
{
@@ -1526,7 +1538,7 @@
"4903"
]
},
- "execution_count": 44,
+ "execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
@@ -1553,7 +1565,7 @@
},
{
"cell_type": "code",
- "execution_count": 45,
+ "execution_count": 41,
"metadata": {
"collapsed": true
},
@@ -1583,7 +1595,7 @@
},
{
"cell_type": "code",
- "execution_count": 46,
+ "execution_count": 42,
"metadata": {
"collapsed": true
},
@@ -1595,7 +1607,7 @@
},
{
"cell_type": "code",
- "execution_count": 47,
+ "execution_count": 43,
"metadata": {
"collapsed": true
},
@@ -1607,7 +1619,7 @@
},
{
"cell_type": "code",
- "execution_count": 48,
+ "execution_count": 44,
"metadata": {},
"outputs": [
{
@@ -1635,7 +1647,7 @@
},
{
"cell_type": "code",
- "execution_count": 49,
+ "execution_count": 45,
"metadata": {},
"outputs": [
{
@@ -1644,7 +1656,7 @@
"4480"
]
},
- "execution_count": 49,
+ "execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
@@ -1664,7 +1676,7 @@
},
{
"cell_type": "code",
- "execution_count": 50,
+ "execution_count": 46,
"metadata": {},
"outputs": [
{
@@ -1673,7 +1685,7 @@
"'c500ffe015c83b60fad2e4b7d59dabc4'"
]
},
- "execution_count": 50,
+ "execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
@@ -1736,7 +1748,7 @@
},
{
"cell_type": "code",
- "execution_count": 51,
+ "execution_count": 47,
"metadata": {
"collapsed": true
},
@@ -1754,7 +1766,7 @@
},
{
"cell_type": "code",
- "execution_count": 52,
+ "execution_count": 48,
"metadata": {},
"outputs": [
{
@@ -1763,7 +1775,7 @@
"705"
]
},
- "execution_count": 52,
+ "execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
@@ -1794,7 +1806,7 @@
},
{
"cell_type": "code",
- "execution_count": 53,
+ "execution_count": 49,
"metadata": {},
"outputs": [
{
@@ -1803,7 +1815,7 @@
"1469"
]
},
- "execution_count": 53,
+ "execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
@@ -1833,7 +1845,7 @@
},
{
"cell_type": "code",
- "execution_count": 54,
+ "execution_count": 50,
"metadata": {
"collapsed": true
},
@@ -1856,7 +1868,7 @@
},
{
"cell_type": "code",
- "execution_count": 55,
+ "execution_count": 51,
"metadata": {
"collapsed": true
},
@@ -1876,7 +1888,7 @@
},
{
"cell_type": "code",
- "execution_count": 56,
+ "execution_count": 52,
"metadata": {},
"outputs": [
{
@@ -1885,7 +1897,7 @@
"115"
]
},
- "execution_count": 56,
+ "execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
@@ -1907,7 +1919,7 @@
},
{
"cell_type": "code",
- "execution_count": 57,
+ "execution_count": 53,
"metadata": {},
"outputs": [
{
@@ -1916,7 +1928,7 @@
"221"
]
},
- "execution_count": 57,
+ "execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
@@ -1940,7 +1952,7 @@
},
{
"cell_type": "code",
- "execution_count": 58,
+ "execution_count": 54,
"metadata": {
"collapsed": true
},
@@ -1961,7 +1973,7 @@
},
{
"cell_type": "code",
- "execution_count": 75,
+ "execution_count": 55,
"metadata": {},
"outputs": [
{
@@ -1970,7 +1982,7 @@
"((0, 3), (1, 2), (2, 4), (4, 6), (6, 4))"
]
},
- "execution_count": 75,
+ "execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
@@ -1982,7 +1994,7 @@
},
{
"cell_type": "code",
- "execution_count": 76,
+ "execution_count": 56,
"metadata": {},
"outputs": [
{
@@ -1991,7 +2003,7 @@
"1504"
]
},
- "execution_count": 76,
+ "execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
@@ -2011,7 +2023,7 @@
},
{
"cell_type": "code",
- "execution_count": 60,
+ "execution_count": 57,
"metadata": {},
"outputs": [
{
@@ -2020,7 +2032,7 @@
"10"
]
},
- "execution_count": 60,
+ "execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
@@ -2040,7 +2052,7 @@
},
{
"cell_type": "code",
- "execution_count": 61,
+ "execution_count": 58,
"metadata": {},
"outputs": [
{
@@ -2049,7 +2061,7 @@
"3823370"
]
},
- "execution_count": 61,
+ "execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
@@ -2069,7 +2081,7 @@
},
{
"cell_type": "code",
- "execution_count": 62,
+ "execution_count": 59,
"metadata": {
"collapsed": true
},
@@ -2080,7 +2092,7 @@
},
{
"cell_type": "code",
- "execution_count": 63,
+ "execution_count": 60,
"metadata": {},
"outputs": [
{
@@ -2089,7 +2101,7 @@
"8316"
]
},
- "execution_count": 63,
+ "execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
@@ -2114,7 +2126,7 @@
},
{
"cell_type": "code",
- "execution_count": 64,
+ "execution_count": 61,
"metadata": {
"collapsed": true
},
@@ -2122,7 +2134,8 @@
"source": [
"def Grid(key, N=128+2):\n",
" \"Make a grid, with a border around it.\"\n",
- " rows = [['0'] + list(bits(key, i)) + ['0'] for i in range(128)]\n",
+ " rows = [['0'] + list(bits(key, i)) + ['0'] \n",
+ " for i in range(128)]\n",
" empty = ['0'] * len(rows[0])\n",
" return [empty] + rows + [empty]"
]
@@ -2136,7 +2149,7 @@
},
{
"cell_type": "code",
- "execution_count": 65,
+ "execution_count": 62,
"metadata": {
"collapsed": true
},
@@ -2152,7 +2165,7 @@
},
{
"cell_type": "code",
- "execution_count": 66,
+ "execution_count": 63,
"metadata": {
"collapsed": true
},
@@ -2171,7 +2184,7 @@
},
{
"cell_type": "code",
- "execution_count": 67,
+ "execution_count": 64,
"metadata": {},
"outputs": [
{
@@ -2180,7 +2193,7 @@
"1074"
]
},
- "execution_count": 67,
+ "execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
@@ -2195,42 +2208,49 @@
"source": [
"# [Day 15](https://adventofcode.com/2017/day/15): Dueling Generators\n",
"\n",
- "There are lots of arbitrary integers below: my personalized inputs are `516` and `190`; the other numbers are shared by all puzzle-solvers. I decided to make infinite generators of numbers, using `gen`:"
+ "My personalized inputs for this puzzle are `516` and `190`; the other numbers are shared by all puzzle-solvers. I decided to make infinite generators of numbers, using `gen`:"
]
},
{
"cell_type": "code",
- "execution_count": 68,
+ "execution_count": 65,
"metadata": {},
"outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "CPU times: user 24.8 s, sys: 64 ms, total: 24.9 s\n",
+ "Wall time: 24.9 s\n"
+ ]
+ },
{
"data": {
"text/plain": [
"597"
]
},
- "execution_count": 68,
+ "execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def gen(prev, factor, m=2147483647):\n",
- " \"Generate an infinite sequence of numbers according to the rules.\"\n",
- " while True:\n",
+ " \"Generate a sequence of numbers according to the rules; stop at 0.\"\n",
+ " while prev:\n",
" prev = (prev * factor) % m\n",
" yield prev\n",
" \n",
- "def judge(A, B, N=40*10**6, b=16): \n",
+ "def judge(A, B, N=40*10**6, mask=2**16-1): \n",
" \"How many of the first N pairs from A and B agree in the last b bits?\"\n",
- " m = 2 ** b\n",
- " return quantify(next(A) % m == next(B) % m\n",
- " for _ in range(N))\n",
- " \n",
- "A = lambda: gen(516, 16807)\n",
- "B = lambda: gen(190, 48271)\n",
+ " return quantify(a & mask == b & mask\n",
+ " for (a, b, _) in zip(A, B, range(N)))\n",
"\n",
- "judge(A(), B())"
+ "def A(): return gen(516, 16807)\n",
+ "def B(): return gen(190, 48271)\n",
+ "\n",
+ "%time judge(A(), B())"
]
},
{
@@ -2244,16 +2264,24 @@
},
{
"cell_type": "code",
- "execution_count": 69,
+ "execution_count": 66,
"metadata": {},
"outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "CPU times: user 16.3 s, sys: 23.3 ms, total: 16.4 s\n",
+ "Wall time: 16.4 s\n"
+ ]
+ },
{
"data": {
"text/plain": [
"303"
]
},
- "execution_count": 69,
+ "execution_count": 66,
"metadata": {},
"output_type": "execute_result"
}
@@ -2263,7 +2291,7 @@
" \"Elements of iterable that are divisible by m\"\n",
" return (n for n in iterable if n % m == 0)\n",
" \n",
- "judge(criteria(4, A()), criteria(8, B()), 5*10**6)"
+ "%time judge(criteria(4, A()), criteria(8, B()), 5*10**6)"
]
},
{
@@ -2277,7 +2305,7 @@
},
{
"cell_type": "code",
- "execution_count": 79,
+ "execution_count": 67,
"metadata": {},
"outputs": [
{
@@ -2295,7 +2323,7 @@
" 's15')"
]
},
- "execution_count": 79,
+ "execution_count": 67,
"metadata": {},
"output_type": "execute_result"
}
@@ -2307,7 +2335,7 @@
},
{
"cell_type": "code",
- "execution_count": 108,
+ "execution_count": 68,
"metadata": {},
"outputs": [
{
@@ -2316,7 +2344,7 @@
"10000"
]
},
- "execution_count": 108,
+ "execution_count": 68,
"metadata": {},
"output_type": "execute_result"
}
@@ -2334,7 +2362,7 @@
},
{
"cell_type": "code",
- "execution_count": 171,
+ "execution_count": 69,
"metadata": {},
"outputs": [
{
@@ -2343,7 +2371,7 @@
"'lbdiomkhgcjanefp'"
]
},
- "execution_count": 171,
+ "execution_count": 69,
"metadata": {},
"output_type": "execute_result"
}
@@ -2379,7 +2407,7 @@
},
{
"cell_type": "code",
- "execution_count": 184,
+ "execution_count": 70,
"metadata": {},
"outputs": [
{
@@ -2409,7 +2437,7 @@
},
{
"cell_type": "code",
- "execution_count": 187,
+ "execution_count": 71,
"metadata": {},
"outputs": [
{
@@ -2418,7 +2446,7 @@
"48"
]
},
- "execution_count": 187,
+ "execution_count": 71,
"metadata": {},
"output_type": "execute_result"
}
@@ -2436,7 +2464,7 @@
},
{
"cell_type": "code",
- "execution_count": 170,
+ "execution_count": 72,
"metadata": {},
"outputs": [
{
@@ -2445,7 +2473,7 @@
"'ejkflpgnamhdcboi'"
]
},
- "execution_count": 170,
+ "execution_count": 72,
"metadata": {},
"output_type": "execute_result"
}
@@ -2460,6 +2488,513 @@
"whole(48, dance)"
]
},
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "# [Day 17](https://adventofcode.com/2017/day/17): Spinlock\n",
+ "\n",
+ "This one looks pretty easy:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 73,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "355"
+ ]
+ },
+ "execution_count": 73,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "step = 314\n",
+ "\n",
+ "def spinlock(step=step, N=2017):\n",
+ " \"Make N inserts into the buffer, skipping ahead by `step` each time.\"\n",
+ " buf = [0]\n",
+ " pos = 0\n",
+ " for i in ints(1, N):\n",
+ " pos = (pos + step) % i + 1\n",
+ " buf[pos:pos] = [i]\n",
+ " return buf\n",
+ " \n",
+ "buf = spinlock()\n",
+ "\n",
+ "buf[buf.index(2017)+1]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "That's the right answer.\n",
+ "\n",
+ "**Part Two**\n",
+ "\n",
+ "But Part Two is not so easy, if we care about the run time. Insertion into a `list` has to move all the elements after the insertion down, so insertion is O(N) and `spinlock` is O(N2). That's no problem when N = 2017, but a big problem when N is 50 million. We're gonna need need a bigger boat, where by \"boat\" I mean algorithm or data structure. My first thought is a (circular) linked list, because insertion is O(1). I can implement the three key methods: `skip` to move ahead, `insert` to add a new node after the current one, and `find` to find a piece of data (with a linear search):"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 74,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "class Node:\n",
+ " \"A Node in a singly-linked list\"\n",
+ " \n",
+ " __slots__ = ('data', 'next') # Declaring slots makes it more efficient\n",
+ " \n",
+ " def __init__(self, data, next): self.data, self.next = data, next\n",
+ " \n",
+ " def skip(self, n):\n",
+ " \"Skip ahead n nodes, and return that node.\"\n",
+ " node = self\n",
+ " for i in range(n):\n",
+ " node = node.next\n",
+ " return node\n",
+ " \n",
+ " def insert(self, value):\n",
+ " \"Insert a new node with the given value after this node.\"\n",
+ " self.next = Node(value, self.next)\n",
+ " return self.next\n",
+ " \n",
+ " def find(self, value):\n",
+ " \"Find the node with the given data value.\"\n",
+ " node = self\n",
+ " while node.data != value:\n",
+ " node = node.next\n",
+ " return node"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now I can rewrite `spinlock` to use this class:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 75,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def spinlock2(step=step, N=2017):\n",
+ " node = Node(0, None)\n",
+ " node.next = node # Make node be a circular linked list\n",
+ " for i in ints(1, N):\n",
+ " node = node.skip(step).insert(i)\n",
+ " return node"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Let's replicate the Part One results:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 76,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "355"
+ ]
+ },
+ "execution_count": 76,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "spinlock2().find(2017).next.data"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Good news! We get the same answer. But how fast/slow is it?"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 77,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "CPU times: user 1.4 s, sys: 5.52 ms, total: 1.4 s\n",
+ "Wall time: 1.4 s\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "<__main__.Node at 0x108a9c780>"
+ ]
+ },
+ "execution_count": 77,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "%time spinlock2(N=100000)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Bad news! It takes over a second to do just 100,000 insertions, which means about 10 minutes for 50 million insertions. I did in fact try\n",
+ "\n",
+ " spinlock2(N=50000000).find(0).next.data\n",
+ " \n",
+ "and it eventually gave the right answer, but while it was running I had plenty of time to think.\n",
+ "I realized that, if we go back to the original `spinlock` version, the value `0` will always be in `buf[0]`, and the value we are looking for will always be in `buf[1]`. So I can create a version of `spinlock` that only keeps track of `buf[0:2]`. That should run in a few seconds, not minutes:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 78,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "CPU times: user 5.55 s, sys: 16.7 ms, total: 5.57 s\n",
+ "Wall time: 5.57 s\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "6154117"
+ ]
+ },
+ "execution_count": 78,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "def spinlock3(step=step, N=2017):\n",
+ " \"Make N inserts into a simulated buffer, but ignore all except buf[0:2].\"\n",
+ " pos = 0\n",
+ " buf = [0, 0]\n",
+ " for i in ints(1, N):\n",
+ " pos = (pos + step) % i + 1\n",
+ " if pos <= 1:\n",
+ " buf[pos] = i\n",
+ " return buf\n",
+ "\n",
+ "%time spinlock3(N=50000000)[1]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The moral of the story is *keep your eyes on the prize*. I got distracted because I asked the wrong question. I asked myself \"what's wrong with my solution in `spinlock`?\" and answered myself \"insertion is O(N2) and it should be O(N).\" I knew how to do that, but that was the wrong question. I should have asked myself \"how do I solve Part Two quickly,\" concentrating on solving the actual problem, and avoiding getting fixated on my solution to Part One."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# [Day 18](https://adventofcode.com/2017/day/17): Duet\n",
+ "\n",
+ "First, read and take a peek at the input:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 79,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(('set', 'i', 31),\n",
+ " ('set', 'a', 1),\n",
+ " ('mul', 'p', 17),\n",
+ " ('jgz', 'p', 'p'),\n",
+ " ('mul', 'a', 2))"
+ ]
+ },
+ "execution_count": 79,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "program18 = array(Input(18))\n",
+ "program18[:5]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now write an interpreter for the assembly language:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 80,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "7071"
+ ]
+ },
+ "execution_count": 80,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "def run18(program):\n",
+ " \"Interpret the assembly language program.\"\n",
+ " regs = defaultdict(int)\n",
+ " pc = sound = 0\n",
+ " while True:\n",
+ " instr = program[pc]\n",
+ " op, x, y = instr[0], instr[1], instr[-1]\n",
+ " vy = value(regs, y)\n",
+ " if op == 'snd': sound = regs[x]\n",
+ " elif op == 'set': regs[x] = vy\n",
+ " elif op == 'add': regs[x] += vy\n",
+ " elif op == 'mul': regs[x] *= vy\n",
+ " elif op == 'mod': regs[x] %= vy\n",
+ " elif op == 'jgz' and regs[x] > 0: pc += vy - 1\n",
+ " elif op == 'rcv' and regs[x] != 0: \n",
+ " return sound\n",
+ " pc += 1\n",
+ " \n",
+ "def value(regs, y): return (y if isinstance(y, int) else regs[y])\n",
+ "\n",
+ "run18(program18)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "That was easy. (One tricky bit: after every instruction the `pc` is incremented by 1, so for the `'jgz'` jump instruction, the increment is `vy - 1`, not just `vy`, so that the `pc += 1` will fix it.)\n",
+ "\n",
+ "**Part Two**\n",
+ "\n",
+ "Now we have to run two copies of the program, and send messages between them. I'll break up the loop in `run18` into\n",
+ "two functions. First, `run18_2`, creates (in `ps`) two structures to hold the state variables necessary to run a program (`Struct` is my generic constructor of structures with named fields). `run18_2` then repeatedly calls `step18(program, p)` to execute one instruction of `program` with the state variables in `p`. At each step I will choose randomly which of the two programs to advance. (I could just as easily have alternated.) The function exits when neither copy of the program can run, according to their status. A program can have status `run` when it is ready to execute an instruction, `wait` when it is waiting for a value to arrive in its input queue, or `end` for when the `pc` has run off the end of the program and it is terminated."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 81,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def run18_2(program):\n",
+ " \"Run two copies of program, with different state variables. Return final states.\"\n",
+ " Qs = [deque(), deque()]\n",
+ " ps = [Struct(pc=0, sends=0, Qs=Qs, status='run', p=id, regs=defaultdict(int, p=id))\n",
+ " for id in (0, 1)]\n",
+ " while 'run' in {ps[0].status, ps[1].status}:\n",
+ " step18(program, random.choice(ps))\n",
+ " return ps"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The second function, `step18`, has most of the guts of `run18`, but with a few changes:\n",
+ "- State variables are accessed indirectly: `p.pc` instead of just `pc`.\n",
+ "- If the `pc` is out of bounds, the program terminates; the status is set to `'end'`.\n",
+ "- The `snd` instruction sends a value to the other program's queue.\n",
+ "- The `rcv` instruction pops a value of the queue if there is one, otherwise the status is set to `'wait'`.\n",
+ "- I was stuck for a *long* time on this problem, repeatedly getting the wrong answer. Finally I tried the strategy of *look carefully at the input*. I noticed an instruction, `\"jgz 1 3\"`, in which the X field was the integer 1. I had assumed the X field was always a register, but apparently it need not be, and I should be evaluating X with `value(regs, x)`, not `regs[x]`. Once I made that change, the program worked."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 82,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "8001"
+ ]
+ },
+ "execution_count": 82,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "def step18(program, p):\n",
+ " \"Run one instruction in program, with state variables in p.\"\n",
+ " if p.pc < 0 or p.pc > len(program):\n",
+ " p.status = 'end'\n",
+ " else:\n",
+ " instr = program[p.pc]\n",
+ " op, x, y = instr[0], instr[1], instr[-1]\n",
+ " vx, vy = value(p.regs, x), value(p.regs, y)\n",
+ " if op == 'snd': p.Qs[1-p.p].append(vy); p.sends += 1\n",
+ " elif op == 'set': p.regs[x] = vy\n",
+ " elif op == 'add': p.regs[x] += vy\n",
+ " elif op == 'mul': p.regs[x] *= vy\n",
+ " elif op == 'mod': p.regs[x] %= vy\n",
+ " elif op == 'jgz' and vx > 0: p.pc += vy - 1\n",
+ " elif op == 'rcv': \n",
+ " if not p.Qs[p.p]:\n",
+ " p.status = 'wait'\n",
+ " return\n",
+ " else:\n",
+ " p.regs[x] = p.Qs[p.p].popleft()\n",
+ " p.status = 'run'\n",
+ " p.pc += 1\n",
+ " \n",
+ "run18_2(program18)[1].sends"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# [Day 19](https://adventofcode.com/2017/day/19): A Series of Tubes"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "At first I was confused; I thought this was a maze-following problem with choices of which direction to turn. Actually, the direction is always determined: keep going in the current direction as long as possible, but when we hit a `'+'` character, search for another direction to go in (there will only be one, but we have to try all the possibilities to find it). Leave breadcrumbs (the `'.'` character) so that we don't back up along a previously-followed path. Collect all the alphabetic characters into `result`. As in Day 14, the grid, `G`, is surrounded by space characters so that we don't have to worry about `(x, y)` going off the edge."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 83,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'VEBTPXCHLI'"
+ ]
+ },
+ "execution_count": 83,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "diagram = Input(19).read().splitlines()\n",
+ "\n",
+ "def path_follow(diagram):\n",
+ " \"Follow -|+ lines, and collect letters along the way.\"\n",
+ " result = []\n",
+ " G = surround(diagram)\n",
+ " x, y = G[1].index('|'), 1\n",
+ " dx, dy = 0, 1\n",
+ " while G[y][x] != ' ':\n",
+ " c = G[y][x]\n",
+ " if c.isalpha():\n",
+ " result.append(c) # Collect a letter\n",
+ " elif c == '+':\n",
+ " dx, dy = new_direction(G, x, y)\n",
+ " G[y][x] = '.' # Leave a breadcrumb\n",
+ " x += dx; y += dy\n",
+ " return cat(result)\n",
+ " \n",
+ "def surround(grid, fill=' '):\n",
+ " \"Put fill characters as a border all around grid.\"\n",
+ " rows = [[fill] + list(row) + [fill] \n",
+ " for row in grid]\n",
+ " empty = [fill] * len(rows[0])\n",
+ " return [empty] + rows + [empty]\n",
+ "\n",
+ "def new_direction(G, x, y):\n",
+ " \"Find a direction that continues the path.\"\n",
+ " for (dx, dy) in (UP, DOWN, RIGHT, LEFT):\n",
+ " if G[y+dy][x+dx] not in (' ', '.'):\n",
+ " return dx, dy\n",
+ "\n",
+ "path_follow(diagram)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "**Part Two**\n",
+ "\n",
+ "This is a surprisingly easy Part Two: all I have to do is manage a `steps += 1` in the loop to return the total number of steps taken."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 84,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "('VEBTPXCHLI', 18702)"
+ ]
+ },
+ "execution_count": 84,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "def path_follow2(diagram):\n",
+ " \"Follow -|+ lines, collect letters along the way, return (letters, steps).\"\n",
+ " result = []\n",
+ " steps = 0\n",
+ " G = surround(diagram)\n",
+ " x, y = G[1].index('|'), 1\n",
+ " dx, dy = 0, 1\n",
+ " while G[y][x] != ' ':\n",
+ " steps += 1\n",
+ " c = G[y][x]\n",
+ " if c.isalpha(): \n",
+ " result.append(c) # Collect a letter\n",
+ " elif c == '+':\n",
+ " dx, dy = new_direction(G, x, y)\n",
+ " G[y][x] = '.' # Leave a breadcrumb\n",
+ " x += dx; y += dy\n",
+ " return cat(result), steps\n",
+ "\n",
+ "path_follow2(diagram)"
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {},
@@ -2471,21 +3006,22 @@
},
{
"cell_type": "code",
- "execution_count": 158,
+ "execution_count": 85,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "CPU times: user 1min 8s, sys: 171 ms, total: 1min 8s\n",
- "Wall time: 1min 8s\n"
+ "CPU times: user 58.9 s, sys: 125 ms, total: 59 s\n",
+ "Wall time: 59.1 s\n"
]
}
],
"source": [
"%%time\n",
- "def day(n, compute1, answer1, compute2, answer2):\n",
+ "\n",
+ "def day(d, compute1, answer1, compute2, answer2):\n",
" \"Assert that we get the right answers for this day.\"\n",
" assert compute1 == answer1\n",
" assert compute2 == answer2\n",
@@ -2496,43 +3032,57 @@
" sum(map(evendiv, rows2)), 265)\n",
"day(3, cityblock_distance(nth(spiral(), M - 1)), 475, \n",
" first(x for x in spiralsums() if x > M), 279138)\n",
- "day(4, quantify(Input(4), is_valid), 337, quantify(Input(4), is_valid2), 231)\n",
- "day(5, run(program), 364539, run2(program), 27477714)\n",
- "day(6, realloc(banks), 12841, realloc2(banks), 8038)\n",
+ "day(4, quantify(Input(4), is_valid), 337, \n",
+ " quantify(Input(4), is_valid2), 231)\n",
+ "day(5, run(program), 364539, \n",
+ " run2(program), 27477714)\n",
+ "day(6, realloc(banks), 12841, \n",
+ " realloc2(banks), 8038)\n",
"day(7, first(programs - set(flatten(above.values()))), 'wiapj', \n",
" correct(wrongest(programs)), 1072)\n",
- "day(8, max(run8(program8).values()), 6828, run82(program8), 7234)\n",
- "day(9, total_score(text2), 9662, len(text1) - len(text3), 4903)\n",
+ "day(8, max(run8(program8).values()), 6828, \n",
+ " run82(program8), 7234)\n",
+ "day(9, total_score(text2), 9662, \n",
+ " len(text1) - len(text3), 4903)\n",
"day(10, knothash(stream), 4480, \n",
" knothash2(stream2), 'c500ffe015c83b60fad2e4b7d59dabc4')\n",
- "day(11, follow(path), 705, follow2(path), 1469)\n",
- "day(12, len(G[0]), 115, len({Set(G[i]) for i in G}), 221)\n",
- "day(13, trip_severity(scanners), 1504, safe_delay(scanners), 3823370)\n",
+ "day(11, follow(path), 705, \n",
+ " follow2(path), 1469)\n",
+ "day(12, len(G[0]), 115, \n",
+ " len({Set(G[i]) for i in G}), 221)\n",
+ "day(13, trip_severity(scanners), 1504, \n",
+ " safe_delay(scanners), 3823370)\n",
"day(14, sum(bits(key, i).count('1') for i in range(128)), 8316, \n",
" flood_all(Grid(key)), 1074)\n",
"day(15, judge(A(), B()), 597, \n",
" judge(criteria(4, A()), criteria(8, B()), 5*10**6), 303)\n",
"day(16, perform(dance), 'lbdiomkhgcjanefp', \n",
- " whole(48, dance), 'ejkflpgnamhdcboi')"
+ " whole(48, dance), 'ejkflpgnamhdcboi')\n",
+ "day(17, spinlock2().find(2017).next.data, 355,\n",
+ " spinlock3(N=50*10**6)[1], 6154117)\n",
+ "day(18, run18(program18), 7071, \n",
+ " run18_2(program18)[1].sends, 8001)\n",
+ "day(19, path_follow(diagram), 'VEBTPXCHLI', \n",
+ " path_follow2(diagram)[1], 18702)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "And here is a plot of the time taken to completely solve both parts of each puzzle each day, for me, the first person to finish, and the hundredth person. On days when I started late, I estimate my time and mark it with parens below:"
+ "And here is a plot of the time taken to completely solve both parts of each puzzle each day, for me, the first person to finish, and the hundredth person. On days when I started late, the times are estimates, not exact (these include days 1, 3, 8, 13, 14, 17, 18)."
]
},
{
"cell_type": "code",
- "execution_count": 186,
+ "execution_count": 86,
"metadata": {},
"outputs": [
{
"data": {
- "image/png": "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\nkBdeeIFu3boZ2ixdupSIiAgyMzMJCQlh9uzZBAcHG3UcQTDWiVu5BLtY425rhb1KQQtPG368ksnI\nxkXP5UY1duHzs6n0+/tWZnf/kvOdJKUK+k1m0PY4WnvZ0s3fHlmWq/wfeVVQKxX0CnSkV6AjqfmF\nZGgqdnW37o80Ii5lkFWgp623Lc09bPCo2iIf1UKAk4p3jiey42omrz/mZVjKx1zOJ2t4K/I2bbxs\n6RngQBtv0570m5kFHInLoa6DirqOKvwcVBWu/FJhshG2bt0qd+rUSW7UqJHcuHFjuXHjxnKjRo3k\nTp06yVu3bjWmK1mWZXn//v3y4cOH5Zs3b8rXr1+XP/roI7lZs2byxYsXZVmW5c8++0x+9NFH5b17\n98qXL1+Wp0yZInfu3FnOyckptc+oqCij46guROxVT6PRyMPGjJc1Gk2x7e8eT5BX/JZseH06IVce\nuOWarNPrZVmWZZ1eL19JL/6e+zkRnyPnFuhMG/RdqsN5z9XqZP3f58UY94v9TGKefDE133Ceqytz\nnXeNRiM//59XZY1GI2t1evmb86ly301X5RwT/g5Z4nfmr7R8ed6JBDl8f6w8ZOs1+fUjtyrUT2Vi\nNyrZybIsa7Va+fTp0/LOnTvlnTt3yqdPn5a1Wm2FA7hXu3bt5O+//16WZVnu1KmT/Nlnnxn25efn\ny61btzbsv5/q8I+/okTsVW/CK6/LDWd8JQ9+cbq87PQ/ye1KukbuGXFF1hQWfcjo9Xp56i9x8s3M\nBye4qlQdzvviqCR56NZr8uozKXJcVkG531cdYq8oc8X+9MvT5Udmfi1PnPaGYVue1rRflsobe3X8\nwlGZ817u68itW7cSGxuLlZUVrVq1ol+/fvTr149WrVphZWVFbGwsW7durfAVpl6vZ+fOneTm5vLo\no48SExNDcnIyHTt2NLRRq9WEhoZy+vTpCh9HEO64U+XEvmlHrtgGsvybCLIKiuZ21Xe2ppGbmp+v\nZwNFzxg+6l4Hf0fjbyfJsszVjAK+Pp/Gi/viKNDVrrqPUx51Z1YHb27nFjJ6101+S8yrdJ935tp9\ndiaF+GytCaKs/r7e8AOnrAKxa9KBY7Ifa7/fBFBlt/uyC3T8cjObhSeTGLnzJnN/Ne9zu6pW7rM4\nc+bMMpPMmTNnmDlzptEBXLp0idatW9OiRQvmzJnDsmXLCA4OJjk5GUmS8PAovpKxu7s7SUlJRh9H\n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\n",
+ "image/png": "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\n",
"text/plain": [
- ""
+ ""
]
},
"metadata": {},
@@ -2550,9 +3100,9 @@
"\n",
"x = None\n",
"plot_times([\n",
- " ('Me', 'd:', (4), 6,(20), 5, 12, 30, 33,(10), 21, 40, 13, 12,(30),(41), 13, 64),\n",
- " ('100th', 'v:', 6, 6, 23, 4, 5, 9, 25, 8, 12, 25, 12, 9, 22, 25, 10, 27),\n",
- " ('1st', '^:', 1, 1, 4, 1, 2, 3, 10, 3, 4, 6, 3, 2, 6, 5, 2, 5)])"
+ " ('Me', 'd:', 4, 6, 20, 5, 12, 30, 33, 10, 21, 40, 13, 12, 30, 41, 13, 64, 54, 74, 50),\n",
+ " ('100th', 'v:', 6, 6, 23, 4, 5, 9, 25, 8, 12, 25, 12, 9, 22, 25, 10, 27, 16, 41, 18),\n",
+ " ('1st', '^:', 1, 1, 4, 1, 2, 3, 10, 3, 4, 6, 3, 2, 6, 5, 2, 5, 5, 10, 5)])"
]
}
],