mirror of
https://github.com/NotXia/unibo-ai-notes.git
synced 2025-12-14 18:51:52 +01:00
Add FAIKR1 Graphplan
This commit is contained in:
496
src/fundamentals-of-ai-and-kr/module1/img/_graphplan.drawio
Normal file
496
src/fundamentals-of-ai-and-kr/module1/img/_graphplan.drawio
Normal file
@ -0,0 +1,496 @@
|
||||
<mxfile host="app.diagrams.net" modified="2023-11-30T16:39:50.591Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:120.0) Gecko/20100101 Firefox/120.0" etag="a0X61gIeOFjE0NNLV0Sk" version="22.1.5" type="device">
|
||||
<diagram name="Pagina-1" id="Yt0qHgG8r23Rpl98Hr5L">
|
||||
<mxGraphModel dx="1050" dy="606" 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="P9rIqunZUvPBB-14v_PH-1" value="<font style="font-size: 18px;">at(a, l)<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="110" y="130" width="100" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-2" value="<font style="font-size: 18px;">at(b, l)<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="110" y="210" width="100" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-3" value="<font style="font-size: 18px;">at(r, l)<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="110" y="290" width="100" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-4" value="<font style="font-size: 18px;">hasFuel(r)<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="105" y="370" width="110" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-5" value="" style="endArrow=none;html=1;rounded=0;fontFamily=Courier New;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="240" y="420" as="sourcePoint" />
|
||||
<mxPoint x="240" y="110" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-6" value="<font style="font-size: 18px;">LOAD(a, r)<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="270" y="170" width="150" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-7" value="<font style="font-size: 18px;">LOAD(b, r)<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="270" y="250" width="150" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-8" value="<font style="font-size: 18px;">MOVE(r, l, p)<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="270" y="330" width="150" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-9" value="<font style="font-size: 14px;">NO-OP<br style="font-size: 14px;"></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="305" y="130" width="80" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-10" value="<font style="font-size: 14px;">NO-OP<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="305" y="210" width="80" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-11" value="<font style="font-size: 14px;">NO-OP<br style="font-size: 14px;"></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="305" y="290" width="80" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-12" value="<font style="font-size: 14px;">NO-OP<br style="font-size: 14px;"></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="305" y="370" width="80" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-13" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-9" target="P9rIqunZUvPBB-14v_PH-1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="390" y="300" as="sourcePoint" />
|
||||
<mxPoint x="440" y="250" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-14" value="" style="endArrow=none;html=1;rounded=0;fontFamily=Courier New;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="440" y="420" as="sourcePoint" />
|
||||
<mxPoint x="440" y="110" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-15" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-10" target="P9rIqunZUvPBB-14v_PH-2">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="315" y="155" as="sourcePoint" />
|
||||
<mxPoint x="220" y="155" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-16" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-11" target="P9rIqunZUvPBB-14v_PH-3">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="315" y="235" as="sourcePoint" />
|
||||
<mxPoint x="220" y="235" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-17" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-12" target="P9rIqunZUvPBB-14v_PH-4">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="315" y="315" as="sourcePoint" />
|
||||
<mxPoint x="220" y="315" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-18" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-19" target="P9rIqunZUvPBB-14v_PH-9">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="315" y="155" as="sourcePoint" />
|
||||
<mxPoint x="220" y="155" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-19" value="<font style="font-size: 18px;">at(a, l)<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="480" y="130" width="100" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-20" value="<font style="font-size: 18px;">at(b, l)<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="480" y="210" width="100" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-21" value="<font style="font-size: 18px;">at(r, l)<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="480" y="290" width="100" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-22" value="<font style="font-size: 18px;">hasFuel(r)<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="475" y="370" width="110" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-23" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-20" target="P9rIqunZUvPBB-14v_PH-10">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="315" y="235" as="sourcePoint" />
|
||||
<mxPoint x="220" y="235" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-24" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-21" target="P9rIqunZUvPBB-14v_PH-11">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="315" y="315" as="sourcePoint" />
|
||||
<mxPoint x="220" y="315" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-25" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-12" target="P9rIqunZUvPBB-14v_PH-22">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="315" y="395" as="sourcePoint" />
|
||||
<mxPoint x="225" y="395" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-26" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f8cecc;strokeColor=#e01b24;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-6" target="P9rIqunZUvPBB-14v_PH-1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="390" y="330" as="sourcePoint" />
|
||||
<mxPoint x="440" y="280" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-27" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f8cecc;strokeColor=#e01b24;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-6" target="P9rIqunZUvPBB-14v_PH-3">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="280" y="195" as="sourcePoint" />
|
||||
<mxPoint x="220" y="155" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-28" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#33d17a;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-7" target="P9rIqunZUvPBB-14v_PH-2">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="390" y="330" as="sourcePoint" />
|
||||
<mxPoint x="440" y="280" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-29" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#33d17a;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-7" target="P9rIqunZUvPBB-14v_PH-3">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="280" y="275" as="sourcePoint" />
|
||||
<mxPoint x="220" y="235" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-30" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#3584e4;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-3" target="P9rIqunZUvPBB-14v_PH-8">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="390" y="330" as="sourcePoint" />
|
||||
<mxPoint x="440" y="280" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-31" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#3584e4;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-4" target="P9rIqunZUvPBB-14v_PH-8">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="220" y="315" as="sourcePoint" />
|
||||
<mxPoint x="280" y="355" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-32" value="<font style="font-size: 18px;">in(r, a)<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="480" y="170" width="100" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-33" value="<font style="font-size: 18px;">in(r, b)<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="480" y="250" width="100" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-34" value="<font style="font-size: 18px;">at(r, p)<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="480" y="330" width="100" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-35" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f8cecc;strokeColor=#e01b24;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-32" target="P9rIqunZUvPBB-14v_PH-6">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="280" y="195" as="sourcePoint" />
|
||||
<mxPoint x="220" y="155" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-36" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f8cecc;strokeColor=#e01b24;dashed=1;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-19" target="P9rIqunZUvPBB-14v_PH-6">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="490" y="195" as="sourcePoint" />
|
||||
<mxPoint x="430" y="195" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-37" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#33d17a;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;dashed=1;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-20" target="P9rIqunZUvPBB-14v_PH-7">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="280" y="275" as="sourcePoint" />
|
||||
<mxPoint x="220" y="235" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-38" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#33d17a;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-33" target="P9rIqunZUvPBB-14v_PH-7">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="490" y="235" as="sourcePoint" />
|
||||
<mxPoint x="430" y="275" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-39" value="" style="endArrow=none;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#3584e4;dashed=1;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-21" target="P9rIqunZUvPBB-14v_PH-8">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="220" y="315" as="sourcePoint" />
|
||||
<mxPoint x="280" y="355" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-40" value="" style="endArrow=none;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#3584e4;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-34" target="P9rIqunZUvPBB-14v_PH-8">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="490" y="315" as="sourcePoint" />
|
||||
<mxPoint x="430" y="355" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-41" value="" style="endArrow=none;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#3584e4;dashed=1;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-22" target="P9rIqunZUvPBB-14v_PH-8">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="490" y="355" as="sourcePoint" />
|
||||
<mxPoint x="430" y="355" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-42" value="<font style="font-size: 12px;">NO-OP<br style="font-size: 12px;"></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="680" y="290" width="80" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-43" value="" style="endArrow=none;html=1;rounded=0;fontFamily=Courier New;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="620" y="420" as="sourcePoint" />
|
||||
<mxPoint x="620" y="110" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-44" value="<font style="font-size: 12px;">NO-OP<br style="font-size: 12px;"></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="680" y="330" width="80" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-45" value="<font style="font-size: 12px;">NO-OP<br style="font-size: 12px;"></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="680" y="370" width="80" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-46" value="<font style="font-size: 12px;">NO-OP<br style="font-size: 12px;"></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="680" y="250" width="80" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-47" value="<font style="font-size: 12px;">NO-OP<br style="font-size: 12px;"></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="680" y="210" width="80" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-48" value="<font style="font-size: 12px;">NO-OP<br style="font-size: 12px;"></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="680" y="170" width="80" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-49" value="<font style="font-size: 12px;">NO-OP<br style="font-size: 12px;"></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="680" y="130" width="80" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-50" value="" style="endArrow=none;html=1;rounded=0;fontFamily=Courier New;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="827" y="420" as="sourcePoint" />
|
||||
<mxPoint x="827" y="110" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-51" value="<font style="font-size: 16px;">LOAD(a, l)<br style="font-size: 16px;"></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="650" y="150" width="150" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-52" value="<font style="font-size: 16px;">LOAD(b, l)<br style="font-size: 16px;"></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="650" y="230" width="150" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-53" value="<font style="font-size: 16px;">MOVE(r, l, p)<br style="font-size: 16px;"></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;fontSize=16;" vertex="1" parent="1">
|
||||
<mxGeometry x="650" y="350" width="150" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-54" value="UN<font style="font-size: 16px;">LOAD(a, l)<br style="font-size: 16px;"></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="645" y="190" width="150" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-55" value="UN<font style="font-size: 16px;">LOAD(b, l)<br style="font-size: 16px;"></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="650" y="270" width="150" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-56" value="<font style="font-size: 18px;">at(a, l)<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="865" y="130" width="100" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-57" value="<font style="font-size: 18px;">at(b, l)<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="865" y="210" width="100" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-58" value="<font style="font-size: 18px;">at(r, l)<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="865" y="290" width="100" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-59" value="<font style="font-size: 18px;">hasFuel(r)<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="860" y="370" width="110" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-60" value="<font style="font-size: 18px;">in(r, a)<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="865" y="170" width="100" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-61" value="<font style="font-size: 18px;">in(r, b)<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="865" y="250" width="100" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-62" value="<font style="font-size: 18px;">at(r, p)<br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Courier New;" vertex="1" parent="1">
|
||||
<mxGeometry x="865" y="330" width="100" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-63" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-19" target="P9rIqunZUvPBB-14v_PH-49">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="490" y="155" as="sourcePoint" />
|
||||
<mxPoint x="395" y="155" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-64" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-32" target="P9rIqunZUvPBB-14v_PH-48">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="585" y="184.57999999999998" as="sourcePoint" />
|
||||
<mxPoint x="650" y="185" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-65" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="580" y="224.57999999999998" as="sourcePoint" />
|
||||
<mxPoint x="680" y="224.57999999999998" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-66" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="580" y="264.58" as="sourcePoint" />
|
||||
<mxPoint x="680" y="264.58" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-67" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="580" y="304.58" as="sourcePoint" />
|
||||
<mxPoint x="680" y="304.58" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-68" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="580" y="344.58" as="sourcePoint" />
|
||||
<mxPoint x="680" y="344.58" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-69" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-22" target="P9rIqunZUvPBB-14v_PH-45">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="585" y="384.58" as="sourcePoint" />
|
||||
<mxPoint x="685" y="384.58" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-70" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-49" target="P9rIqunZUvPBB-14v_PH-56">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="590" y="155" as="sourcePoint" />
|
||||
<mxPoint x="690" y="155" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-71" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="760" y="184.57999999999998" as="sourcePoint" />
|
||||
<mxPoint x="865" y="184.57999999999998" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-72" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="760" y="224.57999999999998" as="sourcePoint" />
|
||||
<mxPoint x="865" y="224.57999999999998" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-73" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="760" y="264.58" as="sourcePoint" />
|
||||
<mxPoint x="865" y="264.58" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-74" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="760" y="304.58" as="sourcePoint" />
|
||||
<mxPoint x="865" y="304.58" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-75" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="760" y="344.58" as="sourcePoint" />
|
||||
<mxPoint x="865" y="344.58" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-76" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f5f5f5;strokeColor=#9a9996;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-45" target="P9rIqunZUvPBB-14v_PH-59">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="760" y="384.58" as="sourcePoint" />
|
||||
<mxPoint x="865" y="384.58" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-77" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f8cecc;strokeColor=#e01b24;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-51" target="P9rIqunZUvPBB-14v_PH-19">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="490" y="195" as="sourcePoint" />
|
||||
<mxPoint x="430" y="195" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-78" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f8cecc;strokeColor=#e01b24;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-51" target="P9rIqunZUvPBB-14v_PH-21">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="660" y="175" as="sourcePoint" />
|
||||
<mxPoint x="590" y="155" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-79" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#33d17a;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-52" target="P9rIqunZUvPBB-14v_PH-20">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="490" y="275" as="sourcePoint" />
|
||||
<mxPoint x="430" y="275" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-80" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#33d17a;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-52" target="P9rIqunZUvPBB-14v_PH-21">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="660" y="215" as="sourcePoint" />
|
||||
<mxPoint x="590" y="235" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-81" value="" style="endArrow=none;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#3584e4;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-53" target="P9rIqunZUvPBB-14v_PH-22">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="490" y="355" as="sourcePoint" />
|
||||
<mxPoint x="430" y="355" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-82" value="" style="endArrow=none;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#3584e4;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-53" target="P9rIqunZUvPBB-14v_PH-21">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="660" y="375" as="sourcePoint" />
|
||||
<mxPoint x="595" y="395" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-83" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#ff7800;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-54" target="P9rIqunZUvPBB-14v_PH-32">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="660" y="215" as="sourcePoint" />
|
||||
<mxPoint x="590" y="315" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-84" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#ff7800;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-54" target="P9rIqunZUvPBB-14v_PH-21">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="660" y="255" as="sourcePoint" />
|
||||
<mxPoint x="590" y="195" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-86" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#c061cb;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-55" target="P9rIqunZUvPBB-14v_PH-33">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="660" y="255" as="sourcePoint" />
|
||||
<mxPoint x="590" y="195" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-87" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#c061cb;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-55" target="P9rIqunZUvPBB-14v_PH-21">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="660" y="295" as="sourcePoint" />
|
||||
<mxPoint x="590" y="275" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-88" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f8cecc;strokeColor=#e01b24;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-51" target="P9rIqunZUvPBB-14v_PH-60">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="660" y="175" as="sourcePoint" />
|
||||
<mxPoint x="590" y="155" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-89" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f8cecc;strokeColor=#e01b24;fontFamily=Courier New;dashed=1;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-51" target="P9rIqunZUvPBB-14v_PH-56">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="810" y="175" as="sourcePoint" />
|
||||
<mxPoint x="875" y="195" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-90" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#33d17a;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-52" target="P9rIqunZUvPBB-14v_PH-61">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="660" y="215" as="sourcePoint" />
|
||||
<mxPoint x="590" y="315" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-91" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#33d17a;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Courier New;dashed=1;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-52" target="P9rIqunZUvPBB-14v_PH-57">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="810" y="215" as="sourcePoint" />
|
||||
<mxPoint x="875" y="275" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-92" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#3584e4;fontFamily=Courier New;dashed=1;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-53" target="P9rIqunZUvPBB-14v_PH-59">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="660" y="375" as="sourcePoint" />
|
||||
<mxPoint x="595" y="395" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-93" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#3584e4;fontFamily=Courier New;dashed=1;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-53" target="P9rIqunZUvPBB-14v_PH-58">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="810" y="375" as="sourcePoint" />
|
||||
<mxPoint x="870" y="395" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-94" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#3584e4;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-53" target="P9rIqunZUvPBB-14v_PH-62">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="810" y="375" as="sourcePoint" />
|
||||
<mxPoint x="875" y="315" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-95" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#ff7800;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-54" target="P9rIqunZUvPBB-14v_PH-56">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="660" y="255" as="sourcePoint" />
|
||||
<mxPoint x="590" y="195" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-96" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#ff7800;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Courier New;dashed=1;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-54" target="P9rIqunZUvPBB-14v_PH-60">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="810" y="255" as="sourcePoint" />
|
||||
<mxPoint x="875" y="155" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-97" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#c061cb;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Courier New;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-55" target="P9rIqunZUvPBB-14v_PH-57">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="660" y="295" as="sourcePoint" />
|
||||
<mxPoint x="590" y="315" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-98" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#c061cb;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Courier New;dashed=1;" edge="1" parent="1" source="P9rIqunZUvPBB-14v_PH-55" target="P9rIqunZUvPBB-14v_PH-61">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="810" y="295" as="sourcePoint" />
|
||||
<mxPoint x="875" y="235" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-99" value="<font style="font-size: 16px;" face="Times New Roman"><i>t = 0</i><br></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="130" y="90" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-100" value="<font style="font-size: 16px;" face="Times New Roman"><i>t = 1<br></i></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="315" y="90" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-101" value="<font style="font-size: 16px;" face="Times New Roman"><i>t = 2<br></i></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="500" y="90" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-102" value="<font style="font-size: 16px;" face="Times New Roman"><i>t = 3<br></i></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="690" y="90" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="P9rIqunZUvPBB-14v_PH-103" value="<font style="font-size: 16px;" face="Times New Roman"><i>t = 4<br></i></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="885" y="90" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
BIN
src/fundamentals-of-ai-and-kr/module1/img/_graphplan.pdf
Normal file
BIN
src/fundamentals-of-ai-and-kr/module1/img/_graphplan.pdf
Normal file
Binary file not shown.
@ -40,7 +40,7 @@
|
||||
\item[Correctness] \marginnote{Correct planner}
|
||||
The planner always finds a solution that leads from the initial state to the goal.
|
||||
\item[Completeness] \marginnote{Complete planner}
|
||||
The planner always finds a plan when it exits (planning is semi-decidable).
|
||||
The planner always finds a plan when it exists (planning is semi-decidable).
|
||||
\end{descriptionlist}
|
||||
|
||||
\item[Execution] \marginnote{Execution}
|
||||
@ -777,4 +777,252 @@ The steps the algorithm does are:
|
||||
\item Checks the pre-conditions and post-conditions of the action it is going to execute.
|
||||
\item Backtracks the effects of an action in case of a failure.
|
||||
\item Corrects the plan if external events occur.
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
|
||||
|
||||
|
||||
\section{Graphplan}
|
||||
\marginnote{Graphplan}
|
||||
Graphplan is an off-line, least-commitment planner (closed-world assumption) that
|
||||
constructs a partially ordered set of actions through a planning graph based on time steps.
|
||||
|
||||
The planner is correct, complete, optimal and computationally efficient.
|
||||
|
||||
|
||||
\begin{description}
|
||||
\item[Action] \marginnote{Actions}
|
||||
An action, as in STRIPS, has:
|
||||
\begin{itemize}
|
||||
\item Preconditions.
|
||||
\item Add list.
|
||||
\item Delete list.
|
||||
\end{itemize}
|
||||
|
||||
\begin{description}
|
||||
\item[\texttt{NO-OP}]
|
||||
Action that does not change the state (to solve the frame problem).
|
||||
Can be seen as an action with the same proposition as precondition and add list.
|
||||
\end{description}
|
||||
|
||||
\item[State] \marginnote{State}
|
||||
A state is represented by a set of propositions that are true in that time step.
|
||||
|
||||
\item[Planning graph] \marginnote{Planning graph}
|
||||
Directed leveled graph where edges connect nodes of adjacent levels.
|
||||
|
||||
There are two possible levels that are alternated during construction:
|
||||
\begin{descriptionlist}
|
||||
\item[Proposition level]
|
||||
Contains propositions that describe the state.
|
||||
Note that interfering propositions can appear.
|
||||
\item[Action level]
|
||||
Contains all the possible actions that have as preconditions the propositions in the previous level.
|
||||
Note that interfering actions can appear.
|
||||
\end{descriptionlist}
|
||||
The first level of the graph is a proposition level containing the initial state.
|
||||
|
||||
Edges can be:
|
||||
\begin{descriptionlist}
|
||||
\item[Precondition arcs] proposition $\rightarrow$ action.
|
||||
\item[Add arcs] action $\rightarrow$ proposition.
|
||||
\item[Delete arcs] action $\rightarrow$ proposition.
|
||||
\end{descriptionlist}
|
||||
|
||||
\item[Inconsistency] \marginnote{Inconsistency}
|
||||
Actions and propositions can be inconsistent in the same time step.
|
||||
Possible causes are:
|
||||
\begin{descriptionlist}
|
||||
\item[Inconsistent effects] \marginnote{Inconsistent effects}
|
||||
An action negates the effects of another one.
|
||||
|
||||
\item[Interference] \marginnote{Interference}
|
||||
An action deletes the preconditions of another one.
|
||||
|
||||
\item[Competing needs] \marginnote{Competing needs}
|
||||
Propositions that cannot appear together either
|
||||
because one negates the other or
|
||||
because they can be reached only through mutually exclusive paths.
|
||||
(i.e. two actions have mutually exclusive preconditions).
|
||||
|
||||
\item[Domain dependent]
|
||||
\end{descriptionlist}
|
||||
|
||||
\item[Plan extraction] \marginnote{Plan extraction}
|
||||
Once a proposition level containing the goal as non-mutually exclusive propositions has been reached,
|
||||
the algorithm can attempt to extract a plan.
|
||||
A valid plan has the following properties:
|
||||
\begin{itemize}
|
||||
\item Actions in the same time step do not interfere and can be executed in any order.
|
||||
\item Propositions at the same time step are non-mutually exclusive.
|
||||
\item The last step contains the goal as non-mutually exclusive propositions.
|
||||
\end{itemize}
|
||||
Even if the last step is a superset of the goal, planning may still fail.
|
||||
In this case, the algorithm has to continue generating levels.
|
||||
% Loop detection can be used to stop when a plan cannot be found.
|
||||
|
||||
\item[Memoization] \marginnote{Memoization}
|
||||
At each step, if the goal is not satisfiable, the result is saved and
|
||||
when the same state is encountered in the future it will automatically fail.
|
||||
\end{description}
|
||||
|
||||
|
||||
\begin{theorem}
|
||||
The following statements hold:
|
||||
\begin{itemize}
|
||||
\item If a valid plan exists, it can be found as a subgraph of the planning graph.
|
||||
|
||||
\item In a planning graph, two actions in a time step are mutually exclusive
|
||||
if a valid plan containing both does not exist.
|
||||
|
||||
\item In a planning graph, two propositions are mutually exclusive if they are inconsistent.
|
||||
\end{itemize}
|
||||
\end{theorem}
|
||||
|
||||
\begin{corollary}
|
||||
Inconsistencies found during the planning graph construction
|
||||
prune paths in the search tree.
|
||||
\end{corollary}
|
||||
|
||||
|
||||
\begin{algorithm}[H]
|
||||
\caption{Graphplan}
|
||||
\begin{lstlisting}[mathescape=true]
|
||||
def graphplan(initial_state, actions, goal):
|
||||
graph = PlanningGraph()
|
||||
graph.addPropositionLevel(initial_state)
|
||||
while True:
|
||||
if (goal in graph.lastPropositionLevel and
|
||||
not mutexPropositions(goal, graph.lastPropositionLevel)):
|
||||
plan = extractSolution(graph, goal)
|
||||
if plan is not FAIL: return plan
|
||||
graph.addActionLevel( selectActions(graph) )
|
||||
graph.addPropositionLevel( selectPreconditions(graph, actions) )
|
||||
|
||||
def selectActions(graph, actions):
|
||||
new_action_level = Level()
|
||||
for action in actions.unify(graph.lastPropositionLevel):
|
||||
preconds = action.preconditions
|
||||
if not mutexPropositions(preconds, graph.lastPropositionLevel):
|
||||
new_action_level.add(preconds, action)
|
||||
for proposition in graph.lastPropositionLevel:
|
||||
new_action_level.add(NO_OP(proposition))
|
||||
new_action_level.findInconsistencies()
|
||||
return new_action_level
|
||||
|
||||
def selectPreconditions(graph):
|
||||
new_props_level = Level()
|
||||
for action in graph.lastActionLevel:
|
||||
for prop in action.add_list:
|
||||
new_props_level.add(action, prop, "add")
|
||||
for prop in action.delete_list:
|
||||
new_props_level.add(action, prop, "delete")
|
||||
new_props_level.findInconsistencies()
|
||||
return new_props_level
|
||||
|
||||
def extractSolution(graph, goal):
|
||||
plan = Plan()
|
||||
actions = graph.lastActionLevel.getActionsWithEffect(goal)
|
||||
if mutexActions(actions, graph.lastActionLevel): return FAIL
|
||||
plan.addLevel(actions)
|
||||
graph = graph.popLastActionLevel()
|
||||
return plan.merge(extractSolution(graph, actions.preconditions))
|
||||
\end{lstlisting}
|
||||
\end{algorithm}
|
||||
|
||||
|
||||
\begin{example}[Moving objects with a cart]
|
||||
Given the actions:
|
||||
\begin{descriptionlist}
|
||||
\item[\texttt{MOVE(R, PosA, PosB)}] \phantom{}
|
||||
\begin{description}
|
||||
\item[Preconditions] $\texttt{at(R, PosA)}$, $\texttt{hasFuel(R)}$
|
||||
\item[Add list] $\texttt{at(R, PosB)}$
|
||||
\item[Delete list] $\texttt{at(R, PosA)}$, $\texttt{hasFuel(R)}$
|
||||
\end{description}
|
||||
\end{descriptionlist}
|
||||
|
||||
\begin{minipage}{0.5\textwidth}
|
||||
\begin{descriptionlist}
|
||||
\item[\texttt{LOAD(Obj, Pos)}] \phantom{}
|
||||
\begin{description}
|
||||
\item[Preconds] $\texttt{at(R, Pos)}$, $\texttt{at(Obj, Pos)}$
|
||||
\item[Add list] $\texttt{in(R, Obj)}$
|
||||
\item[Delete list] $\texttt{at(Obj, Pos)}$
|
||||
\end{description}
|
||||
\end{descriptionlist}
|
||||
\end{minipage}
|
||||
\begin{minipage}{0.5\textwidth}
|
||||
\begin{descriptionlist}
|
||||
\item[\texttt{UNLOAD(Obj, Pos)}] \phantom{}
|
||||
\begin{description}
|
||||
\item[Preconds] $\texttt{in(R, Obj)}$, $\texttt{at(R, Pos)}$
|
||||
\item[Add list] $\texttt{at(Obj, Pos)}$
|
||||
\item[Delete list] $\texttt{in(R, Obj)}$
|
||||
\end{description}
|
||||
\end{descriptionlist}
|
||||
\end{minipage}
|
||||
|
||||
Given a scenario where:
|
||||
\begin{itemize}
|
||||
\item \texttt{r} is a cart.
|
||||
\item \texttt{a} and \texttt{b} are objects.
|
||||
\item \texttt{l} and \texttt{p} are locations.
|
||||
\end{itemize}
|
||||
and the initial state is:
|
||||
\begin{center}
|
||||
\texttt{at(a, l)} $\cdot$ \texttt{at(b, l)} $\cdot$ \texttt{at(r, l)} $\cdot$ \texttt{hasFuel(r)}
|
||||
\end{center}
|
||||
|
||||
The first four time steps of the planning graph are:
|
||||
\begin{center}
|
||||
\includegraphics[width=\textwidth]{img/_graphplan.pdf}
|
||||
\end{center}
|
||||
|
||||
The inconsistencies at $t=1$ are:
|
||||
\begin{descriptionlist}
|
||||
\item[Inconsistent effects] \phantom{}\\[0.5em]
|
||||
$\begin{cases}\texttt{NO-OP} \\ \texttt{LOAD(a, r)}\end{cases} \text{for } \texttt{at(a, l)}$,
|
||||
$\begin{cases}\texttt{NO-OP} \\ \texttt{LOAD(b, r)}\end{cases} \text{for } \texttt{at(b, l)}$,\\[0.3em]
|
||||
$\begin{cases}\texttt{NO-OP} \\ \texttt{MOVE(r, l, p)}\end{cases} \text{for } \texttt{at(r, l)}$,
|
||||
$\begin{cases}\texttt{NO-OP} \\ \texttt{MOVE(r, l, p)}\end{cases} \text{for } \texttt{hasFuel(r)}$
|
||||
|
||||
\item[Interference] \phantom{}\\[0.5em]
|
||||
$\begin{cases}\texttt{MOVE(r, l, p)} \\ \texttt{LOAD(a, r)}\end{cases} \text{for } \texttt{at(r, l)}$,
|
||||
$\begin{cases}\texttt{MOVE(r, l, p)} \\ \texttt{LOAD(b, r)}\end{cases} \text{for } \texttt{at(r, l)}$
|
||||
\end{descriptionlist}
|
||||
|
||||
The inconsistencies of at $t=2$ are:
|
||||
\begin{descriptionlist}
|
||||
\item[Competing needs] \phantom{}\\[0.5em]
|
||||
Consequence of the add and delete list of each action:\\[0.3em]
|
||||
$\begin{cases}\texttt{at(a, l)} \\ \texttt{in(r, a)}\end{cases}$,
|
||||
$\begin{cases}\texttt{at(b, l)} \\ \texttt{in(r, b)}\end{cases}$,
|
||||
$\begin{cases}\texttt{at(r, l)} \\ \texttt{at(r, p)}\end{cases}$,
|
||||
$\begin{cases}\texttt{at(r, p)} \\ \texttt{hasFuel(r)}\end{cases}$\\[0.5em]
|
||||
Consequence of the add list of interfering actions (mutual exclusion):\\[0.3em]
|
||||
$\begin{cases}\texttt{in(r, a)} \\ \texttt{at(r, p)}\end{cases}$,
|
||||
$\begin{cases}\texttt{in(r, b)} \\ \texttt{at(r, p)}\end{cases}$
|
||||
\end{descriptionlist}
|
||||
|
||||
Note that because of the mutually exclusive propositions at $t=2$,
|
||||
at $t=3$ the actions \texttt{UNLOAD($\cdot$, p)} cannot be performed.
|
||||
\end{example}
|
||||
|
||||
|
||||
\subsection{Fast forward}
|
||||
\marginnote{Fast forward}
|
||||
Heuristic planner based on Graphplan, hill climbing and A$^*$.
|
||||
|
||||
\begin{description}
|
||||
\item[Heuristic]
|
||||
Given a problem $P$, the algorithm considers a relaxation $P^+$
|
||||
where delete effects are ignored.
|
||||
$P^+$ is solved using Graphplan and the number of actions required to solve it is used as lower bound heuristic for $P$.
|
||||
|
||||
\item[Algorithm] \phantom{}
|
||||
\begin{enumerate}
|
||||
\item From a state $S$, examine the successors.
|
||||
\item If there is a successor $S'$ better than $S$, move into it and return to point 1.
|
||||
\item Otherwise, run a complete A$^*$ search.
|
||||
\end{enumerate}
|
||||
\end{description}
|
||||
Reference in New Issue
Block a user