{ "cells": [ { "cell_type": "markdown", "id": "dde3c25f", "metadata": { "tags": [ "CSP", "easy", "AllDifferent", "academic" ] }, "source": [ "# Problem *Queens*" ] }, { "cell_type": "markdown", "id": "1651422e", "metadata": {}, "source": [ "The problem is stated as follows: can we put 8 queens on a chessboard such that no two queens attack each other?\n", "Two queens attack each other iff they belong to the same row, the same column or the same diagonal." ] }, { "cell_type": "markdown", "id": "359314be", "metadata": {}, "source": [ "By considering boards of various size, the problem can be generalized as follows: can we put $n$ queens on a board of size $n \\times n$ such that no two queens attack each other?\n", "Contrary to previously introduced single problems, we have to deal here with a family of problem instances, each of them characterized by a specific value of $n$.\n", "We can try to solve the 8-queens instance, the 10-queens instance, and even the 1000-queens instance." ] }, { "attachments": { "queens.png": { "image/png": "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AIAd7p4P9B7pdCLm5lKoPze31kVvj1aeF98CKMP/FPiPjKRtdLTuOQKArUa4DwAAAFQsLOT5vn11jyIF/s1mRLOZFvRdXCyq+T9zZsQr7q17hABQL+E+AAAA7HAf21Xdm5tb7nFl+5xC7/569fbob7dTqN8tzzudtMjvxERExF+8LeIVdU8aANRMuA8AAAA72De/HfHV/PDhiF1HIv6hoSybmkqh/dBQ9yK4x16WFbeKVj3tdu8ivZ88/tChiN0yDQB2NL8IAQAAYAf7V2+MyD+/q1K7PzVV95iS5b8V8MjVu3df+OGIr9xW9xgBoD7CfQAAANihLj0x4gePrPaoTie1z4noV0VfXQR3/XoD/KGhcn9kZKUz77o94tqXRFz7hXrmDgDqJtwHAACAHeq/vyUibij2ihC/2DqdPH8ywf3GyLKRkfIiQKNRbRP0pzdGXFv3AAGgJsfVPQAAAACgHk+9oro3NHTcI898Zrq9NYL9pNWKaLezn92z57gXXXBBtf//019S99gAoD4q9wEAAGCHevcXIsavjsiPVO8/vucFL4h4wQsiJiayLOK4O7/73V3/9q678r+9775DJ33yk0V1f573tuZ58rKsXLx390OvelX2smc84/D/9cIXRpx9dkRE/k9pK5z4hxGfHqt7BgGgPsJ9AAAA2KHe/NaIS78dMfqliK++uAz5C4+/6OyzH4+zz46TIiKuuqo4nmXpz+OvfuCB+NcHDx7t6+f/cOqph/6orMQvHDrpyI0XLT1n9xkRzx+OmBuLuOA5dc8gANRHuA8AAAA72AXPifjKben2+B9E3PEbEXf/ecQDe1c/97EbTjklbjjllGM9xlMWI8797Yi3vj5dkAAAhPsAAADAETPPiogjQX/kETfdGHHPByI+tisduvvPy8f+8weWVvofjezqsvf/z7w94oxH0u1fOxzx0u9EvOLeIw+87aieHgC2LeE+AAAA0Neb3xoRb424tt+djYj4s/7nXdtnodtrv7CGF/z/6v6JAWBwCPcBAACADbWmIB8AeFKOq3sAAAAAAADA+gj3AQAAAABgwAj3AQAAAABgwAj3AQAAAABgwAj3AQAAAABgwOyuewAAsLozzqjufeKnEbe9tu4xDb6f3HX++c+6pO5RbA/3j51//u531T2K7cH7cuN4X24c78uN4325cbwvN879Y+ef333krLPq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" } }, "cell_type": "markdown", "id": "340d3da9", "metadata": {}, "source": [ "Here is a solution for the 8-queens problem instance:\n", "\"queens\"" ] }, { "cell_type": "markdown", "id": "e7cfd7f9", "metadata": {}, "source": [ "To build a CSP (Constraint Satisfaction Problem) model, we need first to import the library PyCSP$^3$:" ] }, { "cell_type": "code", "execution_count": 1, "id": "6da2094d", "metadata": {}, "outputs": [], "source": [ "from pycsp3 import *" ] }, { "cell_type": "markdown", "id": "7cc89fcc", "metadata": {}, "source": [ "Then, we need some data. Here, we just need to know the order (i.e., the number of queens). We choose 8." ] }, { "cell_type": "code", "execution_count": 2, "id": "5517b035", "metadata": {}, "outputs": [], "source": [ "n = 8" ] }, { "cell_type": "markdown", "id": "bbfcdc74", "metadata": {}, "source": [ "A simple model can be built by associating a variable with each row of the board. Thus, we start our CSP model with an array $q$ of $n$ variables, each one with $\\{0,1,\\dots,n-1\\}$ as domain. " ] }, { "cell_type": "code", "execution_count": 3, "id": "85b9eca0", "metadata": {}, "outputs": [], "source": [ "# q[i] is the column of the ith queen (at row i)\n", "q = VarArray(size=n, dom=range(n))" ] }, { "cell_type": "markdown", "id": "8aa4c2cc", "metadata": {}, "source": [ "Concerning the constraints, we can impose that queens are put on different columns by posting a constraint *AllDifferent*." ] }, { "cell_type": "code", "execution_count": 4, "id": "8013d665", "metadata": {}, "outputs": [], "source": [ "satisfy(\n", " # all queens are put on different columns\n", " AllDifferent(q)\n", ");" ] }, { "cell_type": "markdown", "id": "0ee221f4", "metadata": {}, "source": [ "Interestingly, by calling the function *solve()*, we can check that the problem is satisfiable (SAT). We can also display the found solution. Here, we call the function *values()* that collects the values assigned to a specified list of variables." ] }, { "cell_type": "code", "execution_count": 5, "id": "865f0910", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0, 1, 2, 3, 4, 5, 6, 7]\n" ] } ], "source": [ "if solve() is SAT:\n", " print(values(q))" ] }, { "cell_type": "markdown", "id": "cc2e15ce", "metadata": {}, "source": [ "Of course, we have trivially a problem because all queens are put on the same diagonal. We can impose that no two queens are put on the same downward diagonal by adding this constraint (the proof is let as an exercice):" ] }, { "cell_type": "code", "execution_count": 6, "id": "2dd98a05", "metadata": {}, "outputs": [], "source": [ "satisfy(\n", " # no two queens on the same downward diagonal\n", " AllDifferent(q[i] - i for i in range(n))\n", ");" ] }, { "cell_type": "markdown", "id": "cd804126", "metadata": {}, "source": [ "We can run the solver again:" ] }, { "cell_type": "code", "execution_count": 7, "id": "dd8aa55f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0, 2, 6, 5, 7, 3, 1, 4]\n" ] } ], "source": [ "if solve() is SAT:\n", " print(values(q))" ] }, { "cell_type": "markdown", "id": "c833e87e", "metadata": {}, "source": [ "We still have a problem with this \"solution\" because some queens are on the same upward diagonal. We can impose that no two queens are put on the same upward diagonal by adding this constraint (the proof is let as an exercice):" ] }, { "cell_type": "code", "execution_count": 8, "id": "d5d637c3", "metadata": {}, "outputs": [], "source": [ "satisfy(\n", " # no two queens on the same upward diagonal\n", " AllDifferent(q[i] + i for i in range(n))\n", ");" ] }, { "cell_type": "markdown", "id": "bd2a1d36", "metadata": {}, "source": [ "We can run the solver again:" ] }, { "cell_type": "code", "execution_count": 9, "id": "96df6d9b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0, 4, 7, 5, 2, 6, 1, 3]\n" ] } ], "source": [ "if solve() is SAT:\n", " print(values(q))" ] }, { "cell_type": "markdown", "id": "574afa01", "metadata": {}, "source": [ "This time, we do have a solution to the 8-queens problem instance. We can alos chack that there exist 92 solutions as follows:" ] }, { "cell_type": "code", "execution_count": 10, "id": "efccb62e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of solutions: 92\n" ] } ], "source": [ "if solve(sols=ALL) is SAT:\n", " print(\"Number of solutions: \", n_solutions())" ] }, { "cell_type": "markdown", "id": "be2d0d99", "metadata": {}, "source": [ "Finally, we give below the model in one piece. Here the data is expected to be given by the user (in a command line)." ] }, { "cell_type": "raw", "id": "81b2cb80", "metadata": { "raw_mimetype": "text/x-python" }, "source": [ "from pycsp3 import *\n", "\n", "n = data\n", "\n", "# q[i] is the column of the ith queen (at row i)\n", "q = VarArray(size=n, dom=range(n))\n", "\n", "satisfy(\n", " # all queens are put on different columns\n", " AllDifferent(q),\n", "\n", " # no two queens on the same upward diagonal\n", " AllDifferent(q[i] + i for i in range(n)),\n", "\n", " # no two queens on the same downward diagonal\n", " AllDifferent(q[i] - i for i in range(n))\n", ")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.12" } }, "nbformat": 4, "nbformat_minor": 5 }