A7
This commit is contained in:
parent
fb72fe93c6
commit
a8c763010a
@ -8,7 +8,7 @@
|
||||
"from automata.fa.nfa import NFA\n",
|
||||
"from IPython.display import Math\n",
|
||||
"\n",
|
||||
"debug = False\n",
|
||||
"debug = True\n",
|
||||
"\n",
|
||||
"def regex_test(regex: str, inputs: list[str]):\n",
|
||||
" re.validate(regex)\n",
|
||||
@ -30,8 +30,8 @@
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"ExecuteTime": {
|
||||
"end_time": "2024-03-02T00:28:44.229475Z",
|
||||
"start_time": "2024-03-02T00:28:44.047364Z"
|
||||
"end_time": "2024-03-22T22:22:26.498255Z",
|
||||
"start_time": "2024-03-22T22:22:26.217210Z"
|
||||
}
|
||||
},
|
||||
"id": "aa9fd8c82c66ac9a",
|
||||
@ -39,7 +39,17 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"outputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"{'aaaab', 'a', 'b', 'aaab', 'ab', 'aaaa', 'aab'}\n",
|
||||
"['baaaa', 'ba', 'baab', 'baaaaa', 'baa', 'baaab']\n",
|
||||
"['', 'b', 'bb', 'bbb', 'bba', 'ba', 'bab']\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"l1 = ['b', 'ba']\n",
|
||||
"l2 = ['a', 'aab', 'aaaa']\n",
|
||||
@ -79,8 +89,8 @@
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"ExecuteTime": {
|
||||
"end_time": "2024-03-02T00:28:44.236163Z",
|
||||
"start_time": "2024-03-02T00:28:44.231091Z"
|
||||
"end_time": "2024-03-22T22:22:26.505139Z",
|
||||
"start_time": "2024-03-22T22:22:26.499628Z"
|
||||
}
|
||||
},
|
||||
"id": "initial_id",
|
||||
@ -131,6 +141,17 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"aabb: False\n",
|
||||
"aabbbb: False\n",
|
||||
"aabbbbb: True\n",
|
||||
"aaabbbbbb: False\n",
|
||||
"aaaabbbbbbbbb: True\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/plain": "<IPython.core.display.Math object>",
|
||||
@ -158,8 +179,8 @@
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"ExecuteTime": {
|
||||
"end_time": "2024-03-02T00:28:44.245325Z",
|
||||
"start_time": "2024-03-02T00:28:44.237457Z"
|
||||
"end_time": "2024-03-22T22:22:26.515494Z",
|
||||
"start_time": "2024-03-22T22:22:26.506412Z"
|
||||
}
|
||||
},
|
||||
"id": "c0d81b8fb61431de",
|
||||
@ -178,6 +199,22 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"ab: True\n",
|
||||
"bab: False\n",
|
||||
"bbab: True\n",
|
||||
"bbbabb: True\n",
|
||||
"bbbabbb: False\n",
|
||||
"abb: False\n",
|
||||
"abbb: True\n",
|
||||
"ba: True\n",
|
||||
"bba: False\n",
|
||||
"bbba: True\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/plain": "<IPython.core.display.Math object>",
|
||||
@ -210,8 +247,8 @@
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"ExecuteTime": {
|
||||
"end_time": "2024-03-02T00:28:44.251244Z",
|
||||
"start_time": "2024-03-02T00:28:44.246625Z"
|
||||
"end_time": "2024-03-22T22:22:26.522964Z",
|
||||
"start_time": "2024-03-22T22:22:26.517188Z"
|
||||
}
|
||||
},
|
||||
"id": "75f2af38daefc05b",
|
||||
@ -241,6 +278,36 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
": True\n",
|
||||
"0: True\n",
|
||||
"1: True\n",
|
||||
"00: True\n",
|
||||
"01: True\n",
|
||||
"10: True\n",
|
||||
"11: True\n",
|
||||
"000: True\n",
|
||||
"001: True\n",
|
||||
"010: True\n",
|
||||
"011: True\n",
|
||||
"100: True\n",
|
||||
"101: True\n",
|
||||
"0000: True\n",
|
||||
"0001: True\n",
|
||||
"0010: True\n",
|
||||
"0011: True\n",
|
||||
"0100: True\n",
|
||||
"0101: True\n",
|
||||
"0110: True\n",
|
||||
"0111: True\n",
|
||||
"1000: True\n",
|
||||
"00000: False\n",
|
||||
"11111: False\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/plain": "<IPython.core.display.Math object>",
|
||||
@ -287,8 +354,8 @@
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"ExecuteTime": {
|
||||
"end_time": "2024-03-02T00:28:44.258942Z",
|
||||
"start_time": "2024-03-02T00:28:44.253012Z"
|
||||
"end_time": "2024-03-22T22:22:26.531449Z",
|
||||
"start_time": "2024-03-22T22:22:26.524511Z"
|
||||
}
|
||||
},
|
||||
"id": "404b569fb1f1b3dd",
|
||||
@ -307,6 +374,17 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"0100001: True\n",
|
||||
"0100000100001: True\n",
|
||||
"1000001: True\n",
|
||||
"00000010000100000: True\n",
|
||||
"1000100001: False\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/plain": "<IPython.core.display.Math object>",
|
||||
@ -336,8 +414,8 @@
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"ExecuteTime": {
|
||||
"end_time": "2024-03-02T00:28:44.265618Z",
|
||||
"start_time": "2024-03-02T00:28:44.260279Z"
|
||||
"end_time": "2024-03-22T22:22:26.538114Z",
|
||||
"start_time": "2024-03-22T22:22:26.532887Z"
|
||||
}
|
||||
},
|
||||
"id": "91ecde46ccfd6037",
|
||||
@ -366,6 +444,15 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"00100: True\n",
|
||||
"00100: True\n",
|
||||
"00100: False\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/plain": "<IPython.core.display.Math object>",
|
||||
@ -380,6 +467,7 @@
|
||||
"# Let R1 be the regular expression 1* 0 1* 0 1* 0 1* 0 1*\n",
|
||||
"# Let R2 be the regular expression 0* (1 ∪ ε) 0* (1 ∪ ε) 0* (1 ∪ ε) 0* (1 ∪ ε) 0*\n",
|
||||
"# Let R3 be the regular expression (0 ∪ 1)* 00 (0 ∪ 1)\n",
|
||||
"# Was not supposed to be accepted by all, only bt 2 and 3\n",
|
||||
"r1 = '1*01*01*01*01*'\n",
|
||||
"r2 = '0*(1|())0*(1|())0*(1|())0*(1|())0*'\n",
|
||||
"r3 = '(0|1)*00(0|1)'\n",
|
||||
@ -393,8 +481,8 @@
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"ExecuteTime": {
|
||||
"end_time": "2024-03-02T00:28:44.272009Z",
|
||||
"start_time": "2024-03-02T00:28:44.267238Z"
|
||||
"end_time": "2024-03-22T22:22:26.547221Z",
|
||||
"start_time": "2024-03-22T22:22:26.539392Z"
|
||||
}
|
||||
},
|
||||
"id": "e3c432e6556167c7",
|
||||
@ -423,6 +511,22 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"p: True\n",
|
||||
"cp: True\n",
|
||||
"pc: True\n",
|
||||
"cpc: True\n",
|
||||
"ccpcc: True\n",
|
||||
"ccpccpcc: True\n",
|
||||
"ccpccpccpcc: True\n",
|
||||
"ccpccpccpccpcc: True\n",
|
||||
"cpcpcpcpcpc: True\n",
|
||||
"pp: True\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/plain": "<IPython.core.display.Math object>",
|
||||
@ -446,7 +550,7 @@
|
||||
" 'ccpccpccpcc',\n",
|
||||
" 'ccpccpccpccpcc',\n",
|
||||
" 'cpcpcpcpcpc',\n",
|
||||
" '',\n",
|
||||
" 'pp', # Not supposed to be here\n",
|
||||
"]\n",
|
||||
"if debug:\n",
|
||||
" regex_test(q33, inputs)\n",
|
||||
@ -455,8 +559,8 @@
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"ExecuteTime": {
|
||||
"end_time": "2024-03-02T00:28:44.278114Z",
|
||||
"start_time": "2024-03-02T00:28:44.273285Z"
|
||||
"end_time": "2024-03-22T22:22:26.555155Z",
|
||||
"start_time": "2024-03-22T22:22:26.549229Z"
|
||||
}
|
||||
},
|
||||
"id": "5b8c9ad34523ea81",
|
||||
@ -485,6 +589,25 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"0: True\n",
|
||||
"1: True\n",
|
||||
"00: True\n",
|
||||
"01: True\n",
|
||||
"10: True\n",
|
||||
"11: True\n",
|
||||
"000: False\n",
|
||||
"001: False\n",
|
||||
"010: False\n",
|
||||
"0000: True\n",
|
||||
"00001: True\n",
|
||||
"001100: False\n",
|
||||
"011001110: False\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/plain": "<IPython.core.display.Math object>",
|
||||
@ -520,8 +643,8 @@
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"ExecuteTime": {
|
||||
"end_time": "2024-03-02T00:28:44.284200Z",
|
||||
"start_time": "2024-03-02T00:28:44.279548Z"
|
||||
"end_time": "2024-03-22T22:22:26.563180Z",
|
||||
"start_time": "2024-03-22T22:22:26.556508Z"
|
||||
}
|
||||
},
|
||||
"id": "6aa37e012a2b072d",
|
||||
|
135
Assignment 7.ipynb
Normal file
135
Assignment 7.ipynb
Normal file
@ -0,0 +1,135 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "a90ef9f8022df10e",
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"source": [
|
||||
"# Question 42\n",
|
||||
"## c.\n",
|
||||
"$$S \\rightarrow 0S0 | 0S1 | 1S0 | 1S1 | 1$$\n",
|
||||
"\n",
|
||||
"## d.\n",
|
||||
"$$S \\rightarrow X | \\epsilon$$\n",
|
||||
"$$X \\rightarrow aXdd | Y$$\n",
|
||||
"$$Y \\rightarrow bYd | Z$$\n",
|
||||
"$$Z \\rightarrow cZ | \\epsilon$$\n",
|
||||
"\n",
|
||||
"## e.\n",
|
||||
"$$S \\rightarrow 0S | 1S | 00S | 01S | 10S | 11S | 000S | 001S | 010S | 011S| 100S | 101S | 111S | \\epsilon$$"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "2d1690ef",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"$\\pagebreak$"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "9a7c595f",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Question 43\n",
|
||||
"## a.\n",
|
||||
"$$B = \\{ w \\in \\{a, b, c\\}^* | |w| = 4n+1, n \\in \\mathbb{Z}^{\\text{nonneg}} \\}$$\n",
|
||||
"\n",
|
||||
"## b.\n",
|
||||
"$$B = \\{ 0^2x1^3y+2 | x, y \\in \\mathbb{Z}^{\\text{nonneg}} \\}$$\n",
|
||||
"\n",
|
||||
"## c.\n",
|
||||
"$$B = \\{ 0^x1^y | x \\neq y \\text{ and } x, y \\in \\mathbb{Z}^{\\text{nonneg}} \\}$$"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "c8d0ce5a",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"$\\pagebreak$"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "8d439d76",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Question 44\n",
|
||||
"## a.\n",
|
||||
"$$B = \\{ 0^x1^y | y = x + 1 \\text{ and } x, y \\in \\mathbb{Z}^{\\text{nonneg}} \\}$$\n",
|
||||
"\n",
|
||||
"## c.\n",
|
||||
"$$B = \\{ 0^x1^y | y = 3x \\text{ and } x, y \\in \\mathbb{Z}^{\\text{nonneg}} \\}$$"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "323bea35",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"$\\pagebreak$"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "56466c7f",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Question 45\n",
|
||||
"1. First the machine should move left to right looking for a \"b\". If it does not find one it moves to the reject state and if it finds one it will:\n",
|
||||
" - Erase the \"b\"\n",
|
||||
" - Move back to the start\n",
|
||||
" - Look for an \"a\". If it finds one it will repeat step 1. If it does not find one, it will move to the accept state"
|
||||
]
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"cell_type": "markdown",
|
||||
"source": "$\\pagebreak$",
|
||||
"id": "e9fba2ef63041f08"
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"cell_type": "markdown",
|
||||
"source": [
|
||||
"# Question 47\n",
|
||||
"1. First the machine should check if the length of the string is at least 6 and if not, reject\n",
|
||||
"2. Copy 0 or more symbols to tape 2 from tape 1\n",
|
||||
"3. Erase all of tape 2\n",
|
||||
"4. Copy 3 symbols to tape 2 from tape 1\n",
|
||||
"5. Copy 0 or more symbols to tape 3 from tape 1\n",
|
||||
"6. Erase of all of tape 3\n",
|
||||
"7. Copy 3 symbols to tape 3 from tape 1\n",
|
||||
"8. Compare tapes 2 and 3 and if they match, accept, otherwise reject\n",
|
||||
"\n",
|
||||
"The nondeterminism of this machine is the copying 0 or more symbols, as this accounts for strings u and x, as they can be any length including 0, and the machine can make a choice of 0 or more."
|
||||
],
|
||||
"id": "7b6c771c1004546f"
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 2
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython2",
|
||||
"version": "2.7.6"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
Loading…
Reference in New Issue
Block a user