From f67f1cd9dd72ab89874aaaabfe697a0bb754f7ec Mon Sep 17 00:00:00 2001 From: Peter Wagenhuber <peda@servus.at> Date: Thu, 20 Apr 2017 13:00:52 +0200 Subject: [PATCH] moegliche tupel sequenzen werden jetzt soweit ich ueberblicken kann richtig generiert. fiexs #4. jetzt brauchts noch eine liste an moeglichen pump channel belegungen und danach noch die simulation ob das dann eh nicht ineinanderrinnt --- archs/S7Routing.graphml | 434 ++++++++++++++++++++++++++++++++++++ archs/S8Routing.graphml | 476 ++++++++++++++++++++++++++++++++++++++++ src/Nloc.java | 23 +- src/TestNloc.java | 267 +++++++++++++++++----- 4 files changed, 1138 insertions(+), 62 deletions(-) create mode 100644 archs/S7Routing.graphml create mode 100644 archs/S8Routing.graphml diff --git a/archs/S7Routing.graphml b/archs/S7Routing.graphml new file mode 100644 index 0000000..1e3e599 --- /dev/null +++ b/archs/S7Routing.graphml @@ -0,0 +1,434 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:java="http://www.yworks.com/xml/yfiles-common/1.0/java" xmlns:sys="http://www.yworks.com/xml/yfiles-common/markup/primitives/2.0" xmlns:x="http://www.yworks.com/xml/yfiles-common/markup/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd"> + <!--Created by yEd 3.16.2.1--> + <key for="port" id="d0" yfiles.type="portgraphics"/> + <key for="port" id="d1" yfiles.type="portgeometry"/> + <key for="port" id="d2" yfiles.type="portuserdata"/> + <key attr.name="url" attr.type="string" for="node" id="d3"/> + <key attr.name="description" attr.type="string" for="node" id="d4"/> + <key for="node" id="d5" yfiles.type="nodegraphics"/> + <key for="graphml" id="d6" yfiles.type="resources"/> + <key attr.name="url" attr.type="string" for="edge" id="d7"/> + <key attr.name="description" attr.type="string" for="edge" id="d8"/> + <key for="edge" id="d9" yfiles.type="edgegraphics"/> + <graph edgedefault="directed" id="G"> + <node id="n0"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="105.57460317460317" y="0.0"/> + <y:Fill color="#FFC800" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="11.236328125" x="9.3818359375" y="6.015625">P</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n1"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="105.57460317460317" y="61.0"/> + <y:Fill color="#00FF00" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="49.10546875" x="-9.552734375" y="6.015625">H3(5,1)</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n2"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="25.803968253968257" y="144.43386243386243"/> + <y:Fill color="#00FF00" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="49.322265625" x="-9.6611328125" y="6.015625">D1(5,1)</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n3"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="74.05277777777778" y="294.0"/> + <y:Fill color="#00FF00" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="50.435546875" x="-10.2177734375" y="6.015625">M1(5,1)</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n4"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="66.55277777777778" y="455.0"/> + <y:Fill color="#00FF00" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="50.435546875" x="-10.2177734375" y="6.015625">M3(5,1)</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n5"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="102.34007936507936" y="616.0"/> + <y:Fill color="#00FF00" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="50.435546875" x="-10.2177734375" y="6.015625">M0(5,1)</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n6"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="20.0" y="566.0"/> + <y:Fill color="#00FF00" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="49.10546875" x="-9.552734375" y="6.015625">H0(5,1)</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n7"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="138.12738095238095" y="738.0"/> + <y:Fill color="#00FF00" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="50.435546875" x="-10.2177734375" y="6.015625">M5(5,1)</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n8"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="74.05277777777778" y="344.0"/> + <y:Fill color="#0000FF" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.810546875" x="1.5947265625" y="6.015625">bif3</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n9"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="66.55277777777778" y="505.0"/> + <y:Fill color="#0000FF" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.810546875" x="1.5947265625" y="6.015625">bif4</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n10"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="74.05277777777778" y="244.0"/> + <y:Fill color="#FF0000" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="55.57421875" x="-12.787109375" y="6.015625">merger2</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n11"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="66.55277777777778" y="405.0"/> + <y:Fill color="#FF0000" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="55.57421875" x="-12.787109375" y="6.015625">merger3</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n12"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="102.34007936507936" y="566.0"/> + <y:Fill color="#FF0000" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="55.57421875" x="-12.787109375" y="6.015625">merger4</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n13"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="94.84007936507936" y="677.0"/> + <y:Fill color="#FF0000" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="55.57421875" x="-12.787109375" y="6.015625">merger5</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n14"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="25.803968253968257" y="61.0"/> + <y:Fill color="#00FF00" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="50.435546875" x="-10.2177734375" y="6.015625">M4(5,1)</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <edge id="e0" source="n0" target="n14"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="-10.0" sy="15.0" tx="0.0" ty="-15.0"> + <y:Point x="110.57460317460317" y="45.5"/> + <y:Point x="40.80396825396826" y="45.5"/> + </y:Path> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="-48.334533255440846" y="17.5">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e1" source="n0" target="n1"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="15.0" tx="0.0" ty="-15.0"/> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="2.0000029548766065" y="6.515625">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e2" source="n1" target="n10"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="15.0" tx="10.0" ty="-15.0"> + <y:Point x="120.57460317460317" y="213.5"/> + <y:Point x="99.05277777777778" y="213.5"/> + </y:Path> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="2.0000029548766065" y="56.828125">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e3" source="n2" target="n10"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="15.0" tx="-10.0" ty="-15.0"> + <y:Point x="40.80396825396826" y="228.5"/> + <y:Point x="79.05277777777778" y="228.5"/> + </y:Path> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="2.0000017317514605" y="22.61118780872809">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e4" source="n10" target="n3"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="15.0" tx="0.0" ty="-15.0"/> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="1.9999976264105896" y="1.015625">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e5" source="n3" target="n8"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="15.0" tx="0.0" ty="-15.0"/> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="1.9999976264105896" y="1.015625">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e6" source="n11" target="n4"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="15.0" tx="0.0" ty="-15.0"/> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="1.9999976264105896" y="1.015625">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e7" source="n8" target="n11"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="-7.5" sy="15.0" tx="0.0" ty="-15.0"/> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="1.9999976264105896" y="6.515625">3, 3<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e8" source="n8" target="n12"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="7.5" sy="15.0" tx="7.5" ty="-15.0"> + <y:Point x="96.55277777777778" y="389.5"/> + <y:Point x="124.84007936507936" y="389.5"/> + </y:Path> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="30.287299213712174" y="90.203125">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e9" source="n4" target="n9"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="15.0" tx="0.0" ty="-15.0"/> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="1.9999976264105896" y="1.015625">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e10" source="n12" target="n5"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="15.0" tx="0.0" ty="-15.0"/> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="1.999999103848893" y="1.015625">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e11" source="n9" target="n6"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="-7.5" sy="15.0" tx="0.0" ty="-15.0"> + <y:Point x="74.05277777777778" y="550.5"/> + <y:Point x="35.0" y="550.5"/> + </y:Path> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="-32.9756100124783" y="17.5">3, 3<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e12" source="n9" target="n12"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="7.5" sy="15.0" tx="-7.5" ty="-15.0"> + <y:Point x="89.05277777777778" y="550.5"/> + <y:Point x="109.84007936507936" y="550.5"/> + </y:Path> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="-3.055570329938618" y="17.5">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e13" source="n5" target="n13"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="15.0" tx="7.5" ty="-15.0"/> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="1.999999103848893" y="6.515625">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e14" source="n6" target="n13"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="15.0" tx="-7.5" ty="-15.0"> + <y:Point x="35.0" y="661.5"/> + <y:Point x="102.34007936507936" y="661.5"/> + </y:Path> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="20.22082093253968" y="67.5">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e15" source="n13" target="n7"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="15.0" tx="-7.5" ty="-15.0"> + <y:Point x="109.84007936507936" y="722.5"/> + <y:Point x="145.62738095238095" y="722.5"/> + </y:Path> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="4.444431147499685" y="17.5">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e16" source="n7" target="n0"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="7.5" sy="-15.0" tx="10.0" ty="15.0"> + <y:Point x="160.62738095238095" y="45.5"/> + <y:Point x="130.57460317460317" y="45.5"/> + </y:Path> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="2.000000581287196" y="-359.754638671875">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e17" source="n14" target="n2"> + <data key="d8"/> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="16.55078298175146" y="17.732556216931215">1, 1<y:LabelModel> + <y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/> + </y:LabelModel> + <y:ModelParameter> + <y:SmartEdgeLabelModelParameter angle="0.0" distance="30.0" distanceToCenter="true" position="left" ratio="0.5" segment="0"/> + </y:ModelParameter> + <y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + </graph> + <data key="d6"> + <y:Resources/> + </data> +</graphml> diff --git a/archs/S8Routing.graphml b/archs/S8Routing.graphml new file mode 100644 index 0000000..9bf1f0a --- /dev/null +++ b/archs/S8Routing.graphml @@ -0,0 +1,476 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:java="http://www.yworks.com/xml/yfiles-common/1.0/java" xmlns:sys="http://www.yworks.com/xml/yfiles-common/markup/primitives/2.0" xmlns:x="http://www.yworks.com/xml/yfiles-common/markup/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd"> + <!--Created by yEd 3.16.2.1--> + <key for="port" id="d0" yfiles.type="portgraphics"/> + <key for="port" id="d1" yfiles.type="portgeometry"/> + <key for="port" id="d2" yfiles.type="portuserdata"/> + <key attr.name="url" attr.type="string" for="node" id="d3"/> + <key attr.name="description" attr.type="string" for="node" id="d4"/> + <key for="node" id="d5" yfiles.type="nodegraphics"/> + <key for="graphml" id="d6" yfiles.type="resources"/> + <key attr.name="url" attr.type="string" for="edge" id="d7"/> + <key attr.name="description" attr.type="string" for="edge" id="d8"/> + <key for="edge" id="d9" yfiles.type="edgegraphics"/> + <graph edgedefault="directed" id="G"> + <node id="n0"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="101.66587301587299" y="-59.06525573192239"/> + <y:Fill color="#FFC800" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="11.236328125" x="9.3818359375" y="6.015625">P</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n1"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="105.57460317460317" y="122.49735449735451"/> + <y:Fill color="#00FF00" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="49.10546875" x="-9.552734375" y="6.015625">H3(5,1)</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n2"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="25.803968253968257" y="179.87301587301587"/> + <y:Fill color="#00FF00" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="49.322265625" x="-9.6611328125" y="6.015625">D1(5,1)</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n3"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="74.05277777777778" y="294.0"/> + <y:Fill color="#00FF00" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="50.435546875" x="-10.2177734375" y="6.015625">M1(5,1)</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n4"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="66.55277777777778" y="455.0"/> + <y:Fill color="#00FF00" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="50.435546875" x="-10.2177734375" y="6.015625">M3(5,1)</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n5"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="102.34007936507936" y="616.0"/> + <y:Fill color="#00FF00" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="50.435546875" x="-10.2177734375" y="6.015625">M0(5,1)</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n6"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="20.0" y="566.0"/> + <y:Fill color="#00FF00" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="49.10546875" x="-9.552734375" y="6.015625">H0(5,1)</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n7"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="138.12738095238095" y="738.0"/> + <y:Fill color="#00FF00" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="50.435546875" x="-10.2177734375" y="6.015625">M5(5,1)</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n8"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="74.05277777777778" y="344.0"/> + <y:Fill color="#0000FF" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.810546875" x="1.5947265625" y="6.015625">bif3</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n9"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="66.55277777777778" y="505.0"/> + <y:Fill color="#0000FF" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.810546875" x="1.5947265625" y="6.015625">bif4</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n10"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="74.05277777777778" y="244.0"/> + <y:Fill color="#FF0000" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="55.57421875" x="-12.787109375" y="6.015625">merger2</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n11"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="66.55277777777778" y="405.0"/> + <y:Fill color="#FF0000" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="55.57421875" x="-12.787109375" y="6.015625">merger3</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n12"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="102.34007936507936" y="566.0"/> + <y:Fill color="#FF0000" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="55.57421875" x="-12.787109375" y="6.015625">merger4</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n13"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="94.84007936507936" y="677.0"/> + <y:Fill color="#FF0000" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="55.57421875" x="-12.787109375" y="6.015625">merger5</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n14"> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="25.803968253968257" y="119.87301587301587"/> + <y:Fill color="#00FF00" transparent="false"/> + <y:BorderStyle color="#000000" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="c" textColor="#000000" verticalTextPosition="bottom" visible="true" width="50.435546875" x="-10.2177734375" y="6.015625">M4(5,1)</y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <node id="n15"> + <data key="d4"/> + <data key="d5"> + <y:ShapeNode> + <y:Geometry height="30.0" width="30.0" x="83.17592592592587" y="10.178571428571445"/> + <y:Fill color="#0000FF" transparent="false"/> + <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.810546875" x="1.5947265625" y="6.015625">bif0<y:LabelModel> + <y:SmartNodeLabelModel distance="4.0"/> + </y:LabelModel> + <y:ModelParameter> + <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/> + </y:ModelParameter> + </y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> + <edge id="e0" source="n15" target="n14"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="-8.59920634920627" sy="16.242945326278573" tx="0.0" ty="-15.0"> + <y:Point x="89.5767195767196" y="45.5"/> + <y:Point x="40.80396825396826" y="45.5"/> + </y:Path> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="stail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="-41.42423276548038" y="4.078483581542969">3, 3<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e1" source="n15" target="n1"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="4.466646004039802" sy="15.030495221289854" tx="0.0" ty="-15.0"> + <y:Point x="120.57460317460317" y="40.2090666498613"/> + </y:Path> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="shead" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="-8.9664048210023" y="8.094503130231601">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e2" source="n1" target="n10"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="15.0" tx="10.0" ty="-15.0"> + <y:Point x="120.57460317460317" y="213.5"/> + <y:Point x="99.05277777777778" y="213.5"/> + </y:Path> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="2.0000029548766065" y="26.07944201918508">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e3" source="n2" target="n10"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="15.0" tx="-10.0" ty="-15.0"> + <y:Point x="40.80396825396826" y="228.5"/> + <y:Point x="79.05277777777778" y="228.5"/> + </y:Path> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="5.675187743656224" y="20.626983642578125">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e4" source="n10" target="n3"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="15.0" tx="0.0" ty="-15.0"/> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="1.9999976264105896" y="1.015625">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e5" source="n3" target="n8"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="15.0" tx="0.0" ty="-15.0"/> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="1.9999976264105896" y="1.015625">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e6" source="n11" target="n4"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="15.0" tx="0.0" ty="-15.0"/> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="1.9999976264105896" y="1.015625">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e7" source="n8" target="n11"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="-7.5" sy="15.0" tx="0.0" ty="-15.0"/> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="1.9999976264105896" y="6.515625">3, 3<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e8" source="n8" target="n12"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="7.5" sy="15.0" tx="7.5" ty="-15.0"> + <y:Point x="96.55277777777778" y="389.5"/> + <y:Point x="124.84007936507936" y="389.5"/> + </y:Path> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="30.287299213712174" y="90.203125">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e9" source="n4" target="n9"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="15.0" tx="0.0" ty="-15.0"/> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="1.9999976264105896" y="1.015625">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e10" source="n12" target="n5"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="15.0" tx="0.0" ty="-15.0"/> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="1.999999103848893" y="1.015625">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e11" source="n9" target="n6"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="-7.5" sy="15.0" tx="0.0" ty="-15.0"> + <y:Point x="74.05277777777778" y="550.5"/> + <y:Point x="35.0" y="550.5"/> + </y:Path> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="-32.9756100124783" y="17.5">3, 3<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e12" source="n9" target="n12"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="7.5" sy="15.0" tx="-7.5" ty="-15.0"> + <y:Point x="89.05277777777778" y="550.5"/> + <y:Point x="109.84007936507936" y="550.5"/> + </y:Path> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="-3.055570329938618" y="17.5">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e13" source="n5" target="n13"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="15.0" tx="7.5" ty="-15.0"/> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="1.999999103848893" y="6.515625">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e14" source="n6" target="n13"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="15.0" tx="-7.5" ty="-15.0"> + <y:Point x="35.0" y="661.5"/> + <y:Point x="102.34007936507936" y="661.5"/> + </y:Path> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="20.22082093253968" y="67.5">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e15" source="n13" target="n7"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="15.0" tx="-7.5" ty="-15.0"> + <y:Point x="109.84007936507936" y="722.5"/> + <y:Point x="145.62738095238095" y="722.5"/> + </y:Path> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="4.444431147499685" y="17.5">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e16" source="n7" target="n0"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="7.5" sy="-15.0" tx="10.0" ty="15.0"> + <y:Point x="160.62738095238095" y="45.5"/> + <y:Point x="126.66587301587299" y="45.5"/> + </y:Path> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="2.000000581287196" y="-359.754638671875">1, 1<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e17" source="n14" target="n2"> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="-43.44921701824854" y="4.9999995155939985">1, 1<y:LabelModel> + <y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/> + </y:LabelModel> + <y:ModelParameter> + <y:SmartEdgeLabelModelParameter angle="0.0" distance="30.0" distanceToCenter="true" position="right" ratio="0.0" segment="0"/> + </y:ModelParameter> + <y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + <edge id="e18" source="n0" target="n15"> + <data key="d8"/> + <data key="d9"> + <y:PolyLineEdge> + <y:Path sx="-9.244973544973561" sy="0.0" tx="0.0" ty="0.0"> + <y:Point x="107.42089947089943" y="-15.38038800705467"/> + <y:Point x="98.84301587301582" y="-15.38038800705467"/> + <y:Point x="98.84301587301582" y="-9.443342151675473"/> + </y:Path> + <y:LineStyle color="#FF0000" type="line" width="1.0"/> + <y:Arrows source="none" target="standard"/> + <y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="26.8984375" x="-43.44921771660057" y="-2.1286636968811123">1, 1<y:LabelModel> + <y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/> + </y:LabelModel> + <y:ModelParameter> + <y:SmartEdgeLabelModelParameter angle="0.0" distance="30.0" distanceToCenter="true" position="right" ratio="0.5" segment="0"/> + </y:ModelParameter> + <y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/> + </y:EdgeLabel> + <y:BendStyle smoothed="false"/> + </y:PolyLineEdge> + </data> + </edge> + </graph> + <data key="d6"> + <y:Resources/> + </data> +</graphml> diff --git a/src/Nloc.java b/src/Nloc.java index 662fbec..86a5787 100644 --- a/src/Nloc.java +++ b/src/Nloc.java @@ -179,12 +179,15 @@ public class Nloc { } } + //public List<List<SequenceTuple>> getSequencesAtBifurcation( + // List<SequenceTuple> seqTup, SequenceTuple currentSeqTup, + // Channel currentBifurcation) { public List<List<SequenceTuple>> getSequencesAtBifurcation( - List<SequenceTuple> seqTup, SequenceTuple currentSeqTup, - Channel currentBifurcation) { + List<SequenceTuple> seqTup, Channel currentBifurcation) { List<List<SequenceTuple>> seqTupList = new ArrayList<List<SequenceTuple>>(); + SequenceTuple currentSeqTup = seqTup.get(0); getSequencesAtBifurcationRecursive(seqTup, currentSeqTup, seqTupList, currentBifurcation); @@ -211,6 +214,8 @@ public class Nloc { // and add the list of sequence tuples to the possible sequences list if (dropletPath.contains(currentBifurcation) && prio > 0) { + System.out.println("At last sequence tuple and adding header droplet(s) to: " + currentSeqTup.getDroplet().getName() + ": " + currentSeqTup.getMinPos()); + System.out.println(""); // we need header droplet // cirst check all possible paths of header droplets @@ -254,10 +259,17 @@ public class Nloc { possibleSequences.add(tmp); } + } else { + System.out.println("At last sequence tuple and NOT adding header droplet(s) to: " + currentSeqTup.getDroplet().getName() + ": " + currentSeqTup.getMinPos()); + System.out.println(""); + possibleSequences.add(seqTupList); } } else { // TODO if (dropletPath.contains(currentBifurcation) && prio > 0) { + System.out.println("NOT at last sequence tuple and "); + System.out.println("Adding header droplet(s) to: " + currentSeqTup.getDroplet().getName() + ": " + currentSeqTup.getMinPos()); + System.out.println(""); // we need header droplet // cirst check all possible paths of header droplets @@ -303,6 +315,13 @@ public class Nloc { seqTupList.get(seqTupList.indexOf(currentSeqTup) + 1), possibleSequences, currentBifurcation); } + } else { + System.out.println("NOT at last sequence tuple and NOT adding header droplets to: " + currentSeqTup.getDroplet().getName() + ": " + currentSeqTup.getMinPos()); + System.out.println(""); + getSequencesAtBifurcationRecursive(seqTupList, + seqTupList.get(seqTupList.indexOf(currentSeqTup) + 1), + possibleSequences, currentBifurcation); + } } } diff --git a/src/TestNloc.java b/src/TestNloc.java index b524173..54b6d1b 100644 --- a/src/TestNloc.java +++ b/src/TestNloc.java @@ -12,86 +12,52 @@ public class TestNloc { //Nloc nlSX = new Nloc(getNlocS1()); //Nloc nlSX = new Nloc(getNlocS2()); - Nloc nlSX = new Nloc(getNlocS6()); + //Nloc nlSX = new Nloc(getNlocS6()); + //Nloc nlSX = new Nloc(getNlocS7()); + Nloc nlSX = new Nloc(getNlocS8()); - // generate list of sequernces - Droplet p = new Droplet(DropletType.PAYLOAD,"p"); - //Droplet h1 = new Droplet(DropletType.HEADER,"h1"); - //Droplet h2 = new Droplet(DropletType.HEADER,"h2"); - //Droplet h3 = new Droplet(DropletType.HEADER,"h3"); List<List<SequenceTuple>> sequences = new ArrayList<List<SequenceTuple>>(); List<List<Channel>> pathlist = nlSX.getAllPaths(); try { - List<Channel> modulesToVisit = nlSX.getModulesByName(Arrays.asList("m4","d1","m1","m3","m0", "m5")); + List<Channel> modulesToVisit = nlSX.getModulesByName(Arrays.asList("m4","d1","m1","m3","h0", "m5")); List<Channel> payloadPath = nlSX.getDesiredPath(modulesToVisit, pathlist); - //List<Channel> modulesToVisitH1 = nlSX.getModulesByName(Arrays.asList("m4","d1","m1","m3","m0", "m5")); - //List<Channel> h1Path = nlSX.getDesiredPath(modulesToVisitH1, pathlist); - - //List<Channel> modulesToVisitH2 = nlSX.getModulesByName(Arrays.asList("m4","m1", "m0", "m5")); - //List<Channel> h2Path = nlSX.getDesiredPath(modulesToVisitH2, pathlist); - - //List<Channel> modulesToVisitH3 = nlSX.getModulesByName(Arrays.asList("h3","m1", "m0", "m5")); - //List<Channel> h3Path = nlSX.getDesiredPath(modulesToVisitH3, pathlist); - SequenceTuple plt = new SequenceTuple(p,payloadPath,0,0); - //SequenceTuple h1t = new SequenceTuple(h1,h1Path,-10,-10); - //SequenceTuple h2t = new SequenceTuple(h2,h2Path,-15,-15); - //SequenceTuple h3t = new SequenceTuple(h3,h3Path,-3,-3); List<SequenceTuple> s1 = new ArrayList<SequenceTuple>(); s1.add(plt); - //List<SequenceTuple> s2 = new ArrayList<SequenceTuple>(); - //s2.add(plt); s2.add(h2t); - //List<SequenceTuple> s3 = new ArrayList<SequenceTuple>(); - //s3.add(plt); s3.add(h3t); sequences.add(s1); - //sequences.add(s2); - //sequences.add(s3); - - //for (List<SequenceTuple> sl: sequences) { - // for (SequenceTuple stup: sl) { - // System.out.print(stup.getDroplet().getType() + ": " + - // stup.getDroplet().getName() + " -> "); - // } - // System.out.println(""); - //} - // - // + //TODO: for every bifurc calculate the list of sequences starting with // single entry for payload droplet + List<Channel> bifurcationList = nlSX.getBifurcationList(payloadPath); + //System.out.println(bifurcationList); + + for (int i = bifurcationList.size() - 1; i >= 0; --i) { + Channel currentBifurcation = bifurcationList.get(i); + List<List<SequenceTuple>> tmpSeqs = new ArrayList<List<SequenceTuple>>(); + System.out.println("Bif: " + currentBifurcation.getName()); + for (List<SequenceTuple> stl: sequences) { + tmpSeqs.addAll(nlSX.getSequencesAtBifurcation(stl, currentBifurcation)); + printSequences(tmpSeqs); + } + sequences = tmpSeqs; + } - //for (List<SequenceTuple> stl: sequences) { - - // List<List<SequenceTuple>> newsequences = nlSX.getSequencesAtBifurcation( - // stl, stl.get(0), nlSX.getModuleByName("ch9")); - - - // } - //} - //List<List<SequenceTuple>> newsequences = nlSXgetSequencesAtBifurcation( - // s1, h1t, nlSX.getModuleByName("ch3")); - //Pump pump = nlSX.getPump(); - //Channel ch = nlSX.getModuleByName("ch15"); - //List<List<Channel>> pathlist1 = nlSX.getAllPathsFromTo(pump, ch); - - //printPaths(pathlist); - //printPath(payloadPath); - //printPaths(pathlist1); + printSequences(sequences); } catch (Exception e) { System.out.println( e.getMessage()); } } -public static void printSequences(List<List<SequenceTuple>> sequences) { - for (List<SequenceTuple> sl: sequences) { - for (SequenceTuple stup: sl) { - if (sl.indexOf(stup) == (sl.size() - 1) { + public static void printSequence(List<SequenceTuple> seq) { + for (SequenceTuple stup: seq) { + if (seq.indexOf(stup) == (seq.size() - 1)) { System.out.print(stup.getDroplet().getName() + ": " + stup.getMinPos() + ":" + stup.getMaxPos()); } else { @@ -102,6 +68,16 @@ public static void printSequences(List<List<SequenceTuple>> sequences) { System.out.println("\n"); } + public static void printSequences(List<List<SequenceTuple>> sequences) { + System.out.println("##################"); + System.out.println("# " + sequences.size() + " Sequences Found"); + System.out.println("##################"); + System.out.println(""); + for (List<SequenceTuple> sl: sequences) { + printSequence(sl); + } + } + public static void printPath(List<Channel> path) { System.out.println("Pathlength Payload: " + Nloc.getPayloadPathlength(path)); System.out.println("Pathlength Header: " + Nloc.getHeaderPathlength(path)); @@ -195,7 +171,7 @@ public static void printSequences(List<List<SequenceTuple>> sequences) { m0.addChild(ch14); ch14.addChild(d1); d1.addChild(ch15); - + ch15.addChild(s0); return chlist; } @@ -262,12 +238,12 @@ public static void printSequences(List<List<SequenceTuple>> sequences) { m4.addChild(ch8); ch8.addChild(ch11); ch8.addChild(ch12); - + ch12.addChild(d1); d1.addChild(ch15); ch2.addChild(ch9); - + ch3.addChild(m2); m2.addChild(ch5); ch5.addChild(ch6); @@ -306,7 +282,7 @@ public static void printSequences(List<List<SequenceTuple>> sequences) { ch26.addChild(m0); m0.addChild(ch28); - + ch25.addChild(h0); h0.addChild(ch27); @@ -409,4 +385,175 @@ public static void printSequences(List<List<SequenceTuple>> sequences) { ch20.addChild(s0); return chlist; } + + public static List<Channel> getNlocS7() { + + // channel(name, psteps, hsteps) + Channel ch1 = new Channel("ch1",1,1); + Channel ch2 = new Channel("ch2",1,1); + Channel ch3 = new Channel("ch3",1,1); + Channel ch4 = new Channel("ch4",1,1); + Channel ch5 = new Channel("ch5",1,1); + Channel ch6 = new Channel("ch6",1,1); + Channel ch7 = new Channel("ch7",1,1); + Channel ch8 = new Channel("ch8",3,3); + Channel ch9 = new Channel("ch9",1,1); + Channel ch10 = new Channel("ch10",1,1); + Channel ch11 = new Channel("ch11",1,1); + Channel ch12 = new Channel("ch12",3,3); + Channel ch13 = new Channel("ch13",1,1); + Channel ch14 = new Channel("ch14",1,1); + Channel ch15 = new Channel("ch15",1,1); + Channel ch16 = new Channel("ch16",1,1); + Channel ch17 = new Channel("ch17",1,1); + Channel ch18 = new Channel("ch18",1,1); + + Module m0 = new Module("m0", 5,1); + Module m1 = new Module("m1", 5,1); + Module m3 = new Module("m3", 5,1); + Module m4 = new Module("m4", 5,1); + Module m5 = new Module("m5", 5,1); + Module h0 = new Module("h0", 5,1); + Module h3 = new Module("h3", 5,1); + Module d1 = new Module("d1", 5,1); + + Pump p0 = new Pump(); + Sink s0 = new Sink(); + + List<Channel> chlist = Arrays.asList(ch1, ch2, ch3, ch4, ch5, ch6, ch7, + ch8, ch9, ch10, ch11, ch12, ch13, ch14, ch15, ch16, ch17, ch18, + m0, m1, m3, m4, m5, h0, h3, d1, p0, s0); + + p0.addChild(ch1); + p0.addChild(ch2); + + ch2.addChild(h3); + h3.addChild(ch4); + + ch1.addChild(m4); + m4.addChild(ch3); + + ch3.addChild(d1); + d1.addChild(ch5); + + ch5.addChild(ch6); + ch4.addChild(ch6); + + ch6.addChild(m1); + m1.addChild(ch7); + + ch7.addChild(ch8); + ch7.addChild(ch9); + + ch8.addChild(ch10); + ch10.addChild(m3); + m3.addChild(ch11); + + ch11.addChild(ch12); + ch11.addChild(ch13); + + ch13.addChild(ch15); + ch9.addChild(ch15); + + ch12.addChild(h0); + h0.addChild(ch14); + + ch15.addChild(m0); + m0.addChild(ch16); + + ch14.addChild(ch17); + ch16.addChild(ch17); + + ch17.addChild(m5); + m5.addChild(ch18); + + ch18.addChild(s0); + + return chlist; + } + public static List<Channel> getNlocS8() { + + // channel(name, psteps, hsteps) + Channel ch1 = new Channel("ch1",1,1); + Channel ch2 = new Channel("ch2",3,3); + Channel ch3 = new Channel("ch3",1,1); + Channel ch4 = new Channel("ch4",1,1); + Channel ch5 = new Channel("ch5",1,1); + Channel ch6 = new Channel("ch6",1,1); + Channel ch7 = new Channel("ch7",1,1); + Channel ch8 = new Channel("ch8",1,1); + Channel ch9 = new Channel("ch9",3,3); + Channel ch10 = new Channel("ch10",1,1); + Channel ch11 = new Channel("ch11",1,1); + Channel ch12 = new Channel("ch12",1,1); + Channel ch13 = new Channel("ch13",3,3); + Channel ch14 = new Channel("ch14",1,1); + Channel ch15 = new Channel("ch15",1,1); + Channel ch16 = new Channel("ch16",1,1); + Channel ch17 = new Channel("ch17",1,1); + Channel ch18 = new Channel("ch18",1,1); + Channel ch19 = new Channel("ch19",1,1); + + Module m0 = new Module("m0", 5,1); + Module m1 = new Module("m1", 5,1); + Module m3 = new Module("m3", 5,1); + Module m4 = new Module("m4", 5,1); + Module m5 = new Module("m5", 5,1); + Module h0 = new Module("h0", 5,1); + Module h3 = new Module("h3", 5,1); + Module d1 = new Module("d1", 5,1); + + Pump p0 = new Pump(); + Sink s0 = new Sink(); + + List<Channel> chlist = Arrays.asList(ch1, ch2, ch3, ch4, ch5, ch6, ch7, + ch8, ch9, ch10, ch11, ch12, ch13, ch14, ch15, ch16, ch17, ch18, ch19, + m0, m1, m3, m4, m5, h0, h3, d1, p0, s0); + + p0.addChild(ch1); + + ch1.addChild(ch2); + ch1.addChild(ch3); + + ch2.addChild(m4); + m4.addChild(ch4); + ch4.addChild(d1); + d1.addChild(ch6); + + ch3.addChild(h3); + h3.addChild(ch5); + + ch6.addChild(ch7); + ch5.addChild(ch7); + + ch7.addChild(m1); + m1.addChild(ch8); + ch8.addChild(ch9); + ch8.addChild(ch10); + + ch9.addChild(ch11); + ch11.addChild(m3); + m3.addChild(ch12); + + ch12.addChild(ch13); + ch12.addChild(ch14); + + ch13.addChild(h0); + h0.addChild(ch15); + + ch10.addChild(ch16); + ch14.addChild(ch16); + ch16.addChild(m0); + m0.addChild(ch17); + + ch15.addChild(ch18); + ch17.addChild(ch18); + + ch18.addChild(m5); + m5.addChild(ch19); + + ch19.addChild(s0); + + return chlist; + } } -- GitLab