Skip to content

Instantly share code, notes, and snippets.

@syfluqs
Created November 18, 2020 10:09
Show Gist options
  • Save syfluqs/2449a702a9e5bb1ce196b9de8b4c3025 to your computer and use it in GitHub Desktop.
Save syfluqs/2449a702a9e5bb1ce196b9de8b4c3025 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Environment Setup Instructions\n",
"\n",
"\n",
"### Python 3.7+ is needed to run the code. The code has been written using Python 3.8.6.\n",
"\n",
"To check the installed python version, run the following in a terminal console\n",
"```bash\n",
"python3 --version\n",
"```\n",
"OR\n",
"```bash\n",
"python --version\n",
"```\n",
"\n",
"### To run the code, follow the below provided instructions\n",
"\n",
"1. `cd` to the directory of the python project.\n",
"2. Make sure Python version 3.7+ is installed.\n",
"3. Run the following commands in the project directory, to setup the required dependencies.\n",
"```bash\n",
"python3 -m venv venv\n",
"source ./venv/bin/activate\n",
"python3 -m pip install --user poetry\n",
"python3 -m poetry install --no-root\n",
"cd 01_ROBDD\n",
"```\n",
"4. Now the python file can be run\n",
"```bash\n",
"python3 robdd.py\n",
"```\n",
"or imported into another python file like\n",
"```python\n",
"import robdd\n",
"# OR\n",
"from robdd import BooleanExpression\n",
"```\n",
"\n",
"\n",
"\n",
"### Operators\n",
"\n",
"1. NOT operator = `'` or `\\` or `` ` ``. (eg `A'`, `A\\`, ``A` `` are all valid.)\n",
"2. OR operator = `+`. (eg `A+B`, `A'B + BC`.)\n",
"3. AND operator = `.` or omit the operator between two literals, by default they are ANDed. (eg `AB`, `A.B.C`, `x1.x2`, `x1x2'x3` are all valid.)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"# setup for plot\n",
"\n",
"%matplotlib inline\n",
"\n",
"import matplotlib\n",
"matplotlib.rcParams['figure.figsize'] = [8, 6]\n",
"\n",
"from robdd import BooleanExpression"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Solution 1: Finding Cofactor with respect to a variable for a Boolean Expression\n",
"\n",
"Following are the outputs obtained from the code written in `robdd.py`."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'C.B'"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"BooleanExpression(\"A'B+BC\").get_cofactor(\"A\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'B + C.B'"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"BooleanExpression(\"A'B+BC\").get_cofactor(\"A'\")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"cofactor of (ab+bc+ac) wrt a = c + b + b.c\n",
"cofactor of (A'B + BC) wrt A = C.B\n",
"cofactor of (A'B + BC) wrt A' = B + C.B\n",
"cofactor of (AB + A'BC) wrt A\\ = B.C\n",
"cofactor of (x1.x3+x1'x2+x1.x4x5) wrt x1 = x5.x4 + x3\n",
"cofactor of (x1.x3+x1'x2) wrt x1' = x2\n",
"cofactor of (x1.x3) wrt x1' = 0\n",
"cofactor of (x1.x3+x1'x2) wrt x1x3 = 1\n",
"cofactor of (ac+bc+a'b'c') wrt a = b.c + c\n",
"cofactor of (ac+bc+a'b'c') wrt a' = c'.b' + b.c\n",
"cofactor of (b'c'+bc) wrt b = c\n",
"cofactor of (b'c'+bc) wrt b' = c'\n",
"cofactor of (c+bc) wrt b = c\n",
"cofactor of (c+bc) wrt b' = c\n",
"cofactor of (0) wrt a = 0\n",
"cofactor of (b+bc) wrt b = 1\n",
"cofactor of (b+bc) wrt b' = 0\n"
]
}
],
"source": [
"from IPython.display import display, HTML\n",
"\n",
"examples = [\n",
" (\"ab+bc+ac\", \"a\"),\n",
" (\"A'B + BC\", \"A\"),\n",
" (\"A'B + BC\", \"A'\"),\n",
" (\"AB + A'BC\", r\"A\\ \"),\n",
" (\"x1.x3+x1'x2+x1.x4x5\", \"x1\"),\n",
" (\"x1.x3+x1'x2\", \"x1'\"),\n",
" (\"x1.x3\", \"x1'\"),\n",
" (\"x1.x3+x1'x2\", \"x1x3\"),\n",
" (\"ac+bc+a'b'c'\", \"a\"),\n",
" (\"ac+bc+a'b'c'\", \"a'\"),\n",
" (\"b'c'+bc\", \"b\"),\n",
" (\"b'c'+bc\", \"b'\"),\n",
" (\"c+bc\", \"b\"),\n",
" (\"c+bc\", \"b'\"),\n",
" (\"0\", \"a\"),\n",
" (\"b+bc\", \"b\"),\n",
" (\"b+bc\", \"b'\"),\n",
"]\n",
"\n",
"# solving cofactors of above examples and printing\n",
"for i, example in enumerate(examples):\n",
" expr = BooleanExpression(example[0])\n",
" cofactor_wrt = example[1]\n",
" cofactor = expr.get_cofactor(cofactor_wrt)\n",
" print(f'cofactor of ({expr}) wrt {cofactor_wrt} = {cofactor}')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Solution 2: Finding the ROBDD of a Boolean Function"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Finding arbitrary variable ordering from a given boolean expression"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'A < B < C'"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"BooleanExpression(r\"AB + B\\C + AC\").default_variable_order"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'x1 < x2 < x3 < x4'"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"BooleanExpression(r\"x1.x2.x3 + x2'x3 + x1'x3x4\").default_variable_order"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### ROBDD from boolean expression (with default variable order)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"BooleanExpression(r\"ABC + A\\C\\ \").build_robdd().draw()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"BooleanExpression(\"x1x4 + x2x4\").build_robdd(variable_order = ['x4', 'x2']).draw()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"BooleanExpression(r\"abc + ab'c + a'bc\").build_robdd().draw()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Error while drawing ROBDD, function not synthesized properly is the most likely cause.\n",
"synthesized ROBDD: {value: None}\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAcwAAAFUCAYAAACp7gyoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFYUlEQVR4nO3YMU4DUQxAwf2IIyQ1e/+zJIdIDXcwBV0Eq9eQgDRT2o27J3nNzAYAHHt59gEA8B8IJgAEggkAgWACQCCYABAIJgAEr0fL0+k0+74/6BQAeL7r9foxM+f7+WEw933fLpfL710FAH/MWuv23dxLFgACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAgEEwACwQSAQDABIBBMAAjWzPy8XOt927bb484BgKd7m5nz/fAwmADAFy9ZAAgEEwACwQSAQDABIBBMAAg+AXiiHEnO9blIAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 576x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"BooleanExpression(r\"abc + a'bc\").build_robdd().draw()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"BooleanExpression(r\"ab+bc+ac\").build_robdd().draw()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"BooleanExpression(r\"ABC\").build_robdd().draw()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"BooleanExpression(r\"ab'+b'c\").build_robdd().draw()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"{value: a, left: {value: b, left: {value: 1}, right: {value: 0}}, right: {value: b, left: {value: 0}, right: {value: 1}}}"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bdd = BooleanExpression(r\"ab+a'b'\").build_robdd()\n",
"bdd.draw()\n",
"bdd"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "robdd",
"language": "python",
"name": "robdd"
},
"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.8.6"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment