{ "cells": [ { "cell_type": "markdown", "id": "cb9a3292", "metadata": {}, "source": [ "# Constraint *MDD*" ] }, { "cell_type": "markdown", "id": "7491ce49", "metadata": {}, "source": [ "The constraint *MDD* ensures that the (sequence of) values assigned to the variables of a specified list follows a path going from the root of a specified MDD (Multi-valued Decision Diagram) to its (unique) terminal node." ] }, { "cell_type": "markdown", "id": "6b57a364", "metadata": {}, "source": [ "Because the graph is directed, acyclic, with only one root node and only one terminal node, we just need to introduce the set of transitions." ] }, { "cell_type": "markdown", "id": "d0c43b55", "metadata": {}, "source": [ "Interestingly, in PyCSP$^3$, we can directly write constraints *MDD* in mathematical form, by using tuples, MDDs and the operator 'in'. \n", "The scope of a constraint is given by a tuple of variables on the left of the constraining expression and an MDD is given on the right of the constraining expression.\n", "MDDs are objects of the class *MDD* that are built by specifying a named parameter for the set of transitions, which is technically a set (or list) of 3-tuples." ] }, { "cell_type": "markdown", "id": "b9a47189", "metadata": {}, "source": [ "To see how this constraint works, we need first to import the library PyCSP$^3$:" ] }, { "cell_type": "code", "execution_count": 1, "id": "e208e80e", "metadata": {}, "outputs": [], "source": [ "from pycsp3 import *" ] }, { "cell_type": "markdown", "id": "f3d9c46b", "metadata": {}, "source": [ "For our illustration, we introduce three stand-alone variables $u$, $v$ and $w$, each one with $\\{0,1,2\\}$ as domain. " ] }, { "cell_type": "code", "execution_count": 2, "id": "437aca04", "metadata": {}, "outputs": [], "source": [ "u = Var(0,1,2)\n", "v = Var(0,1,2)\n", "w = Var(0,1,2)" ] }, { "cell_type": "markdown", "id": "b0b84fbd", "metadata": {}, "source": [ "Our objective is to impose that the sequence of values assigned to the variables $u$, $v$ and $w$ belongs to the follwing MDD:" ] }, { "attachments": { "mdd.png": { "image/png": "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" } }, "cell_type": "markdown", "id": "a5a1d5e5", "metadata": {}, "source": [ "The MDD $M$:\n", "\"MDD\"" ] }, { "cell_type": "markdown", "id": "405b9afc", "metadata": {}, "source": [ "We can represent this MDD $M$ as follows:" ] }, { "cell_type": "code", "execution_count": 3, "id": "ed29e68f", "metadata": {}, "outputs": [], "source": [ "r, n1, n2, n3, n4, n5, t = \"r\", \"n1\", \"n2\", \"n3\", \"n4\", \"n5\", \"t\" # names of nodes\n", "t = [(r,0,n1), (r,1,n2), (r,2,n3), (n1,2,n4), (n2,2,n4), (n3,0,n5), (n4,0,t), (n5,0,t)]\n", "M = MDD(t)" ] }, { "cell_type": "markdown", "id": "b08b21f6", "metadata": {}, "source": [ "We can print the textual representation of the automaton:" ] }, { "cell_type": "code", "execution_count": 4, "id": "ce10a277", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MDD(transitions={(r,0,n1),(r,1,n2),(r,2,n3),(n1,2,n4),(n2,2,n4),(n3,0,n5),(n4,0,t),(n5,0,t)})\n" ] } ], "source": [ "print(M)" ] }, { "cell_type": "markdown", "id": "ab8d4c5f", "metadata": {}, "source": [ "We simply post a single constraint *MDD*:" ] }, { "cell_type": "code", "execution_count": 5, "id": "5b378e6b", "metadata": {}, "outputs": [], "source": [ "satisfy(\n", " (u,v,w) in M\n", ");" ] }, { "cell_type": "markdown", "id": "19e415dc", "metadata": {}, "source": [ "Interestingly, we can also display the internal representation of the posted constraint; although a little bit technical, we can see that the information is correctly recorded." ] }, { "cell_type": "code", "execution_count": 6, "id": "92fb8beb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "mdd(list:[u, v, w], transitions:(r,0,n1)(r,1,n2)(r,2,n3)(n1,2,n4)(n2,2,n4)(n3,0,n5)(n4,0,t)(n5,0,t))\n" ] } ], "source": [ "print(posted())" ] }, { "cell_type": "markdown", "id": "b150c13d", "metadata": {}, "source": [ "By calling the function *solve()*, we can check that the problem (actually, the single constraint) is satisfiable (SAT). We can also print the values assigned to the variables in the found solution; we can call the function *values()* that collects the values assigned (in the last found solution) to a specified list of variables." ] }, { "cell_type": "code", "execution_count": 7, "id": "e6d32f39", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Solution: 0 2 0\n" ] } ], "source": [ "if solve() is SAT:\n", " print(\"Solution: \", value(u), value(v), value(w))" ] }, { "cell_type": "markdown", "id": "c9c81665", "metadata": {}, "source": [ "On can enumerate the solutions (supports) for this constraint as follows:" ] }, { "cell_type": "code", "execution_count": 8, "id": "4277072c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Solution 1: 0 2 0\n", "Solution 2: 1 2 0\n", "Solution 3: 2 0 0\n" ] } ], "source": [ "if solve(sols=ALL) is SAT:\n", " for i in range(n_solutions()):\n", " print(f\"Solution {i+1}: {value(u, sol=i)} {value(v, sol=i)} {value(w, sol=i)}\")" ] }, { "cell_type": "markdown", "id": "e6396d77", "metadata": {}, "source": [ "It is not very surprising to get what was already visible on the MDD. " ] } ], "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 }