Skip to content

Instantly share code, notes, and snippets.

@fuglede
Last active February 9, 2024 08:03
Show Gist options
  • Save fuglede/5388f4246b161ce46b4989d880e2cb86 to your computer and use it in GitHub Desktop.
Save fuglede/5388f4246b161ce46b4989d880e2cb86 to your computer and use it in GitHub Desktop.
Knight's tour with graph traversal, constraint programming, and integer programming
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Knight's tour\n",
"\n",
"Here, we take a look at three different ways of solving the [closed knight's tour problem](https://en.wikipedia.org/wiki/Knight's_tour) which asks for a path for a knight on a chess board visiting each square exactly once, starting and ending on the same square.\n",
"\n",
"One approach is based on searching a graph, one uses constraint logic programming, and one uses integer linear programming.\n",
"\n",
"\n",
"## Table of contents\n",
"* [Representation](#representation)\n",
"* [Depth-first search](#depth-first-search)\n",
"* [Constraint logic programming](#constraint-logic-programming)\n",
" * [Introduction to z3](#z3intro)\n",
" * [Using z3 to solve the knight's tour](#z3knights)\n",
"* [Integer linear programming](#integer-linear-programming)\n",
"\n",
"## Representation <a class=\"anchor\" id=\"representation\"></a>\n",
"\n",
"We will be considering general $N \\times N$ boards, and in each case, we will represent the squares on the board by the integers $0, \\dots, N^2-1$ as follows:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 0| 1| 2| 3| 4| 5| 6| 7\n",
" 8| 9|10|11|12|13|14|15\n",
"16|17|18|19|20|21|22|23\n",
"24|25|26|27|28|29|30|31\n",
"32|33|34|35|36|37|38|39\n",
"40|41|42|43|44|45|46|47\n",
"48|49|50|51|52|53|54|55\n",
"56|57|58|59|60|61|62|63\n"
]
}
],
"source": [
"N = 8\n",
"for i in range(N):\n",
" print('|'.join(f'{i*N+j:2d}' for j in range(N)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Throughout, we will use a dictionary to keep track of the allowed moves from a given square."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"For example, from square 0, you can reach squares [10, 17].\n"
]
}
],
"source": [
"def make_moves(N):\n",
" moves = {}\n",
" for i in range(N**2): \n",
" if i % N == 0:\n",
" moves[i] = [i-(2*N-1), i-(N-2), i+(N+2), i+(2*N+1)]\n",
" elif i % N == 1:\n",
" moves[i] = [i-(2*N+1), i-(2*N-1), i-(N-2), i+(N+2), i+2*N-1, i+2*N+1]\n",
" elif i % N == N-2:\n",
" moves[i] = [i-(2*N+1), i-(2*N-1), i-(N+2), i+(N-2), i+2*N-1, i+2*N+1]\n",
" elif i % N == N-1:\n",
" moves[i] = [i-(2*N+1), i-(N+2), i+(N-2), i+(2*N-1)]\n",
" else:\n",
" moves[i] = [i-(2*N+1), i-(2*N-1), i-(N+2), i-(N-2), i+(N-2), i+(N+2), i+(2*N-1), i+(2*N+1)]\n",
" # Remove moves to squares that are not part of the board.\n",
" moves[i] = [x for x in moves[i] if x >= 0 and x < N**2]\n",
" return moves\n",
"\n",
"moves = make_moves(N)\n",
"print(f'For example, from square 0, you can reach squares {moves[0]}.')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It will be useful to think of the board as a graph $G = (V, E)$ whose vertices are the squares $V = \\{0, \\dots, N^2-1\\}$ and whose edges are the pairs of squares between which there is an allowed move. More precisely, for $i \\in V$, denote by $M_i \\subseteq V$ the set of squares reachable from $i$, so that e.g. $M_0 = \\{10, 17\\}$. Then we consider $E = \\{(i, j) \\mid i \\in V, j \\in M_i\\}$. This looks something like the following:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import networkx as nx\n",
"%matplotlib inline\n",
"G = nx.Graph()\n",
"G.add_edges_from((i, j) for i, v in moves.items() for j in v)\n",
"nx.draw(G, pos={i: (i // 8, i % 8) for i in G.nodes()})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Graph traversal <a class=\"anchor\" id=\"depth-first-search\"></a>\n",
"\n",
"In our first solution, we will start at a given location and then iteratively move to a new one in a [depth-first](https://en.wikipedia.org/wiki/Depth-first_search) fashion, so that we start by creating a path as long as possible, and once we get stuck, we backtrack and try the next possible path.\n",
"\n",
"In the process, when we have to decide which square to visit next, we always take the available square with the lowest number of allowed moves, effectively sticking to the corners and edges when we can.\n",
"\n",
"Rather than maintaining the depth-first stack explicitly, we use recursion and define a function `find_path` whose inputs are the current path and the next square to visit, and whose output is the complete path once its found. The recursion starts by visiting the square represented by 0; one of the corners."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0, 10, 4, 14, 31, 46, 63, 53, 47, 62, 52, 58, 48, 33, 16, 1, 11, 5, 15, 30, 13, 7, 22, 39, 54, 60, 50, 56, 41, 24, 9, 3, 18, 8, 2, 12, 6, 23, 38, 55, 61, 51, 57, 40, 25, 19, 29, 35, 45, 28, 34, 49, 43, 37, 20, 26, 36, 21, 27, 44, 59, 42, 32, 17]\n"
]
}
],
"source": [
"def find_path(path, to_visit):\n",
" path.append(to_visit)\n",
" # If all squares have been visited, and 0 can be reached from\n",
" # here, then we're done.\n",
" if len(path) == N**2:\n",
" if 0 in moves[to_visit]:\n",
" return path, True\n",
" # Find all moves to squares that haven't already been visited\n",
" options = [x for x in moves[to_visit] if x not in path]\n",
" # Order the possible options by their number of available moves\n",
" options.sort(key=lambda j: len(moves[j]))\n",
" # Now try all options. If any option leads to a complete path,\n",
" # we stop at that.\n",
" for option in options:\n",
" found_path, done = find_path(path, option)\n",
" if done:\n",
" return found_path, done\n",
" # If we end up down here, none of the visited squares led\n",
" # anywhere, so we backtrack and try from the next one.\n",
" path.pop()\n",
" return None, False\n",
" \n",
"result = find_path([], 0)[0]\n",
"print(result)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"That is, we move from 0 to 10 to 4 to ... to 17 and then back to 0. Let's visualize this:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 0|15|34|31| 2|17|36|21\n",
"33|30| 1|16|35|20| 3|18\n",
"14|63|32|45|54|57|22|37\n",
"29|44|55|58|49|46|19| 4\n",
"62|13|50|47|56|53|38|23\n",
"43|28|61|52|59|48| 5| 8\n",
"12|51|26|41|10| 7|24|39\n",
"27|42|11|60|25|40| 9| 6\n"
]
}
],
"source": [
"order = [x[0] for x in sorted(enumerate(result), key=lambda x: x[1])]\n",
"def visualize(order):\n",
" for i in range(N):\n",
" print('|'.join(f'{order[i*N+j]:2d}' for j in range(N)))\n",
"visualize(order)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So that's pretty nifty. It seems like a bit of a coincidence that it works so well: We used as a heuristic to guide our search that we wanted to stay close to the edges, but Wikipedia mentions that [Warnsdorff's rule](https://en.wikipedia.org/wiki/Knight's_tour#Warnsdorf.27s_rule) which also takes into account the number of moves available from the visited square should work much better. It seems not to, in this case, though."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Constraint logic programming <a class=\"anchor\" id=\"constraint-logic-programming\"></a>\n",
"\n",
"Our next solution will be based on [constraint programming](https://en.wikipedia.org/wiki/Constraint_programming) and make use of [Microsoft's theorem prover z3](https://github.com/Z3Prover/z3/). Here, the idea is that the problem can be phrased as a [constraint satisfaction problem](https://en.wikipedia.org/wiki/Constraint_satisfaction_problem): a collection of constraints on certain constants, and the goal is to find values for the constants such that all constraints are satisfied.\n",
"\n",
"### Introduction to z3 <a class=\"anchor\" id=\"z3intro\"></a>\n",
"\n",
"Concretely, z3 is a [satisfiability modulo theories](https://en.wikipedia.org/wiki/Satisfiability_modulo_theories) solver and we will be phrasing our problem as a collection of constraints on a collection of integer constants. Before diving in, let's see a few examples of what z3 is capable of to get a feel what writing z3 code looks like.\n",
"\n",
"The main thing it does well is satisfiability over various theories:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(sat, [c = True, b = -29, a = 6])"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from z3 import Bool, If, Int, Solver\n",
"\n",
"# Create a couple of constants\n",
"a = Int('a')\n",
"b = Int('b')\n",
"c = Bool('c')\n",
"# Create a solver and add 3 constraints, one of which\n",
"# contains a condition on c.\n",
"s = Solver()\n",
"s.add(a > 5, b < 3, If(c, a * a + b < 9, a - b < 0))\n",
"# Check satisfiability and provide values for each constant\n",
"s.check(), s.model()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can also put in general uninterpreted functions:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(sat, [x = 0, y = 1, f = [1 -> 0, else -> 1]])"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from z3 import Function, IntSort\n",
"\n",
"# Define a function that takes an int and gives an int\n",
"f = Function('f', IntSort(), IntSort())\n",
"x = Int('x')\n",
"y = Int('y')\n",
"s = Solver()\n",
"s.add(f(f(x)) == x, f(x) == y, x != y)\n",
"s.check(), s.model()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As another example, let's solve the following riddle: We have three blocks, a, b, and c, each of which have a different color, either green, blue, or yellow. We are given that exactly one of the following statements are true:\n",
"\n",
"* a is green,\n",
"* b is not green,\n",
"* c is not blue.\n",
"\n",
"The question then becomes: Which box contains which number?"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(sat, [aG = False,\n",
" aY = True,\n",
" aB = False,\n",
" bG = True,\n",
" bY = False,\n",
" bB = False,\n",
" cG = False,\n",
" cY = False,\n",
" cB = True])"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from z3 import And, Bool, Not, Or, Solver\n",
"\n",
"# Introduce constants for \"block i has colour j\"\n",
"aG = Bool('aG')\n",
"aY = Bool('aY')\n",
"aB = Bool('aB')\n",
"bG = Bool('bG')\n",
"bY = Bool('bY')\n",
"bB = Bool('bB')\n",
"cG = Bool('cG')\n",
"cY = Bool('cY')\n",
"cB = Bool('cB')\n",
"\n",
"# Define XOR for three constants\n",
"def xor(a, b, c):\n",
" return Or(And(Not(a), Not(b), c), And(Not(a), b, Not(c)), And(a, Not(b), Not(c)))\n",
"\n",
"s = Solver()\n",
"# Exactly one colour for each block.\n",
"s.add(xor(aG, aY, aB), xor(bG, bY, bB), xor(cG, cY, cB))\n",
"# Exactly one block for each colour.\n",
"s.add(xor(aG, bG, cG), xor(aY, bY, cY), xor(aB, bB, cB))\n",
"# The fact that exactly one of the three statements is true.\n",
"s.add(xor(aG, Not(bG), Not(cY)))\n",
"# Check satisfiability and provide values for each constants\n",
"s.check(), s.model()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In other words, block a is yellow, b is green, and c is blue.\n",
"\n",
"![Blocks](blocks.jpg)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Another classic is the *N* queens problem in which you're asked to place 8 queens on a chess board so that no two queens threaten each other. Here's what a z3 solution to that problem might look like:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Queen 0 is on column 0 and row 5\n",
"Queen 1 is on column 1 and row 3\n",
"Queen 2 is on column 2 and row 6\n",
"Queen 3 is on column 3 and row 0\n",
"Queen 4 is on column 4 and row 2\n",
"Queen 5 is on column 5 and row 4\n",
"Queen 6 is on column 6 and row 1\n",
"Queen 7 is on column 7 and row 7\n"
]
}
],
"source": [
"from z3 import Int, Solver\n",
"\n",
"# Which row is the i'th queen placed on?\n",
"rows = [Int(f'row{i}') for i in range(8)]\n",
"s = Solver()\n",
"for i in range(8):\n",
" s.add(rows[i] >= 0, rows[i] < 8)\n",
" for j in range(i):\n",
" # No queens on the same row\n",
" s.add(rows[i] != rows[j])\n",
" # No queens sharing a diagonal\n",
" s.add(rows[i] - i != rows[j] - j)\n",
" s.add(rows[i] + i != rows[j] + j)\n",
"s.check()\n",
"model = s.model()\n",
"# Pick out the values of the constants for each row:\n",
"for i in range(8):\n",
" print(f'Queen {i} is on column {i} and row {model[rows[i]]}')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Moreover, z3 can be instructed to optimize the value of a given objective; here, a simple linear objective defined over the reals:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(sat, [b = 3, a = 4])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from z3 import Real, Optimize\n",
"\n",
"a = Real('a')\n",
"b = Real('b')\n",
"opt = Optimize()\n",
"opt.add(a <= 4)\n",
"opt.add(b <= 5)\n",
"opt.add(a + b <= 7)\n",
"h = opt.maximize(a*3 + b*2)\n",
"opt.check(), opt.model()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Using z3 to solve the knight's tour <a class=\"anchor\" id=\"z3knights\"></a>\n",
"\n",
"As we will see later, the knight's tour problem can be modelled in a number of different ways, but what we do here is introduce constants $x_0, \\dots, x_{N^2-1}$ representing the order of the squares as they appear in the path. That is, if we start at 0, then $x_0 = 0$, and if the next visited square is 10 (as in the output above), then $x_{10} = 1$ and so on. The constraint that we move from a square $i$ to something in $M_i$ then becomes the disjunction\n",
"\n",
"$$\\bigvee_{j \\in M_i} x_j \\equiv x_i + 1 \\mod N^2.$$\n",
"\n",
"To help the solver, we also impose $0 \\leq x_i < N^2$ for all $i$ and the all-different constraint $x_i \\not= x_j$ for all $i, j$, both of which clearly have to hold for the solution we are interested in.\n",
"\n",
"Now in fact, there's nothing particularly special about the knight's tour in this context, and for a general graph, a solution to the above is called a [Hamiltonian cycle](https://en.wikipedia.org/wiki/Hamiltonian_path), so let's define a function `find_hamiltonian_z3` that takes as input a directed graph whose edges are represented by a dictionary and returns a Hamiltonian cycle if one exists."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0, 35, 62, 49, 60, 33, 24, 19, 51, 48, 1, 34, 25, 20, 59, 32, 36, 63, 50, 61, 54, 31, 18, 23, 47, 52, 37, 2, 21, 26, 55, 58, 38, 3, 14, 53, 30, 57, 22, 17, 13, 46, 39, 42, 15, 8, 27, 56, 4, 41, 44, 11, 6, 29, 16, 9, 45, 12, 5, 40, 43, 10, 7, 28]\n"
]
}
],
"source": [
"from z3 import Int, Or, Solver, sat\n",
"\n",
"def find_hamiltonian_z3(d):\n",
" L = len(d)\n",
" # Create the constants and initialize the solver.\n",
" x = [Int('x%s'%i) for i in range(L)]\n",
" s = Solver()\n",
" # Require that the first square to be visited is 0.\n",
" s.add(x[0] == 0)\n",
" for i in range(L):\n",
" # Add the disjunction constraints, as well as the bounds on x.\n",
" s.add(Or([x[j] == (x[i] + 1) % L\n",
" for j in d[i]]), x[i] >= 0, x[i] < L)\n",
" # Add the all-different constraint.\n",
" for j in range(L):\n",
" if i != j:\n",
" s.add(x[j] != x[i])\n",
" # Check if the formula is satisfiable, and if it is, return the result.\n",
" if s.check() == sat:\n",
" # Extract the values for each of the constants\n",
" model = s.model()\n",
" return [model.get_interp(xi).as_long() for xi in x]\n",
"\n",
"result = find_hamiltonian_z3(moves)\n",
"print(result)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here, we read for instance that $x_{10} = 1$, and that $x_{17} = 63$. Just like before, we can also visualize the result"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 0|35|62|49|60|33|24|19\n",
"51|48| 1|34|25|20|59|32\n",
"36|63|50|61|54|31|18|23\n",
"47|52|37| 2|21|26|55|58\n",
"38| 3|14|53|30|57|22|17\n",
"13|46|39|42|15| 8|27|56\n",
" 4|41|44|11| 6|29|16| 9\n",
"45|12| 5|40|43|10| 7|28\n"
]
}
],
"source": [
"visualize(result)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Integer linear programming <a class=\"anchor\" id=\"integer-linear-programming\"></a>\n",
"\n",
"Finally, we provide a solution of the problem using [integer programming](https://en.wikipedia.org/wiki/Integer_programming). As above, we phrase this as the more general problem of finding a Hamiltonian cycle in a graph $G = (V, E)$.\n",
"\n",
"The model for the problem given above is not linear, but an equivalent linear formulation is available; the price paid being the introduction of several new variables, the total number being $\\lvert V \\rvert + \\lvert E \\rvert$.\n",
"\n",
"Concretely, we will use the Miller&ndash;Tucker&ndash;Zemlin formulation of the problem: For each (directed) edge $(i, j) \\in E$, we introduce a variable $e_{ij} \\in \\{0, 1\\}$ which is $1$ if and only if the edge is part of the Hamiltonian path. Then, for each $i \\in V$, we have constraints stating that $e_{ij} = 1$ for exactly one $j \\not= i$, and similarly, for each $j \\in V$, we require that $e_{ij} = 1$ for exactly one $i \\not= j$, meaning that each vertex has exactly one incoming and one outgoing edge in the Hamiltonian path.\n",
"\n",
"This is not enough to guarantee the Hamiltonian property that the path is connected. To achieve this, we introduce integer-valued variables $x_i, i \\in V$ whose interpretation is exactly as previously: $x_i = j$ means that square $i$ is visited as the $j$th square in the path. For these, we now require that for any edge $(i, j) \\in E$ with $j \\not= 0$,\n",
"\n",
"$$x_j \\leq x_i + 1 - \\lvert V \\rvert (e_{ij} - 1) \\\\ x_j \\geq x_i + 1 + \\lvert V \\rvert (e_{ij} - 1).$$\n",
"\n",
"This is equivalent to saying that whenever $e_{ij} = 1$, we have $x_j = x_i + 1$. Similarly, to ensure that the path starts and ends at $0$, we require that $x_0 = 0$ and that for any edge $(i, 0)$, we require\n",
"\n",
"$$x_0 + \\lvert V \\rvert \\leq x_i + 1 - \\lvert V \\rvert (e_{i0} - 1) \\\\ x_0 + \\lvert V \\rvert \\geq x_i + 1 + \\lvert V \\rvert (e_{i0} - 1),$$\n",
"\n",
"which as above is the same as saying that if $e_{i0} = 1$, then $x_0 + \\lvert V \\rvert = x_i + 1$.\n",
"\n",
"Let's implement this in Xpress:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0, 5, 28, 23, 12, 33, 10, 25, 61, 22, 63, 5, 27, 24, 13, 34, 4, 1, 60, 29, 32, 11, 26, 9, 21, 62, 3, 56, 7, 30, 35, 14, 2, 59, 20, 31, 36, 47, 8, 51, 39, 42, 57, 48, 55, 52, 15, 46, 58, 19, 40, 37, 44, 17, 50, 53, 41, 38, 43, 18, 49, 54, 45, 16]\n"
]
}
],
"source": [
"import xpress as xp\n",
"\n",
"def find_hamiltonian_xpress(d):\n",
" m = xp.problem()\n",
" L = len(d)\n",
" es = {}\n",
" # Add a binary variable for each edge.\n",
" for i in range(L):\n",
" for j in d[i]:\n",
" es[(i, j)] = xp.var(name=f'e_{i},{j}', vartype=xp.binary)\n",
" m.addVariable(es)\n",
" # Require that each vertex has exactly one incoming and one outgoing edge.\n",
" for i in range(L):\n",
" ins = [v for k, v in es.items() if k[0] == i]\n",
" outs = [v for k, v in es.items() if k[1] == i]\n",
" m.addConstraint(xp.Sum(ins) == 1)\n",
" m.addConstraint(xp.Sum(outs) == 1)\n",
" # Now, create the indexing variables and the constraints relating them\n",
" # to the edges.\n",
" x = [xp.var(name=f'x_{i}', vartype=xp.integer) for i in range(L)]\n",
" m.addVariable(x)\n",
" m.addConstraint(x[0] == 0)\n",
" for (i, j) in es:\n",
" m.addConstraint(x[j] + L*(j == 0) <= x[i] + 1 - L*(es[(i, j)]-1))\n",
" m.addConstraint(x[j] + L*(j == 0) >= x[i] + 1 + L*(es[(i, j)]-1))\n",
" # Solve the problem and return the result by taking the values of the\n",
" # final |V| variables, corresponding to x.\n",
" m.solve()\n",
" return list(map(int, m.getSolution()[-L:]))\n",
"\n",
"result = find_hamiltonian_xpress(moves)\n",
"print(result)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Just like before, we can visualize the result:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 0| 5|28|23|12|33|10|25\n",
"61|22|63| 5|27|24|13|34\n",
" 4| 1|60|29|32|11|26| 9\n",
"21|62| 3|56| 7|30|35|14\n",
" 2|59|20|31|36|47| 8|51\n",
"39|42|57|48|55|52|15|46\n",
"58|19|40|37|44|17|50|53\n",
"41|38|43|18|49|54|45|16\n"
]
}
],
"source": [
"visualize(result)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"While we're at it, let's also solve the knight's tour for a 10x10 board:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 0|45| 2|41|96|93|80|83|38|91\n",
" 3|42|99|46|81|40|95|92|79|84\n",
"44| 1| 4|97|94|47|82|39|90|37\n",
" 9|98|43|48|71| 6|67|88|85|78\n",
"26|49| 8| 5|68|87|72|77|36|89\n",
"53|10|27|70| 7|66|35|86|73|76\n",
"50|25|52|65|28|69|58|75|34|17\n",
"11|54|29|22|57|14|63|18|59|74\n",
"24|51|56|13|64|31|20|61|16|33\n",
"55|12|23|30|21|62|15|32|19|60\n"
]
}
],
"source": [
"N = 10\n",
"result = find_hamiltonian_xpress(make_moves(N))\n",
"visualize(result)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
@TahaRostami
Copy link

Interesting. Thank You!

@Ynfiniti
Copy link

Ynfiniti commented Feb 7, 2024

Very cool post, thanks!

One small detail tho: I have noticed, that in the Solution for the 8×8 Grid, solved with Integer linear programming, the cell 11 has the value 5 which should be a 6 because the 5th step is at cell 1.

@fuglede
Copy link
Author

fuglede commented Feb 9, 2024

@Ynfiniti Hah, good catch. What's happening is probably that one gets small floating point errors from Xpress, even though all variables were declared to be integers. Avoiding that amounts to rounding to the nearest integer instead of rounding down as the code does at the moment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment