mirror of
https://github.com/NotXia/unibo-ai-notes.git
synced 2025-12-16 19:32:21 +01:00
Moved LAAI3 in year1
This commit is contained in:
15
src/year1/languages-and-algorithms-for-ai/metadata.json
Normal file
15
src/year1/languages-and-algorithms-for-ai/metadata.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"name": "Languages and Algorithms for Artificial Intelligence",
|
||||
"year": 1,
|
||||
"semester": 3,
|
||||
"pdfs": [
|
||||
{
|
||||
"name": "LAAI module 2",
|
||||
"path": "module2/laai2.pdf"
|
||||
},
|
||||
{
|
||||
"name": "LAAI module 3",
|
||||
"path": "module3/laai3.pdf"
|
||||
}
|
||||
]
|
||||
}
|
||||
1
src/year1/languages-and-algorithms-for-ai/module3/ainotes.cls
Symbolic link
1
src/year1/languages-and-algorithms-for-ai/module3/ainotes.cls
Symbolic link
@ -0,0 +1 @@
|
||||
../../../ainotes.cls
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,74 @@
|
||||
<mxfile host="Electron" modified="2024-04-15T14:25:14.544Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/23.1.5 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="_xosucxMC8A2ODMuTiah" version="23.1.5" type="device">
|
||||
<diagram name="Pagina-1" id="2E39NDmfMYuv_2c8OxZy">
|
||||
<mxGraphModel dx="683" dy="398" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="I8w5w0JpwTpMXvzJh7J8-1" value="Training data" style="text;html=1;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=20;fontFamily=Computer modern;" parent="1" vertex="1">
|
||||
<mxGeometry x="340" y="390" width="94" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="I8w5w0JpwTpMXvzJh7J8-2" value="f<span style="font-style: normal;"><sub style=""><font style="font-size: 18px;" face="jsMath-cmsy10">A</font></sub></span>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontSize=24;fontFamily=Computer modern;fontStyle=2" parent="1" vertex="1">
|
||||
<mxGeometry x="460" y="402.5" width="80" height="35" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="I8w5w0JpwTpMXvzJh7J8-3" value="h" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontSize=24;fontFamily=Computer modern;fontStyle=2" parent="1" vertex="1">
|
||||
<mxGeometry x="570" y="402.5" width="80" height="35" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="I8w5w0JpwTpMXvzJh7J8-4" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="I8w5w0JpwTpMXvzJh7J8-1" target="I8w5w0JpwTpMXvzJh7J8-2" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="520" y="450" as="sourcePoint" />
|
||||
<mxPoint x="570" y="400" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="I8w5w0JpwTpMXvzJh7J8-5" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="I8w5w0JpwTpMXvzJh7J8-2" target="I8w5w0JpwTpMXvzJh7J8-3" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="424" y="430" as="sourcePoint" />
|
||||
<mxPoint x="470" y="430" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="I8w5w0JpwTpMXvzJh7J8-6" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="I8w5w0JpwTpMXvzJh7J8-8" target="I8w5w0JpwTpMXvzJh7J8-3" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="610" y="370" as="sourcePoint" />
|
||||
<mxPoint x="580" y="430" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="I8w5w0JpwTpMXvzJh7J8-8" value="Data" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=20;fontFamily=Computer modern;" parent="1" vertex="1">
|
||||
<mxGeometry x="560" y="340" width="100" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="I8w5w0JpwTpMXvzJh7J8-9" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="I8w5w0JpwTpMXvzJh7J8-3" target="I8w5w0JpwTpMXvzJh7J8-10" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="620" y="370" as="sourcePoint" />
|
||||
<mxPoint x="610" y="470" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="I8w5w0JpwTpMXvzJh7J8-10" value="Class" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=20;fontFamily=Computer modern;" parent="1" vertex="1">
|
||||
<mxGeometry x="560" y="470" width="100" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="I8w5w0JpwTpMXvzJh7J8-15" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="I8w5w0JpwTpMXvzJh7J8-16" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="550" y="460" as="sourcePoint" />
|
||||
<mxPoint x="550" y="420" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="550" y="355" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="I8w5w0JpwTpMXvzJh7J8-16" value="Confidence" style="text;html=1;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=20;fontFamily=Computer modern;" parent="1" vertex="1">
|
||||
<mxGeometry x="426" y="340" width="114" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="I8w5w0JpwTpMXvzJh7J8-17" value="Accuracy" style="text;html=1;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=20;fontFamily=Computer modern;" parent="1" vertex="1">
|
||||
<mxGeometry x="434" y="460" width="114" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="I8w5w0JpwTpMXvzJh7J8-18" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="I8w5w0JpwTpMXvzJh7J8-17" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="520" y="460" as="sourcePoint" />
|
||||
<mxPoint x="610" y="450" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="557" y="475" />
|
||||
<mxPoint x="557" y="450" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
@ -0,0 +1,601 @@
|
||||
<mxfile host="Electron" modified="2024-04-15T16:44:44.953Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/23.1.5 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="uCS3114eKACx5m1TV_Aq" version="23.1.5" type="device">
|
||||
<diagram name="Pagina-1" id="2E39NDmfMYuv_2c8OxZy">
|
||||
<mxGraphModel dx="276" dy="161" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-3" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="330" y="370" width="80" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-131" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="330" y="520" width="80" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-1" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;strokeColor=#969696;dashed=1;dashPattern=1 4;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="320" y="450" as="sourcePoint" />
|
||||
<mxPoint x="320" y="340" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-2" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;strokeColor=#969696;dashed=1;dashPattern=1 4;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="310" y="440" as="sourcePoint" />
|
||||
<mxPoint x="440" y="440" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-5" value="T" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontStyle=2;fontFamily=Computer modern;" vertex="1" parent="1">
|
||||
<mxGeometry x="410" y="360" width="10" height="10" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-7" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 4;strokeWidth=1;rounded=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;exitX=0.75;exitY=1;exitDx=0;exitDy=0;strokeColor=#969696;" edge="1" parent="1" source="5KzQJG8aGWldB78MasGk-3" target="5KzQJG8aGWldB78MasGk-3">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="330" y="420" as="sourcePoint" />
|
||||
<mxPoint x="390" y="380" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-8" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 4;strokeWidth=1;rounded=0;exitX=1.006;exitY=0.329;exitDx=0;exitDy=0;exitPerimeter=0;strokeColor=#969696;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="407.48" y="389.74" as="sourcePoint" />
|
||||
<mxPoint x="330" y="390" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-9" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 4;strokeWidth=1;rounded=0;exitX=1.006;exitY=0.329;exitDx=0;exitDy=0;exitPerimeter=0;strokeColor=#969696;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="408" y="410" as="sourcePoint" />
|
||||
<mxPoint x="328" y="410" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-10" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 4;strokeWidth=1;rounded=0;exitX=0.75;exitY=1;exitDx=0;exitDy=0;strokeColor=#969696;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="350" y="430" as="sourcePoint" />
|
||||
<mxPoint x="350" y="370" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-22" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashPattern=8 8;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="339" y="390" as="sourcePoint" />
|
||||
<mxPoint x="331" y="383" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-23" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashPattern=8 8;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="355" y="390" as="sourcePoint" />
|
||||
<mxPoint x="334" y="371" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-25" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashPattern=8 8;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="376" y="389" as="sourcePoint" />
|
||||
<mxPoint x="355" y="370" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-26" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashPattern=8 8;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="387" y="389" as="sourcePoint" />
|
||||
<mxPoint x="366" y="370" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-27" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashPattern=8 8;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="406" y="389" as="sourcePoint" />
|
||||
<mxPoint x="385" y="370" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-28" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashPattern=8 8;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="408" y="377" as="sourcePoint" />
|
||||
<mxPoint x="400" y="370" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-36" value="E<span style="font-size: 10px;"><span style="font-size: 10px;"><sub>4</sub></span></span>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontStyle=2;fontFamily=Computer modern;fontColor=#9673A6;" vertex="1" parent="1">
|
||||
<mxGeometry x="355" y="432" width="30" height="10" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-37" value="E<span style="font-size: 10px;"><span style="font-size: 10px;"><sub>1</sub></span></span>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontStyle=2;fontFamily=Computer modern;fontColor=#B85450;" vertex="1" parent="1">
|
||||
<mxGeometry x="411" y="390" width="10" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-38" value="E<span style="font-size: 10px;"><span style="font-size: 10px;"><sub>2</sub></span></span>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontStyle=2;fontFamily=Computer modern;fontColor=#6C8EBF;" vertex="1" parent="1">
|
||||
<mxGeometry x="355" y="359" width="30" height="10" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-39" value="E<span style="font-size: 10px;"><span style="font-size: 10px;"><sub>3</sub></span></span>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontStyle=2;fontFamily=Computer modern;fontColor=#82B366;" vertex="1" parent="1">
|
||||
<mxGeometry x="316" y="390" width="14" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-48" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashPattern=8 8;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="365" y="389" as="sourcePoint" />
|
||||
<mxPoint x="344" y="370" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-50" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashPattern=8 8;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="409" y="386" as="sourcePoint" />
|
||||
<mxPoint x="394" y="371" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-51" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashPattern=8 8;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="347" y="389" as="sourcePoint" />
|
||||
<mxPoint x="331" y="376" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-63" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;dashPattern=8 8;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="338" y="430" as="sourcePoint" />
|
||||
<mxPoint x="330" y="423" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-64" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;dashPattern=8 8;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="354" y="430" as="sourcePoint" />
|
||||
<mxPoint x="333" y="411" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-65" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;dashPattern=8 8;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="375" y="429" as="sourcePoint" />
|
||||
<mxPoint x="354" y="410" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-66" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;dashPattern=8 8;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="386" y="429" as="sourcePoint" />
|
||||
<mxPoint x="365" y="410" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-67" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;dashPattern=8 8;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="405" y="429" as="sourcePoint" />
|
||||
<mxPoint x="384" y="410" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-68" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;dashPattern=8 8;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="407" y="417" as="sourcePoint" />
|
||||
<mxPoint x="399" y="410" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-69" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;dashPattern=8 8;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="364" y="429" as="sourcePoint" />
|
||||
<mxPoint x="343" y="410" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-70" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;dashPattern=8 8;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="397" y="429" as="sourcePoint" />
|
||||
<mxPoint x="376" y="410" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-71" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;dashPattern=8 8;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="408" y="426" as="sourcePoint" />
|
||||
<mxPoint x="393" y="411" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-72" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;dashPattern=8 8;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="346" y="429" as="sourcePoint" />
|
||||
<mxPoint x="330" y="416" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-4" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="350" y="390" width="40" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-6" value="R" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontStyle=2;fontFamily=Computer modern;" vertex="1" parent="1">
|
||||
<mxGeometry x="355" y="390" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-49" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashPattern=8 8;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="398" y="389" as="sourcePoint" />
|
||||
<mxPoint x="377" y="370" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-76" value="" style="group" vertex="1" connectable="0" parent="1">
|
||||
<mxGeometry x="390" y="370" width="21" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-11" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="5KzQJG8aGWldB78MasGk-76">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint y="10" as="sourcePoint" />
|
||||
<mxPoint x="14" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-12" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="5KzQJG8aGWldB78MasGk-76">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1" y="36.5" as="sourcePoint" />
|
||||
<mxPoint x="21" y="23.5" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-13" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="5KzQJG8aGWldB78MasGk-76">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1" y="22" as="sourcePoint" />
|
||||
<mxPoint x="20" y="10" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-14" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="5KzQJG8aGWldB78MasGk-76">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint y="53" as="sourcePoint" />
|
||||
<mxPoint x="20" y="40" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-15" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="5KzQJG8aGWldB78MasGk-76">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="11" y="60" as="sourcePoint" />
|
||||
<mxPoint x="20" y="54" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-44" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="5KzQJG8aGWldB78MasGk-76">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint y="60" as="sourcePoint" />
|
||||
<mxPoint x="20" y="47" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-45" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="5KzQJG8aGWldB78MasGk-76">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint y="45" as="sourcePoint" />
|
||||
<mxPoint x="20" y="32" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-46" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="5KzQJG8aGWldB78MasGk-76">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1" y="29" as="sourcePoint" />
|
||||
<mxPoint x="21" y="16" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-47" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="5KzQJG8aGWldB78MasGk-76">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1" y="15" as="sourcePoint" />
|
||||
<mxPoint x="20" y="3" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-77" value="" style="group" vertex="1" connectable="0" parent="1">
|
||||
<mxGeometry x="330" y="370" width="21" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-17" value="" style="endArrow=none;dashed=1;html=1;rounded=0;entryX=0.927;entryY=0.005;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="5KzQJG8aGWldB78MasGk-77">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint y="10" as="sourcePoint" />
|
||||
<mxPoint x="14" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-18" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="5KzQJG8aGWldB78MasGk-77">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1" y="36.5" as="sourcePoint" />
|
||||
<mxPoint x="21" y="23.5" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-19" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="5KzQJG8aGWldB78MasGk-77">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1" y="22" as="sourcePoint" />
|
||||
<mxPoint x="20" y="10" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-20" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="5KzQJG8aGWldB78MasGk-77">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="11" y="60" as="sourcePoint" />
|
||||
<mxPoint x="20" y="54" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-21" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="5KzQJG8aGWldB78MasGk-77">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint y="53" as="sourcePoint" />
|
||||
<mxPoint x="20" y="40" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-40" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="5KzQJG8aGWldB78MasGk-77">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint y="16" as="sourcePoint" />
|
||||
<mxPoint x="19" y="4" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-41" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="5KzQJG8aGWldB78MasGk-77">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1" y="29" as="sourcePoint" />
|
||||
<mxPoint x="21" y="16" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-42" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="5KzQJG8aGWldB78MasGk-77">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1" y="45" as="sourcePoint" />
|
||||
<mxPoint x="21" y="32" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-43" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="5KzQJG8aGWldB78MasGk-77">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1" y="59" as="sourcePoint" />
|
||||
<mxPoint x="21" y="46" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-78" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;strokeColor=#969696;dashed=1;dashPattern=1 4;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="320" y="600" as="sourcePoint" />
|
||||
<mxPoint x="320" y="490" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-79" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;strokeColor=#969696;dashed=1;dashPattern=1 4;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="310" y="590" as="sourcePoint" />
|
||||
<mxPoint x="440" y="590" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-80" value="T" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontStyle=2;fontFamily=Computer modern;" vertex="1" parent="1">
|
||||
<mxGeometry x="410" y="510" width="10" height="10" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-82" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 4;strokeWidth=1;rounded=0;exitX=1.006;exitY=0.329;exitDx=0;exitDy=0;exitPerimeter=0;strokeColor=#969696;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="407.48" y="545" as="sourcePoint" />
|
||||
<mxPoint x="330" y="545.26" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-83" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 4;strokeWidth=1;rounded=0;exitX=1.006;exitY=0.329;exitDx=0;exitDy=0;exitPerimeter=0;strokeColor=#969696;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="410" y="556" as="sourcePoint" />
|
||||
<mxPoint x="330" y="556" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-84" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 4;strokeWidth=1;rounded=0;exitX=0.75;exitY=1;exitDx=0;exitDy=0;strokeColor=#969696;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="356" y="580" as="sourcePoint" />
|
||||
<mxPoint x="356" y="520" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-91" value="F<span style="font-size: 10px;"><span style="font-size: 10px;"><sub>4</sub></span></span>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontStyle=2;fontFamily=Computer modern;fontColor=#9673A6;" vertex="1" parent="1">
|
||||
<mxGeometry x="355" y="582" width="30" height="10" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-92" value="F<span style="font-size: 10px;"><span style="font-size: 10px;"><sub>1</sub></span></span>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontStyle=2;fontFamily=Computer modern;fontColor=#B85450;" vertex="1" parent="1">
|
||||
<mxGeometry x="411" y="540" width="10" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-93" value="F<span style="font-size: 10px;"><span style="font-size: 10px;"><sub>2</sub></span></span>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontStyle=2;fontFamily=Computer modern;fontColor=#6C8EBF;" vertex="1" parent="1">
|
||||
<mxGeometry x="355" y="509" width="30" height="10" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-94" value="F<span style="font-size: 10px;"><span style="font-size: 10px;"><sub>3</sub></span></span>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontStyle=2;fontFamily=Computer modern;fontColor=#82B366;" vertex="1" parent="1">
|
||||
<mxGeometry x="316" y="540" width="14" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-98" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;dashPattern=8 8;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="338" y="580" as="sourcePoint" />
|
||||
<mxPoint x="330" y="573" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-111" value="" style="group" vertex="1" connectable="0" parent="1">
|
||||
<mxGeometry x="385" y="520" width="24" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-112" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="5KzQJG8aGWldB78MasGk-111">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint y="10" as="sourcePoint" />
|
||||
<mxPoint x="16.36111111111111" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-113" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="5KzQJG8aGWldB78MasGk-111">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1.1686507936507937" y="36.5" as="sourcePoint" />
|
||||
<mxPoint x="24.541666666666664" y="23.5" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-114" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="5KzQJG8aGWldB78MasGk-111">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1.1686507936507937" y="22" as="sourcePoint" />
|
||||
<mxPoint x="23.373015873015873" y="10" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-115" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="5KzQJG8aGWldB78MasGk-111">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint y="53" as="sourcePoint" />
|
||||
<mxPoint x="23.373015873015873" y="40" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-116" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="5KzQJG8aGWldB78MasGk-111">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="12.855158730158731" y="60" as="sourcePoint" />
|
||||
<mxPoint x="23.373015873015873" y="54" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-117" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="5KzQJG8aGWldB78MasGk-111">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint y="60" as="sourcePoint" />
|
||||
<mxPoint x="23.373015873015873" y="47" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-118" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="5KzQJG8aGWldB78MasGk-111">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint y="45" as="sourcePoint" />
|
||||
<mxPoint x="23.373015873015873" y="32" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-119" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="5KzQJG8aGWldB78MasGk-111">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1.1686507936507937" y="29" as="sourcePoint" />
|
||||
<mxPoint x="24.541666666666664" y="16" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-120" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="5KzQJG8aGWldB78MasGk-111">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1.1686507936507937" y="15" as="sourcePoint" />
|
||||
<mxPoint x="23.373015873015873" y="3" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-121" value="" style="group" vertex="1" connectable="0" parent="1">
|
||||
<mxGeometry x="330" y="520" width="30" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-122" value="" style="endArrow=none;dashed=1;html=1;rounded=0;entryX=0.927;entryY=0.005;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="5KzQJG8aGWldB78MasGk-121">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint y="10" as="sourcePoint" />
|
||||
<mxPoint x="16.153846153846153" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-123" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="5KzQJG8aGWldB78MasGk-121">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1.1538461538461537" y="36.5" as="sourcePoint" />
|
||||
<mxPoint x="24.23076923076923" y="23.5" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-124" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="5KzQJG8aGWldB78MasGk-121">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1.1538461538461537" y="22" as="sourcePoint" />
|
||||
<mxPoint x="23.076923076923073" y="10" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-125" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="5KzQJG8aGWldB78MasGk-121">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="12.692307692307692" y="60" as="sourcePoint" />
|
||||
<mxPoint x="23.076923076923073" y="54" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-126" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="5KzQJG8aGWldB78MasGk-121">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint y="53" as="sourcePoint" />
|
||||
<mxPoint x="23.076923076923073" y="40" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-127" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="5KzQJG8aGWldB78MasGk-121">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint y="16" as="sourcePoint" />
|
||||
<mxPoint x="21.92307692307692" y="4" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-128" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="5KzQJG8aGWldB78MasGk-121">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1.1538461538461537" y="29" as="sourcePoint" />
|
||||
<mxPoint x="24.23076923076923" y="16" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-129" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="5KzQJG8aGWldB78MasGk-121">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1.1538461538461537" y="45" as="sourcePoint" />
|
||||
<mxPoint x="24.23076923076923" y="32" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-130" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="5KzQJG8aGWldB78MasGk-121">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1.1538461538461537" y="59" as="sourcePoint" />
|
||||
<mxPoint x="24.23076923076923" y="46" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-142" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 4;strokeWidth=1;rounded=0;exitX=0.75;exitY=1;exitDx=0;exitDy=0;strokeColor=#969696;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="384.89" y="580" as="sourcePoint" />
|
||||
<mxPoint x="384.89" y="520" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-144" value="" style="group" vertex="1" connectable="0" parent="1">
|
||||
<mxGeometry x="330" y="556" width="78" height="24" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-99" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;dashPattern=8 8;" edge="1" parent="5KzQJG8aGWldB78MasGk-144">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="24" y="20" as="sourcePoint" />
|
||||
<mxPoint x="3" y="1" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-100" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;dashPattern=8 8;" edge="1" parent="5KzQJG8aGWldB78MasGk-144">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="45" y="19" as="sourcePoint" />
|
||||
<mxPoint x="24" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-101" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;dashPattern=8 8;" edge="1" parent="5KzQJG8aGWldB78MasGk-144">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="56" y="19" as="sourcePoint" />
|
||||
<mxPoint x="35" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-102" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;dashPattern=8 8;" edge="1" parent="5KzQJG8aGWldB78MasGk-144">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="75" y="19" as="sourcePoint" />
|
||||
<mxPoint x="54" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-103" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;dashPattern=8 8;" edge="1" parent="5KzQJG8aGWldB78MasGk-144">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="77" y="7" as="sourcePoint" />
|
||||
<mxPoint x="69" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-104" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;dashPattern=8 8;" edge="1" parent="5KzQJG8aGWldB78MasGk-144">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="34" y="19" as="sourcePoint" />
|
||||
<mxPoint x="13" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-105" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;dashPattern=8 8;" edge="1" parent="5KzQJG8aGWldB78MasGk-144">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="67" y="19" as="sourcePoint" />
|
||||
<mxPoint x="46" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-106" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;dashPattern=8 8;" edge="1" parent="5KzQJG8aGWldB78MasGk-144">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="78" y="16" as="sourcePoint" />
|
||||
<mxPoint x="63" y="1" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-107" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#e1d5e7;strokeColor=#9673a6;dashPattern=8 8;" edge="1" parent="5KzQJG8aGWldB78MasGk-144">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="16" y="19" as="sourcePoint" />
|
||||
<mxPoint y="6" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-143" value="" style="group" vertex="1" connectable="0" parent="1">
|
||||
<mxGeometry x="331" y="520" width="78" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-85" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashPattern=8 8;" edge="1" parent="5KzQJG8aGWldB78MasGk-143">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="8" y="24" as="sourcePoint" />
|
||||
<mxPoint y="15.6" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-86" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashPattern=8 8;" edge="1" parent="5KzQJG8aGWldB78MasGk-143">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="24" y="24" as="sourcePoint" />
|
||||
<mxPoint x="3" y="1.2" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-87" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashPattern=8 8;" edge="1" parent="5KzQJG8aGWldB78MasGk-143">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="45" y="22.8" as="sourcePoint" />
|
||||
<mxPoint x="24" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-88" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashPattern=8 8;" edge="1" parent="5KzQJG8aGWldB78MasGk-143">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="56" y="22.8" as="sourcePoint" />
|
||||
<mxPoint x="35" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-89" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashPattern=8 8;" edge="1" parent="5KzQJG8aGWldB78MasGk-143">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="75" y="22.8" as="sourcePoint" />
|
||||
<mxPoint x="54" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-90" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashPattern=8 8;" edge="1" parent="5KzQJG8aGWldB78MasGk-143">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="77" y="8.4" as="sourcePoint" />
|
||||
<mxPoint x="69" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-95" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashPattern=8 8;" edge="1" parent="5KzQJG8aGWldB78MasGk-143">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="34" y="22.8" as="sourcePoint" />
|
||||
<mxPoint x="13" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-96" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashPattern=8 8;" edge="1" parent="5KzQJG8aGWldB78MasGk-143">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="78" y="19.2" as="sourcePoint" />
|
||||
<mxPoint x="63" y="1.2" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-97" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashPattern=8 8;" edge="1" parent="5KzQJG8aGWldB78MasGk-143">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="16" y="22.8" as="sourcePoint" />
|
||||
<mxPoint y="7.199999999999999" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-110" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashPattern=8 8;" edge="1" parent="5KzQJG8aGWldB78MasGk-143">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="67" y="22.8" as="sourcePoint" />
|
||||
<mxPoint x="46" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="5KzQJG8aGWldB78MasGk-145" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;dashed=1;dashPattern=1 1;" vertex="1" parent="5KzQJG8aGWldB78MasGk-143">
|
||||
<mxGeometry x="19" y="20" width="40" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
27
src/year1/languages-and-algorithms-for-ai/module3/laai3.tex
Normal file
27
src/year1/languages-and-algorithms-for-ai/module3/laai3.tex
Normal file
@ -0,0 +1,27 @@
|
||||
\documentclass[11pt]{ainotes}
|
||||
\usepackage{xspace}
|
||||
|
||||
\title{Languages and Algorithms for\\Artificial Intelligence\\(Module 3)}
|
||||
\date{2023 -- 2024}
|
||||
\def\lastupdate{{PLACEHOLDER-LAST-UPDATE}}
|
||||
\newcommand{\enc}[1]{{\llcorner{#1}\lrcorner}}
|
||||
\newcommand{\tapestart}[0]{\triangleright}
|
||||
\newcommand{\tapeblank}[0]{\square}
|
||||
\def\P{\textbf{P}\xspace}
|
||||
\def\DTIME{\textbf{DTIME}\xspace}
|
||||
\def\FP{\textbf{FP}\xspace}
|
||||
\def\FDTIME{\textbf{FDTIME}\xspace}
|
||||
\def\EXP{\textbf{EXP}\xspace}
|
||||
\def\FEXP{\textbf{FEXP}\xspace}
|
||||
\def\NP{\textbf{NP}\xspace}
|
||||
\def\NDTIME{\textbf{NDTIME}\xspace}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\makenotesfront
|
||||
\input{sections/_intro.tex}
|
||||
\input{sections/_turing.tex}
|
||||
\input{sections/_complexity.tex}
|
||||
\input{sections/_computational_learning.tex}
|
||||
|
||||
\end{document}
|
||||
@ -0,0 +1,276 @@
|
||||
\chapter{Complexity}
|
||||
|
||||
|
||||
\begin{description}
|
||||
\item[Complexity class] \marginnote{Complexity class}
|
||||
Set of tasks that can be computed within some fixed resource bounds.
|
||||
\end{description}
|
||||
|
||||
|
||||
|
||||
\section{Polynomial time}
|
||||
|
||||
\begin{description}
|
||||
\item[Deterministic time (\DTIME)] \marginnote{Deterministic time (\DTIME)}
|
||||
Let $T: \mathbb{N} \rightarrow \mathbb{N}$ and $\mathcal{L}$ be a language.
|
||||
$\mathcal{L}$ is in $\DTIME(T(n))$ iff
|
||||
there exists a TM that decides $\mathcal{L}$ in time $O(T(n))$.
|
||||
|
||||
\item[Polynomial time (\P)] \marginnote{Polynomial time (\P)}
|
||||
The class \P contains all the tasks computable in polynomial time:
|
||||
\[ \P = \bigcup_{c \geq 1} \DTIME(n^c) \]
|
||||
|
||||
\begin{remark}
|
||||
\P is closed to various operations on programs (e.g. composition of programs)
|
||||
\end{remark}
|
||||
|
||||
\begin{remark}
|
||||
In practice, the exponent is often small.
|
||||
\end{remark}
|
||||
|
||||
\begin{remark}
|
||||
\P considers the worst case and is not always realistic.
|
||||
Other alternative computational models exist.
|
||||
\end{remark}
|
||||
|
||||
\item[Church-Turing thesis] \marginnote{Church-Turing thesis}
|
||||
Any physically realizable computer can be simulated by a TM with an arbitrary time overhead.
|
||||
|
||||
\item[Strong Church-Turing thesis] \marginnote{Strong Church-Turing thesis}
|
||||
Any physically realizable computer can be simulated by a TM with a polynomial time overhead.
|
||||
|
||||
\begin{remark}
|
||||
If this thesis holds, the class \P is robust
|
||||
(i.e. does not depend on the computational device)
|
||||
and is therefore the smallest class of bounds.
|
||||
\end{remark}
|
||||
|
||||
\item[Deterministic time for functions (\FDTIME)] \marginnote{Deterministic time for functions (\FDTIME)}
|
||||
Let $T: \mathbb{N} \rightarrow \mathbb{N}$ and
|
||||
$f: \{0, 1\}^* \rightarrow \{0, 1\}^*$.
|
||||
$f$ is in $\FDTIME(T(n))$ iff
|
||||
there exists a TM that computes it in time $O(T(n))$.
|
||||
|
||||
\item[Polynomial time for functions (\FP)] \marginnote{Polynomial time for functions (\FP)}
|
||||
The class \FP is defined as:
|
||||
\[ \FP = \bigcup_{c \geq 1} \FDTIME(n^c) \]
|
||||
|
||||
\begin{remark}
|
||||
It holds that $\forall \mathcal{L} \in \P \Rightarrow f_\mathcal{L} \in \FP$,
|
||||
where $f_\mathcal{L}$ is the characteristic function of $\mathcal{L}$.
|
||||
Generally, the contrary does not hold.
|
||||
\end{remark}
|
||||
\end{description}
|
||||
|
||||
|
||||
|
||||
\section{Exponential time}
|
||||
|
||||
\begin{description}
|
||||
\item[Exponential time (\EXP/\FEXP)] \marginnote{Exponential time (\EXP/\FEXP)}
|
||||
The \EXP and \FEXP classes are defined as:
|
||||
\[
|
||||
\EXP = \bigcup_{c \geq 1} \DTIME\big( 2^{n^c} \big) \hspace{3em}
|
||||
\FEXP = \bigcup_{c \geq 1} \FDTIME\big( 2^{n^c} \big)
|
||||
\]
|
||||
|
||||
\begin{theorem}
|
||||
The following hold:
|
||||
\[ \P \subset \EXP \hspace{3em} \FP \subset \FEXP \]
|
||||
\end{theorem}
|
||||
\end{description}
|
||||
|
||||
|
||||
|
||||
\section{\NP class}
|
||||
|
||||
\begin{description}
|
||||
\item[Certificate] \marginnote{Certificate}
|
||||
Given a set of pairs $\mathcal{C}_\mathcal{L}$ and a polynomial $p: \mathbb{N} \rightarrow \mathbb{N}$,
|
||||
we can define the language $\mathcal{L}$ such that:
|
||||
\[ \mathcal{L} = \{ x \in \{0, 1\}^* \mid \exists y \in \{0, 1\}^{p(\vert x \vert)}: (x, y) \in \mathcal{C}_\mathcal{L} \} \]
|
||||
|
||||
Given a string $w$ and a certificate $y$,
|
||||
we can exploit $\mathcal{C}_\mathcal{L}$ as a test to check whether $y$ is a certificate for $w$:
|
||||
\[ w \in \mathcal{L} \iff (w, y) \in \mathcal{C}_\mathcal{L} \]
|
||||
|
||||
\item[Nondeterministic TM (NDTM)] \marginnote{Nondeterministic TM (NDTM)}
|
||||
TM that has two transition functions $\delta_0$, $\delta_1$ and, at each step, non-deterministically chooses which one to follow.
|
||||
A state $q_\text{accept}$ is always present:
|
||||
\begin{itemize}
|
||||
\item A NDTM accepts a string iff one of the possible computations reaches $q_\text{accept}$.
|
||||
\item A NDTM rejects a string iff none of the possible computations reach $q_\text{accept}$.
|
||||
\end{itemize}
|
||||
|
||||
\item[Nondeterministic time (\NDTIME)] \marginnote{Nondeterministic time (\NDTIME)}
|
||||
Let $T: \mathbb{N} \rightarrow \mathbb{N}$ and $\mathcal{L}$ be a language.
|
||||
$\mathcal{L}$ is in $\NDTIME(T(n))$ iff
|
||||
there exists a NDTM that decides $\mathcal{L}$ in time $O(T(n))$.
|
||||
|
||||
\begin{remark}
|
||||
A NDTM $\mathcal{M}$ runs in time $T: \mathbb{N} \rightarrow \mathbb{N}$ iff
|
||||
for every input, any possible computation terminates in time $O(T(n))$.
|
||||
\end{remark}
|
||||
|
||||
\item[Complexity class \NP] \marginnote{Complexity class \NP}
|
||||
\phantom{}
|
||||
\begin{description}
|
||||
\item[NDTM formulation]
|
||||
The class \NP contains all the tasks computable in polynomial time by a nondeterministic TM:
|
||||
\[ \NP = \bigcup_{c \geq 1} \NDTIME(n^c) \]
|
||||
|
||||
\item[Verifier formulation]
|
||||
Let $\mathcal{L} \in \{0, 1\}^*$ be a language.
|
||||
$\mathcal{L}$ is in \NP iff there exists
|
||||
a polynomial $p: \mathbb{N} \rightarrow \mathbb{N}$ and
|
||||
a polynomial TM $\mathcal{M}$ (verifier) such that:
|
||||
\[ \mathcal{L} = \{ x \in \{0, 1\}^* \mid \exists y \in \{0, 1\}^{p(\vert x \vert)}: \mathcal{M}(\enc{(x, y)}) = 1 \} \]
|
||||
|
||||
In other words, $\mathcal{L}$ is the language of the strings that can be verified by $\mathcal{M}$ in polynomial time
|
||||
using a certificate $y$ of polynomial length.
|
||||
\end{description}
|
||||
|
||||
\end{description}
|
||||
|
||||
\begin{theorem} \label{th:P_NP_EXP_relationship}
|
||||
$\P \subseteq \NP \subseteq \EXP$.
|
||||
|
||||
\begin{proof}
|
||||
We have to prove that $\P \subseteq \NP$ and $\NP \subseteq \EXP$:
|
||||
\begin{description}
|
||||
\item[$\P \subseteq \NP$)]
|
||||
Given a language $\mathcal{L} \in \P$, we want to prove that $\mathcal{L} \in \NP$.
|
||||
|
||||
By hypothesis, there is a polynomial time TM $\mathcal{N}$ that decides $\mathcal{L}$.
|
||||
To prove that $\mathcal{L}$ is in $\NP$,
|
||||
we show that there is a polynomial verifier $\mathcal{M}$ that certifies $\mathcal{L}$ with a polynomial certificate.
|
||||
We can use any constant certificate (e.g. of length 1) and
|
||||
use $\mathcal{N}$ as the verifier $\mathcal{M}$:
|
||||
\[
|
||||
\mathcal{M}(x, y) = \begin{cases}
|
||||
1 & \text{if $\mathcal{N}(x) = 1$} \\
|
||||
0 & \text{otherwise}
|
||||
\end{cases}
|
||||
\]
|
||||
$\mathcal{M}$ can ignore the polynomial certificate and it "verifies" a string in polynomial time through $\mathcal{N}$.
|
||||
|
||||
\item[$\NP \subseteq \EXP$)]
|
||||
Given a language $\mathcal{L} \in \NP$, we want to prove that $\mathcal{L} \in \EXP$.
|
||||
|
||||
By hypothesis, there is a polynomial time TM $\mathcal{N}$ that is able to certify any string in $\mathcal{L}$ with a polynomial certificate.
|
||||
Given a polynomial $p$, can define the following algorithm:
|
||||
\begin{lstlisting}[mathescape=true]
|
||||
def np_to_exp($x \in \{0, 1\}^*$):
|
||||
foreach $y \in \{0, 1\}^{p(\vert x \vert)}$:
|
||||
if $\mathcal{M}(x, y) == 1$:
|
||||
return 1
|
||||
return 0
|
||||
\end{lstlisting}
|
||||
The algorithm has complexity
|
||||
$O(2^{p(\vert x \vert)}) \cdot O(q(\vert x \vert + \vert y \vert)) = O(2^{p(\vert x \vert) + \log(q(\vert x \vert + \vert y \vert))})$,
|
||||
where $q$ is a polynomial.
|
||||
Therefore, the complexity is exponential.
|
||||
\end{description}
|
||||
\end{proof}
|
||||
\end{theorem}
|
||||
|
||||
|
||||
\begin{description}
|
||||
\item[Polynomial-time reducibility] \marginnote{Polynomial-time reducibility}
|
||||
A language $\mathcal{L}$ is poly-time reducible to $\mathcal{H}$ ($\mathcal{L} \leq_p \mathcal{H}$) iff:
|
||||
\[
|
||||
\begin{split}
|
||||
\exists f: \{0, 1\}^* \rightarrow \{0, 1\}^* \text{ such that } &(x \in \mathcal{L} \iff f(x) \in \mathcal{H}) \text{ and} \\
|
||||
&\text{$f$ is computable in poly-time}
|
||||
\end{split}
|
||||
\]
|
||||
$f$ can be seen as a mapping function.
|
||||
|
||||
\begin{remark}
|
||||
Intuitively, when $\mathcal{L} \leq_p \mathcal{H}$, $\mathcal{H}$ is at least as difficult as $\mathcal{L}$.
|
||||
\end{remark}
|
||||
|
||||
\begin{theorem}
|
||||
The relation $\leq_p$ is a pre-order (i.e. reflexive and transitive).
|
||||
|
||||
\begin{proof}
|
||||
We want to prove that $\leq_p$ is reflexive and transitive:
|
||||
\begin{descriptionlist}
|
||||
\item[Reflexive)]
|
||||
Given a language $\mathcal{L}$, we want to prove that $\mathcal{L} \leq_p \mathcal{L}$.
|
||||
|
||||
We have to find a poly-time function $f: \{0, 1\}^* \rightarrow \{0, 1\}^*$ such that:
|
||||
\[ x \in \mathcal{L} \iff f(x) \in \mathcal{L} \]
|
||||
We can choose $f$ as the identity function.
|
||||
|
||||
\item[Transitive)]
|
||||
Given the languages $\mathcal{L}, \mathcal{H}, \mathcal{J}$, we want to prove that:
|
||||
\[ (\mathcal{L} \leq_p \mathcal{H}) \land (\mathcal{H} \leq_p \mathcal{J}) \Rightarrow (\mathcal{L} \leq_p \mathcal{J}) \]
|
||||
|
||||
By hypothesis, it holds that $\mathcal{L} \leq_p \mathcal{H}$ and $\mathcal{H} \leq_p \mathcal{J}$.
|
||||
Therefore, there are two poly-time functions $f, g: \{0, 1\}^* \rightarrow \{0, 1\}^*$ such that:
|
||||
\[ x \in \mathcal{L} \iff f(x) \in \mathcal{H} \text{ and } y \in \mathcal{H} \iff f(y) \in \mathcal{J} \]
|
||||
We want to find a poly-time mapping from $\mathcal{L}$ to $\mathcal{J}$. This function can be the composition $(g \circ f)(z) = g(f(z))$.
|
||||
$(g \circ f)$ is poly-time as $f$ and $g$ are poly-time.
|
||||
\end{descriptionlist}
|
||||
\end{proof}
|
||||
\end{theorem}
|
||||
|
||||
\item[\NP-hard] \marginnote{\NP-hard}
|
||||
Given a language $\mathcal{H} \in \{0, 1\}^*$, $\mathcal{H}$ is \NP-hard iff:
|
||||
\[ \forall \mathcal{L} \in \NP: \mathcal{L} \leq_p \mathcal{H} \]
|
||||
|
||||
\item[\NP-complete] \marginnote{\NP-complete}
|
||||
Given a language $\mathcal{H} \in \{0, 1\}^*$, $\mathcal{H}$ is \NP-complete iff:
|
||||
\[ \mathcal{H} \in \NP \text{ and } \mathcal{H} \text{ is \NP-hard} \]
|
||||
\end{description}
|
||||
|
||||
\begin{theorem}
|
||||
\phantom{}
|
||||
\begin{enumerate}
|
||||
\item\label{th:np_hard_p} If $\mathcal{L}$ is \NP-hard and $\mathcal{L} \in \P$, then $\P = \NP$.
|
||||
\item If $\mathcal{L}$ is \NP-complete, then $\mathcal{L} \in \P \iff \P = \NP$.
|
||||
\end{enumerate}
|
||||
|
||||
\begin{proof}
|
||||
\phantom{}
|
||||
\begin{enumerate}
|
||||
\item Let $\mathcal{L}$ be \NP-hard and $\mathcal{L} \in \P$.
|
||||
We want to prove that $\P = \NP$:
|
||||
\begin{descriptionlist}
|
||||
\item[$\P \subseteq \NP$)] Proved in \Cref{th:P_NP_EXP_relationship}.
|
||||
\item[$\NP \subseteq \P$)]
|
||||
Let $\mathcal{H}$ be a language in $\NP$.
|
||||
As $\mathcal{L}$ is \NP-hard, by definition it holds that $\mathcal{H} \leq_p \mathcal{L}$.
|
||||
Moreover, by hypothesis, it holds that $\mathcal{L} \in \P$.
|
||||
Therefore, we can conclude that $\mathcal{H} \in \P$ as it can be reduced to a language in $\P$.
|
||||
\end{descriptionlist}
|
||||
|
||||
\item Let $\mathcal{L}$ be \NP-complete.
|
||||
We want to prove that $\mathcal{L} \in \P \iff \P = \NP$:
|
||||
\begin{descriptionlist}
|
||||
\item[$(\mathcal{L} \in \P) \Rightarrow (\P = \NP)$)]
|
||||
Trivial for \hyperref[th:np_hard_p]{Point 1} as $\mathcal{L}$ is also \NP-hard.
|
||||
\item[$(\mathcal{L} \in \P) \Leftarrow (\P = \NP)$)]
|
||||
Let $\P = \NP$.
|
||||
As $\mathcal{L}$ is \NP-complete, it holds that
|
||||
$\mathcal{L} \in \NP=\P$.
|
||||
\end{descriptionlist}
|
||||
\end{enumerate}
|
||||
\end{proof}
|
||||
\end{theorem}
|
||||
|
||||
\begin{theorem}
|
||||
The problem \texttt{TMSAT} of simulating any TM is \NP-complete:
|
||||
\[ \texttt{TMSAT} = \{ (\alpha, x, 1^n, 1^t) \mid \exists u \in \{0, 1\}^n: \mathcal{M}_\alpha(x, u) = 1 \text{ within $t$ steps} \} \]
|
||||
\end{theorem}
|
||||
|
||||
\begin{theorem}[Cook-Levin] \marginnote{Cook-Levin theorem}
|
||||
The following languages are \NP-complete:
|
||||
\[
|
||||
\begin{split}
|
||||
\texttt{SAT} &= \{ \enc{F} \mid F \text{ is a satisfiable CNF} \} \\
|
||||
\texttt{3SAT} &= \{ \enc{F} \mid F \text{ is a satisfiable 3CNF} \} \\
|
||||
\end{split}
|
||||
\]
|
||||
\end{theorem}
|
||||
@ -0,0 +1,166 @@
|
||||
\chapter{Computational learning theory}
|
||||
|
||||
\begin{description}
|
||||
\item[Instance space] \marginnote{Instance space}
|
||||
Set $X$ of (encoded) instances of objects that a learner wants to classify.
|
||||
|
||||
Data from the instance space is drawn from a distribution $\mathcal{D}$ unknown to the learner.
|
||||
|
||||
\item[Concept] \marginnote{Concept}
|
||||
Subset $c \subseteq X$ of the instance space which can be intended as properties of objects (i.e. a way to classify the instance space).
|
||||
|
||||
\item[Concept class] \marginnote{Concept class}
|
||||
Collection $\mathcal{C} \subseteq \mathbb{P}(X)$ of concepts.
|
||||
|
||||
It represents the concepts that are sufficiently simple for the algorithm to handle (i.e. the space of learnable concepts).
|
||||
|
||||
\begin{description}
|
||||
\item[Target concept]
|
||||
Concept $c \in \mathcal{C}$ that the learner wants to learn.
|
||||
\end{description}
|
||||
|
||||
\begin{remark}
|
||||
A learning algorithm is designed to learn concepts from a concept class
|
||||
neither knowing the target concept nor its data distribution.
|
||||
\end{remark}
|
||||
|
||||
\item[Learning algorithm] \marginnote{Learning algorithm}
|
||||
Given a concept class $\mathcal{C}$ and a target concept $c \in \mathcal{C}$ with unknown distribution $\mathcal{D}$,
|
||||
a learning algorithm $\mathcal{A}$ takes as input:
|
||||
\begin{itemize}
|
||||
\item $\varepsilon$, the error parameter (or accuracy if seen as $(1-\varepsilon)$),
|
||||
\item $\delta$, the confidence parameter,
|
||||
\item $EX(c, \mathcal{D})$, an oracle that $\mathcal{A}$ can call to retrieve a data point $x \sim \mathcal{D}$
|
||||
with a label to indicate whether it is in the target concept $c$ or not (i.e. training data),
|
||||
\end{itemize}
|
||||
and outputs a concept $h \in \mathcal{C}$.
|
||||
\begin{center}
|
||||
\includegraphics[width=0.3\linewidth]{./img/_learning_algorithm.pdf}
|
||||
\end{center}
|
||||
|
||||
\begin{description}
|
||||
\item[Probability of error] \marginnote{Probability of error}
|
||||
Given a concept class $\mathcal{C}$,
|
||||
a target concept $c \in \mathcal{C}$ with unknown distribution $\mathcal{D}$ and
|
||||
a learning algorithm $\mathcal{A}$,
|
||||
the probability of error (i.e. misclassifications) for any output $h \in \mathcal{C}$ of $\mathcal{A}$ is defined as:
|
||||
\[ \text{error}_{\mathcal{D}, c} = \mathcal{P}_{x \sim \mathcal{D}}[ h(x) \neq c(x) ] \]
|
||||
\end{description}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.35\linewidth]{./img/_learning_model.pdf}
|
||||
\caption{General idea of a learning algorithm $\mathcal{A}$ computed as a function $f_\mathcal{A}$}
|
||||
\end{figure}
|
||||
|
||||
\item[PAC learnability] \marginnote{PAC learnability}
|
||||
A concept class $\mathcal{C}$ over the instance space $X$ is probably approximately correct (PAC) learnable iff there is an algorithm $\mathcal{A}$ such that:
|
||||
\begin{itemize}
|
||||
\item For each target concept $c \in \mathcal{C}$,
|
||||
\item For each distribution $\mathcal{D}$,
|
||||
\item For each error $0 < \varepsilon < \frac{1}{2}$,
|
||||
\item For each confidence $0 < \delta < \frac{1}{2}$,
|
||||
\end{itemize}
|
||||
it holds that:
|
||||
\[ \mathcal{P}\left[ \text{error}_{\mathcal{D}, c}\Big( \mathcal{A}\big( EX(c, \mathcal{D}), \varepsilon, \delta \big) \Big) < \varepsilon \right] > 1-\delta \]
|
||||
where the probability is computed by sampling data points from $EX(c, \mathcal{D})$.
|
||||
|
||||
In other words, the probability that $\mathcal{A}$ has an error rate lower than $\varepsilon$ (or an accuracy higher than $(1-\varepsilon)$) is greater than $(1-\delta)$.
|
||||
|
||||
\begin{description}
|
||||
\item[Efficient PAC learnability] \marginnote{Efficient PAC learnability}
|
||||
A concept class $\mathcal{C}$ is efficiently PAC learnable iff
|
||||
it is PAC learnable and the algorithm $\mathcal{A}$ that learns it has
|
||||
a time complexity bound to a polynomial in $\frac{1}{\varepsilon}$ and $\frac{1}{\delta}$.
|
||||
|
||||
\begin{remark}
|
||||
The complexity of $\mathcal{A}$ is measured taking into account the number of calls to $EX(c, \mathcal{D})$.
|
||||
\end{remark}
|
||||
\end{description}
|
||||
\end{description}
|
||||
|
||||
|
||||
|
||||
\section{Axes-aligned rectangles over $\mathbb{R}^2_{[0, 1]}$}
|
||||
|
||||
Consider the instance space $X = \mathbb{R}^2_{[0, 1]}$
|
||||
and the concept class $\mathcal{C}$ of concepts represented by all the points contained within a rectangle parallel to the axes of arbitrary size.
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.2\linewidth]{./img/_learning_rectangle.pdf}
|
||||
\caption{Example of problem instance. The gray rectangle is the target concept, red dots are positive data points and blue dots are negative data points.}
|
||||
\end{figure}
|
||||
|
||||
An algorithm has to guess a classifier (i.e. a rectangle) without knowing the target concept and the distribution of its training data.
|
||||
Let an algorithm $\mathcal{A}_\text{BFP}$ be defined as follows:
|
||||
\begin{itemize}
|
||||
\item Take as input some data $\{ ((x_1, y_1), p_1), \dots, ((x_n, y_n), p_n) \}$ where
|
||||
$(x_i, y_i)$ are the coordinates of the point and $p_i$ indicates if the point is within the target rectangle.
|
||||
\item Return the smallest rectangle that includes all the positive instances.
|
||||
\end{itemize}
|
||||
|
||||
Given the rectangle $R$ predicted by $\mathcal{A}_\text{BFP}$ and the target rectangle $T$,
|
||||
the probability of error in using $R$ in place of $T$ is:
|
||||
\[ \text{error}_{\mathcal{D}, T}(R) = \mathcal{P}_{x \sim \mathcal{D}} [ x \in (R \smallsetminus T) \cup (T \smallsetminus R) ] \]
|
||||
In other words, a point is misclassified if it is in $R$ but not in $T$ or vice versa.
|
||||
\begin{remark}
|
||||
By definition of $\mathcal{A}_\text{BFP}$, it always holds that $R \subseteq T$.
|
||||
Therefore, $(R \smallsetminus T) = \varnothing$ and the error can be rewritten as:
|
||||
\[ \text{error}_{\mathcal{D}, T}(R) = \mathcal{P}_{x \sim \mathcal{D}} [ x \in (T \smallsetminus R) ] \]
|
||||
\end{remark}
|
||||
|
||||
|
||||
\begin{theorem}[Axes-aligned rectangles over $\mathbb{R}^2_{[0, 1]}$ PAC learnability]
|
||||
It holds that:
|
||||
\begin{itemize}
|
||||
\item For every distribution $\mathcal{D}$,
|
||||
\item For every error $0 < \varepsilon < \frac{1}{2}$,
|
||||
\item For every confidence $0 < \delta < \frac{1}{2}$,
|
||||
\end{itemize}
|
||||
if $m \geq \frac{4}{\varepsilon}\ln\left( \frac{4}{\delta} \right)$, then:
|
||||
\[
|
||||
\mathcal{P}_{D \sim \mathcal{D}^m}
|
||||
\left[ \text{error}_{\mathcal{D}, T}\Big( \mathcal{A}_\text{BFP}\big(T(D)\big) \Big) < \varepsilon \right] > 1 - \delta
|
||||
\]
|
||||
where $D \sim \mathcal{D}^m$ is a sample of $m$ data points (i.e. training data)
|
||||
and $T(\cdot)$ labels the input data wrt to the target rectangle $T$.
|
||||
|
||||
\begin{proof}
|
||||
By definition, the error of $\mathcal{A}_\text{BFP}$ is defined as:
|
||||
\[ \text{error}_{\mathcal{D}, T}(R) = \mathcal{P}_{x \sim \mathcal{D}} [ x \in (T \smallsetminus R) ] \]
|
||||
|
||||
Consider the space defined by $(T \smallsetminus R)$ divided in four sections $E_1 \cup \dots \cup E_4 = (T \smallsetminus R)$:
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.4\linewidth]{./img/_rectangle_space.pdf}
|
||||
\end{figure}
|
||||
|
||||
Consider the probabilistic event "$x \in E_i$".
|
||||
For the training data $x \sim \mathcal{D}$ this holds iff none of those points
|
||||
end up in $E_i$ as, if a training point is in $E_i$, $R$ would be bigger to include it and $E_i$ would be smaller.
|
||||
|
||||
Now consider four other regions $F_1, \dots, F_4$ of the plane related to $E_i$ but defined differently
|
||||
in such a way that $\mathcal{P}_{x \sim D}[x \in F_i] = \frac{\varepsilon}{4}$.
|
||||
This can be achieved by expanding the $E_i$ regions to take some area of the rectangle $R$.
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.4\linewidth]{./img/_rectangle_space2.pdf}
|
||||
\end{figure}
|
||||
|
||||
Then, as $E_i$ are smaller than $F_i$, it holds that:
|
||||
\[
|
||||
\begin{split}
|
||||
\mathcal{P}_{x \sim D}[x \in E_i] < \frac{\varepsilon}{4} &\Rightarrow \mathcal{P}_{x \sim D}[x \in (T \smallsetminus R)] < \varepsilon \\
|
||||
& \Rightarrow \text{error}_{\mathcal{D}, T}(R) < \varepsilon
|
||||
\end{split}
|
||||
\]
|
||||
|
||||
\textit{To be continued\dots}
|
||||
\end{proof}
|
||||
\end{theorem}
|
||||
|
||||
|
||||
\begin{corollary}
|
||||
The concept class of axis-aligned rectangles over $\mathbb{R}^2_{[0, 1]}$ is efficiently PAC learnable.
|
||||
\end{corollary}
|
||||
@ -0,0 +1,88 @@
|
||||
\chapter{Introduction}
|
||||
|
||||
\begin{description}
|
||||
\item[Computational task] \marginnote{Computational task}
|
||||
Description of a problem.
|
||||
|
||||
\item[Computational process] \marginnote{Computational process}
|
||||
Algorithm to solve a task.
|
||||
|
||||
\begin{description}
|
||||
\item[Algorithm (informal)]
|
||||
A finite description of
|
||||
elementary and deterministic computation steps.
|
||||
\end{description}
|
||||
\end{description}
|
||||
|
||||
|
||||
\section{Notations}
|
||||
|
||||
\begin{description}
|
||||
\item[Set of the first $n$ natural numbers]
|
||||
Given $n \in \mathbb{N}$, we have that $[n] = \{ 1, \dots, n \}$.
|
||||
\end{description}
|
||||
|
||||
|
||||
\subsection{Strings}
|
||||
|
||||
\begin{description}
|
||||
\item[Alphabet] \marginnote{Alphabet}
|
||||
Finite set of symbols.
|
||||
|
||||
\item[String] \marginnote{String}
|
||||
Finite, ordered, and possibly empty tuple of elements of an alphabet.
|
||||
|
||||
The empty string is denoted as $\varepsilon$.
|
||||
|
||||
\item[Strings of given length]
|
||||
Given an alphabet $S$ and $n \in \mathbb{N}$, we denote with $S^n$ the set of all the strings over $S$ of length $n$.
|
||||
|
||||
\item[Kleene star] \marginnote{Kleene star}
|
||||
Given an alphabet $S$, we denote with $S^* = \bigcup_{n=0}^{\infty} S^n$ the set of all the strings over $S$.
|
||||
|
||||
\item[Language] \marginnote{Language}
|
||||
Given an alphabet $S$, a language $\mathcal{L}$ is a subset of $S^*$.
|
||||
\end{description}
|
||||
|
||||
|
||||
\subsection{Tasks encoding}
|
||||
|
||||
\begin{description}
|
||||
\item[Encoding] \marginnote{Encoding}
|
||||
Given a set $A$, any element $x \in A$ can be encoded into a string of the language $\{0, 1\}^*$.
|
||||
The encoding of $x$ is denoted as $\enc{x}$ or simply $x$.
|
||||
|
||||
\item[Task function] \marginnote{Task}
|
||||
Given two countable sets $A$ and $B$ representing the domain,
|
||||
a task can be represented as a function $f: A \rightarrow B$.
|
||||
|
||||
When not stated, $A$ and $B$ are implicitly encoded into $\{0, 1\}^*$.
|
||||
|
||||
\item[Characteristic function] \marginnote{Characteristic function}
|
||||
Boolean function of form $f: \{0, 1\}^* \rightarrow \{0, 1\}$.
|
||||
|
||||
Given a characteristic function $f$, the language $\mathcal{L}_f = \{ x \in \{0, 1\}^* \mid f(x) = 1 \}$
|
||||
can be defined.
|
||||
|
||||
\item[Decision problem] \marginnote{Decision problem}
|
||||
Given a language $\mathcal{M}$, a decision problem is the task of computing a boolean function $f$
|
||||
able to determine if a string belongs to $\mathcal{M}$ (i.e. $\mathcal{L}_f = \mathcal{M}$).
|
||||
\end{description}
|
||||
|
||||
|
||||
\subsection{Asymptotic notation}
|
||||
|
||||
\begin{description}
|
||||
\item[Big O] \marginnote{Big O}
|
||||
A function $f: \mathbb{N} \rightarrow \mathbb{N}$ is $O(g)$ if $g$ is an upper bound of $f$.
|
||||
\[ f \in O(g) \iff \exists \bar{n} \in \mathbb{N} \text{ such that } \forall n > \bar{n}, \exists c \in \mathbb{R}^+: f(n) \leq c \cdot g(n) \]
|
||||
|
||||
\item[Big Omega] \marginnote{Big Omega}
|
||||
A function $f: \mathbb{N} \rightarrow \mathbb{N}$ is $\Omega(g)$ if $g$ is a lower bound of $f$.
|
||||
\[ f \in \Omega(g) \iff \exists \bar{n} \in \mathbb{N} \text{ such that } \forall n > \bar{n}, \exists c \in \mathbb{R}^+: f(n) \geq c \cdot g(n) \]
|
||||
|
||||
\item[Big Theta]\marginnote{Big Theta}
|
||||
A function $f: \mathbb{N} \rightarrow \mathbb{N}$ is $\Theta(g)$ if $g$ is both an upper and lower bound of $f$.
|
||||
\[ f \in \Theta(g) \iff f \in O(g) \text{ and } f \in \Omega(g) \]
|
||||
|
||||
\end{description}
|
||||
@ -0,0 +1,251 @@
|
||||
\chapter{Turing Machine}
|
||||
|
||||
|
||||
|
||||
\section{$k$-tape Turing Machine}
|
||||
|
||||
\begin{description}
|
||||
\item[Tape] \marginnote{Tape}
|
||||
Infinite one-directional line of cells.
|
||||
Each cell can hold a symbol from a finite alphabet $\Gamma$.
|
||||
|
||||
\begin{description}
|
||||
\item[Tape head]
|
||||
A tape head reads or writes one symbol at a time and
|
||||
can move left or right on the tape.
|
||||
|
||||
\item[Input tape]
|
||||
Read-only tape where the input will be loaded.
|
||||
|
||||
\item[Work tape]
|
||||
Read-write auxiliary tape used during computation.
|
||||
|
||||
\item[Output tape]
|
||||
Read-write tape that will contain the output of the computation.
|
||||
|
||||
\begin{remark}
|
||||
Sometimes the output tape is not necessary and the final state of the computation can be used to determine a boolean outcome.
|
||||
\end{remark}
|
||||
\end{description}
|
||||
|
||||
\item[Instructions] \marginnote{Instructions}
|
||||
Given a finite set of states $Q$, at each step, a machine can:
|
||||
\begin{description}
|
||||
\item[Read] from the $k$ tape heads.
|
||||
\item[Replace] the symbols under the writable tape heads, or leave them unchanged.
|
||||
\item[Change] state.
|
||||
\item[Move] each of the $k$ tape heads to the left or right, or leave unchanged.
|
||||
\end{description}
|
||||
|
||||
|
||||
\item[$k$-tape Turing Machine (TM)] \marginnote{$k$-tape Turing Machine (TM)}
|
||||
A Turing Machine working on $k$ tapes (one of which is the input tape) is a triple $(\Gamma, Q, \delta)$:
|
||||
\begin{itemize}
|
||||
\item $\Gamma$ is a finite set of tape symbols.
|
||||
We assume that it contains a blank symbol ($\tapeblank$), a start symbol ($\tapestart$),
|
||||
and the digits $0$, $1$.
|
||||
|
||||
\item $Q$ is a finite set of states.
|
||||
The initial state is $q_\text{init}$ and the final state is $q_\text{halt}$.
|
||||
|
||||
\item $\delta$ is the transition function that describes the instructions allowed at each step.
|
||||
It is defined as:
|
||||
\[ \delta: Q \times \Gamma^k \rightarrow Q \times \Gamma^{k-1} \times \{ \texttt{L}, \texttt{S}, \texttt{R} \}^k \]
|
||||
|
||||
By convention, when the state is $q_\text{halt}$, the machine is stuck (i.e. it cannot change state or operate on the tapes):
|
||||
\[ \delta(q_\text{halt}, \{ \sigma_1, \dots, \sigma_k \}) = \big( q_\text{halt}, \{ \sigma_1, \dots, \sigma_k \}, (\texttt{S}, \dots, \texttt{S}) \big) \]
|
||||
\end{itemize}
|
||||
\end{description}
|
||||
|
||||
\begin{theorem}[Turing Machine equivalence]
|
||||
The following computational models have, with at most a polynomial overhead, the same expressive power:
|
||||
1-tape TMs, $k$-tape TMs, non-deterministic TMs,
|
||||
random access machines, $\lambda$-calculus, unlimited register machines, programming languages (Böhm-Jacopini theorem), \dots
|
||||
\end{theorem}
|
||||
|
||||
|
||||
|
||||
\section{Computation}
|
||||
|
||||
\begin{description}
|
||||
\item[Configuration] \marginnote{Configuration}
|
||||
Given a TM $\mathcal{M} = (\Gamma, Q, \delta)$, a configuration $C$ is described by:
|
||||
\begin{itemize}
|
||||
\item The current state $q$.
|
||||
\item The content of the tapes.
|
||||
\item The position of the tape heads.
|
||||
\end{itemize}
|
||||
|
||||
\begin{description}
|
||||
\item[Initial configuration]
|
||||
Given the input $x \in \{ 0, 1 \}^*$, the initial configuration $\mathcal{I}_x$ is described as follows:
|
||||
\begin{itemize}
|
||||
\item The current state is $q_\text{init}$.
|
||||
\item The first (input) tape contains $\tapestart x \tapeblank \dots$.
|
||||
The other tapes contain $\tapestart \tapeblank \dots$.
|
||||
\item The tape heads are positioned on the first symbol of each tape.
|
||||
\end{itemize}
|
||||
|
||||
\item[Final configuration]
|
||||
Given an output $y \in \{0, 1\}^*$, the final configuration is described as follows:
|
||||
\begin{itemize}
|
||||
\item The current state is $q_\text{halt}$.
|
||||
\item The output tape contains $\tapestart y \tapeblank \dots$.
|
||||
\end{itemize}
|
||||
\end{description}
|
||||
|
||||
\item[Computation (string)] \marginnote{Computation (string)}
|
||||
Given a TM $\mathcal{M} = (\Gamma, Q, \delta)$,
|
||||
$\mathcal{M}$ returns $y \in \{ 0, 1 \}^*$ on input $x \in \{ 0, 1 \}^*$ (i.e. $\mathcal{M}(x) = y$) in $t$ steps if:
|
||||
\[ \mathcal{I}_x \xrightarrow{\delta} C_1 \xrightarrow{\delta} \dots \xrightarrow{\delta} C_t \]
|
||||
where $C_t$ is a final configuration for $y$.
|
||||
|
||||
\item[Computation (function)] \marginnote{Computation (function)}
|
||||
Given a TM $\mathcal{M} = (\Gamma, Q, \delta)$ and a function $f: \{0, 1\}^* \rightarrow \{0, 1\}^*$,
|
||||
$\mathcal{M}$ computes $f$ iff:
|
||||
\[ \forall x \in \{0, 1\}^*: \mathcal{M}(x) = f(x) \]
|
||||
If this holds, $f$ is a computable function.
|
||||
|
||||
\item[Computation in time $\mathbf{T}$] \marginnote{Computation in time $T$}
|
||||
Given a TM $\mathcal{M}$ and
|
||||
the functions $f: \{0, 1\}^* \rightarrow \{0, 1\}^*$ and
|
||||
$T: \mathbb{N} \rightarrow \mathbb{N}$,
|
||||
$\mathcal{M}$ computes $f$ in time $T$ iff:
|
||||
\[ \forall x \in \{0, 1\}^*: \text{$\mathcal{M}(x)$ returns $f(x)$ in at most $T(\vert x \vert)$ steps} \]
|
||||
|
||||
\item[Decidability in time $\mathbf{T}$] \marginnote{Decidability in time $T$}
|
||||
Given a function $f: \{0, 1\}^* \rightarrow \{0, 1\}$,
|
||||
the language $\mathcal{L}_f$ is decidable in time $T$ iff $f$ is computable in time $T$.
|
||||
\end{description}
|
||||
|
||||
|
||||
|
||||
\section{Universal Turing Machine}
|
||||
|
||||
\begin{description}
|
||||
\item[Turing Machine encoding]
|
||||
Given a TM $\mathcal{M} = (\Gamma, Q, \delta)$,
|
||||
the entire machine can be described by $\delta$ through tuples of form:
|
||||
\[ Q \times \Gamma^k \times Q \times \Gamma^{k-1} \times \{ \texttt{L}, \texttt{S}, \texttt{R} \}^k \]
|
||||
It is therefore possible to encode $\delta$ into a binary string and
|
||||
consequently create an encoding $\enc{\mathcal{M}}$ of $\mathcal{M}$.
|
||||
|
||||
The encoding should satisfy the following conditions:
|
||||
\begin{enumerate}
|
||||
\item For every $x \in \{0, 1\}^*$, there exists a TM $\mathcal{M}$ such that $x = \enc{\mathcal{M}}$.
|
||||
\item Every TM is represented by an infinite number of strings. One of them is the canonical representation.
|
||||
\end{enumerate}
|
||||
|
||||
\begin{theorem}[Universal Turing Machine (UTM)] \marginnote{Universal Turing Machine (UTM)}
|
||||
There exists a TM $\mathcal{U}$ such that, for every binary strings $x$ and $\alpha$,
|
||||
it emulates the TM defined by $\alpha$ on input $x$:
|
||||
\[ \mathcal{U}(x, \alpha) = \mathcal{M}_\alpha(x) \]
|
||||
where $\mathcal{M}_\alpha$ is the TM defined by $\alpha$.
|
||||
|
||||
Moreover, $\mathcal{U}$ simulates $\mathcal{M}_\alpha$ with at most $CT\log(T)$ time overhead,
|
||||
where $C$ only depends on $\mathcal{M}_\alpha$.
|
||||
\end{theorem}
|
||||
\end{description}
|
||||
|
||||
|
||||
|
||||
\section{Computability}
|
||||
|
||||
|
||||
\subsection{Undecidable functions}
|
||||
|
||||
\begin{theorem}[Existance of uncomputable functions] \label{th:uncomputable_fn} \marginnote{Uncomputable functions}
|
||||
There exists a function $uc: \{0, 1\}^* \rightarrow \{0, 1\}^*$ that is not computable by any TM.
|
||||
|
||||
\begin{proof}
|
||||
Consider the following function:
|
||||
\[ uc(\alpha) = \begin{cases}
|
||||
0 & \text{if $\mathcal{M}_\alpha(\alpha) = 1$} \\
|
||||
1 & \text{if $\mathcal{M}_\alpha(\alpha) \neq 1$}
|
||||
\end{cases} \]
|
||||
If $uc$ was computable, there would be a TM $\mathcal{M}$ that computes it (i.e. $\forall \alpha \in \{0, 1\}^*: \mathcal{M}(\alpha) = uc(\alpha)$).
|
||||
This will result in a contradiction:
|
||||
\[ uc(\enc{\mathcal{M}}) = 0 \iff \mathcal{M}(\enc{\mathcal{M}}) = 1 \iff uc(\enc{\mathcal{M}}) = 1 \]
|
||||
|
||||
Therefore, $uc$ cannot be computed.
|
||||
\end{proof}
|
||||
\end{theorem}
|
||||
|
||||
|
||||
\begin{description}
|
||||
\item[Halting problem] \marginnote{Halting problem}
|
||||
Given an encoded TM $\alpha$ and a string $x$,
|
||||
the halting problem aims to determine if $\mathcal{M}_\alpha$ terminates on input $x$.
|
||||
In other words:
|
||||
\[
|
||||
\texttt{halt}(\enc{(\alpha, x)}) = \begin{cases}
|
||||
1 & \text{if $\mathcal{M}_\alpha$ stops on input $x$} \\
|
||||
0 & \text{otherwise}
|
||||
\end{cases}
|
||||
\]
|
||||
\begin{theorem}
|
||||
The halting problem is undecidable.
|
||||
|
||||
\begin{proof}
|
||||
Note: this proof is slightly different from the traditional proof of the halting problem.
|
||||
|
||||
Assume that \texttt{halt} is decidable. Therefore, there exists a TM $\mathcal{M}_\texttt{halt}$ that decides it.
|
||||
|
||||
We can define a new TM $\mathcal{M}_{uc}$ that uses $\mathcal{M}_\texttt{halt}$ such that:
|
||||
\[ \mathcal{M}_{uc}(\alpha) = \begin{cases}
|
||||
1 & \text{if $\mathcal{M}_\texttt{halt}(\alpha, \alpha) = 0$ (i.e. $\mathcal{M}_\alpha(\alpha)$ diverges)} \\
|
||||
\begin{cases}
|
||||
0 & \text{if $\mathcal{M}_\alpha(\alpha) = 1$} \\
|
||||
1 & \text{if $\mathcal{M}_\alpha(\alpha) \neq 1$}
|
||||
\end{cases} & \text{if $\mathcal{M}_\texttt{halt}(\alpha, \alpha) = 1$ (i.e. $\mathcal{M}_\alpha(\alpha)$ converges)}
|
||||
\end{cases} \]
|
||||
|
||||
This results in a contradiction:
|
||||
\begin{itemize}
|
||||
\item $\mathcal{M}_{uc}(\enc{\mathcal{M}_{uc}}) = 1 \Leftarrow
|
||||
\mathcal{M}_\texttt{halt}(\enc{\mathcal{M}_{uc}}, \enc{\mathcal{M}_{uc}}) = 0 \iff
|
||||
\mathcal{M}_{uc}(\enc{\mathcal{M}_{uc}}) \text{ diverges}$
|
||||
\item $\mathcal{M}_\texttt{halt}(\enc{\mathcal{M}_{uc}}, \enc{\mathcal{M}_{uc}}) = 1$ $\Rightarrow$
|
||||
$\mathcal{M}_{uc}$ is not computable by \Cref{th:uncomputable_fn}.
|
||||
\end{itemize}
|
||||
\end{proof}
|
||||
\end{theorem}
|
||||
|
||||
\item[Diophantine equation] \marginnote{Diophantine equation}
|
||||
Polynomial equality with integer coefficients and a finite number of unknowns.
|
||||
|
||||
\begin{theorem}[MDPR]
|
||||
Determining if an arbitrary diophantine equation has a solution is undecidable.
|
||||
\end{theorem}
|
||||
\end{description}
|
||||
|
||||
|
||||
|
||||
\subsection{Rice's theorem}
|
||||
|
||||
\begin{description}
|
||||
\item[Semantic language] \marginnote{Semantic language}
|
||||
Given a language $\mathcal{L} \subseteq \{ 0, 1 \}^*$, $\mathcal{L}$ is semantic if:
|
||||
\begin{itemize}
|
||||
\item Any string in $\mathcal{L}$ is an encoding of a TM.
|
||||
\item If $\enc{\mathcal{M}} \in \mathcal{L}$ and
|
||||
the TM $\mathcal{N}$ computes the same function of $\mathcal{M}$,
|
||||
then $\enc{\mathcal{N}} \in \mathcal{L}$.
|
||||
\end{itemize}
|
||||
|
||||
A semantic language can be seen as a set of TMs that have the same property.
|
||||
|
||||
\item[Trivial language]
|
||||
A language $\mathcal{L}$ is trivial iff $\mathcal{L} = \varnothing$ or $\mathcal{L} = \{0, 1\}^*$
|
||||
\end{description}
|
||||
|
||||
\begin{theorem}[Rice's theorem] \marginnote{Rice's theorem}
|
||||
If a semantic language is non-trivial, then it is undecidable
|
||||
(i.e. any decidable semantic language is trivial).
|
||||
|
||||
\begin{proof}[Proof idea]
|
||||
Assuming that there exists a non-trivial decidable semantic language $\mathcal{L}$,
|
||||
it is possible to prove that the halting problem is decidable.
|
||||
Therefore, $\mathcal{L}$ is undecidable.
|
||||
\end{proof}
|
||||
\end{theorem}
|
||||
Reference in New Issue
Block a user