monorepo
This commit is contained in:
26
PI5/.classpath
Normal file
26
PI5/.classpath
Normal file
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/ParteComun">
|
||||
<attributes>
|
||||
<attribute name="module" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/Grafos">
|
||||
<attributes>
|
||||
<attribute name="module" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/DatosCompartidos">
|
||||
<attributes>
|
||||
<attribute name="module" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/Solve">
|
||||
<attributes>
|
||||
<attribute name="module" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
17
PI5/.project
Normal file
17
PI5/.project
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>PI5</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
BIN
PI5/enunciado/Enunciado PI5.pdf
Normal file
BIN
PI5/enunciado/Enunciado PI5.pdf
Normal file
Binary file not shown.
1
PI5/ficheros/ejemplos/Ejemplo1DatosEntrada1.txt
Normal file
1
PI5/ficheros/ejemplos/Ejemplo1DatosEntrada1.txt
Normal file
@@ -0,0 +1 @@
|
||||
3,5,7,9,12,13,15,17,19:36
|
||||
1
PI5/ficheros/ejemplos/Ejemplo1DatosEntrada2.txt
Normal file
1
PI5/ficheros/ejemplos/Ejemplo1DatosEntrada2.txt
Normal file
@@ -0,0 +1 @@
|
||||
2,5,8,9,21,23,25,27,29:16
|
||||
1
PI5/ficheros/ejemplos/Ejemplo1DatosEntrada3.txt
Normal file
1
PI5/ficheros/ejemplos/Ejemplo1DatosEntrada3.txt
Normal file
@@ -0,0 +1 @@
|
||||
3,5,7,9,21,23,25,27,29:15
|
||||
4
PI5/ficheros/ejemplos/Ejemplo2DatosEntrada1.txt
Normal file
4
PI5/ficheros/ejemplos/Ejemplo2DatosEntrada1.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
{1,2,3}:2.5
|
||||
{2,4}:4.8
|
||||
{3,4}:3.7
|
||||
{4,5}:1.9
|
||||
8
PI5/ficheros/ejemplos/Ejemplo2DatosEntrada2.txt
Normal file
8
PI5/ficheros/ejemplos/Ejemplo2DatosEntrada2.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
{3,4,17,18,20}:3
|
||||
{1,5,10}:2
|
||||
{6,7,8,12,15}:3
|
||||
{1,2,5,9}:1
|
||||
{11,17,18,19}:2
|
||||
{16,19,20}:1
|
||||
{2,3,15}:5
|
||||
{10,11,13,14}:2
|
||||
20
PI5/ficheros/ejemplos/Ejemplo3DatosEntrada1.txt
Normal file
20
PI5/ficheros/ejemplos/Ejemplo3DatosEntrada1.txt
Normal file
@@ -0,0 +1,20 @@
|
||||
Alumno_01: 1,2,3,4,5
|
||||
Alumno_02: 1,2,3,4,5
|
||||
Alumno_03: 0,1,2,3,5
|
||||
Alumno_04: 0,3,2,2,5
|
||||
Alumno_05: 5,4,3,2,1
|
||||
Alumno_06: 5,4,3,2,1
|
||||
Alumno_07: 5,3,2,1,0
|
||||
Alumno_08: 5,2,4,1,0
|
||||
Alumno_09: 1,5,3,2,0
|
||||
Alumno_10: 0,5,4,3,1
|
||||
Alumno_11: 0,5,1,1,2
|
||||
Alumno_12: 1,5,2,5,3
|
||||
Alumno_13: 2,2,5,4,4
|
||||
Alumno_14: 3,0,5,0,1
|
||||
Alumno_15: 5,4,5,0,0
|
||||
Alumno_16: 0,1,5,4,2
|
||||
Alumno_17: 1,2,1,5,3
|
||||
Alumno_18: 3,2,0,5,1
|
||||
Alumno_19: 4,3,2,5,0
|
||||
Alumno_20: 1,4,1,5,2
|
||||
8
PI5/ficheros/ejemplos/Ejemplo3DatosEntrada2.txt
Normal file
8
PI5/ficheros/ejemplos/Ejemplo3DatosEntrada2.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
Alumno_01: 1,2,4,5
|
||||
Alumno_02: 1,2,5,0
|
||||
Alumno_03: 0,5,2,3
|
||||
Alumno_04: 5,0,2,3
|
||||
Alumno_05: 2,3,0,5
|
||||
Alumno_06: 3,0,5,1
|
||||
Alumno_07: 1,5,0,2
|
||||
Alumno_08: 5,3,2,0
|
||||
20
PI5/ficheros/ejemplos/Ejemplo3DatosEntrada3.txt
Normal file
20
PI5/ficheros/ejemplos/Ejemplo3DatosEntrada3.txt
Normal file
@@ -0,0 +1,20 @@
|
||||
Alumno_01: 1,2,3,5,0
|
||||
Alumno_02: 1,2,3,5,0
|
||||
Alumno_03: 1,2,3,5,0
|
||||
Alumno_04: 1,2,3,5,0
|
||||
Alumno_05: 5,4,3,2,1
|
||||
Alumno_06: 5,4,3,2,1
|
||||
Alumno_07: 5,4,3,2,1
|
||||
Alumno_08: 5,4,3,2,1
|
||||
Alumno_09: 1,0,5,4,0
|
||||
Alumno_10: 1,0,5,4,0
|
||||
Alumno_11: 1,0,5,4,0
|
||||
Alumno_12: 1,0,5,4,0
|
||||
Alumno_13: 0,5,1,4,2
|
||||
Alumno_14: 0,5,1,4,2
|
||||
Alumno_15: 0,5,1,4,2
|
||||
Alumno_16: 0,5,1,4,2
|
||||
Alumno_17: 3,2,1,0,5
|
||||
Alumno_18: 3,2,1,0,5
|
||||
Alumno_19: 3,2,1,0,5
|
||||
Alumno_20: 3,2,1,0,5
|
||||
9
PI5/ficheros/ejercicios/Ejercicio1DatosEntrada1.txt
Normal file
9
PI5/ficheros/ejercicios/Ejercicio1DatosEntrada1.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
// HUERTOS
|
||||
H0: metrosdisponibles=4;
|
||||
H1: metrosdisponibles=6;
|
||||
// VARIEDADES
|
||||
V0 -> metrosrequeridos=2; incomp=V2,V4,V3;
|
||||
V1 -> metrosrequeridos=4; incomp=V2,V4;
|
||||
V2 -> metrosrequeridos=3; incomp=V0,V1,V4;
|
||||
V3 -> metrosrequeridos=1; incomp=V0;
|
||||
V4 -> metrosrequeridos=6; incomp=V0,V1,V2,V3;
|
||||
11
PI5/ficheros/ejercicios/Ejercicio1DatosEntrada2.txt
Normal file
11
PI5/ficheros/ejercicios/Ejercicio1DatosEntrada2.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
// HUERTOS
|
||||
H0: metrosdisponibles=3;
|
||||
H1: metrosdisponibles=4;
|
||||
H2: metrosdisponibles=5;
|
||||
// VARIEDADES
|
||||
V0 -> metrosrequeridos=4; incomp=V3,V1,V4;
|
||||
V1 -> metrosrequeridos=2; incomp=V0,V3,V5;
|
||||
V2 -> metrosrequeridos=3; incomp=V5,V3;
|
||||
V3 -> metrosrequeridos=1; incomp=V0,V1,V2,V4;
|
||||
V4 -> metrosrequeridos=6; incomp=V0,V5,V3;
|
||||
V5 -> metrosrequeridos=2; incomp=V1,V2,V4;
|
||||
15
PI5/ficheros/ejercicios/Ejercicio1DatosEntrada3.txt
Normal file
15
PI5/ficheros/ejercicios/Ejercicio1DatosEntrada3.txt
Normal file
@@ -0,0 +1,15 @@
|
||||
// HUERTOS
|
||||
H0: metrosdisponibles=10;
|
||||
H1: metrosdisponibles=5;
|
||||
H2: metrosdisponibles=2;
|
||||
H3: metrosdisponibles=8;
|
||||
// VARIEDADES
|
||||
V0 -> metrosrequeridos=6; incomp=V1,V2,V3,V4,V6;
|
||||
V1 -> metrosrequeridos=4; incomp=V8,V6,V5,V0,V2,V4,V7;
|
||||
V2 -> metrosrequeridos=3; incomp=V0,V1,V6,V7,V3,V5,V8;
|
||||
V3 -> metrosrequeridos=1; incomp=V6,V0,V7,V2,V4,V5;
|
||||
V4 -> metrosrequeridos=6; incomp=V0,V6,V1,V3,V8;
|
||||
V5 -> metrosrequeridos=5; incomp=V3,V2,V1,V6,V8;
|
||||
V6 -> metrosrequeridos=2; incomp=V0,V8,V5,V3,V1,V2,V4,V7;
|
||||
V7 -> metrosrequeridos=5; incomp=V8,V1,V6,V2,V3;
|
||||
V8 -> metrosrequeridos=2; incomp=V4,V2,V5,V1,V7;
|
||||
7
PI5/ficheros/ejercicios/Ejercicio2DatosEntrada1.txt
Normal file
7
PI5/ficheros/ejercicios/Ejercicio2DatosEntrada1.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
Presupuesto = 150
|
||||
//Id_prod:Precio:Categoria:Valoracion
|
||||
0:10:0:5
|
||||
1:150:0:4
|
||||
2:150:1:4
|
||||
3:100:2:2
|
||||
4:120:2:5
|
||||
9
PI5/ficheros/ejercicios/Ejercicio2DatosEntrada2.txt
Normal file
9
PI5/ficheros/ejercicios/Ejercicio2DatosEntrada2.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Presupuesto = 100
|
||||
//Id_prod:Precio:Categoria:Valoracion
|
||||
0:75:3:5
|
||||
1:10:2:4
|
||||
2:15:1:2
|
||||
3:50:0:2
|
||||
4:80:1:5
|
||||
5:95:2:5
|
||||
6:25:3:4
|
||||
12
PI5/ficheros/ejercicios/Ejercicio2DatosEntrada3.txt
Normal file
12
PI5/ficheros/ejercicios/Ejercicio2DatosEntrada3.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
Presupuesto = 10
|
||||
//Id_prod:Precio:Categoria:Valoracion
|
||||
0:5:0:2
|
||||
1:4:2:1
|
||||
2:3:1:3
|
||||
3:5:3:1
|
||||
4:5:2:1
|
||||
5:8:4:1
|
||||
6:8:1:2
|
||||
7:7:0:5
|
||||
8:6:2:4
|
||||
9:10:1:4
|
||||
9
PI5/ficheros/ejercicios/Ejercicio3DatosEntrada1.txt
Normal file
9
PI5/ficheros/ejercicios/Ejercicio3DatosEntrada1.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
// DESTINOS
|
||||
D0: demandaminima=6;
|
||||
D1: demandaminima=3;
|
||||
D2: demandaminima=8;
|
||||
D3: demandaminima=10;
|
||||
D4: demandaminima=5;
|
||||
// PRODUCTOS Id_producto -> unidades=integer;coste_almacenamiento=(destino:coste)
|
||||
P0 -> uds=5; coste_almacenamiento=(0:1),(1:50),(2:10),(3:15),(4:10);
|
||||
P1 -> uds=100; coste_almacenamiento=(0:4),(1:3),(2:3),(3:2),(4:1);
|
||||
12
PI5/ficheros/ejercicios/Ejercicio3DatosEntrada2.txt
Normal file
12
PI5/ficheros/ejercicios/Ejercicio3DatosEntrada2.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
// DESTINOS
|
||||
D0: demandaminima=1;
|
||||
D1: demandaminima=3;
|
||||
D2: demandaminima=2;
|
||||
D3: demandaminima=6;
|
||||
D4: demandaminima=4;
|
||||
D5: demandaminima=8;
|
||||
D6: demandaminima=2;
|
||||
// PRODUCTOS Id_producto -> unidades=integer;coste_almacenamiento=(destino:coste)
|
||||
P0 -> uds=6; coste_almacenamiento=(0:1),(1:1),(2:80),(3:50),(4:10),(5:8),(6:1);
|
||||
P1 -> uds=12; coste_almacenamiento=(0:25),(1:3),(2:1),(3:1),(4:1),(5:5),(6:20);
|
||||
P2 -> uds=8; coste_almacenamiento=(0:10),(1:3),(2:8),(3:25),(4:15),(5:1),(6:3);
|
||||
15
PI5/ficheros/ejercicios/Ejercicio3DatosEntrada3.txt
Normal file
15
PI5/ficheros/ejercicios/Ejercicio3DatosEntrada3.txt
Normal file
@@ -0,0 +1,15 @@
|
||||
// DESTINOS
|
||||
D0: demandaminima=3;
|
||||
D1: demandaminima=1;
|
||||
D2: demandaminima=8;
|
||||
D3: demandaminima=5;
|
||||
D4: demandaminima=1;
|
||||
D5: demandaminima=3;
|
||||
D6: demandaminima=1;
|
||||
D7: demandaminima=10;
|
||||
D8: demandaminima=2;
|
||||
D9: demandaminima=6;
|
||||
// PRODUCTOS Id_producto -> unidades=integer;coste_almacenamiento=(destino:coste)
|
||||
P0 -> uds=12; coste_almacenamiento=(0:1),(1:7),(2:1),(3:1),(4:10),(5:8),(6:15),(7:9),(8:1),(9:1);
|
||||
P1 -> uds=15; coste_almacenamiento=(0:25),(1:3),(2:8),(3:1),(4:1),(5:1),(6:1),(7:1),(8:11),(9:1);
|
||||
P2 -> uds=13; coste_almacenamiento=(0:1),(1:1),(2:1),(3:25),(4:15),(5:1),(6:30),(7:10),(8:7),(9:1);
|
||||
7
PI5/ficheros/ejercicios/Ejercicio4DatosEntrada1.txt
Normal file
7
PI5/ficheros/ejercicios/Ejercicio4DatosEntrada1.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
// PERSONAS
|
||||
P0 -> edad=5; idiomas=(esp),(por); nacionalidad=esp; afinidades=(1:1),(2:5),(3:1),(4:0),(5:1);
|
||||
P1 -> edad=100; idiomas=(esp),(fra); nacionalidad=fra; afinidades=(0:1),(2:0),(3:5),(4:1),(5:2);
|
||||
P2 -> edad=9; idiomas=(esp),(ing); nacionalidad=eeuu; afinidades=(0:5),(1:0),(3:1),(4:0),(5:5);
|
||||
P3 -> edad=99; idiomas=(esp),(ale); nacionalidad=esp; afinidades=(0:1),(1:5),(2:1),(4:2),(5:2);
|
||||
P4 -> edad=75; idiomas=(esp),(por),(fra),(ale); nacionalidad=ale; afinidades=(0:0),(1:1),(2:0),(3:2),(5:5);
|
||||
P5 -> edad=78; idiomas=(fra),(ale); nacionalidad=fra; afinidades=(0:1),(1:2),(2:5),(3:2),(4:5);
|
||||
9
PI5/ficheros/ejercicios/Ejercicio4DatosEntrada2.txt
Normal file
9
PI5/ficheros/ejercicios/Ejercicio4DatosEntrada2.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
// PERSONAS
|
||||
P0 -> edad=5; idiomas=(esp),(por); nacionalidad=esp; afinidades=(1:5),(2:5),(3:5),(4:5),(5:5),(6:5),(7:1);
|
||||
P1 -> edad=100; idiomas=(esp),(fra); nacionalidad=fra; afinidades=(0:5),(2:5),(3:5),(4:0),(5:5),(6:0),(7:5);
|
||||
P2 -> edad=9; idiomas=(ing),(esp); nacionalidad=ing; afinidades=(0:5),(1:5),(3:5),(4:0),(5:5),(6:0),(7:5);
|
||||
P3 -> edad=99; idiomas=(esp),(ing); nacionalidad=esp; afinidades=(0:5),(1:5),(2:5),(4:5),(5:5),(6:1),(7:0);
|
||||
P4 -> edad=8; idiomas=(esp); nacionalidad=esp; afinidades=(0:5),(1:0),(2:0),(3:5),(5:5),(6:5),(7:5);
|
||||
P5 -> edad=6; idiomas=(por); nacionalidad=por; afinidades=(0:5),(1:5),(2:5),(3:5),(4:5),(6:5),(7:5);
|
||||
P6 -> edad=97; idiomas=(ing),(esp); nacionalidad=ing; afinidades=(0:5),(1:0),(2:0),(3:1),(4:5),(5:5),(7:5);
|
||||
P7 -> edad=98; idiomas=(fra); nacionalidad=esp; afinidades=(0:1),(1:5),(2:5),(3:0),(4:5),(5:5),(6:5);
|
||||
11
PI5/ficheros/ejercicios/Ejercicio4DatosEntrada3.txt
Normal file
11
PI5/ficheros/ejercicios/Ejercicio4DatosEntrada3.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
// PERSONAS
|
||||
P0 -> edad=6; idiomas=(fra),(por); nacionalidad=fra; afinidades=(1:1),(2:5),(3:1),(4:5),(5:5),(6:5),(7:1),(8:1),(9:4);
|
||||
P1 -> edad=33; idiomas=(esp),(fra); nacionalidad=fra; afinidades=(0:1),(2:0),(3:5),(4:0),(5:5),(6:0),(7:5),(8:1),(9:4);
|
||||
P2 -> edad=9; idiomas=(ing); nacionalidad=ing; afinidades=(0:5),(1:0),(3:1),(4:5),(5:5),(6:0),(7:5),(8:1),(9:4);
|
||||
P3 -> edad=33; idiomas=(esp),(ing); nacionalidad=esp; afinidades=(0:1),(1:5),(2:1),(4:1),(5:5),(6:1),(7:0),(8:5),(9:4);
|
||||
P4 -> edad=8; idiomas=(esp),(ing); nacionalidad=esp; afinidades=(0:5),(1:0),(2:5),(3:1),(5:5),(6:5),(7:5),(8:1),(9:4);
|
||||
P5 -> edad=4; idiomas=(por); nacionalidad=por; afinidades=(0:5),(1:5),(2:5),(3:5),(4:5),(6:5),(7:5),(8:1),(9:4);
|
||||
P6 -> edad=33; idiomas=(ing),(esp); nacionalidad=ing; afinidades=(0:5),(1:0),(2:0),(3:1),(4:5),(5:5),(7:5),(8:1),(9:4);
|
||||
P7 -> edad=33; idiomas=(fra), (esp); nacionalidad=esp; afinidades=(0:1),(1:5),(2:5),(3:0),(4:5),(5:5),(6:5),(8:1),(9:4);
|
||||
P8 -> edad=33; idiomas=(ale), (ing); nacionalidad=ale; afinidades=(0:1),(1:1),(2:1),(3:5),(4:1),(5:1),(6:1),(7:1),(9:4);
|
||||
P9 -> edad=31; idiomas=(jap), (ale), (ing), (esp); nacionalidad=fin; afinidades=(0:4),(1:4),(2:4),(3:4),(4:4),(5:4),(6:4),(7:4),(8:4)
|
||||
35
PI5/generated/ej1_f1.dot
Normal file
35
PI5/generated/ej1_f1.dot
Normal file
@@ -0,0 +1,35 @@
|
||||
strict digraph G {
|
||||
1 [ color="black" label="(1,[[], [0]],[4, 4])" ];
|
||||
2 [ color="black" label="(2,[[0], [1]],[2, 2])" ];
|
||||
3 [ color="black" label="(0,[[], []],[4, 6])" ];
|
||||
4 [ color="black" label="(2,[[], [0]],[4, 4])" ];
|
||||
5 [ color="black" label="(3,[[0], [1]],[2, 2])" ];
|
||||
6 [ color="black" label="(1,[[], []],[4, 6])" ];
|
||||
7 [ color="black" label="(3,[[2], [0, 1]],[1, 0])" ];
|
||||
8 [ color="black" label="(4,[[2], [0, 1]],[1, 0])" ];
|
||||
9 [ color="black" label="(1,[[0], []],[2, 6])" ];
|
||||
10 [ color="black" label="(5,[[2], [0, 1]],[1, 0])" ];
|
||||
11 [ color="black" label="(2,[[0], []],[2, 6])" ];
|
||||
12 [ color="black" label="(2,[[1], [0]],[0, 4])" ];
|
||||
13 [ color="black" label="(3,[[1], [0]],[0, 4])" ];
|
||||
14 [ color="black" label="(4,[[2, 3], [0, 1]],[0, 0])" ];
|
||||
15 [ color="black" label="(5,[[2, 3], [0, 1]],[0, 0])" ];
|
||||
16 [ color="black" label="(2,[[], [0, 1]],[4, 0])" ];
|
||||
17 [ color="black" label="(3,[[], [0, 1]],[4, 0])" ];
|
||||
3 -> 1 [ color="red" label="1" ];
|
||||
9 -> 2 [ label="1" ];
|
||||
1 -> 4 [ label="-1" ];
|
||||
2 -> 5 [ label="-1" ];
|
||||
3 -> 6 [ label="-1" ];
|
||||
16 -> 7 [ color="red" label="0" ];
|
||||
7 -> 8 [ label="-1" ];
|
||||
3 -> 9 [ label="0" ];
|
||||
8 -> 10 [ label="-1" ];
|
||||
9 -> 11 [ label="-1" ];
|
||||
1 -> 12 [ label="0" ];
|
||||
12 -> 13 [ label="-1" ];
|
||||
7 -> 14 [ color="red" label="0" ];
|
||||
14 -> 15 [ color="red" label="-1" ];
|
||||
1 -> 16 [ color="red" label="1" ];
|
||||
16 -> 17 [ label="-1" ];
|
||||
}
|
||||
61
PI5/generated/ej1_f2.dot
Normal file
61
PI5/generated/ej1_f2.dot
Normal file
@@ -0,0 +1,61 @@
|
||||
strict digraph G {
|
||||
1 [ color="black" label="(3,[[], [0], [1]],[3, 0, 3])" ];
|
||||
2 [ color="black" label="(3,[[1], [0], []],[1, 0, 5])" ];
|
||||
3 [ color="black" label="(2,[[1], [0], []],[1, 0, 5])" ];
|
||||
4 [ color="black" label="(2,[[], [0], [1]],[3, 0, 3])" ];
|
||||
5 [ color="black" label="(4,[[], [0], [1, 2]],[3, 0, 0])" ];
|
||||
6 [ color="black" label="(4,[[1], [0], [2]],[1, 0, 2])" ];
|
||||
7 [ color="black" label="(4,[[2], [0], [1]],[0, 0, 3])" ];
|
||||
8 [ color="black" label="(5,[[], [0], [1, 2]],[3, 0, 0])" ];
|
||||
9 [ color="black" label="(3,[[1], [0], [2]],[1, 0, 2])" ];
|
||||
10 [ color="black" label="(3,[[2], [0], [1]],[0, 0, 3])" ];
|
||||
11 [ color="black" label="(3,[[], [0], [1, 2]],[3, 0, 0])" ];
|
||||
12 [ color="black" label="(3,[[1], [], [0]],[1, 4, 1])" ];
|
||||
13 [ color="black" label="(2,[[], [0], []],[3, 0, 5])" ];
|
||||
14 [ color="black" label="(1,[[], [0], []],[3, 0, 5])" ];
|
||||
15 [ color="black" label="(3,[[], [1], [0]],[3, 2, 1])" ];
|
||||
16 [ color="black" label="(5,[[1], [2], [0]],[1, 1, 1])" ];
|
||||
17 [ color="black" label="(4,[[1], [2], [0]],[1, 1, 1])" ];
|
||||
18 [ color="black" label="(6,[[3, 5], [0], [1, 2]],[0, 0, 0])" ];
|
||||
19 [ color="black" label="(0,[[], [], []],[3, 4, 5])" ];
|
||||
20 [ color="black" label="(3,[[1], [2], [0]],[1, 1, 1])" ];
|
||||
21 [ color="black" label="(1,[[], [], []],[3, 4, 5])" ];
|
||||
22 [ color="black" label="(2,[[], [1], [0]],[3, 2, 1])" ];
|
||||
23 [ color="black" label="(2,[[], [], [0]],[3, 4, 1])" ];
|
||||
24 [ color="black" label="(4,[[2], [1], [0]],[0, 2, 1])" ];
|
||||
25 [ color="black" label="(3,[[2], [1], [0]],[0, 2, 1])" ];
|
||||
26 [ color="black" label="(1,[[], [], [0]],[3, 4, 1])" ];
|
||||
27 [ color="black" label="(4,[[3], [0], [1, 2]],[2, 0, 0])" ];
|
||||
28 [ color="black" label="(2,[[1], [], [0]],[1, 4, 1])" ];
|
||||
29 [ color="black" label="(5,[[3], [0], [1, 2]],[2, 0, 0])" ];
|
||||
30 [ color="black" label="(6,[[3], [0], [1, 2]],[2, 0, 0])" ];
|
||||
4 -> 1 [ label="-1" ];
|
||||
3 -> 2 [ label="-1" ];
|
||||
14 -> 3 [ label="0" ];
|
||||
14 -> 4 [ color="red" label="2" ];
|
||||
11 -> 5 [ label="-1" ];
|
||||
9 -> 6 [ label="-1" ];
|
||||
10 -> 7 [ label="-1" ];
|
||||
5 -> 8 [ label="-1" ];
|
||||
3 -> 9 [ label="2" ];
|
||||
4 -> 10 [ label="0" ];
|
||||
4 -> 11 [ color="red" label="2" ];
|
||||
28 -> 12 [ label="-1" ];
|
||||
14 -> 13 [ label="-1" ];
|
||||
19 -> 14 [ color="red" label="1" ];
|
||||
22 -> 15 [ label="-1" ];
|
||||
17 -> 16 [ label="-1" ];
|
||||
20 -> 17 [ label="-1" ];
|
||||
29 -> 18 [ color="red" label="0" ];
|
||||
28 -> 20 [ label="1" ];
|
||||
19 -> 21 [ label="-1" ];
|
||||
26 -> 22 [ label="1" ];
|
||||
26 -> 23 [ label="-1" ];
|
||||
25 -> 24 [ label="-1" ];
|
||||
22 -> 25 [ label="0" ];
|
||||
19 -> 26 [ label="2" ];
|
||||
11 -> 27 [ color="red" label="0" ];
|
||||
26 -> 28 [ label="0" ];
|
||||
27 -> 29 [ color="red" label="-1" ];
|
||||
29 -> 30 [ label="-1" ];
|
||||
}
|
||||
749
PI5/generated/ej1_f3.dot
Normal file
749
PI5/generated/ej1_f3.dot
Normal file
@@ -0,0 +1,749 @@
|
||||
strict digraph G {
|
||||
1 [ color="black" label="(7,[[5], [1, 3], [6], [2]],[5, 0, 0, 5])" ];
|
||||
2 [ color="black" label="(4,[[0], [], [], [1]],[4, 5, 2, 4])" ];
|
||||
3 [ color="black" label="(4,[[2], [], [], [1]],[7, 5, 2, 4])" ];
|
||||
4 [ color="black" label="(8,[[2, 4], [5], [6], [1]],[1, 0, 0, 4])" ];
|
||||
5 [ color="black" label="(7,[[2, 4], [], [3], [1]],[1, 5, 1, 4])" ];
|
||||
6 [ color="black" label="(6,[[5], [1, 3], [], [2]],[5, 0, 2, 5])" ];
|
||||
7 [ color="black" label="(7,[[2, 4], [5], [], [1]],[1, 0, 2, 4])" ];
|
||||
8 [ color="black" label="(8,[[4], [1, 3], [6], [2]],[4, 0, 0, 5])" ];
|
||||
9 [ color="black" label="(5,[[4], [1], [3], [0]],[4, 1, 1, 2])" ];
|
||||
10 [ color="black" label="(4,[[1], [2], [], [3]],[6, 2, 2, 7])" ];
|
||||
11 [ color="black" label="(5,[[2, 4], [1, 3], [], []],[1, 0, 2, 8])" ];
|
||||
12 [ color="black" label="(6,[[4], [2], [3], [1]],[4, 2, 1, 4])" ];
|
||||
13 [ color="black" label="(6,[[4], [1], [3], [2]],[4, 1, 1, 5])" ];
|
||||
14 [ color="black" label="(8,[[5, 7], [1, 3], [6], [2]],[0, 0, 0, 5])" ];
|
||||
15 [ color="black" label="(4,[[], [], [], [0]],[10, 5, 2, 2])" ];
|
||||
16 [ color="black" label="(6,[[2], [1, 3], [], [0]],[7, 0, 2, 2])" ];
|
||||
17 [ color="black" label="(7,[[4], [1, 3], [], [2]],[4, 0, 2, 5])" ];
|
||||
18 [ color="black" label="(7,[[2, 4], [6], [], [1, 3]],[1, 3, 2, 3])" ];
|
||||
19 [ color="black" label="(6,[[4], [1, 3], [], [0]],[4, 0, 2, 2])" ];
|
||||
20 [ color="black" label="(5,[[2, 4], [1, 3], [], [0]],[1, 0, 2, 2])" ];
|
||||
21 [ color="black" label="(4,[[], [2], [], [1, 3]],[10, 2, 2, 3])" ];
|
||||
22 [ color="black" label="(6,[[2], [], [], [1, 3]],[7, 5, 2, 3])" ];
|
||||
23 [ color="black" label="(6,[[0], [2], [3], [1]],[4, 2, 1, 4])" ];
|
||||
24 [ color="black" label="(6,[[0], [1], [3], [2]],[4, 1, 1, 5])" ];
|
||||
25 [ color="black" label="(4,[[0], [], [], [2]],[4, 5, 2, 5])" ];
|
||||
26 [ color="black" label="(6,[[0], [1, 3], [], []],[4, 0, 2, 8])" ];
|
||||
27 [ color="black" label="(8,[[2], [1, 3], [6], [0]],[7, 0, 0, 2])" ];
|
||||
28 [ color="black" label="(4,[[2], [], [], [0]],[7, 5, 2, 2])" ];
|
||||
29 [ color="black" label="(7,[[0], [1], [3], [4]],[4, 1, 1, 2])" ];
|
||||
30 [ color="black" label="(7,[[0], [1, 3], [], [2]],[4, 0, 2, 5])" ];
|
||||
31 [ color="black" label="(6,[[2], [1], [3], [0]],[7, 1, 1, 2])" ];
|
||||
32 [ color="black" label="(5,[[0], [], [], [1, 3]],[4, 5, 2, 3])" ];
|
||||
33 [ color="black" label="(6,[[2, 4], [], [3], [0]],[1, 5, 1, 2])" ];
|
||||
34 [ color="black" label="(3,[[0], [], [], []],[4, 5, 2, 8])" ];
|
||||
35 [ color="black" label="(5,[[0], [1], [3], []],[4, 1, 1, 8])" ];
|
||||
36 [ color="black" label="(8,[[0], [1, 3], [6], [2]],[4, 0, 0, 5])" ];
|
||||
37 [ color="black" label="(6,[[2, 4], [1], [3], [5]],[1, 1, 1, 3])" ];
|
||||
38 [ color="black" label="(8,[[2, 4], [1, 3], [6], [5]],[1, 0, 0, 3])" ];
|
||||
39 [ color="black" label="(6,[[4], [2], [3], [0]],[4, 2, 1, 2])" ];
|
||||
40 [ color="black" label="(5,[[1, 3], [], [], [0]],[5, 5, 2, 2])" ];
|
||||
41 [ color="black" label="(9,[[2, 4], [5], [6], [1, 3]],[1, 0, 0, 3])" ];
|
||||
42 [ color="black" label="(5,[[1], [], [], [2]],[6, 5, 2, 5])" ];
|
||||
43 [ color="black" label="(5,[[3], [], [], [0]],[9, 5, 2, 2])" ];
|
||||
44 [ color="black" label="(6,[[1, 3], [], [], [2]],[5, 5, 2, 5])" ];
|
||||
45 [ color="black" label="(4,[[1], [], [], [0]],[6, 5, 2, 2])" ];
|
||||
46 [ color="black" label="(6,[[1], [5], [3], [2]],[6, 0, 1, 5])" ];
|
||||
47 [ color="black" label="(7,[[2, 4], [1, 3], [], [5]],[1, 0, 2, 3])" ];
|
||||
48 [ color="black" label="(5,[[1, 3], [2], [], [4]],[5, 2, 2, 2])" ];
|
||||
49 [ color="black" label="(8,[[2, 4], [5], [], [1, 3]],[1, 0, 2, 3])" ];
|
||||
50 [ color="black" label="(2,[[0], [1], [], []],[4, 1, 2, 8])" ];
|
||||
51 [ color="black" label="(5,[[0], [], [], [1]],[4, 5, 2, 4])" ];
|
||||
52 [ color="black" label="(5,[[2], [], [], [1]],[7, 5, 2, 4])" ];
|
||||
53 [ color="black" label="(3,[[0], [1], [], [2]],[4, 1, 2, 5])" ];
|
||||
54 [ color="black" label="(3,[[0], [2], [], [1]],[4, 2, 2, 4])" ];
|
||||
55 [ color="black" label="(6,[[2], [5], [3], [1]],[7, 0, 1, 4])" ];
|
||||
56 [ color="black" label="(4,[[0], [2], [], [3]],[4, 2, 2, 7])" ];
|
||||
57 [ color="black" label="(3,[[1], [2], [], [0]],[6, 2, 2, 2])" ];
|
||||
58 [ color="black" label="(7,[[2, 4], [5], [6], [1]],[1, 0, 0, 4])" ];
|
||||
59 [ color="black" label="(6,[[2, 4], [], [3], [1]],[1, 5, 1, 4])" ];
|
||||
60 [ color="black" label="(8,[[2, 4], [3], [6], [1]],[1, 4, 0, 4])" ];
|
||||
61 [ color="black" label="(5,[[], [2], [], [1, 3]],[10, 2, 2, 3])" ];
|
||||
62 [ color="black" label="(3,[[], [2], [], [0]],[10, 2, 2, 2])" ];
|
||||
63 [ color="black" label="(9,[[2, 4], [1, 3], [6], [0, 8]],[1, 0, 0, 0])" ];
|
||||
64 [ color="black" label="(7,[[4], [2], [3], [1]],[4, 2, 1, 4])" ];
|
||||
65 [ color="black" label="(4,[[1], [3], [], [2]],[6, 4, 2, 5])" ];
|
||||
66 [ color="black" label="(9,[[5, 7], [1, 3], [6], [2]],[0, 0, 0, 5])" ];
|
||||
67 [ color="black" label="(5,[[1], [2], [], [3]],[6, 2, 2, 7])" ];
|
||||
68 [ color="black" label="(6,[[4], [1], [3], [0]],[4, 1, 1, 2])" ];
|
||||
69 [ color="black" label="(7,[[2, 4], [3], [], [1]],[1, 4, 2, 4])" ];
|
||||
70 [ color="black" label="(4,[[0], [2], [], [1, 3]],[4, 2, 2, 3])" ];
|
||||
71 [ color="black" label="(7,[[2], [1, 3], [], [0]],[7, 0, 2, 2])" ];
|
||||
72 [ color="black" label="(6,[[2, 4], [5], [], [1]],[1, 0, 2, 4])" ];
|
||||
73 [ color="black" label="(6,[[0], [], [], [1, 3]],[4, 5, 2, 3])" ];
|
||||
74 [ color="black" label="(4,[[2], [1], [], [3]],[7, 1, 2, 7])" ];
|
||||
75 [ color="black" label="(6,[[0], [1], [3], []],[4, 1, 1, 8])" ];
|
||||
76 [ color="black" label="(8,[[1, 3], [5], [6], [0]],[5, 0, 0, 2])" ];
|
||||
77 [ color="black" label="(5,[[2, 4], [], [3], [0]],[1, 5, 1, 2])" ];
|
||||
78 [ color="black" label="(4,[[3], [2], [], [1]],[9, 2, 2, 4])" ];
|
||||
79 [ color="black" label="(7,[[0], [1], [3], [2]],[4, 1, 1, 5])" ];
|
||||
80 [ color="black" label="(4,[[3], [1], [], [2]],[9, 1, 2, 5])" ];
|
||||
81 [ color="black" label="(3,[[1], [2], [], []],[6, 2, 2, 8])" ];
|
||||
82 [ color="black" label="(3,[[], [2], [], [1]],[10, 2, 2, 4])" ];
|
||||
83 [ color="black" label="(6,[[2, 4], [1], [], [0]],[1, 1, 2, 2])" ];
|
||||
84 [ color="black" label="(7,[[1], [5], [3], [2]],[6, 0, 1, 5])" ];
|
||||
85 [ color="black" label="(6,[[2, 4], [3], [], [0]],[1, 4, 2, 2])" ];
|
||||
86 [ color="black" label="(7,[[2, 4], [1, 3], [6], [5]],[1, 0, 0, 3])" ];
|
||||
87 [ color="black" label="(7,[[4], [2], [3], [0]],[4, 2, 1, 2])" ];
|
||||
88 [ color="black" label="(6,[[1], [5], [3], [0]],[6, 0, 1, 2])" ];
|
||||
89 [ color="black" label="(5,[[1], [], [], [0]],[6, 5, 2, 2])" ];
|
||||
90 [ color="black" label="(4,[[1, 3], [2], [], []],[5, 2, 2, 8])" ];
|
||||
91 [ color="black" label="(8,[[2, 4], [5], [6], [1, 3]],[1, 0, 0, 3])" ];
|
||||
92 [ color="black" label="(6,[[1, 3], [], [], [0]],[5, 5, 2, 2])" ];
|
||||
93 [ color="black" label="(2,[[], [1], [], []],[10, 1, 2, 8])" ];
|
||||
94 [ color="black" label="(6,[[2, 4], [1, 3], [], [5]],[1, 0, 2, 3])" ];
|
||||
95 [ color="black" label="(4,[[1, 3], [2], [], [0]],[5, 2, 2, 2])" ];
|
||||
96 [ color="black" label="(3,[[], [1], [], [2]],[10, 1, 2, 5])" ];
|
||||
97 [ color="black" label="(7,[[2, 4], [5], [], [1, 3]],[1, 0, 2, 3])" ];
|
||||
98 [ color="black" label="(2,[[], [1], [], [0]],[10, 1, 2, 2])" ];
|
||||
99 [ color="black" label="(6,[[1, 3], [2], [], [4]],[5, 2, 2, 2])" ];
|
||||
100 [ color="black" label="(3,[[0], [1], [], []],[4, 1, 2, 8])" ];
|
||||
101 [ color="black" label="(4,[[0], [1], [], [2]],[4, 1, 2, 5])" ];
|
||||
102 [ color="black" label="(4,[[0], [2], [], [1]],[4, 2, 2, 4])" ];
|
||||
103 [ color="black" label="(4,[[0], [3], [], [2]],[4, 4, 2, 5])" ];
|
||||
104 [ color="black" label="(5,[[0], [2], [], [3]],[4, 2, 2, 7])" ];
|
||||
105 [ color="black" label="(3,[[2], [1], [], []],[7, 1, 2, 8])" ];
|
||||
106 [ color="black" label="(7,[[2], [5], [3], [1]],[7, 0, 1, 4])" ];
|
||||
107 [ color="black" label="(4,[[1], [2], [], [0]],[6, 2, 2, 2])" ];
|
||||
108 [ color="black" label="(4,[[3], [2], [], [0]],[9, 2, 2, 2])" ];
|
||||
109 [ color="black" label="(5,[[2, 4], [], [3], [1]],[1, 5, 1, 4])" ];
|
||||
110 [ color="black" label="(7,[[2, 4], [3], [6], [1]],[1, 4, 0, 4])" ];
|
||||
111 [ color="black" label="(8,[[2, 4], [1], [6], [3]],[1, 1, 0, 7])" ];
|
||||
112 [ color="black" label="(5,[[3], [1], [], [2]],[9, 1, 2, 5])" ];
|
||||
113 [ color="black" label="(6,[[], [2], [], [1, 3]],[10, 2, 2, 3])" ];
|
||||
114 [ color="black" label="(4,[[], [2], [], [0]],[10, 2, 2, 2])" ];
|
||||
115 [ color="black" label="(5,[[3], [2], [], [1]],[9, 2, 2, 4])" ];
|
||||
116 [ color="black" label="(6,[[2, 4], [3], [], [1]],[1, 4, 2, 4])" ];
|
||||
117 [ color="black" label="(4,[[1], [3], [], [0]],[6, 4, 2, 2])" ];
|
||||
118 [ color="black" label="(8,[[2, 4], [6], [3], [1]],[1, 3, 1, 4])" ];
|
||||
119 [ color="black" label="(7,[[2, 4], [1], [], [3]],[1, 1, 2, 7])" ];
|
||||
120 [ color="black" label="(7,[[4], [1], [3], [0]],[4, 1, 1, 2])" ];
|
||||
121 [ color="black" label="(5,[[1], [3], [], [2]],[6, 4, 2, 5])" ];
|
||||
122 [ color="black" label="(6,[[1], [2], [], [3]],[6, 2, 2, 7])" ];
|
||||
123 [ color="black" label="(4,[[1], [], [3], [2]],[6, 5, 1, 5])" ];
|
||||
124 [ color="black" label="(6,[[4], [5], [3], [0]],[4, 0, 1, 2])" ];
|
||||
125 [ color="black" label="(5,[[0], [2], [], [1, 3]],[4, 2, 2, 3])" ];
|
||||
126 [ color="black" label="(5,[[4], [2], [], [1, 3]],[4, 2, 2, 3])" ];
|
||||
127 [ color="black" label="(3,[[0], [2], [], []],[4, 2, 2, 8])" ];
|
||||
128 [ color="black" label="(5,[[2], [1], [], [3]],[7, 1, 2, 7])" ];
|
||||
129 [ color="black" label="(4,[[2], [3], [], [1]],[7, 4, 2, 4])" ];
|
||||
130 [ color="black" label="(4,[[0], [1], [], [3]],[4, 1, 2, 7])" ];
|
||||
131 [ color="black" label="(7,[[1, 3], [5], [6], [0]],[5, 0, 0, 2])" ];
|
||||
132 [ color="black" label="(8,[[1, 3], [5], [6], [2]],[5, 0, 0, 5])" ];
|
||||
133 [ color="black" label="(4,[[3], [1], [], [0]],[9, 1, 2, 2])" ];
|
||||
134 [ color="black" label="(4,[[1], [2], [], []],[6, 2, 2, 8])" ];
|
||||
135 [ color="black" label="(5,[[2, 4], [1], [], [0]],[1, 1, 2, 2])" ];
|
||||
136 [ color="black" label="(5,[[2, 4], [3], [], [0]],[1, 4, 2, 2])" ];
|
||||
137 [ color="black" label="(4,[[], [1], [], [2]],[10, 1, 2, 5])" ];
|
||||
138 [ color="black" label="(4,[[], [2], [], [1]],[10, 2, 2, 4])" ];
|
||||
139 [ color="black" label="(5,[[1, 3], [2], [], []],[5, 2, 2, 8])" ];
|
||||
140 [ color="black" label="(7,[[2, 4], [5], [6], [1, 3]],[1, 0, 0, 3])" ];
|
||||
141 [ color="black" label="(7,[[1], [5], [3], [0]],[6, 0, 1, 2])" ];
|
||||
142 [ color="black" label="(3,[[], [1], [], []],[10, 1, 2, 8])" ];
|
||||
143 [ color="black" label="(6,[[2, 4], [5], [], [1, 3]],[1, 0, 2, 3])" ];
|
||||
144 [ color="black" label="(5,[[1, 3], [2], [], [0]],[5, 2, 2, 2])" ];
|
||||
145 [ color="black" label="(3,[[2], [1], [], [0]],[7, 1, 2, 2])" ];
|
||||
146 [ color="black" label="(3,[[], [1], [], [0]],[10, 1, 2, 2])" ];
|
||||
147 [ color="black" label="(8,[[5], [2], [6], [1, 3]],[5, 2, 0, 3])" ];
|
||||
148 [ color="black" label="(4,[[2], [3], [], [0]],[7, 4, 2, 2])" ];
|
||||
149 [ color="black" label="(4,[[0], [1], [], []],[4, 1, 2, 8])" ];
|
||||
150 [ color="black" label="(4,[[], [], [3], [0]],[10, 5, 1, 2])" ];
|
||||
151 [ color="black" label="(5,[[0], [3], [], [2]],[4, 4, 2, 5])" ];
|
||||
152 [ color="black" label="(5,[[0], [2], [], [1]],[4, 2, 2, 4])" ];
|
||||
153 [ color="black" label="(4,[[2], [1], [], []],[7, 1, 2, 8])" ];
|
||||
154 [ color="black" label="(5,[[0], [1], [], [2]],[4, 1, 2, 5])" ];
|
||||
155 [ color="black" label="(7,[[5], [2], [], [1, 3]],[5, 2, 2, 3])" ];
|
||||
156 [ color="black" label="(5,[[3], [2], [], [0]],[9, 2, 2, 2])" ];
|
||||
157 [ color="black" label="(4,[[0], [], [3], [2]],[4, 5, 1, 5])" ];
|
||||
158 [ color="black" label="(7,[[2, 4], [1], [6], [3]],[1, 1, 0, 7])" ];
|
||||
159 [ color="black" label="(6,[[3], [1], [], [2]],[9, 1, 2, 5])" ];
|
||||
160 [ color="black" label="(7,[[4], [2], [6], [1, 3]],[4, 2, 0, 3])" ];
|
||||
161 [ color="black" label="(6,[[3], [2], [], [1]],[9, 2, 2, 4])" ];
|
||||
162 [ color="black" label="(5,[[], [2], [], [0]],[10, 2, 2, 2])" ];
|
||||
163 [ color="black" label="(5,[[1], [3], [], [0]],[6, 4, 2, 2])" ];
|
||||
164 [ color="black" label="(7,[[2, 4], [6], [3], [1]],[1, 3, 1, 4])" ];
|
||||
165 [ color="black" label="(6,[[2, 4], [1], [], [3]],[1, 1, 2, 7])" ];
|
||||
166 [ color="black" label="(5,[[2, 4], [3], [], [1]],[1, 4, 2, 4])" ];
|
||||
167 [ color="black" label="(6,[[1], [3], [], [2]],[6, 4, 2, 5])" ];
|
||||
168 [ color="black" label="(5,[[1], [], [3], [2]],[6, 5, 1, 5])" ];
|
||||
169 [ color="black" label="(7,[[4], [5], [3], [0]],[4, 0, 1, 2])" ];
|
||||
170 [ color="black" label="(6,[[0], [2], [], [1, 3]],[4, 2, 2, 3])" ];
|
||||
171 [ color="black" label="(4,[[1], [], [3], [0]],[6, 5, 1, 2])" ];
|
||||
172 [ color="black" label="(6,[[4], [2], [], [1, 3]],[4, 2, 2, 3])" ];
|
||||
173 [ color="black" label="(5,[[2], [3], [], [1]],[7, 4, 2, 4])" ];
|
||||
174 [ color="black" label="(6,[[2], [1], [], [3]],[7, 1, 2, 7])" ];
|
||||
175 [ color="black" label="(4,[[0], [2], [], []],[4, 2, 2, 8])" ];
|
||||
176 [ color="black" label="(4,[[0], [3], [], [1]],[4, 4, 2, 4])" ];
|
||||
177 [ color="black" label="(5,[[0], [1], [], [3]],[4, 1, 2, 7])" ];
|
||||
178 [ color="black" label="(7,[[1, 3], [5], [6], [2]],[5, 0, 0, 5])" ];
|
||||
179 [ color="black" label="(4,[[2], [], [3], [1]],[7, 5, 1, 4])" ];
|
||||
180 [ color="black" label="(5,[[3], [1], [], [0]],[9, 1, 2, 2])" ];
|
||||
181 [ color="black" label="(4,[[], [1], [], [0]],[10, 1, 2, 2])" ];
|
||||
182 [ color="black" label="(4,[[], [3], [], [0]],[10, 4, 2, 2])" ];
|
||||
183 [ color="black" label="(5,[[1], [2], [], [0]],[6, 2, 2, 2])" ];
|
||||
184 [ color="black" label="(5,[[], [2], [], [1]],[10, 2, 2, 4])" ];
|
||||
185 [ color="black" label="(8,[[2, 4], [5], [3], [1]],[1, 0, 1, 4])" ];
|
||||
186 [ color="black" label="(9,[[2, 4], [7], [6], [1, 3]],[1, 0, 0, 3])" ];
|
||||
187 [ color="black" label="(5,[[0], [1], [], [4]],[4, 1, 2, 2])" ];
|
||||
188 [ color="black" label="(5,[[4], [2], [], [1]],[4, 2, 2, 4])" ];
|
||||
189 [ color="black" label="(6,[[1, 3], [2], [], [0]],[5, 2, 2, 2])" ];
|
||||
190 [ color="black" label="(4,[[2], [1], [], [0]],[7, 1, 2, 2])" ];
|
||||
191 [ color="black" label="(7,[[5], [2], [6], [1, 3]],[5, 2, 0, 3])" ];
|
||||
192 [ color="black" label="(5,[[2], [1], [], [0]],[7, 1, 2, 2])" ];
|
||||
193 [ color="black" label="(5,[[2], [3], [], [0]],[7, 4, 2, 2])" ];
|
||||
194 [ color="black" label="(5,[[0], [1], [], []],[4, 1, 2, 8])" ];
|
||||
195 [ color="black" label="(5,[[], [], [3], [0]],[10, 5, 1, 2])" ];
|
||||
196 [ color="black" label="(7,[[0], [5], [6], [1, 3]],[4, 0, 0, 3])" ];
|
||||
197 [ color="black" label="(6,[[0], [1], [], [2]],[4, 1, 2, 5])" ];
|
||||
198 [ color="black" label="(7,[[2], [5], [6], [1, 3]],[7, 0, 0, 3])" ];
|
||||
199 [ color="black" label="(8,[[2, 4], [1], [3], [0]],[1, 1, 1, 2])" ];
|
||||
200 [ color="black" label="(4,[[2], [], [3], [0]],[7, 5, 1, 2])" ];
|
||||
201 [ color="black" label="(5,[[0], [], [3], [2]],[4, 5, 1, 5])" ];
|
||||
202 [ color="black" label="(6,[[5], [2], [], [1, 3]],[5, 2, 2, 3])" ];
|
||||
203 [ color="black" label="(7,[[2, 4], [5], [3], [0]],[1, 0, 1, 2])" ];
|
||||
204 [ color="black" label="(8,[[4], [2], [6], [1, 3]],[4, 2, 0, 3])" ];
|
||||
205 [ color="black" label="(5,[[2, 4], [1], [], [3]],[1, 1, 2, 7])" ];
|
||||
206 [ color="black" label="(5,[[1], [2], [3], [4]],[6, 2, 1, 2])" ];
|
||||
207 [ color="black" label="(8,[[5, 7], [2], [6], [1, 3]],[0, 2, 0, 3])" ];
|
||||
208 [ color="black" label="(6,[[1], [3], [], [0]],[6, 4, 2, 2])" ];
|
||||
209 [ color="black" label="(6,[[1], [], [3], [2]],[6, 5, 1, 5])" ];
|
||||
210 [ color="black" label="(5,[[1], [], [3], [0]],[6, 5, 1, 2])" ];
|
||||
211 [ color="black" label="(7,[[4], [2], [], [1, 3]],[4, 2, 2, 3])" ];
|
||||
212 [ color="black" label="(5,[[4], [2], [], [0]],[4, 2, 2, 2])" ];
|
||||
213 [ color="black" label="(4,[[], [1, 3], [], [2]],[10, 0, 2, 5])" ];
|
||||
214 [ color="black" label="(6,[[1, 3], [5], [], [2]],[5, 0, 2, 5])" ];
|
||||
215 [ color="black" label="(6,[[2], [3], [], [1]],[7, 4, 2, 4])" ];
|
||||
216 [ color="black" label="(6,[[0], [1], [], [3]],[4, 1, 2, 7])" ];
|
||||
217 [ color="black" label="(5,[[0], [3], [], [1]],[4, 4, 2, 4])" ];
|
||||
218 [ color="black" label="(0,[[], [], [], []],[10, 5, 2, 8])" ];
|
||||
219 [ color="black" label="(5,[[2], [], [3], [1]],[7, 5, 1, 4])" ];
|
||||
220 [ color="black" label="(6,[[2, 4], [], [], [1]],[1, 5, 2, 4])" ];
|
||||
221 [ color="black" label="(4,[[0], [], [3], [1]],[4, 5, 1, 4])" ];
|
||||
222 [ color="black" label="(8,[[2, 4], [7], [6], [1, 3]],[1, 0, 0, 3])" ];
|
||||
223 [ color="black" label="(5,[[], [3], [], [0]],[10, 4, 2, 2])" ];
|
||||
224 [ color="black" label="(6,[[1], [2], [], [0]],[6, 2, 2, 2])" ];
|
||||
225 [ color="black" label="(7,[[2, 4], [5], [3], [1]],[1, 0, 1, 4])" ];
|
||||
226 [ color="black" label="(5,[[4], [3], [], [0]],[4, 4, 2, 2])" ];
|
||||
227 [ color="black" label="(6,[[4], [2], [], [1]],[4, 2, 2, 4])" ];
|
||||
228 [ color="black" label="(6,[[0], [1], [], [4]],[4, 1, 2, 2])" ];
|
||||
229 [ color="black" label="(6,[[2], [5], [], [1, 3]],[7, 0, 2, 3])" ];
|
||||
230 [ color="black" label="(6,[[2], [1], [], [0]],[7, 1, 2, 2])" ];
|
||||
231 [ color="black" label="(8,[[0], [5], [6], [1, 3]],[4, 0, 0, 3])" ];
|
||||
232 [ color="black" label="(5,[[0], [2], [3], [4]],[4, 2, 1, 2])" ];
|
||||
233 [ color="black" label="(7,[[0], [1, 3], [6], [5]],[4, 0, 0, 3])" ];
|
||||
234 [ color="black" label="(8,[[2], [5], [6], [1, 3]],[7, 0, 0, 3])" ];
|
||||
235 [ color="black" label="(7,[[2, 4], [1], [3], [0]],[1, 1, 1, 2])" ];
|
||||
236 [ color="black" label="(5,[[2], [], [3], [0]],[7, 5, 1, 2])" ];
|
||||
237 [ color="black" label="(9,[[2, 4], [1, 3], [6], [0]],[1, 0, 0, 2])" ];
|
||||
238 [ color="black" label="(8,[[2, 4], [], [6], [1, 3]],[1, 5, 0, 3])" ];
|
||||
239 [ color="black" label="(6,[[2, 4], [5], [3], [0]],[1, 0, 1, 2])" ];
|
||||
240 [ color="black" label="(5,[[], [1, 3], [], [2]],[10, 0, 2, 5])" ];
|
||||
241 [ color="black" label="(6,[[1], [2], [3], [4]],[6, 2, 1, 2])" ];
|
||||
242 [ color="black" label="(7,[[2, 4], [], [], [1, 3]],[1, 5, 2, 3])" ];
|
||||
243 [ color="black" label="(4,[[1], [2], [3], [0]],[6, 2, 1, 2])" ];
|
||||
244 [ color="black" label="(4,[[], [1], [3], [2]],[10, 1, 1, 5])" ];
|
||||
245 [ color="black" label="(4,[[], [2], [3], [1]],[10, 2, 1, 4])" ];
|
||||
246 [ color="black" label="(9,[[5, 7], [2], [6], [1, 3]],[0, 2, 0, 3])" ];
|
||||
247 [ color="black" label="(6,[[4], [2], [], [0]],[4, 2, 2, 2])" ];
|
||||
248 [ color="black" label="(6,[[1], [], [3], [0]],[6, 5, 1, 2])" ];
|
||||
249 [ color="black" label="(1,[[], [], [], [0]],[10, 5, 2, 2])" ];
|
||||
250 [ color="black" label="(4,[[0], [1, 3], [], [2]],[4, 0, 2, 5])" ];
|
||||
251 [ color="black" label="(5,[[2], [1, 3], [], [4]],[7, 0, 2, 2])" ];
|
||||
252 [ color="black" label="(4,[[1], [2], [3], []],[6, 2, 1, 8])" ];
|
||||
253 [ color="black" label="(7,[[1, 3], [5], [], [2]],[5, 0, 2, 5])" ];
|
||||
254 [ color="black" label="(4,[[], [1, 3], [], [0]],[10, 0, 2, 2])" ];
|
||||
255 [ color="black" label="(5,[[0], [1, 3], [], [4]],[4, 0, 2, 2])" ];
|
||||
256 [ color="black" label="(6,[[1, 3], [5], [], [0]],[5, 0, 2, 2])" ];
|
||||
257 [ color="black" label="(5,[[2], [1], [3], [4]],[7, 1, 1, 2])" ];
|
||||
258 [ color="black" label="(1,[[], [], [], []],[10, 5, 2, 8])" ];
|
||||
259 [ color="black" label="(4,[[2], [1, 3], [], []],[7, 0, 2, 8])" ];
|
||||
260 [ color="black" label="(7,[[5], [2], [3], [0]],[5, 2, 1, 2])" ];
|
||||
261 [ color="black" label="(5,[[2, 4], [], [], [1]],[1, 5, 2, 4])" ];
|
||||
262 [ color="black" label="(6,[[2], [], [3], [1]],[7, 5, 1, 4])" ];
|
||||
263 [ color="black" label="(5,[[0], [], [3], [1]],[4, 5, 1, 4])" ];
|
||||
264 [ color="black" label="(6,[[2, 4], [5], [3], [1]],[1, 0, 1, 4])" ];
|
||||
265 [ color="black" label="(5,[[4], [], [3], [0]],[4, 5, 1, 2])" ];
|
||||
266 [ color="black" label="(6,[[4], [3], [], [0]],[4, 4, 2, 2])" ];
|
||||
267 [ color="black" label="(6,[[0], [5], [], [1, 3]],[4, 0, 2, 3])" ];
|
||||
268 [ color="black" label="(7,[[2], [5], [], [1, 3]],[7, 0, 2, 3])" ];
|
||||
269 [ color="black" label="(2,[[0], [], [], [1]],[4, 5, 2, 4])" ];
|
||||
270 [ color="black" label="(7,[[5], [2], [3], [1]],[5, 2, 1, 4])" ];
|
||||
271 [ color="black" label="(7,[[5], [1], [3], [2]],[5, 1, 1, 5])" ];
|
||||
272 [ color="black" label="(8,[[0], [1, 3], [6], [5]],[4, 0, 0, 3])" ];
|
||||
273 [ color="black" label="(6,[[0], [2], [3], [4]],[4, 2, 1, 2])" ];
|
||||
274 [ color="black" label="(6,[[0], [1], [3], [5]],[4, 1, 1, 3])" ];
|
||||
275 [ color="black" label="(8,[[2, 4], [1, 3], [6], [0]],[1, 0, 0, 2])" ];
|
||||
276 [ color="black" label="(6,[[2, 4], [1], [3], []],[1, 1, 1, 8])" ];
|
||||
277 [ color="black" label="(7,[[2, 4], [], [6], [1, 3]],[1, 5, 0, 3])" ];
|
||||
278 [ color="black" label="(4,[[0], [2], [3], []],[4, 2, 1, 8])" ];
|
||||
279 [ color="black" label="(5,[[1], [2], [3], [0]],[6, 2, 1, 2])" ];
|
||||
280 [ color="black" label="(6,[[], [1, 3], [], [2]],[10, 0, 2, 5])" ];
|
||||
281 [ color="black" label="(7,[[2, 4], [1, 3], [], [0]],[1, 0, 2, 2])" ];
|
||||
282 [ color="black" label="(6,[[2, 4], [], [], [1, 3]],[1, 5, 2, 3])" ];
|
||||
283 [ color="black" label="(4,[[], [1], [3], [0]],[10, 1, 1, 2])" ];
|
||||
284 [ color="black" label="(6,[[2, 4], [1], [3], [0]],[1, 1, 1, 2])" ];
|
||||
285 [ color="black" label="(5,[[0], [1, 3], [], [2]],[4, 0, 2, 5])" ];
|
||||
286 [ color="black" label="(2,[[], [], [], [0]],[10, 5, 2, 2])" ];
|
||||
287 [ color="black" label="(6,[[0], [1, 3], [], [4]],[4, 0, 2, 2])" ];
|
||||
288 [ color="black" label="(6,[[2], [1, 3], [], [4]],[7, 0, 2, 2])" ];
|
||||
289 [ color="black" label="(5,[[4], [1, 3], [], [2]],[4, 0, 2, 5])" ];
|
||||
290 [ color="black" label="(5,[[], [1, 3], [], [0]],[10, 0, 2, 2])" ];
|
||||
291 [ color="black" label="(5,[[1], [2], [3], []],[6, 2, 1, 8])" ];
|
||||
292 [ color="black" label="(7,[[1, 3], [5], [], [0]],[5, 0, 2, 2])" ];
|
||||
293 [ color="black" label="(4,[[2], [1, 3], [], [0]],[7, 0, 2, 2])" ];
|
||||
294 [ color="black" label="(4,[[0], [1], [3], [2]],[4, 1, 1, 5])" ];
|
||||
295 [ color="black" label="(4,[[0], [2], [3], [1]],[4, 2, 1, 4])" ];
|
||||
296 [ color="black" label="(4,[[2], [1], [3], [0]],[7, 1, 1, 2])" ];
|
||||
297 [ color="black" label="(6,[[2], [1], [3], [4]],[7, 1, 1, 2])" ];
|
||||
298 [ color="black" label="(4,[[2], [], [], [1, 3]],[7, 5, 2, 3])" ];
|
||||
299 [ color="black" label="(2,[[], [], [], []],[10, 5, 2, 8])" ];
|
||||
300 [ color="black" label="(4,[[0], [1, 3], [], []],[4, 0, 2, 8])" ];
|
||||
301 [ color="black" label="(5,[[0], [1], [3], [4]],[4, 1, 1, 2])" ];
|
||||
302 [ color="black" label="(7,[[0], [1, 3], [6], [4]],[4, 0, 0, 2])" ];
|
||||
303 [ color="black" label="(5,[[2], [1, 3], [], []],[7, 0, 2, 8])" ];
|
||||
304 [ color="black" label="(6,[[5], [2], [3], [0]],[5, 2, 1, 2])" ];
|
||||
305 [ color="black" label="(5,[[], [1], [3], [2]],[10, 1, 1, 5])" ];
|
||||
306 [ color="black" label="(5,[[], [2], [3], [1]],[10, 2, 1, 4])" ];
|
||||
307 [ color="black" label="(4,[[2], [1], [3], []],[7, 1, 1, 8])" ];
|
||||
308 [ color="black" label="(1,[[0], [], [], []],[4, 5, 2, 8])" ];
|
||||
309 [ color="black" label="(2,[[1], [], [], [0]],[6, 5, 2, 2])" ];
|
||||
310 [ color="black" label="(6,[[4], [], [3], [0]],[4, 5, 1, 2])" ];
|
||||
311 [ color="black" label="(4,[[1, 3], [], [], [2]],[5, 5, 2, 5])" ];
|
||||
312 [ color="black" label="(4,[[], [2], [3], [0]],[10, 2, 1, 2])" ];
|
||||
313 [ color="black" label="(3,[[1], [], [], [2]],[6, 5, 2, 5])" ];
|
||||
314 [ color="black" label="(2,[[], [], [], [1]],[10, 5, 2, 4])" ];
|
||||
315 [ color="black" label="(2,[[1], [], [], []],[6, 5, 2, 8])" ];
|
||||
316 [ color="black" label="(6,[[0], [1, 3], [], [5]],[4, 0, 2, 3])" ];
|
||||
317 [ color="black" label="(7,[[0], [5], [], [1, 3]],[4, 0, 2, 3])" ];
|
||||
318 [ color="black" label="(8,[[5], [1, 3], [6], [2]],[5, 0, 0, 5])" ];
|
||||
319 [ color="black" label="(3,[[0], [], [], [1]],[4, 5, 2, 4])" ];
|
||||
320 [ color="black" label="(3,[[2], [], [], [1]],[7, 5, 2, 4])" ];
|
||||
321 [ color="black" label="(7,[[0], [1], [3], [5]],[4, 1, 1, 3])" ];
|
||||
322 [ color="black" label="(6,[[5], [2], [3], [1]],[5, 2, 1, 4])" ];
|
||||
323 [ color="black" label="(6,[[5], [1], [3], [2]],[5, 1, 1, 5])" ];
|
||||
324 [ color="black" label="(6,[[], [2], [3], [0]],[10, 2, 1, 2])" ];
|
||||
325 [ color="black" label="(7,[[2, 4], [1, 3], [6], [0]],[1, 0, 0, 2])" ];
|
||||
326 [ color="black" label="(7,[[5], [1, 3], [], [2]],[5, 0, 2, 5])" ];
|
||||
327 [ color="black" label="(5,[[2, 4], [1], [3], []],[1, 1, 1, 8])" ];
|
||||
328 [ color="black" label="(5,[[0], [2], [3], []],[4, 2, 1, 8])" ];
|
||||
329 [ color="black" label="(6,[[1], [2], [3], [0]],[6, 2, 1, 2])" ];
|
||||
330 [ color="black" label="(7,[[4], [1, 3], [6], [2]],[4, 0, 0, 5])" ];
|
||||
331 [ color="black" label="(6,[[2, 4], [1, 3], [], []],[1, 0, 2, 8])" ];
|
||||
332 [ color="black" label="(5,[[2, 4], [], [], [1, 3]],[1, 5, 2, 3])" ];
|
||||
333 [ color="black" label="(5,[[4], [2], [3], [1]],[4, 2, 1, 4])" ];
|
||||
334 [ color="black" label="(5,[[2, 4], [1], [3], [0]],[1, 1, 1, 2])" ];
|
||||
335 [ color="black" label="(5,[[], [1], [3], [0]],[10, 1, 1, 2])" ];
|
||||
336 [ color="black" label="(5,[[4], [1], [3], [2]],[4, 1, 1, 5])" ];
|
||||
337 [ color="black" label="(5,[[2], [1, 3], [], [0]],[7, 0, 2, 2])" ];
|
||||
338 [ color="black" label="(6,[[0], [1, 3], [], [2]],[4, 0, 2, 5])" ];
|
||||
339 [ color="black" label="(3,[[], [], [], [0]],[10, 5, 2, 2])" ];
|
||||
340 [ color="black" label="(6,[[4], [1, 3], [], [2]],[4, 0, 2, 5])" ];
|
||||
341 [ color="black" label="(7,[[0], [1, 3], [], [4]],[4, 0, 2, 2])" ];
|
||||
342 [ color="black" label="(8,[[2, 4], [6], [], [1, 3]],[1, 3, 2, 3])" ];
|
||||
343 [ color="black" label="(6,[[2, 4], [1, 3], [], [0]],[1, 0, 2, 2])" ];
|
||||
344 [ color="black" label="(5,[[4], [1, 3], [], [0]],[4, 0, 2, 2])" ];
|
||||
345 [ color="black" label="(5,[[2], [], [], [1, 3]],[7, 5, 2, 3])" ];
|
||||
346 [ color="black" label="(7,[[2], [1], [3], [4]],[7, 1, 1, 2])" ];
|
||||
347 [ color="black" label="(3,[[2], [], [], [0]],[7, 5, 2, 2])" ];
|
||||
348 [ color="black" label="(3,[[0], [], [], [2]],[4, 5, 2, 5])" ];
|
||||
349 [ color="black" label="(8,[[0], [1, 3], [6], [4]],[4, 0, 0, 2])" ];
|
||||
350 [ color="black" label="(7,[[2], [1, 3], [6], [0]],[7, 0, 0, 2])" ];
|
||||
351 [ color="black" label="(5,[[0], [1], [3], [2]],[4, 1, 1, 5])" ];
|
||||
352 [ color="black" label="(5,[[0], [2], [3], [1]],[4, 2, 1, 4])" ];
|
||||
353 [ color="black" label="(5,[[0], [1, 3], [], []],[4, 0, 2, 8])" ];
|
||||
354 [ color="black" label="(5,[[2], [1], [3], [0]],[7, 1, 1, 2])" ];
|
||||
355 [ color="black" label="(4,[[0], [], [], [1, 3]],[4, 5, 2, 3])" ];
|
||||
356 [ color="black" label="(6,[[0], [1], [3], [4]],[4, 1, 1, 2])" ];
|
||||
357 [ color="black" label="(5,[[2], [1], [3], []],[7, 1, 1, 8])" ];
|
||||
358 [ color="black" label="(6,[[], [2], [3], [1]],[10, 2, 1, 4])" ];
|
||||
359 [ color="black" label="(6,[[], [1], [3], [2]],[10, 1, 1, 5])" ];
|
||||
360 [ color="black" label="(2,[[0], [], [], []],[4, 5, 2, 8])" ];
|
||||
361 [ color="black" label="(7,[[0], [1, 3], [6], [2]],[4, 0, 0, 5])" ];
|
||||
362 [ color="black" label="(4,[[0], [1], [3], []],[4, 1, 1, 8])" ];
|
||||
363 [ color="black" label="(3,[[1], [], [], [0]],[6, 5, 2, 2])" ];
|
||||
364 [ color="black" label="(4,[[3], [], [], [0]],[9, 5, 2, 2])" ];
|
||||
365 [ color="black" label="(7,[[2, 4], [1], [3], [5]],[1, 1, 1, 3])" ];
|
||||
366 [ color="black" label="(4,[[1, 3], [], [], [0]],[5, 5, 2, 2])" ];
|
||||
367 [ color="black" label="(4,[[1], [], [], [2]],[6, 5, 2, 5])" ];
|
||||
368 [ color="black" label="(5,[[1, 3], [], [], [2]],[5, 5, 2, 5])" ];
|
||||
369 [ color="black" label="(5,[[4], [2], [3], [0]],[4, 2, 1, 2])" ];
|
||||
370 [ color="black" label="(5,[[], [2], [3], [0]],[10, 2, 1, 2])" ];
|
||||
371 [ color="black" label="(3,[[], [], [], [1]],[10, 5, 2, 4])" ];
|
||||
372 [ color="black" label="(3,[[1], [], [], []],[6, 5, 2, 8])" ];
|
||||
373 [ color="black" label="(8,[[2, 4], [1, 3], [], [5]],[1, 0, 2, 3])" ];
|
||||
374 [ color="black" label="(7,[[0], [1, 3], [], [5]],[4, 0, 2, 3])" ];
|
||||
6 -> 1 [ label="2" ];
|
||||
319 -> 2 [ label="-1" ];
|
||||
320 -> 3 [ label="-1" ];
|
||||
58 -> 4 [ label="-1" ];
|
||||
59 -> 5 [ label="-1" ];
|
||||
240 -> 6 [ label="0" ];
|
||||
72 -> 7 [ label="-1" ];
|
||||
330 -> 8 [ label="-1" ];
|
||||
283 -> 9 [ label="0" ];
|
||||
81 -> 10 [ label="3" ];
|
||||
259 -> 11 [ label="0" ];
|
||||
333 -> 12 [ label="-1" ];
|
||||
336 -> 13 [ label="-1" ];
|
||||
1 -> 14 [ label="0" ];
|
||||
339 -> 15 [ label="-1" ];
|
||||
337 -> 16 [ label="-1" ];
|
||||
340 -> 17 [ label="-1" ];
|
||||
282 -> 18 [ label="1" ];
|
||||
344 -> 19 [ label="-1" ];
|
||||
293 -> 20 [ color="red" label="0" ];
|
||||
82 -> 21 [ label="3" ];
|
||||
345 -> 22 [ label="-1" ];
|
||||
352 -> 23 [ label="-1" ];
|
||||
351 -> 24 [ label="-1" ];
|
||||
348 -> 25 [ label="-1" ];
|
||||
353 -> 26 [ label="-1" ];
|
||||
350 -> 27 [ label="-1" ];
|
||||
347 -> 28 [ label="-1" ];
|
||||
356 -> 29 [ label="-1" ];
|
||||
338 -> 30 [ label="-1" ];
|
||||
354 -> 31 [ label="-1" ];
|
||||
355 -> 32 [ label="-1" ];
|
||||
77 -> 33 [ label="-1" ];
|
||||
360 -> 34 [ label="-1" ];
|
||||
362 -> 35 [ label="-1" ];
|
||||
361 -> 36 [ label="-1" ];
|
||||
327 -> 37 [ label="3" ];
|
||||
86 -> 38 [ label="-1" ];
|
||||
369 -> 39 [ label="-1" ];
|
||||
366 -> 40 [ label="-1" ];
|
||||
91 -> 41 [ label="-1" ];
|
||||
367 -> 42 [ label="-1" ];
|
||||
364 -> 43 [ label="-1" ];
|
||||
368 -> 44 [ label="-1" ];
|
||||
363 -> 45 [ label="-1" ];
|
||||
168 -> 46 [ label="1" ];
|
||||
94 -> 47 [ label="-1" ];
|
||||
90 -> 48 [ label="3" ];
|
||||
97 -> 49 [ label="-1" ];
|
||||
308 -> 50 [ label="1" ];
|
||||
2 -> 51 [ label="-1" ];
|
||||
3 -> 52 [ label="-1" ];
|
||||
50 -> 53 [ label="3" ];
|
||||
269 -> 54 [ label="1" ];
|
||||
219 -> 55 [ label="1" ];
|
||||
127 -> 56 [ label="3" ];
|
||||
309 -> 57 [ label="1" ];
|
||||
72 -> 58 [ label="2" ];
|
||||
109 -> 59 [ label="-1" ];
|
||||
110 -> 60 [ label="-1" ];
|
||||
21 -> 61 [ label="-1" ];
|
||||
286 -> 62 [ label="1" ];
|
||||
275 -> 63 [ color="red" label="3" ];
|
||||
12 -> 64 [ label="-1" ];
|
||||
313 -> 65 [ label="1" ];
|
||||
14 -> 66 [ label="-1" ];
|
||||
10 -> 67 [ label="-1" ];
|
||||
9 -> 68 [ label="-1" ];
|
||||
116 -> 69 [ label="-1" ];
|
||||
54 -> 70 [ label="3" ];
|
||||
16 -> 71 [ label="-1" ];
|
||||
261 -> 72 [ label="1" ];
|
||||
32 -> 73 [ label="-1" ];
|
||||
105 -> 74 [ label="3" ];
|
||||
35 -> 75 [ label="-1" ];
|
||||
131 -> 76 [ label="-1" ];
|
||||
200 -> 77 [ label="0" ];
|
||||
82 -> 78 [ label="0" ];
|
||||
24 -> 79 [ label="-1" ];
|
||||
96 -> 80 [ label="0" ];
|
||||
315 -> 81 [ label="1" ];
|
||||
314 -> 82 [ label="1" ];
|
||||
135 -> 83 [ label="-1" ];
|
||||
46 -> 84 [ label="-1" ];
|
||||
136 -> 85 [ label="-1" ];
|
||||
94 -> 86 [ label="2" ];
|
||||
39 -> 87 [ label="-1" ];
|
||||
210 -> 88 [ label="1" ];
|
||||
45 -> 89 [ label="-1" ];
|
||||
81 -> 90 [ label="0" ];
|
||||
140 -> 91 [ label="-1" ];
|
||||
40 -> 92 [ label="-1" ];
|
||||
258 -> 93 [ label="1" ];
|
||||
11 -> 94 [ label="3" ];
|
||||
57 -> 95 [ label="0" ];
|
||||
93 -> 96 [ label="3" ];
|
||||
143 -> 97 [ label="-1" ];
|
||||
249 -> 98 [ color="red" label="1" ];
|
||||
48 -> 99 [ label="-1" ];
|
||||
50 -> 100 [ label="-1" ];
|
||||
53 -> 101 [ label="-1" ];
|
||||
54 -> 102 [ label="-1" ];
|
||||
348 -> 103 [ label="1" ];
|
||||
56 -> 104 [ label="-1" ];
|
||||
93 -> 105 [ label="0" ];
|
||||
55 -> 106 [ label="-1" ];
|
||||
57 -> 107 [ label="-1" ];
|
||||
62 -> 108 [ label="0" ];
|
||||
179 -> 109 [ label="0" ];
|
||||
116 -> 110 [ label="2" ];
|
||||
158 -> 111 [ label="-1" ];
|
||||
80 -> 112 [ label="-1" ];
|
||||
61 -> 113 [ label="-1" ];
|
||||
62 -> 114 [ label="-1" ];
|
||||
78 -> 115 [ label="-1" ];
|
||||
166 -> 116 [ label="-1" ];
|
||||
363 -> 117 [ label="1" ];
|
||||
164 -> 118 [ label="-1" ];
|
||||
165 -> 119 [ label="-1" ];
|
||||
68 -> 120 [ label="-1" ];
|
||||
65 -> 121 [ label="-1" ];
|
||||
67 -> 122 [ label="-1" ];
|
||||
313 -> 123 [ label="2" ];
|
||||
265 -> 124 [ label="1" ];
|
||||
70 -> 125 [ label="-1" ];
|
||||
21 -> 126 [ label="0" ];
|
||||
360 -> 127 [ label="1" ];
|
||||
74 -> 128 [ label="-1" ];
|
||||
320 -> 129 [ label="1" ];
|
||||
100 -> 130 [ label="3" ];
|
||||
256 -> 131 [ label="2" ];
|
||||
178 -> 132 [ label="-1" ];
|
||||
146 -> 133 [ label="0" ];
|
||||
81 -> 134 [ label="-1" ];
|
||||
190 -> 135 [ label="0" ];
|
||||
148 -> 136 [ label="0" ];
|
||||
96 -> 137 [ label="-1" ];
|
||||
82 -> 138 [ label="-1" ];
|
||||
90 -> 139 [ label="-1" ];
|
||||
143 -> 140 [ label="2" ];
|
||||
88 -> 141 [ label="-1" ];
|
||||
93 -> 142 [ label="-1" ];
|
||||
332 -> 143 [ label="1" ];
|
||||
95 -> 144 [ label="-1" ];
|
||||
98 -> 145 [ color="red" label="0" ];
|
||||
98 -> 146 [ label="-1" ];
|
||||
191 -> 147 [ label="-1" ];
|
||||
347 -> 148 [ label="1" ];
|
||||
100 -> 149 [ label="-1" ];
|
||||
339 -> 150 [ label="2" ];
|
||||
103 -> 151 [ label="-1" ];
|
||||
102 -> 152 [ label="-1" ];
|
||||
105 -> 153 [ label="-1" ];
|
||||
101 -> 154 [ label="-1" ];
|
||||
202 -> 155 [ label="-1" ];
|
||||
108 -> 156 [ label="-1" ];
|
||||
348 -> 157 [ label="2" ];
|
||||
165 -> 158 [ label="2" ];
|
||||
112 -> 159 [ label="-1" ];
|
||||
172 -> 160 [ label="2" ];
|
||||
115 -> 161 [ label="-1" ];
|
||||
114 -> 162 [ label="-1" ];
|
||||
117 -> 163 [ label="-1" ];
|
||||
59 -> 164 [ label="1" ];
|
||||
205 -> 165 [ label="-1" ];
|
||||
129 -> 166 [ label="0" ];
|
||||
121 -> 167 [ label="-1" ];
|
||||
123 -> 168 [ label="-1" ];
|
||||
124 -> 169 [ label="-1" ];
|
||||
125 -> 170 [ label="-1" ];
|
||||
363 -> 171 [ label="2" ];
|
||||
126 -> 172 [ label="-1" ];
|
||||
129 -> 173 [ label="-1" ];
|
||||
128 -> 174 [ label="-1" ];
|
||||
127 -> 175 [ label="-1" ];
|
||||
319 -> 176 [ label="1" ];
|
||||
130 -> 177 [ label="-1" ];
|
||||
214 -> 178 [ label="2" ];
|
||||
320 -> 179 [ label="2" ];
|
||||
133 -> 180 [ label="-1" ];
|
||||
146 -> 181 [ label="-1" ];
|
||||
339 -> 182 [ label="1" ];
|
||||
107 -> 183 [ label="-1" ];
|
||||
138 -> 184 [ label="-1" ];
|
||||
225 -> 185 [ label="-1" ];
|
||||
222 -> 186 [ label="-1" ];
|
||||
149 -> 187 [ label="3" ];
|
||||
138 -> 188 [ label="0" ];
|
||||
144 -> 189 [ label="-1" ];
|
||||
145 -> 190 [ label="-1" ];
|
||||
202 -> 191 [ label="2" ];
|
||||
190 -> 192 [ label="-1" ];
|
||||
148 -> 193 [ label="-1" ];
|
||||
149 -> 194 [ label="-1" ];
|
||||
150 -> 195 [ label="-1" ];
|
||||
267 -> 196 [ label="2" ];
|
||||
154 -> 197 [ label="-1" ];
|
||||
229 -> 198 [ label="2" ];
|
||||
235 -> 199 [ label="-1" ];
|
||||
347 -> 200 [ label="2" ];
|
||||
157 -> 201 [ label="-1" ];
|
||||
61 -> 202 [ label="0" ];
|
||||
239 -> 203 [ label="-1" ];
|
||||
160 -> 204 [ label="-1" ];
|
||||
74 -> 205 [ label="0" ];
|
||||
252 -> 206 [ label="3" ];
|
||||
191 -> 207 [ label="0" ];
|
||||
163 -> 208 [ label="-1" ];
|
||||
168 -> 209 [ label="-1" ];
|
||||
171 -> 210 [ label="-1" ];
|
||||
172 -> 211 [ label="-1" ];
|
||||
114 -> 212 [ label="0" ];
|
||||
96 -> 213 [ label="1" ];
|
||||
368 -> 214 [ label="1" ];
|
||||
173 -> 215 [ label="-1" ];
|
||||
177 -> 216 [ label="-1" ];
|
||||
176 -> 217 [ label="-1" ];
|
||||
179 -> 219 [ label="-1" ];
|
||||
261 -> 220 [ label="-1" ];
|
||||
319 -> 221 [ label="2" ];
|
||||
277 -> 222 [ label="1" ];
|
||||
182 -> 223 [ label="-1" ];
|
||||
183 -> 224 [ label="-1" ];
|
||||
264 -> 225 [ label="-1" ];
|
||||
182 -> 226 [ label="0" ];
|
||||
188 -> 227 [ label="-1" ];
|
||||
187 -> 228 [ label="-1" ];
|
||||
345 -> 229 [ label="1" ];
|
||||
192 -> 230 [ label="-1" ];
|
||||
196 -> 231 [ label="-1" ];
|
||||
278 -> 232 [ label="3" ];
|
||||
316 -> 233 [ label="2" ];
|
||||
198 -> 234 [ label="-1" ];
|
||||
284 -> 235 [ label="-1" ];
|
||||
200 -> 236 [ label="-1" ];
|
||||
275 -> 237 [ label="-1" ];
|
||||
277 -> 238 [ label="-1" ];
|
||||
77 -> 239 [ label="1" ];
|
||||
213 -> 240 [ label="-1" ];
|
||||
206 -> 241 [ label="-1" ];
|
||||
282 -> 242 [ label="-1" ];
|
||||
57 -> 243 [ label="2" ];
|
||||
96 -> 244 [ label="2" ];
|
||||
82 -> 245 [ label="2" ];
|
||||
207 -> 246 [ label="-1" ];
|
||||
212 -> 247 [ label="-1" ];
|
||||
210 -> 248 [ label="-1" ];
|
||||
218 -> 249 [ color="red" label="3" ];
|
||||
53 -> 250 [ label="1" ];
|
||||
259 -> 251 [ label="3" ];
|
||||
81 -> 252 [ label="2" ];
|
||||
214 -> 253 [ label="-1" ];
|
||||
146 -> 254 [ label="1" ];
|
||||
300 -> 255 [ label="3" ];
|
||||
40 -> 256 [ label="1" ];
|
||||
307 -> 257 [ label="3" ];
|
||||
218 -> 258 [ label="-1" ];
|
||||
105 -> 259 [ label="1" ];
|
||||
304 -> 260 [ label="-1" ];
|
||||
3 -> 261 [ label="0" ];
|
||||
219 -> 262 [ label="-1" ];
|
||||
221 -> 263 [ label="-1" ];
|
||||
109 -> 264 [ label="1" ];
|
||||
150 -> 265 [ label="0" ];
|
||||
226 -> 266 [ label="-1" ];
|
||||
32 -> 267 [ label="1" ];
|
||||
229 -> 268 [ label="-1" ];
|
||||
308 -> 269 [ label="3" ];
|
||||
322 -> 270 [ label="-1" ];
|
||||
323 -> 271 [ label="-1" ];
|
||||
233 -> 272 [ label="-1" ];
|
||||
232 -> 273 [ label="-1" ];
|
||||
35 -> 274 [ label="3" ];
|
||||
325 -> 275 [ color="red" label="-1" ];
|
||||
327 -> 276 [ label="-1" ];
|
||||
282 -> 277 [ label="2" ];
|
||||
127 -> 278 [ label="2" ];
|
||||
243 -> 279 [ label="-1" ];
|
||||
240 -> 280 [ label="-1" ];
|
||||
343 -> 281 [ label="-1" ];
|
||||
332 -> 282 [ label="-1" ];
|
||||
146 -> 283 [ label="2" ];
|
||||
334 -> 284 [ label="-1" ];
|
||||
250 -> 285 [ label="-1" ];
|
||||
249 -> 286 [ label="-1" ];
|
||||
255 -> 287 [ label="-1" ];
|
||||
251 -> 288 [ label="-1" ];
|
||||
213 -> 289 [ label="0" ];
|
||||
254 -> 290 [ label="-1" ];
|
||||
252 -> 291 [ label="-1" ];
|
||||
256 -> 292 [ label="-1" ];
|
||||
145 -> 293 [ color="red" label="1" ];
|
||||
53 -> 294 [ label="2" ];
|
||||
54 -> 295 [ label="2" ];
|
||||
145 -> 296 [ label="2" ];
|
||||
257 -> 297 [ label="-1" ];
|
||||
320 -> 298 [ label="3" ];
|
||||
258 -> 299 [ label="-1" ];
|
||||
100 -> 300 [ label="1" ];
|
||||
362 -> 301 [ label="3" ];
|
||||
287 -> 302 [ label="2" ];
|
||||
259 -> 303 [ label="-1" ];
|
||||
370 -> 304 [ label="0" ];
|
||||
244 -> 305 [ label="-1" ];
|
||||
245 -> 306 [ label="-1" ];
|
||||
105 -> 307 [ label="2" ];
|
||||
218 -> 308 [ label="0" ];
|
||||
249 -> 309 [ label="0" ];
|
||||
265 -> 310 [ label="-1" ];
|
||||
313 -> 311 [ label="0" ];
|
||||
62 -> 312 [ label="2" ];
|
||||
315 -> 313 [ label="3" ];
|
||||
258 -> 314 [ label="3" ];
|
||||
258 -> 315 [ label="0" ];
|
||||
353 -> 316 [ label="3" ];
|
||||
267 -> 317 [ label="-1" ];
|
||||
1 -> 318 [ label="-1" ];
|
||||
269 -> 319 [ label="-1" ];
|
||||
314 -> 320 [ label="0" ];
|
||||
274 -> 321 [ label="-1" ];
|
||||
306 -> 322 [ label="0" ];
|
||||
305 -> 323 [ label="0" ];
|
||||
370 -> 324 [ label="-1" ];
|
||||
343 -> 325 [ color="red" label="2" ];
|
||||
6 -> 326 [ label="-1" ];
|
||||
307 -> 327 [ label="0" ];
|
||||
278 -> 328 [ label="-1" ];
|
||||
279 -> 329 [ label="-1" ];
|
||||
340 -> 330 [ label="2" ];
|
||||
11 -> 331 [ label="-1" ];
|
||||
298 -> 332 [ label="0" ];
|
||||
245 -> 333 [ label="0" ];
|
||||
296 -> 334 [ label="0" ];
|
||||
283 -> 335 [ label="-1" ];
|
||||
244 -> 336 [ label="0" ];
|
||||
293 -> 337 [ label="-1" ];
|
||||
285 -> 338 [ label="-1" ];
|
||||
286 -> 339 [ label="-1" ];
|
||||
289 -> 340 [ label="-1" ];
|
||||
287 -> 341 [ label="-1" ];
|
||||
18 -> 342 [ label="-1" ];
|
||||
20 -> 343 [ color="red" label="-1" ];
|
||||
254 -> 344 [ label="0" ];
|
||||
298 -> 345 [ label="-1" ];
|
||||
297 -> 346 [ label="-1" ];
|
||||
286 -> 347 [ label="0" ];
|
||||
360 -> 348 [ label="3" ];
|
||||
302 -> 349 [ label="-1" ];
|
||||
16 -> 350 [ label="2" ];
|
||||
294 -> 351 [ label="-1" ];
|
||||
295 -> 352 [ label="-1" ];
|
||||
300 -> 353 [ label="-1" ];
|
||||
296 -> 354 [ label="-1" ];
|
||||
319 -> 355 [ label="3" ];
|
||||
301 -> 356 [ label="-1" ];
|
||||
307 -> 357 [ label="-1" ];
|
||||
306 -> 358 [ label="-1" ];
|
||||
305 -> 359 [ label="-1" ];
|
||||
308 -> 360 [ label="-1" ];
|
||||
338 -> 361 [ label="2" ];
|
||||
100 -> 362 [ label="2" ];
|
||||
309 -> 363 [ label="-1" ];
|
||||
339 -> 364 [ label="0" ];
|
||||
37 -> 365 [ label="-1" ];
|
||||
363 -> 366 [ label="0" ];
|
||||
313 -> 367 [ label="-1" ];
|
||||
311 -> 368 [ label="-1" ];
|
||||
312 -> 369 [ label="0" ];
|
||||
312 -> 370 [ label="-1" ];
|
||||
314 -> 371 [ label="-1" ];
|
||||
315 -> 372 [ label="-1" ];
|
||||
47 -> 373 [ label="-1" ];
|
||||
316 -> 374 [ label="-1" ];
|
||||
}
|
||||
19
PI5/generated/ej2_f1.dot
Normal file
19
PI5/generated/ej2_f1.dot
Normal file
@@ -0,0 +1,19 @@
|
||||
strict digraph G {
|
||||
1 [ color="black" label="(5, [], [140, 0, 50], 2)" ];
|
||||
2 [ color="black" label="(3, [1, 2], [140, 150, 150], 2)" ];
|
||||
3 [ color="black" label="(1, [0, 1, 2], [150, 150, 150], 0)" ];
|
||||
4 [ color="black" label="(2, [1, 2], [140, 150, 150], 2)" ];
|
||||
5 [ color="black" label="(1, [1, 2], [140, 150, 150], 2)" ];
|
||||
6 [ color="black" label="(0, [0, 1, 2], [150, 150, 150], 0)" ];
|
||||
7 [ color="black" label="(3, [2], [140, 0, 150], 3)" ];
|
||||
8 [ color="black" label="(4, [], [140, 0, 50], 2)" ];
|
||||
9 [ color="black" label="(4, [2], [140, 0, 150], 3)" ];
|
||||
8 -> 1 [ color="red" label="0" ];
|
||||
4 -> 2 [ label="0" ];
|
||||
6 -> 3 [ label="0" ];
|
||||
5 -> 4 [ color="red" label="0" ];
|
||||
6 -> 5 [ color="red" label="1" ];
|
||||
4 -> 7 [ color="red" label="1" ];
|
||||
7 -> 8 [ color="red" label="1" ];
|
||||
7 -> 9 [ label="0" ];
|
||||
}
|
||||
187
PI5/generated/ej2_f2.dot
Normal file
187
PI5/generated/ej2_f2.dot
Normal file
@@ -0,0 +1,187 @@
|
||||
strict digraph G {
|
||||
1 [ color="black" label="(4, [2, 3], [50, 85, 100, 100], -2)" ];
|
||||
2 [ color="black" label="(5, [], [50, 85, 90, 25], 1)" ];
|
||||
3 [ color="black" label="(2, [0, 1, 2, 3], [100, 100, 100, 100], 0)" ];
|
||||
4 [ color="black" label="(6, [1, 3], [50, 100, 90, 100], 0)" ];
|
||||
5 [ color="black" label="(3, [0, 1], [100, 100, 90, 25], 3)" ];
|
||||
6 [ color="black" label="(3, [0, 1, 2], [100, 100, 100, 25], 2)" ];
|
||||
7 [ color="black" label="(5, [2], [50, 20, 100, 25], 3)" ];
|
||||
8 [ color="black" label="(6, [1, 2, 3], [50, 100, 100, 100], -1)" ];
|
||||
9 [ color="black" label="(6, [0, 1], [100, 100, 5, 25], 4)" ];
|
||||
10 [ color="black" label="(4, [3], [50, 85, 90, 100], -1)" ];
|
||||
11 [ color="black" label="(5, [0, 1, 3], [100, 100, 90, 100], 1)" ];
|
||||
12 [ color="black" label="(6, [1], [50, 100, 5, 25], 3)" ];
|
||||
13 [ color="black" label="(6, [0, 3], [100, 20, 5, 100], 4)" ];
|
||||
14 [ color="black" label="(6, [0, 1], [100, 100, 90, 25], 3)" ];
|
||||
15 [ color="black" label="(4, [0, 3], [100, 85, 90, 100], 0)" ];
|
||||
16 [ color="black" label="(6, [3], [50, 20, 5, 100], 3)" ];
|
||||
17 [ color="black" label="(6, [2], [50, 85, 100, 25], 0)" ];
|
||||
18 [ color="black" label="(3, [0, 1, 2, 3], [100, 100, 100, 100], 0)" ];
|
||||
19 [ color="black" label="(6, [3], [50, 85, 5, 100], 0)" ];
|
||||
20 [ color="black" label="(4, [], [50, 85, 90, 25], 1)" ];
|
||||
21 [ color="black" label="(4, [0, 1], [100, 100, 90, 25], 3)" ];
|
||||
22 [ color="black" label="(6, [0, 3], [100, 20, 90, 100], 3)" ];
|
||||
23 [ color="black" label="(6, [0, 1, 3], [100, 100, 5, 100], 2)" ];
|
||||
24 [ color="black" label="(4, [0, 2], [100, 85, 100, 25], 1)" ];
|
||||
25 [ color="black" label="(6, [1, 3], [50, 100, 5, 100], 1)" ];
|
||||
26 [ color="black" label="(4, [1], [50, 100, 90, 25], 2)" ];
|
||||
27 [ color="black" label="(5, [0], [100, 85, 90, 25], 2)" ];
|
||||
28 [ color="black" label="(4, [0, 1, 2], [100, 100, 100, 25], 2)" ];
|
||||
29 [ color="black" label="(4, [0, 2, 3], [100, 85, 100, 100], -1)" ];
|
||||
30 [ color="black" label="(3, [0, 2, 3], [100, 85, 100, 100], -1)" ];
|
||||
31 [ color="black" label="(6, [3], [50, 20, 90, 100], 2)" ];
|
||||
32 [ color="black" label="(7, [1], [50, 100, 5, 25], 3)" ];
|
||||
33 [ color="black" label="(4, [0], [100, 85, 90, 25], 2)" ];
|
||||
34 [ color="black" label="(6, [0, 3], [100, 85, 5, 100], 1)" ];
|
||||
35 [ color="black" label="(6, [0, 2, 3], [100, 20, 100, 100], 2)" ];
|
||||
36 [ color="black" label="(6, [0, 1, 3], [100, 100, 90, 100], 1)" ];
|
||||
37 [ color="black" label="(5, [0, 2], [100, 85, 100, 25], 1)" ];
|
||||
38 [ color="black" label="(6, [0, 1, 2, 3], [100, 100, 100, 100], 0)" ];
|
||||
39 [ color="black" label="(6, [0], [100, 20, 5, 25], 6)" ];
|
||||
40 [ color="black" label="(5, [2], [50, 85, 100, 25], 0)" ];
|
||||
41 [ color="black" label="(3, [0, 3], [100, 85, 90, 100], 0)" ];
|
||||
42 [ color="black" label="(2, [0, 1, 3], [100, 100, 90, 100], 1)" ];
|
||||
43 [ color="black" label="(4, [1, 2], [50, 100, 100, 25], 1)" ];
|
||||
44 [ color="black" label="(6, [2, 3], [50, 20, 100, 100], 1)" ];
|
||||
45 [ color="black" label="(0, [0, 1, 2, 3], [100, 100, 100, 100], 0)" ];
|
||||
46 [ color="black" label="(5, [0, 3], [100, 85, 90, 100], 0)" ];
|
||||
47 [ color="black" label="(5, [0, 3], [100, 20, 90, 100], 3)" ];
|
||||
48 [ color="black" label="(4, [1, 3], [50, 100, 90, 100], 0)" ];
|
||||
49 [ color="black" label="(3, [0, 2], [100, 85, 100, 25], 1)" ];
|
||||
50 [ color="black" label="(4, [0, 1, 2, 3], [100, 100, 100, 100], 0)" ];
|
||||
51 [ color="black" label="(4, [1, 2, 3], [50, 100, 100, 100], -1)" ];
|
||||
52 [ color="black" label="(6, [0], [100, 85, 5, 25], 3)" ];
|
||||
53 [ color="black" label="(6, [], [50, 20, 5, 25], 5)" ];
|
||||
54 [ color="black" label="(5, [1], [50, 100, 90, 25], 2)" ];
|
||||
55 [ color="black" label="(1, [0, 1, 2], [100, 100, 100, 25], 2)" ];
|
||||
56 [ color="black" label="(6, [0], [100, 85, 90, 25], 2)" ];
|
||||
57 [ color="black" label="(6, [0], [100, 20, 90, 25], 5)" ];
|
||||
58 [ color="black" label="(5, [0, 1, 2], [100, 100, 100, 25], 2)" ];
|
||||
59 [ color="black" label="(5, [0, 2, 3], [100, 85, 100, 100], -1)" ];
|
||||
60 [ color="black" label="(3, [0], [100, 85, 90, 25], 2)" ];
|
||||
61 [ color="black" label="(5, [1, 2], [50, 100, 100, 25], 1)" ];
|
||||
62 [ color="black" label="(3, [0, 1, 3], [100, 100, 90, 100], 1)" ];
|
||||
63 [ color="black" label="(5, [3], [50, 20, 90, 100], 2)" ];
|
||||
64 [ color="black" label="(5, [0, 2, 3], [100, 20, 100, 100], 2)" ];
|
||||
65 [ color="black" label="(6, [0, 2], [100, 85, 100, 25], 1)" ];
|
||||
66 [ color="black" label="(6, [], [50, 85, 90, 25], 1)" ];
|
||||
67 [ color="black" label="(6, [0, 2], [100, 20, 100, 25], 4)" ];
|
||||
68 [ color="black" label="(4, [2], [50, 85, 100, 25], 0)" ];
|
||||
69 [ color="black" label="(5, [2, 3], [50, 20, 100, 100], 1)" ];
|
||||
70 [ color="black" label="(7, [], [50, 85, 5, 25], 2)" ];
|
||||
71 [ color="black" label="(6, [], [50, 20, 90, 25], 4)" ];
|
||||
72 [ color="black" label="(1, [0, 1, 2, 3], [100, 100, 100, 100], 0)" ];
|
||||
73 [ color="black" label="(6, [0, 3], [100, 85, 90, 100], 0)" ];
|
||||
74 [ color="black" label="(5, [1, 3], [50, 100, 90, 100], 0)" ];
|
||||
75 [ color="black" label="(5, [2, 3], [50, 85, 100, 100], -2)" ];
|
||||
76 [ color="black" label="(6, [2], [50, 20, 100, 25], 3)" ];
|
||||
77 [ color="black" label="(2, [0, 1], [100, 100, 90, 25], 3)" ];
|
||||
78 [ color="black" label="(5, [0, 1, 2, 3], [100, 100, 100, 100], 0)" ];
|
||||
79 [ color="black" label="(2, [0, 1, 2], [100, 100, 100, 25], 2)" ];
|
||||
80 [ color="black" label="(5, [1, 2, 3], [50, 100, 100, 100], -1)" ];
|
||||
81 [ color="black" label="(6, [0, 2, 3], [100, 85, 100, 100], -1)" ];
|
||||
82 [ color="black" label="(6, [1], [50, 100, 90, 25], 2)" ];
|
||||
83 [ color="black" label="(6, [3], [50, 85, 90, 100], -1)" ];
|
||||
84 [ color="black" label="(6, [0, 1, 2], [100, 100, 100, 25], 2)" ];
|
||||
85 [ color="black" label="(4, [0, 1, 3], [100, 100, 90, 100], 1)" ];
|
||||
86 [ color="black" label="(5, [3], [50, 85, 90, 100], -1)" ];
|
||||
87 [ color="black" label="(6, [1, 2], [50, 100, 100, 25], 1)" ];
|
||||
88 [ color="black" label="(5, [0], [100, 20, 90, 25], 5)" ];
|
||||
89 [ color="black" label="(5, [0, 1], [100, 100, 90, 25], 3)" ];
|
||||
90 [ color="black" label="(5, [0, 2], [100, 20, 100, 25], 4)" ];
|
||||
91 [ color="black" label="(6, [2, 3], [50, 85, 100, 100], -2)" ];
|
||||
92 [ color="black" label="(6, [], [50, 85, 5, 25], 2)" ];
|
||||
93 [ color="black" label="(5, [], [50, 20, 90, 25], 4)" ];
|
||||
30 -> 1 [ label="1" ];
|
||||
20 -> 2 [ label="0" ];
|
||||
72 -> 3 [ label="0" ];
|
||||
74 -> 4 [ label="0" ];
|
||||
77 -> 5 [ label="0" ];
|
||||
79 -> 6 [ label="0" ];
|
||||
43 -> 7 [ label="1" ];
|
||||
80 -> 8 [ label="0" ];
|
||||
58 -> 9 [ label="1" ];
|
||||
41 -> 10 [ label="1" ];
|
||||
85 -> 11 [ label="0" ];
|
||||
61 -> 12 [ label="1" ];
|
||||
64 -> 13 [ label="1" ];
|
||||
89 -> 14 [ label="0" ];
|
||||
41 -> 15 [ label="0" ];
|
||||
69 -> 16 [ label="1" ];
|
||||
40 -> 17 [ label="0" ];
|
||||
3 -> 18 [ label="0" ];
|
||||
75 -> 19 [ label="1" ];
|
||||
60 -> 20 [ label="1" ];
|
||||
5 -> 21 [ label="0" ];
|
||||
47 -> 22 [ label="0" ];
|
||||
78 -> 23 [ label="1" ];
|
||||
49 -> 24 [ label="0" ];
|
||||
80 -> 25 [ label="1" ];
|
||||
5 -> 26 [ label="1" ];
|
||||
33 -> 27 [ label="0" ];
|
||||
6 -> 28 [ label="0" ];
|
||||
30 -> 29 [ label="0" ];
|
||||
3 -> 30 [ label="1" ];
|
||||
63 -> 31 [ label="0" ];
|
||||
12 -> 32 [ label="0" ];
|
||||
60 -> 33 [ label="0" ];
|
||||
59 -> 34 [ label="1" ];
|
||||
64 -> 35 [ label="0" ];
|
||||
11 -> 36 [ label="0" ];
|
||||
24 -> 37 [ label="0" ];
|
||||
78 -> 38 [ label="0" ];
|
||||
90 -> 39 [ label="1" ];
|
||||
68 -> 40 [ color="red" label="0" ];
|
||||
42 -> 41 [ label="1" ];
|
||||
72 -> 42 [ label="1" ];
|
||||
6 -> 43 [ label="1" ];
|
||||
69 -> 44 [ label="0" ];
|
||||
15 -> 46 [ label="0" ];
|
||||
85 -> 47 [ label="1" ];
|
||||
62 -> 48 [ label="1" ];
|
||||
79 -> 49 [ color="red" label="1" ];
|
||||
18 -> 50 [ label="0" ];
|
||||
18 -> 51 [ label="1" ];
|
||||
37 -> 52 [ label="1" ];
|
||||
7 -> 53 [ label="1" ];
|
||||
26 -> 54 [ label="0" ];
|
||||
45 -> 55 [ color="red" label="1" ];
|
||||
27 -> 56 [ label="0" ];
|
||||
88 -> 57 [ label="0" ];
|
||||
28 -> 58 [ label="0" ];
|
||||
29 -> 59 [ label="0" ];
|
||||
77 -> 60 [ label="1" ];
|
||||
43 -> 61 [ label="0" ];
|
||||
42 -> 62 [ label="0" ];
|
||||
48 -> 63 [ label="1" ];
|
||||
50 -> 64 [ label="1" ];
|
||||
37 -> 65 [ label="0" ];
|
||||
2 -> 66 [ label="0" ];
|
||||
90 -> 67 [ label="0" ];
|
||||
49 -> 68 [ color="red" label="1" ];
|
||||
51 -> 69 [ label="1" ];
|
||||
92 -> 70 [ color="red" label="0" ];
|
||||
93 -> 71 [ label="0" ];
|
||||
45 -> 72 [ label="0" ];
|
||||
46 -> 73 [ label="0" ];
|
||||
48 -> 74 [ label="0" ];
|
||||
1 -> 75 [ label="0" ];
|
||||
7 -> 76 [ label="0" ];
|
||||
55 -> 77 [ label="1" ];
|
||||
50 -> 78 [ label="0" ];
|
||||
55 -> 79 [ color="red" label="0" ];
|
||||
51 -> 80 [ label="0" ];
|
||||
59 -> 81 [ label="0" ];
|
||||
54 -> 82 [ label="0" ];
|
||||
86 -> 83 [ label="0" ];
|
||||
58 -> 84 [ label="0" ];
|
||||
62 -> 85 [ label="0" ];
|
||||
10 -> 86 [ label="0" ];
|
||||
61 -> 87 [ label="0" ];
|
||||
21 -> 88 [ label="1" ];
|
||||
21 -> 89 [ label="0" ];
|
||||
28 -> 90 [ label="1" ];
|
||||
75 -> 91 [ label="0" ];
|
||||
40 -> 92 [ color="red" label="1" ];
|
||||
26 -> 93 [ label="1" ];
|
||||
}
|
||||
951
PI5/generated/ej2_f3.dot
Normal file
951
PI5/generated/ej2_f3.dot
Normal file
@@ -0,0 +1,951 @@
|
||||
strict digraph G {
|
||||
1 [ color="black" label="(3, [0, 3, 4], [10, 7, 6, 10, 10], -2)" ];
|
||||
2 [ color="black" label="(6, [0, 2, 4], [10, 7, 10, 5, 10], -2)" ];
|
||||
3 [ color="black" label="(6, [0, 2], [10, 7, 10, 5, 2], -4)" ];
|
||||
4 [ color="black" label="(9, [4], [5, 2, 5, 5, 10], -6)" ];
|
||||
5 [ color="black" label="(10, [1, 3, 4], [3, 10, 5, 10, 10], 0)" ];
|
||||
6 [ color="black" label="(9, [], [5, 2, 5, 5, 2], -8)" ];
|
||||
7 [ color="black" label="(10, [1, 3], [3, 10, 5, 10, 2], -2)" ];
|
||||
8 [ color="black" label="(10, [4], [5, 2, 4, 5, 10], -3)" ];
|
||||
9 [ color="black" label="(9, [0, 2], [10, 2, 10, 5, 2], -5)" ];
|
||||
10 [ color="black" label="(10, [], [5, 2, 4, 5, 2], -5)" ];
|
||||
11 [ color="black" label="(9, [0, 2, 4], [10, 2, 10, 5, 10], -3)" ];
|
||||
12 [ color="black" label="(2, [1, 2, 3, 4], [5, 10, 10, 10, 10], -1)" ];
|
||||
13 [ color="black" label="(6, [], [5, 7, 5, 5, 2], -7)" ];
|
||||
14 [ color="black" label="(6, [4], [5, 7, 5, 5, 10], -5)" ];
|
||||
15 [ color="black" label="(10, [2], [3, 2, 10, 5, 2], -3)" ];
|
||||
16 [ color="black" label="(10, [2, 4], [3, 2, 10, 5, 10], -1)" ];
|
||||
17 [ color="black" label="(6, [0, 1, 2, 3, 4], [10, 10, 10, 10, 10], 0)" ];
|
||||
18 [ color="black" label="(6, [0, 1, 2, 3], [10, 10, 10, 10, 2], -2)" ];
|
||||
19 [ color="black" label="(6, [1, 3, 4], [5, 10, 5, 10, 10], -3)" ];
|
||||
20 [ color="black" label="(6, [1, 3], [5, 10, 5, 10, 2], -5)" ];
|
||||
21 [ color="black" label="(5, [4], [5, 7, 5, 5, 10], -5)" ];
|
||||
22 [ color="black" label="(8, [0, 3, 4], [10, 2, 5, 10, 10], -3)" ];
|
||||
23 [ color="black" label="(8, [0, 3], [10, 2, 5, 10, 2], -5)" ];
|
||||
24 [ color="black" label="(9, [0, 3, 4], [10, 2, 4, 10, 10], 0)" ];
|
||||
25 [ color="black" label="(9, [0, 3], [10, 2, 4, 10, 2], -2)" ];
|
||||
26 [ color="black" label="(8, [1, 2, 4], [5, 10, 10, 5, 10], -3)" ];
|
||||
27 [ color="black" label="(10, [0, 1, 3], [10, 10, 5, 10, 2], -4)" ];
|
||||
28 [ color="black" label="(10, [0, 1, 3, 4], [10, 10, 5, 10, 10], -2)" ];
|
||||
29 [ color="black" label="(10, [0, 4], [10, 0, 4, 5, 10], 0)" ];
|
||||
30 [ color="black" label="(8, [1, 2], [5, 10, 10, 5, 2], -5)" ];
|
||||
31 [ color="black" label="(10, [0], [10, 0, 4, 5, 2], -2)" ];
|
||||
32 [ color="black" label="(9, [], [3, 7, 6, 5, 2], -4)" ];
|
||||
33 [ color="black" label="(10, [], [3, 7, 5, 5, 2], -4)" ];
|
||||
34 [ color="black" label="(9, [4], [3, 7, 6, 5, 10], -2)" ];
|
||||
35 [ color="black" label="(10, [4], [3, 7, 5, 5, 10], -2)" ];
|
||||
36 [ color="black" label="(7, [2, 3, 4], [5, 7, 10, 10, 10], -1)" ];
|
||||
37 [ color="black" label="(7, [2, 3], [5, 7, 10, 10, 2], -3)" ];
|
||||
38 [ color="black" label="(5, [0, 2, 4], [10, 7, 10, 5, 10], -2)" ];
|
||||
39 [ color="black" label="(10, [0], [10, 7, 4, 5, 2], -3)" ];
|
||||
40 [ color="black" label="(10, [0, 4], [10, 7, 4, 5, 10], -1)" ];
|
||||
41 [ color="black" label="(8, [0], [10, 7, 6, 5, 2], -6)" ];
|
||||
42 [ color="black" label="(9, [0], [10, 7, 5, 5, 2], -6)" ];
|
||||
43 [ color="black" label="(8, [0, 4], [10, 7, 6, 5, 10], -4)" ];
|
||||
44 [ color="black" label="(9, [0, 4], [10, 7, 5, 5, 10], -4)" ];
|
||||
45 [ color="black" label="(10, [4], [5, 2, 5, 5, 10], -6)" ];
|
||||
46 [ color="black" label="(10, [0, 2], [10, 2, 10, 5, 2], -5)" ];
|
||||
47 [ color="black" label="(10, [3], [3, 2, 4, 10, 2], 0)" ];
|
||||
48 [ color="black" label="(10, [], [5, 2, 5, 5, 2], -8)" ];
|
||||
49 [ color="black" label="(5, [0, 1, 4], [10, 10, 5, 5, 10], -4)" ];
|
||||
50 [ color="black" label="(10, [3, 4], [3, 2, 4, 10, 10], 2)" ];
|
||||
51 [ color="black" label="(3, [1, 3, 4], [5, 10, 6, 10, 10], -3)" ];
|
||||
52 [ color="black" label="(9, [3], [3, 2, 5, 10, 2], -3)" ];
|
||||
53 [ color="black" label="(9, [3, 4], [3, 2, 5, 10, 10], -1)" ];
|
||||
54 [ color="black" label="(10, [0, 2, 4], [10, 2, 10, 5, 10], -3)" ];
|
||||
55 [ color="black" label="(3, [1, 2, 3, 4], [5, 10, 10, 10, 10], -1)" ];
|
||||
56 [ color="black" label="(6, [2, 3, 4], [5, 7, 10, 10, 10], -1)" ];
|
||||
57 [ color="black" label="(6, [2, 3], [5, 7, 10, 10, 2], -3)" ];
|
||||
58 [ color="black" label="(10, [0, 4], [10, 7, 6, 5, 10], -4)" ];
|
||||
59 [ color="black" label="(10, [0], [10, 7, 6, 5, 2], -6)" ];
|
||||
60 [ color="black" label="(8, [0, 1, 3, 4], [10, 10, 5, 10, 10], -2)" ];
|
||||
61 [ color="black" label="(9, [0, 1, 3, 4], [10, 10, 4, 10, 10], 1)" ];
|
||||
62 [ color="black" label="(8, [0, 1, 3], [10, 10, 5, 10, 2], -4)" ];
|
||||
63 [ color="black" label="(9, [0, 1, 3], [10, 10, 4, 10, 2], -1)" ];
|
||||
64 [ color="black" label="(7, [1, 3, 4], [5, 10, 5, 10, 10], -3)" ];
|
||||
65 [ color="black" label="(10, [3], [3, 2, 5, 10, 2], -3)" ];
|
||||
66 [ color="black" label="(10, [3, 4], [3, 2, 5, 10, 10], -1)" ];
|
||||
67 [ color="black" label="(10, [3, 4], [5, 7, 5, 10, 10], -3)" ];
|
||||
68 [ color="black" label="(7, [1, 3], [5, 10, 5, 10, 2], -5)" ];
|
||||
69 [ color="black" label="(10, [0, 1, 2, 4], [10, 10, 10, 5, 10], -2)" ];
|
||||
70 [ color="black" label="(10, [3], [5, 7, 5, 10, 2], -5)" ];
|
||||
71 [ color="black" label="(10, [0, 1, 2], [10, 10, 10, 5, 2], -4)" ];
|
||||
72 [ color="black" label="(9, [0, 3], [10, 2, 5, 10, 2], -5)" ];
|
||||
73 [ color="black" label="(10, [0, 3, 4], [10, 2, 4, 10, 10], 0)" ];
|
||||
74 [ color="black" label="(7, [0, 2, 4], [10, 7, 10, 5, 10], -2)" ];
|
||||
75 [ color="black" label="(10, [0, 3], [10, 2, 4, 10, 2], -2)" ];
|
||||
76 [ color="black" label="(7, [0, 2], [10, 7, 10, 5, 2], -4)" ];
|
||||
77 [ color="black" label="(9, [1, 2], [5, 10, 10, 5, 2], -5)" ];
|
||||
78 [ color="black" label="(9, [1, 2, 4], [5, 10, 10, 5, 10], -3)" ];
|
||||
79 [ color="black" label="(9, [0, 3, 4], [10, 2, 5, 10, 10], -3)" ];
|
||||
80 [ color="black" label="(8, [2], [3, 7, 10, 5, 2], -2)" ];
|
||||
81 [ color="black" label="(8, [4], [5, 2, 5, 5, 10], -6)" ];
|
||||
82 [ color="black" label="(9, [1, 3, 4], [3, 10, 5, 10, 10], 0)" ];
|
||||
83 [ color="black" label="(8, [2, 4], [3, 7, 10, 5, 10], 0)" ];
|
||||
84 [ color="black" label="(8, [], [5, 2, 5, 5, 2], -8)" ];
|
||||
85 [ color="black" label="(9, [1, 3], [3, 10, 5, 10, 2], -2)" ];
|
||||
86 [ color="black" label="(9, [4], [5, 2, 4, 5, 10], -3)" ];
|
||||
87 [ color="black" label="(10, [1, 3, 4], [3, 10, 4, 10, 10], 3)" ];
|
||||
88 [ color="black" label="(9, [], [5, 2, 4, 5, 2], -5)" ];
|
||||
89 [ color="black" label="(10, [1, 3], [3, 10, 4, 10, 2], 1)" ];
|
||||
90 [ color="black" label="(10, [2, 3], [5, 2, 10, 10, 2], -4)" ];
|
||||
91 [ color="black" label="(10, [2, 3, 4], [5, 2, 10, 10, 10], -2)" ];
|
||||
92 [ color="black" label="(10, [3], [5, 7, 4, 10, 2], -2)" ];
|
||||
93 [ color="black" label="(10, [3, 4], [5, 7, 4, 10, 10], 0)" ];
|
||||
94 [ color="black" label="(9, [3], [5, 7, 5, 10, 2], -5)" ];
|
||||
95 [ color="black" label="(9, [3, 4], [5, 7, 5, 10, 10], -3)" ];
|
||||
96 [ color="black" label="(5, [0, 1, 2, 3, 4], [10, 10, 10, 10, 10], 0)" ];
|
||||
97 [ color="black" label="(2, [1, 3, 4], [5, 10, 6, 10, 10], -3)" ];
|
||||
98 [ color="black" label="(4, [1, 2, 3, 4], [5, 10, 10, 10, 10], -1)" ];
|
||||
99 [ color="black" label="(4, [0, 3, 4], [10, 7, 6, 10, 10], -2)" ];
|
||||
100 [ color="black" label="(5, [0, 3, 4], [10, 7, 5, 10, 10], -2)" ];
|
||||
101 [ color="black" label="(9, [0, 4], [10, 7, 6, 5, 10], -4)" ];
|
||||
102 [ color="black" label="(10, [0, 4], [10, 7, 5, 5, 10], -4)" ];
|
||||
103 [ color="black" label="(9, [0], [10, 7, 6, 5, 2], -6)" ];
|
||||
104 [ color="black" label="(10, [0], [10, 7, 5, 5, 2], -6)" ];
|
||||
105 [ color="black" label="(9, [0, 1, 3], [10, 10, 5, 10, 2], -4)" ];
|
||||
106 [ color="black" label="(9, [0, 1, 3, 4], [10, 10, 5, 10, 10], -2)" ];
|
||||
107 [ color="black" label="(10, [0, 1, 3], [10, 10, 4, 10, 2], -1)" ];
|
||||
108 [ color="black" label="(10, [0, 1, 3, 4], [10, 10, 4, 10, 10], 1)" ];
|
||||
109 [ color="black" label="(10, [], [3, 7, 6, 5, 2], -4)" ];
|
||||
110 [ color="black" label="(10, [4], [3, 7, 6, 5, 10], -2)" ];
|
||||
111 [ color="black" label="(8, [1, 3, 4], [5, 10, 5, 10, 10], -3)" ];
|
||||
112 [ color="black" label="(8, [2, 3, 4], [5, 2, 10, 10, 10], -2)" ];
|
||||
113 [ color="black" label="(9, [1, 3, 4], [5, 10, 4, 10, 10], 0)" ];
|
||||
114 [ color="black" label="(8, [1, 3], [5, 10, 5, 10, 2], -5)" ];
|
||||
115 [ color="black" label="(9, [1, 3], [5, 10, 4, 10, 2], -2)" ];
|
||||
116 [ color="black" label="(3, [0, 2, 3, 4], [10, 7, 10, 10, 10], 0)" ];
|
||||
117 [ color="black" label="(8, [2, 3], [5, 2, 10, 10, 2], -4)" ];
|
||||
118 [ color="black" label="(10, [0, 3], [10, 2, 5, 10, 2], -5)" ];
|
||||
119 [ color="black" label="(8, [3, 4], [3, 7, 5, 10, 10], 0)" ];
|
||||
120 [ color="black" label="(10, [2], [5, 7, 10, 5, 2], -5)" ];
|
||||
121 [ color="black" label="(10, [1, 2, 4], [5, 10, 10, 5, 10], -3)" ];
|
||||
122 [ color="black" label="(10, [2, 4], [5, 7, 10, 5, 10], -3)" ];
|
||||
123 [ color="black" label="(10, [1, 2], [5, 10, 10, 5, 2], -5)" ];
|
||||
124 [ color="black" label="(10, [0, 3, 4], [10, 2, 5, 10, 10], -3)" ];
|
||||
125 [ color="black" label="(9, [1, 2, 3], [3, 10, 10, 10, 2], 0)" ];
|
||||
126 [ color="black" label="(9, [1, 2, 3, 4], [3, 10, 10, 10, 10], 2)" ];
|
||||
127 [ color="black" label="(5, [2, 3, 4], [5, 7, 10, 10, 10], -1)" ];
|
||||
128 [ color="black" label="(6, [0, 3], [10, 7, 6, 10, 2], -4)" ];
|
||||
129 [ color="black" label="(7, [0, 3], [10, 7, 5, 10, 2], -4)" ];
|
||||
130 [ color="black" label="(6, [0, 3, 4], [10, 7, 6, 10, 10], -2)" ];
|
||||
131 [ color="black" label="(7, [0, 3, 4], [10, 7, 5, 10, 10], -2)" ];
|
||||
132 [ color="black" label="(9, [1], [3, 10, 4, 5, 2], -1)" ];
|
||||
133 [ color="black" label="(9, [1, 4], [3, 10, 4, 5, 10], 1)" ];
|
||||
134 [ color="black" label="(8, [1], [3, 10, 5, 5, 2], -4)" ];
|
||||
135 [ color="black" label="(8, [1, 4], [3, 10, 5, 5, 10], -2)" ];
|
||||
136 [ color="black" label="(10, [2, 4], [5, 0, 10, 5, 10], -2)" ];
|
||||
137 [ color="black" label="(7, [0, 1, 4], [10, 10, 5, 5, 10], -4)" ];
|
||||
138 [ color="black" label="(7, [0, 1], [10, 10, 5, 5, 2], -6)" ];
|
||||
139 [ color="black" label="(10, [2], [5, 0, 10, 5, 2], -4)" ];
|
||||
140 [ color="black" label="(5, [1, 2, 3, 4], [5, 10, 10, 10, 10], -1)" ];
|
||||
141 [ color="black" label="(9, [2, 4], [3, 7, 10, 5, 10], 0)" ];
|
||||
142 [ color="black" label="(6, [0, 3], [10, 7, 5, 10, 2], -4)" ];
|
||||
143 [ color="black" label="(9, [2], [3, 7, 10, 5, 2], -2)" ];
|
||||
144 [ color="black" label="(5, [0, 3, 4], [10, 7, 6, 10, 10], -2)" ];
|
||||
145 [ color="black" label="(6, [0, 3, 4], [10, 7, 5, 10, 10], -2)" ];
|
||||
146 [ color="black" label="(7, [0, 2, 3], [10, 2, 10, 10, 2], -3)" ];
|
||||
147 [ color="black" label="(4, [2, 3, 4], [5, 7, 10, 10, 10], -1)" ];
|
||||
148 [ color="black" label="(8, [0, 2, 4], [10, 7, 10, 5, 10], -2)" ];
|
||||
149 [ color="black" label="(7, [0, 2, 3, 4], [10, 2, 10, 10, 10], -1)" ];
|
||||
150 [ color="black" label="(8, [0, 2], [10, 7, 10, 5, 2], -4)" ];
|
||||
151 [ color="black" label="(10, [3, 4], [3, 0, 4, 10, 10], 4)" ];
|
||||
152 [ color="black" label="(9, [0, 1, 2, 3, 4], [10, 10, 10, 10, 10], 0)" ];
|
||||
153 [ color="black" label="(9, [0, 1, 2, 3], [10, 10, 10, 10, 2], -2)" ];
|
||||
154 [ color="black" label="(10, [3], [3, 0, 4, 10, 2], 2)" ];
|
||||
155 [ color="black" label="(7, [4], [5, 2, 5, 5, 10], -6)" ];
|
||||
156 [ color="black" label="(7, [], [5, 2, 5, 5, 2], -8)" ];
|
||||
157 [ color="black" label="(9, [1, 3], [5, 10, 5, 10, 2], -5)" ];
|
||||
158 [ color="black" label="(9, [1, 3, 4], [5, 10, 5, 10, 10], -3)" ];
|
||||
159 [ color="black" label="(9, [2, 3, 4], [5, 2, 10, 10, 10], -2)" ];
|
||||
160 [ color="black" label="(10, [1, 3, 4], [5, 10, 4, 10, 10], 0)" ];
|
||||
161 [ color="black" label="(10, [1, 3], [5, 10, 4, 10, 2], -2)" ];
|
||||
162 [ color="black" label="(9, [2, 3], [5, 2, 10, 10, 2], -4)" ];
|
||||
163 [ color="black" label="(9, [3], [5, 7, 4, 10, 2], -2)" ];
|
||||
164 [ color="black" label="(9, [3, 4], [5, 7, 4, 10, 10], 0)" ];
|
||||
165 [ color="black" label="(8, [3], [5, 7, 5, 10, 2], -5)" ];
|
||||
166 [ color="black" label="(8, [3, 4], [5, 7, 5, 10, 10], -3)" ];
|
||||
167 [ color="black" label="(8, [2, 3, 4], [3, 2, 10, 10, 10], 1)" ];
|
||||
168 [ color="black" label="(8, [2, 3], [3, 2, 10, 10, 2], -1)" ];
|
||||
169 [ color="black" label="(4, [0, 1, 2, 4], [10, 10, 10, 5, 10], -2)" ];
|
||||
170 [ color="black" label="(10, [1, 2, 3], [3, 10, 10, 10, 2], 0)" ];
|
||||
171 [ color="black" label="(10, [1, 2, 3, 4], [3, 10, 10, 10, 10], 2)" ];
|
||||
172 [ color="black" label="(10, [3], [5, 0, 5, 10, 2], -4)" ];
|
||||
173 [ color="black" label="(9, [0, 3], [10, 7, 4, 10, 2], -1)" ];
|
||||
174 [ color="black" label="(9, [0, 3, 4], [10, 7, 4, 10, 10], 1)" ];
|
||||
175 [ color="black" label="(7, [0, 3], [10, 7, 6, 10, 2], -4)" ];
|
||||
176 [ color="black" label="(10, [3, 4], [5, 0, 5, 10, 10], -2)" ];
|
||||
177 [ color="black" label="(8, [0, 3], [10, 7, 5, 10, 2], -4)" ];
|
||||
178 [ color="black" label="(7, [0, 3, 4], [10, 7, 6, 10, 10], -2)" ];
|
||||
179 [ color="black" label="(8, [0, 3, 4], [10, 7, 5, 10, 10], -2)" ];
|
||||
180 [ color="black" label="(10, [0, 2], [10, 7, 10, 5, 2], -4)" ];
|
||||
181 [ color="black" label="(7, [3], [5, 7, 5, 10, 2], -5)" ];
|
||||
182 [ color="black" label="(10, [0, 2, 4], [10, 7, 10, 5, 10], -2)" ];
|
||||
183 [ color="black" label="(8, [3], [3, 7, 6, 10, 2], -2)" ];
|
||||
184 [ color="black" label="(7, [3, 4], [5, 7, 5, 10, 10], -3)" ];
|
||||
185 [ color="black" label="(9, [3], [3, 7, 5, 10, 2], -2)" ];
|
||||
186 [ color="black" label="(10, [3], [3, 7, 4, 10, 2], 1)" ];
|
||||
187 [ color="black" label="(10, [3, 4], [3, 7, 4, 10, 10], 3)" ];
|
||||
188 [ color="black" label="(9, [2, 3], [3, 2, 10, 10, 2], -1)" ];
|
||||
189 [ color="black" label="(7, [0, 1, 2, 3, 4], [10, 10, 10, 10, 10], 0)" ];
|
||||
190 [ color="black" label="(7, [0, 1, 2, 3], [10, 10, 10, 10, 2], -2)" ];
|
||||
191 [ color="black" label="(6, [1, 2, 3, 4], [5, 10, 10, 10, 10], -1)" ];
|
||||
192 [ color="black" label="(9, [2, 3, 4], [3, 2, 10, 10, 10], 1)" ];
|
||||
193 [ color="black" label="(6, [1, 2, 3], [5, 10, 10, 10, 2], -3)" ];
|
||||
194 [ color="black" label="(7, [2, 3], [5, 2, 10, 10, 2], -4)" ];
|
||||
195 [ color="black" label="(7, [2, 3, 4], [5, 2, 10, 10, 10], -2)" ];
|
||||
196 [ color="black" label="(9, [2], [5, 7, 10, 5, 2], -5)" ];
|
||||
197 [ color="black" label="(8, [0, 2, 3], [10, 2, 10, 10, 2], -3)" ];
|
||||
198 [ color="black" label="(8, [3, 4], [3, 7, 6, 10, 10], 0)" ];
|
||||
199 [ color="black" label="(9, [3, 4], [3, 7, 5, 10, 10], 0)" ];
|
||||
200 [ color="black" label="(10, [3], [3, 0, 5, 10, 2], -1)" ];
|
||||
201 [ color="black" label="(8, [0, 2, 3, 4], [10, 2, 10, 10, 10], -1)" ];
|
||||
202 [ color="black" label="(9, [2, 4], [5, 7, 10, 5, 10], -3)" ];
|
||||
203 [ color="black" label="(8, [1, 2, 3, 4], [3, 10, 10, 10, 10], 2)" ];
|
||||
204 [ color="black" label="(10, [1, 3], [5, 10, 5, 10, 2], -5)" ];
|
||||
205 [ color="black" label="(10, [3, 4], [3, 0, 5, 10, 10], 1)" ];
|
||||
206 [ color="black" label="(10, [1, 3, 4], [5, 10, 5, 10, 10], -3)" ];
|
||||
207 [ color="black" label="(8, [1, 2, 3], [3, 10, 10, 10, 2], 0)" ];
|
||||
208 [ color="black" label="(8, [2], [5, 7, 10, 5, 2], -5)" ];
|
||||
209 [ color="black" label="(8, [4], [3, 2, 5, 5, 10], -3)" ];
|
||||
210 [ color="black" label="(9, [], [3, 2, 4, 5, 2], -2)" ];
|
||||
211 [ color="black" label="(9, [4], [3, 2, 4, 5, 10], 0)" ];
|
||||
212 [ color="black" label="(8, [2, 4], [5, 7, 10, 5, 10], -3)" ];
|
||||
213 [ color="black" label="(5, [1, 4], [5, 10, 5, 5, 10], -5)" ];
|
||||
214 [ color="black" label="(8, [], [3, 2, 5, 5, 2], -5)" ];
|
||||
215 [ color="black" label="(6, [0, 1, 4], [10, 10, 5, 5, 10], -4)" ];
|
||||
216 [ color="black" label="(6, [0, 1], [10, 10, 5, 5, 2], -6)" ];
|
||||
217 [ color="black" label="(10, [2, 4], [3, 7, 10, 5, 10], 0)" ];
|
||||
218 [ color="black" label="(10, [3, 4], [5, 0, 4, 10, 10], 1)" ];
|
||||
219 [ color="black" label="(10, [2], [3, 7, 10, 5, 2], -2)" ];
|
||||
220 [ color="black" label="(4, [0, 2, 3, 4], [10, 7, 10, 10, 10], 0)" ];
|
||||
221 [ color="black" label="(9, [0, 2, 4], [10, 7, 10, 5, 10], -2)" ];
|
||||
222 [ color="black" label="(3, [2, 3, 4], [5, 7, 10, 10, 10], -1)" ];
|
||||
223 [ color="black" label="(9, [3], [3, 7, 4, 10, 2], 1)" ];
|
||||
224 [ color="black" label="(8, [3], [3, 7, 5, 10, 2], -2)" ];
|
||||
225 [ color="black" label="(10, [3], [5, 0, 4, 10, 2], -1)" ];
|
||||
226 [ color="black" label="(10, [0, 3], [10, 0, 5, 10, 2], -3)" ];
|
||||
227 [ color="black" label="(9, [0, 2], [10, 7, 10, 5, 2], -4)" ];
|
||||
228 [ color="black" label="(9, [3, 4], [3, 7, 4, 10, 10], 3)" ];
|
||||
229 [ color="black" label="(7, [0], [10, 2, 5, 5, 2], -7)" ];
|
||||
230 [ color="black" label="(10, [0, 3, 4], [10, 0, 5, 10, 10], -1)" ];
|
||||
231 [ color="black" label="(8, [0, 1, 2, 3, 4], [10, 10, 10, 10, 10], 0)" ];
|
||||
232 [ color="black" label="(8, [0, 1, 2, 3], [10, 10, 10, 10, 2], -2)" ];
|
||||
233 [ color="black" label="(7, [1, 2, 3, 4], [5, 10, 10, 10, 10], -1)" ];
|
||||
234 [ color="black" label="(7, [0, 4], [10, 2, 5, 5, 10], -5)" ];
|
||||
235 [ color="black" label="(9, [3, 4], [5, 2, 5, 10, 10], -4)" ];
|
||||
236 [ color="black" label="(7, [1, 2, 3], [5, 10, 10, 10, 2], -3)" ];
|
||||
237 [ color="black" label="(9, [3], [5, 2, 5, 10, 2], -6)" ];
|
||||
238 [ color="black" label="(10, [3, 4], [5, 2, 4, 10, 10], -1)" ];
|
||||
239 [ color="black" label="(0, [0, 1, 2, 3, 4], [10, 10, 10, 10, 10], 0)" ];
|
||||
240 [ color="black" label="(10, [3], [5, 2, 4, 10, 2], -3)" ];
|
||||
241 [ color="black" label="(9, [0, 2, 3], [10, 2, 10, 10, 2], -3)" ];
|
||||
242 [ color="black" label="(9, [0, 2, 3, 4], [10, 2, 10, 10, 10], -1)" ];
|
||||
243 [ color="black" label="(6, [0, 2, 3, 4], [10, 7, 10, 10, 10], 0)" ];
|
||||
244 [ color="black" label="(3, [0, 1, 3, 4], [10, 10, 6, 10, 10], -2)" ];
|
||||
245 [ color="black" label="(6, [0, 2, 3], [10, 7, 10, 10, 2], -2)" ];
|
||||
246 [ color="black" label="(6, [3], [5, 7, 5, 10, 2], -5)" ];
|
||||
247 [ color="black" label="(6, [3, 4], [5, 7, 5, 10, 10], -3)" ];
|
||||
248 [ color="black" label="(10, [2, 3], [3, 2, 10, 10, 2], -1)" ];
|
||||
249 [ color="black" label="(6, [1, 4], [5, 10, 5, 5, 10], -5)" ];
|
||||
250 [ color="black" label="(6, [1], [5, 10, 5, 5, 2], -7)" ];
|
||||
251 [ color="black" label="(6, [0, 1, 2], [10, 10, 10, 5, 2], -4)" ];
|
||||
252 [ color="black" label="(6, [0, 1, 2, 4], [10, 10, 10, 5, 10], -2)" ];
|
||||
253 [ color="black" label="(10, [2, 3, 4], [3, 2, 10, 10, 10], 1)" ];
|
||||
254 [ color="black" label="(10, [0, 1, 4], [10, 10, 5, 5, 10], -4)" ];
|
||||
255 [ color="black" label="(5, [3, 4], [5, 7, 5, 10, 10], -3)" ];
|
||||
256 [ color="black" label="(10, [0, 3], [10, 0, 4, 10, 2], 0)" ];
|
||||
257 [ color="black" label="(10, [0, 3, 4], [10, 0, 4, 10, 10], 2)" ];
|
||||
258 [ color="black" label="(8, [0], [10, 2, 5, 5, 2], -7)" ];
|
||||
259 [ color="black" label="(9, [3], [3, 7, 6, 10, 2], -2)" ];
|
||||
260 [ color="black" label="(10, [3], [3, 7, 5, 10, 2], -2)" ];
|
||||
261 [ color="black" label="(9, [0, 4], [10, 2, 4, 5, 10], -2)" ];
|
||||
262 [ color="black" label="(9, [3, 4], [3, 7, 6, 10, 10], 0)" ];
|
||||
263 [ color="black" label="(10, [3, 4], [3, 7, 5, 10, 10], 0)" ];
|
||||
264 [ color="black" label="(9, [0], [10, 2, 4, 5, 2], -4)" ];
|
||||
265 [ color="black" label="(10, [0, 1], [10, 10, 5, 5, 2], -6)" ];
|
||||
266 [ color="black" label="(8, [1, 2, 3], [5, 10, 10, 10, 2], -3)" ];
|
||||
267 [ color="black" label="(8, [1, 2, 3, 4], [5, 10, 10, 10, 10], -1)" ];
|
||||
268 [ color="black" label="(8, [0, 4], [10, 2, 5, 5, 10], -5)" ];
|
||||
269 [ color="black" label="(10, [3, 4], [5, 2, 5, 10, 10], -4)" ];
|
||||
270 [ color="black" label="(10, [3], [5, 2, 5, 10, 2], -6)" ];
|
||||
271 [ color="black" label="(10, [0, 3], [10, 7, 4, 10, 2], -1)" ];
|
||||
272 [ color="black" label="(10, [0, 3, 4], [10, 7, 4, 10, 10], 1)" ];
|
||||
273 [ color="black" label="(1, [0, 1, 2, 3, 4], [10, 10, 10, 10, 10], 0)" ];
|
||||
274 [ color="black" label="(8, [0, 3], [10, 7, 6, 10, 2], -4)" ];
|
||||
275 [ color="black" label="(7, [2, 4], [5, 7, 10, 5, 10], -3)" ];
|
||||
276 [ color="black" label="(9, [0, 3], [10, 7, 5, 10, 2], -4)" ];
|
||||
277 [ color="black" label="(9, [4], [3, 2, 5, 5, 10], -3)" ];
|
||||
278 [ color="black" label="(8, [0, 3, 4], [10, 7, 6, 10, 10], -2)" ];
|
||||
279 [ color="black" label="(7, [2], [5, 7, 10, 5, 2], -5)" ];
|
||||
280 [ color="black" label="(9, [0, 3, 4], [10, 7, 5, 10, 10], -2)" ];
|
||||
281 [ color="black" label="(10, [0, 2, 3, 4], [10, 2, 10, 10, 10], -1)" ];
|
||||
282 [ color="black" label="(10, [0, 2, 3], [10, 2, 10, 10, 2], -3)" ];
|
||||
283 [ color="black" label="(10, [], [3, 2, 4, 5, 2], -2)" ];
|
||||
284 [ color="black" label="(5, [0, 1, 3, 4], [10, 10, 5, 10, 10], -2)" ];
|
||||
285 [ color="black" label="(10, [4], [3, 2, 4, 5, 10], 0)" ];
|
||||
286 [ color="black" label="(9, [], [3, 2, 5, 5, 2], -5)" ];
|
||||
287 [ color="black" label="(5, [0, 2, 3, 4], [10, 7, 10, 10, 10], 0)" ];
|
||||
288 [ color="black" label="(9, [1, 4], [3, 10, 5, 5, 10], -2)" ];
|
||||
289 [ color="black" label="(9, [1], [3, 10, 5, 5, 2], -4)" ];
|
||||
290 [ color="black" label="(10, [1, 4], [3, 10, 4, 5, 10], 1)" ];
|
||||
291 [ color="black" label="(10, [1], [3, 10, 4, 5, 2], -1)" ];
|
||||
292 [ color="black" label="(10, [], [3, 2, 5, 5, 2], -5)" ];
|
||||
293 [ color="black" label="(6, [2, 4], [5, 7, 10, 5, 10], -3)" ];
|
||||
294 [ color="black" label="(10, [4], [3, 2, 5, 5, 10], -3)" ];
|
||||
295 [ color="black" label="(6, [2], [5, 7, 10, 5, 2], -5)" ];
|
||||
296 [ color="black" label="(8, [2, 3], [3, 7, 10, 10, 2], 0)" ];
|
||||
297 [ color="black" label="(10, [0, 3, 4], [10, 7, 6, 10, 10], -2)" ];
|
||||
298 [ color="black" label="(10, [0, 3], [10, 7, 6, 10, 2], -4)" ];
|
||||
299 [ color="black" label="(7, [1, 4], [5, 10, 5, 5, 10], -5)" ];
|
||||
300 [ color="black" label="(7, [1], [5, 10, 5, 5, 2], -7)" ];
|
||||
301 [ color="black" label="(8, [0, 1, 4], [10, 10, 5, 5, 10], -4)" ];
|
||||
302 [ color="black" label="(9, [0, 1, 4], [10, 10, 4, 5, 10], -1)" ];
|
||||
303 [ color="black" label="(10, [0, 2], [10, 0, 10, 5, 2], -3)" ];
|
||||
304 [ color="black" label="(8, [0, 1], [10, 10, 5, 5, 2], -6)" ];
|
||||
305 [ color="black" label="(9, [0, 1], [10, 10, 4, 5, 2], -3)" ];
|
||||
306 [ color="black" label="(10, [0, 2, 4], [10, 0, 10, 5, 10], -1)" ];
|
||||
307 [ color="black" label="(8, [3, 4], [5, 2, 5, 10, 10], -4)" ];
|
||||
308 [ color="black" label="(8, [3], [5, 2, 5, 10, 2], -6)" ];
|
||||
309 [ color="black" label="(10, [], [5, 7, 5, 5, 2], -7)" ];
|
||||
310 [ color="black" label="(9, [3, 4], [5, 2, 4, 10, 10], -1)" ];
|
||||
311 [ color="black" label="(9, [3], [5, 2, 4, 10, 2], -3)" ];
|
||||
312 [ color="black" label="(8, [2, 3, 4], [3, 7, 10, 10, 10], 2)" ];
|
||||
313 [ color="black" label="(10, [0, 4], [10, 2, 4, 5, 10], -2)" ];
|
||||
314 [ color="black" label="(10, [0], [10, 2, 4, 5, 2], -4)" ];
|
||||
315 [ color="black" label="(10, [0, 1, 2, 3], [10, 10, 10, 10, 2], -2)" ];
|
||||
316 [ color="black" label="(10, [4], [5, 7, 5, 5, 10], -5)" ];
|
||||
317 [ color="black" label="(7, [0, 2, 3, 4], [10, 7, 10, 10, 10], 0)" ];
|
||||
318 [ color="black" label="(2, [0, 1, 3, 4], [10, 10, 6, 10, 10], -2)" ];
|
||||
319 [ color="black" label="(9, [1, 2, 3, 4], [5, 10, 10, 10, 10], -1)" ];
|
||||
320 [ color="black" label="(7, [0, 2, 3], [10, 7, 10, 10, 2], -2)" ];
|
||||
321 [ color="black" label="(9, [1, 2, 3], [5, 10, 10, 10, 2], -3)" ];
|
||||
322 [ color="black" label="(10, [0, 1, 2, 3, 4], [10, 10, 10, 10, 10], 0)" ];
|
||||
323 [ color="black" label="(9, [0, 4], [10, 2, 5, 5, 10], -5)" ];
|
||||
324 [ color="black" label="(9, [0], [10, 2, 5, 5, 2], -7)" ];
|
||||
325 [ color="black" label="(10, [], [5, 7, 4, 5, 2], -4)" ];
|
||||
326 [ color="black" label="(10, [4], [5, 7, 4, 5, 10], -2)" ];
|
||||
327 [ color="black" label="(9, [], [5, 7, 5, 5, 2], -7)" ];
|
||||
328 [ color="black" label="(10, [2, 4], [5, 2, 10, 5, 10], -4)" ];
|
||||
329 [ color="black" label="(4, [1, 2, 4], [5, 10, 10, 5, 10], -3)" ];
|
||||
330 [ color="black" label="(9, [4], [5, 7, 5, 5, 10], -5)" ];
|
||||
331 [ color="black" label="(5, [0, 1, 2, 4], [10, 10, 10, 5, 10], -2)" ];
|
||||
332 [ color="black" label="(10, [2], [5, 2, 10, 5, 2], -6)" ];
|
||||
333 [ color="black" label="(10, [1], [3, 10, 5, 5, 2], -4)" ];
|
||||
334 [ color="black" label="(9, [0, 1, 4], [10, 10, 5, 5, 10], -4)" ];
|
||||
335 [ color="black" label="(3, [3, 4], [5, 7, 6, 10, 10], -3)" ];
|
||||
336 [ color="black" label="(10, [1, 4], [3, 10, 5, 5, 10], -2)" ];
|
||||
337 [ color="black" label="(10, [3], [3, 7, 6, 10, 2], -2)" ];
|
||||
338 [ color="black" label="(4, [0, 4], [10, 7, 6, 5, 10], -4)" ];
|
||||
339 [ color="black" label="(5, [0, 4], [10, 7, 5, 5, 10], -4)" ];
|
||||
340 [ color="black" label="(10, [3, 4], [3, 7, 6, 10, 10], 0)" ];
|
||||
341 [ color="black" label="(9, [0, 3, 4], [10, 7, 6, 10, 10], -2)" ];
|
||||
342 [ color="black" label="(10, [0, 3, 4], [10, 7, 5, 10, 10], -2)" ];
|
||||
343 [ color="black" label="(8, [1, 4], [5, 10, 5, 5, 10], -5)" ];
|
||||
344 [ color="black" label="(9, [0, 3], [10, 7, 6, 10, 2], -4)" ];
|
||||
345 [ color="black" label="(9, [1, 4], [5, 10, 4, 5, 10], -2)" ];
|
||||
346 [ color="black" label="(10, [0, 3], [10, 7, 5, 10, 2], -4)" ];
|
||||
347 [ color="black" label="(8, [1], [5, 10, 5, 5, 2], -7)" ];
|
||||
348 [ color="black" label="(9, [1], [5, 10, 4, 5, 2], -4)" ];
|
||||
349 [ color="black" label="(10, [0, 1, 4], [10, 10, 4, 5, 10], -1)" ];
|
||||
350 [ color="black" label="(9, [0, 1], [10, 10, 5, 5, 2], -6)" ];
|
||||
351 [ color="black" label="(10, [0, 1], [10, 10, 4, 5, 2], -3)" ];
|
||||
352 [ color="black" label="(10, [2, 3], [5, 7, 10, 10, 2], -3)" ];
|
||||
353 [ color="black" label="(10, [2, 3, 4], [5, 7, 10, 10, 10], -1)" ];
|
||||
354 [ color="black" label="(9, [4], [3, 7, 4, 5, 10], 1)" ];
|
||||
355 [ color="black" label="(10, [2, 3], [3, 0, 10, 10, 2], 1)" ];
|
||||
356 [ color="black" label="(3, [0, 1, 2, 3, 4], [10, 10, 10, 10, 10], 0)" ];
|
||||
357 [ color="black" label="(9, [], [3, 7, 4, 5, 2], -1)" ];
|
||||
358 [ color="black" label="(8, [4], [3, 7, 5, 5, 10], -2)" ];
|
||||
359 [ color="black" label="(10, [2, 3, 4], [3, 0, 10, 10, 10], 3)" ];
|
||||
360 [ color="black" label="(8, [2], [5, 2, 10, 5, 2], -6)" ];
|
||||
361 [ color="black" label="(10, [1, 2, 3], [5, 10, 10, 10, 2], -3)" ];
|
||||
362 [ color="black" label="(8, [], [3, 7, 5, 5, 2], -4)" ];
|
||||
363 [ color="black" label="(8, [2, 4], [5, 2, 10, 5, 10], -4)" ];
|
||||
364 [ color="black" label="(10, [0, 4], [10, 2, 5, 5, 10], -5)" ];
|
||||
365 [ color="black" label="(10, [1, 2, 3, 4], [5, 10, 10, 10, 10], -1)" ];
|
||||
366 [ color="black" label="(10, [0], [10, 2, 5, 5, 2], -7)" ];
|
||||
367 [ color="black" label="(10, [2, 3], [5, 0, 10, 10, 2], -2)" ];
|
||||
368 [ color="black" label="(10, [2, 3, 4], [5, 0, 10, 10, 10], 0)" ];
|
||||
369 [ color="black" label="(5, [2, 4], [5, 7, 10, 5, 10], -3)" ];
|
||||
370 [ color="black" label="(6, [0], [10, 7, 6, 5, 2], -6)" ];
|
||||
371 [ color="black" label="(7, [0], [10, 7, 5, 5, 2], -6)" ];
|
||||
372 [ color="black" label="(7, [0, 1, 3, 4], [10, 10, 5, 10, 10], -2)" ];
|
||||
373 [ color="black" label="(6, [0, 4], [10, 7, 6, 5, 10], -4)" ];
|
||||
374 [ color="black" label="(7, [0, 4], [10, 7, 5, 5, 10], -4)" ];
|
||||
375 [ color="black" label="(5, [1, 2, 4], [5, 10, 10, 5, 10], -3)" ];
|
||||
376 [ color="black" label="(7, [0, 1, 3], [10, 10, 5, 10, 2], -4)" ];
|
||||
377 [ color="black" label="(9, [0, 1, 2, 4], [10, 10, 10, 5, 10], -2)" ];
|
||||
378 [ color="black" label="(4, [2, 4], [5, 7, 10, 5, 10], -3)" ];
|
||||
379 [ color="black" label="(7, [3, 4], [5, 2, 5, 10, 10], -4)" ];
|
||||
380 [ color="black" label="(7, [3], [5, 2, 5, 10, 2], -6)" ];
|
||||
381 [ color="black" label="(9, [2, 3, 4], [3, 7, 10, 10, 10], 2)" ];
|
||||
382 [ color="black" label="(6, [0], [10, 7, 5, 5, 2], -6)" ];
|
||||
383 [ color="black" label="(9, [2, 3], [3, 7, 10, 10, 2], 0)" ];
|
||||
384 [ color="black" label="(5, [0, 4], [10, 7, 6, 5, 10], -4)" ];
|
||||
385 [ color="black" label="(6, [0, 4], [10, 7, 5, 5, 10], -4)" ];
|
||||
386 [ color="black" label="(9, [1, 3, 4], [3, 10, 4, 10, 10], 3)" ];
|
||||
387 [ color="black" label="(9, [1, 4], [5, 10, 5, 5, 10], -5)" ];
|
||||
388 [ color="black" label="(8, [1, 3], [3, 10, 5, 10, 2], -2)" ];
|
||||
389 [ color="black" label="(7, [0, 2], [10, 2, 10, 5, 2], -5)" ];
|
||||
390 [ color="black" label="(9, [1], [5, 10, 5, 5, 2], -7)" ];
|
||||
391 [ color="black" label="(8, [0, 2, 3, 4], [10, 7, 10, 10, 10], 0)" ];
|
||||
392 [ color="black" label="(8, [1, 3, 4], [3, 10, 5, 10, 10], 0)" ];
|
||||
393 [ color="black" label="(8, [0, 2, 3], [10, 7, 10, 10, 2], -2)" ];
|
||||
394 [ color="black" label="(10, [1, 4], [5, 10, 4, 5, 10], -2)" ];
|
||||
395 [ color="black" label="(10, [], [3, 0, 4, 5, 2], 0)" ];
|
||||
396 [ color="black" label="(10, [1], [5, 10, 4, 5, 2], -4)" ];
|
||||
397 [ color="black" label="(10, [4], [3, 0, 4, 5, 10], 2)" ];
|
||||
398 [ color="black" label="(7, [0, 2, 4], [10, 2, 10, 5, 10], -3)" ];
|
||||
399 [ color="black" label="(9, [0, 1, 2], [10, 10, 10, 5, 2], -4)" ];
|
||||
400 [ color="black" label="(9, [1, 3], [3, 10, 4, 10, 2], 1)" ];
|
||||
401 [ color="black" label="(9, [], [5, 7, 4, 5, 2], -4)" ];
|
||||
402 [ color="black" label="(9, [4], [5, 7, 4, 5, 10], -2)" ];
|
||||
403 [ color="black" label="(8, [], [5, 7, 5, 5, 2], -7)" ];
|
||||
404 [ color="black" label="(8, [4], [5, 7, 5, 5, 10], -5)" ];
|
||||
405 [ color="black" label="(8, [2, 4], [3, 2, 10, 5, 10], -1)" ];
|
||||
406 [ color="black" label="(10, [0, 2, 3, 4], [10, 0, 10, 10, 10], 1)" ];
|
||||
407 [ color="black" label="(10, [0, 2, 3], [10, 0, 10, 10, 2], -1)" ];
|
||||
408 [ color="black" label="(4, [0, 1, 2, 3, 4], [10, 10, 10, 10, 10], 0)" ];
|
||||
409 [ color="black" label="(9, [2], [5, 2, 10, 5, 2], -6)" ];
|
||||
410 [ color="black" label="(8, [2], [3, 2, 10, 5, 2], -3)" ];
|
||||
411 [ color="black" label="(9, [2, 4], [5, 2, 10, 5, 10], -4)" ];
|
||||
412 [ color="black" label="(8, [1, 2, 4], [3, 10, 10, 5, 10], 0)" ];
|
||||
413 [ color="black" label="(8, [1, 2], [3, 10, 10, 5, 2], -2)" ];
|
||||
414 [ color="black" label="(9, [2, 4], [3, 2, 10, 5, 10], -1)" ];
|
||||
415 [ color="black" label="(7, [], [5, 7, 5, 5, 2], -7)" ];
|
||||
416 [ color="black" label="(9, [2], [3, 2, 10, 5, 2], -3)" ];
|
||||
417 [ color="black" label="(7, [4], [5, 7, 5, 5, 10], -5)" ];
|
||||
418 [ color="black" label="(9, [0], [10, 7, 4, 5, 2], -3)" ];
|
||||
419 [ color="black" label="(9, [0, 4], [10, 7, 4, 5, 10], -1)" ];
|
||||
420 [ color="black" label="(7, [0], [10, 7, 6, 5, 2], -6)" ];
|
||||
421 [ color="black" label="(8, [0], [10, 7, 5, 5, 2], -6)" ];
|
||||
422 [ color="black" label="(10, [0, 2, 3, 4], [10, 7, 10, 10, 10], 0)" ];
|
||||
423 [ color="black" label="(7, [0, 4], [10, 7, 6, 5, 10], -4)" ];
|
||||
424 [ color="black" label="(8, [0, 4], [10, 7, 5, 5, 10], -4)" ];
|
||||
425 [ color="black" label="(6, [1, 2], [5, 10, 10, 5, 2], -5)" ];
|
||||
426 [ color="black" label="(6, [1, 2, 4], [5, 10, 10, 5, 10], -3)" ];
|
||||
427 [ color="black" label="(10, [0, 2, 3], [10, 7, 10, 10, 2], -2)" ];
|
||||
428 [ color="black" label="(7, [0, 1, 2], [10, 10, 10, 5, 2], -4)" ];
|
||||
429 [ color="black" label="(7, [0, 1, 2, 4], [10, 10, 10, 5, 10], -2)" ];
|
||||
430 [ color="black" label="(10, [4], [5, 0, 5, 5, 10], -4)" ];
|
||||
431 [ color="black" label="(10, [], [5, 0, 5, 5, 2], -6)" ];
|
||||
432 [ color="black" label="(9, [2, 3, 4], [5, 7, 10, 10, 10], -1)" ];
|
||||
433 [ color="black" label="(9, [2, 3], [5, 7, 10, 10, 2], -3)" ];
|
||||
434 [ color="black" label="(10, [], [3, 0, 5, 5, 2], -3)" ];
|
||||
435 [ color="black" label="(10, [4], [3, 0, 5, 5, 10], -1)" ];
|
||||
436 [ color="black" label="(10, [1, 4], [5, 10, 5, 5, 10], -5)" ];
|
||||
437 [ color="black" label="(10, [], [3, 7, 4, 5, 2], -1)" ];
|
||||
438 [ color="black" label="(2, [0, 1, 2, 3, 4], [10, 10, 10, 10, 10], 0)" ];
|
||||
439 [ color="black" label="(10, [1], [5, 10, 5, 5, 2], -7)" ];
|
||||
440 [ color="black" label="(7, [2, 4], [5, 2, 10, 5, 10], -4)" ];
|
||||
441 [ color="black" label="(8, [4], [3, 7, 6, 5, 10], -2)" ];
|
||||
442 [ color="black" label="(9, [4], [3, 7, 5, 5, 10], -2)" ];
|
||||
443 [ color="black" label="(10, [4], [3, 7, 4, 5, 10], 1)" ];
|
||||
444 [ color="black" label="(8, [], [3, 7, 6, 5, 2], -4)" ];
|
||||
445 [ color="black" label="(9, [], [3, 7, 5, 5, 2], -4)" ];
|
||||
446 [ color="black" label="(8, [0, 2], [10, 2, 10, 5, 2], -5)" ];
|
||||
447 [ color="black" label="(7, [2], [5, 2, 10, 5, 2], -6)" ];
|
||||
448 [ color="black" label="(8, [0, 2, 4], [10, 2, 10, 5, 10], -3)" ];
|
||||
449 [ color="black" label="(8, [2, 3, 4], [5, 7, 10, 10, 10], -1)" ];
|
||||
450 [ color="black" label="(8, [2, 3], [5, 7, 10, 10, 2], -3)" ];
|
||||
451 [ color="black" label="(1, [1, 2, 3, 4], [5, 10, 10, 10, 10], -1)" ];
|
||||
452 [ color="black" label="(6, [0, 1, 3, 4], [10, 10, 5, 10, 10], -2)" ];
|
||||
453 [ color="black" label="(6, [0, 1, 3], [10, 10, 5, 10, 2], -4)" ];
|
||||
454 [ color="black" label="(9, [3], [3, 2, 4, 10, 2], 0)" ];
|
||||
455 [ color="black" label="(9, [3, 4], [3, 2, 4, 10, 10], 2)" ];
|
||||
456 [ color="black" label="(8, [3], [3, 2, 5, 10, 2], -3)" ];
|
||||
457 [ color="black" label="(8, [3, 4], [3, 2, 5, 10, 10], -1)" ];
|
||||
458 [ color="black" label="(5, [1, 3, 4], [5, 10, 5, 10, 10], -3)" ];
|
||||
459 [ color="black" label="(9, [1, 2], [3, 10, 10, 5, 2], -2)" ];
|
||||
460 [ color="black" label="(8, [0, 1, 2, 4], [10, 10, 10, 5, 10], -2)" ];
|
||||
461 [ color="black" label="(7, [0, 3, 4], [10, 2, 5, 10, 10], -3)" ];
|
||||
462 [ color="black" label="(7, [0, 3], [10, 2, 5, 10, 2], -5)" ];
|
||||
463 [ color="black" label="(10, [2, 3, 4], [3, 7, 10, 10, 10], 2)" ];
|
||||
464 [ color="black" label="(9, [1, 2, 4], [3, 10, 10, 5, 10], 0)" ];
|
||||
465 [ color="black" label="(10, [2, 3], [3, 7, 10, 10, 2], 0)" ];
|
||||
466 [ color="black" label="(4, [0, 2, 4], [10, 7, 10, 5, 10], -2)" ];
|
||||
467 [ color="black" label="(9, [0, 2, 3], [10, 7, 10, 10, 2], -2)" ];
|
||||
468 [ color="black" label="(7, [1, 2], [5, 10, 10, 5, 2], -5)" ];
|
||||
469 [ color="black" label="(9, [0, 2, 3, 4], [10, 7, 10, 10, 10], 0)" ];
|
||||
470 [ color="black" label="(7, [1, 2, 4], [5, 10, 10, 5, 10], -3)" ];
|
||||
471 [ color="black" label="(10, [4], [5, 0, 4, 5, 10], -1)" ];
|
||||
472 [ color="black" label="(10, [0, 4], [10, 0, 5, 5, 10], -3)" ];
|
||||
473 [ color="black" label="(10, [], [5, 0, 4, 5, 2], -3)" ];
|
||||
474 [ color="black" label="(8, [0, 1, 2], [10, 10, 10, 5, 2], -4)" ];
|
||||
475 [ color="black" label="(10, [0], [10, 0, 5, 5, 2], -5)" ];
|
||||
318 -> 1 [ label="1" ];
|
||||
38 -> 2 [ label="0" ];
|
||||
38 -> 3 [ label="1" ];
|
||||
81 -> 4 [ label="0" ];
|
||||
82 -> 5 [ label="0" ];
|
||||
84 -> 6 [ label="0" ];
|
||||
85 -> 7 [ label="0" ];
|
||||
86 -> 8 [ label="0" ];
|
||||
446 -> 9 [ label="0" ];
|
||||
88 -> 10 [ label="0" ];
|
||||
448 -> 11 [ label="0" ];
|
||||
451 -> 12 [ label="0" ];
|
||||
21 -> 13 [ label="1" ];
|
||||
21 -> 14 [ label="0" ];
|
||||
416 -> 15 [ label="0" ];
|
||||
414 -> 16 [ label="0" ];
|
||||
96 -> 17 [ label="0" ];
|
||||
96 -> 18 [ label="1" ];
|
||||
458 -> 19 [ label="0" ];
|
||||
458 -> 20 [ label="1" ];
|
||||
378 -> 21 [ label="1" ];
|
||||
461 -> 22 [ label="0" ];
|
||||
462 -> 23 [ label="0" ];
|
||||
201 -> 24 [ label="1" ];
|
||||
197 -> 25 [ label="1" ];
|
||||
470 -> 26 [ label="0" ];
|
||||
105 -> 27 [ label="0" ];
|
||||
106 -> 28 [ label="0" ];
|
||||
302 -> 29 [ label="1" ];
|
||||
468 -> 30 [ label="0" ];
|
||||
305 -> 31 [ label="1" ];
|
||||
444 -> 32 [ label="0" ];
|
||||
445 -> 33 [ label="0" ];
|
||||
441 -> 34 [ label="0" ];
|
||||
442 -> 35 [ label="0" ];
|
||||
56 -> 36 [ label="0" ];
|
||||
57 -> 37 [ label="0" ];
|
||||
466 -> 38 [ label="0" ];
|
||||
418 -> 39 [ label="0" ];
|
||||
419 -> 40 [ label="0" ];
|
||||
420 -> 41 [ label="0" ];
|
||||
421 -> 42 [ label="0" ];
|
||||
423 -> 43 [ label="0" ];
|
||||
424 -> 44 [ label="0" ];
|
||||
4 -> 45 [ label="0" ];
|
||||
9 -> 46 [ label="0" ];
|
||||
454 -> 47 [ label="0" ];
|
||||
6 -> 48 [ label="0" ];
|
||||
169 -> 49 [ label="1" ];
|
||||
455 -> 50 [ label="0" ];
|
||||
97 -> 51 [ label="0" ];
|
||||
456 -> 52 [ label="0" ];
|
||||
457 -> 53 [ label="0" ];
|
||||
11 -> 54 [ label="0" ];
|
||||
12 -> 55 [ label="0" ];
|
||||
127 -> 56 [ label="0" ];
|
||||
127 -> 57 [ label="1" ];
|
||||
101 -> 58 [ label="0" ];
|
||||
103 -> 59 [ label="0" ];
|
||||
372 -> 60 [ label="0" ];
|
||||
231 -> 61 [ label="1" ];
|
||||
376 -> 62 [ label="0" ];
|
||||
232 -> 63 [ label="1" ];
|
||||
19 -> 64 [ label="0" ];
|
||||
52 -> 65 [ label="0" ];
|
||||
53 -> 66 [ label="0" ];
|
||||
95 -> 67 [ label="0" ];
|
||||
20 -> 68 [ label="0" ];
|
||||
377 -> 69 [ label="0" ];
|
||||
94 -> 70 [ label="0" ];
|
||||
399 -> 71 [ label="0" ];
|
||||
23 -> 72 [ label="0" ];
|
||||
24 -> 73 [ label="0" ];
|
||||
2 -> 74 [ label="0" ];
|
||||
25 -> 75 [ label="0" ];
|
||||
3 -> 76 [ label="0" ];
|
||||
30 -> 77 [ label="0" ];
|
||||
26 -> 78 [ label="0" ];
|
||||
22 -> 79 [ label="0" ];
|
||||
76 -> 80 [ label="1" ];
|
||||
155 -> 81 [ label="0" ];
|
||||
392 -> 82 [ label="0" ];
|
||||
74 -> 83 [ label="1" ];
|
||||
156 -> 84 [ label="0" ];
|
||||
388 -> 85 [ label="0" ];
|
||||
363 -> 86 [ label="1" ];
|
||||
386 -> 87 [ label="0" ];
|
||||
360 -> 88 [ label="1" ];
|
||||
400 -> 89 [ label="0" ];
|
||||
162 -> 90 [ label="0" ];
|
||||
159 -> 91 [ label="0" ];
|
||||
163 -> 92 [ label="0" ];
|
||||
164 -> 93 [ label="0" ];
|
||||
165 -> 94 [ label="0" ];
|
||||
166 -> 95 [ label="0" ];
|
||||
408 -> 96 [ label="0" ];
|
||||
451 -> 97 [ label="1" ];
|
||||
55 -> 98 [ label="0" ];
|
||||
1 -> 99 [ label="0" ];
|
||||
220 -> 100 [ label="1" ];
|
||||
43 -> 101 [ label="0" ];
|
||||
44 -> 102 [ label="0" ];
|
||||
41 -> 103 [ label="0" ];
|
||||
42 -> 104 [ label="0" ];
|
||||
62 -> 105 [ label="0" ];
|
||||
60 -> 106 [ label="0" ];
|
||||
63 -> 107 [ label="0" ];
|
||||
61 -> 108 [ label="0" ];
|
||||
32 -> 109 [ label="0" ];
|
||||
34 -> 110 [ label="0" ];
|
||||
64 -> 111 [ label="0" ];
|
||||
195 -> 112 [ label="0" ];
|
||||
267 -> 113 [ label="1" ];
|
||||
68 -> 114 [ label="0" ];
|
||||
266 -> 115 [ label="1" ];
|
||||
438 -> 116 [ label="1" ];
|
||||
194 -> 117 [ label="0" ];
|
||||
72 -> 118 [ label="0" ];
|
||||
131 -> 119 [ label="1" ];
|
||||
196 -> 120 [ label="0" ];
|
||||
78 -> 121 [ label="0" ];
|
||||
202 -> 122 [ label="0" ];
|
||||
77 -> 123 [ label="0" ];
|
||||
79 -> 124 [ label="0" ];
|
||||
207 -> 125 [ label="0" ];
|
||||
203 -> 126 [ label="0" ];
|
||||
147 -> 127 [ label="0" ];
|
||||
144 -> 128 [ label="1" ];
|
||||
142 -> 129 [ label="0" ];
|
||||
144 -> 130 [ label="0" ];
|
||||
145 -> 131 [ label="0" ];
|
||||
413 -> 132 [ color="red" label="1" ];
|
||||
412 -> 133 [ label="1" ];
|
||||
138 -> 134 [ label="1" ];
|
||||
137 -> 135 [ label="1" ];
|
||||
78 -> 136 [ label="1" ];
|
||||
215 -> 137 [ label="0" ];
|
||||
216 -> 138 [ label="0" ];
|
||||
77 -> 139 [ label="1" ];
|
||||
98 -> 140 [ label="0" ];
|
||||
83 -> 141 [ label="0" ];
|
||||
100 -> 142 [ label="1" ];
|
||||
80 -> 143 [ label="0" ];
|
||||
99 -> 144 [ label="0" ];
|
||||
100 -> 145 [ label="0" ];
|
||||
18 -> 146 [ label="1" ];
|
||||
222 -> 147 [ label="0" ];
|
||||
74 -> 148 [ label="0" ];
|
||||
17 -> 149 [ label="1" ];
|
||||
76 -> 150 [ label="0" ];
|
||||
386 -> 151 [ label="1" ];
|
||||
231 -> 152 [ label="0" ];
|
||||
232 -> 153 [ label="0" ];
|
||||
400 -> 154 [ label="1" ];
|
||||
249 -> 155 [ label="1" ];
|
||||
250 -> 156 [ label="1" ];
|
||||
114 -> 157 [ label="0" ];
|
||||
111 -> 158 [ label="0" ];
|
||||
112 -> 159 [ label="0" ];
|
||||
113 -> 160 [ label="0" ];
|
||||
115 -> 161 [ label="0" ];
|
||||
117 -> 162 [ label="0" ];
|
||||
450 -> 163 [ label="1" ];
|
||||
449 -> 164 [ label="1" ];
|
||||
181 -> 165 [ label="0" ];
|
||||
184 -> 166 [ label="0" ];
|
||||
149 -> 167 [ label="1" ];
|
||||
146 -> 168 [ label="1" ];
|
||||
356 -> 169 [ color="red" label="1" ];
|
||||
125 -> 170 [ label="0" ];
|
||||
126 -> 171 [ label="0" ];
|
||||
157 -> 172 [ label="1" ];
|
||||
393 -> 173 [ label="1" ];
|
||||
391 -> 174 [ label="1" ];
|
||||
128 -> 175 [ label="0" ];
|
||||
158 -> 176 [ label="1" ];
|
||||
129 -> 177 [ label="0" ];
|
||||
130 -> 178 [ label="0" ];
|
||||
131 -> 179 [ label="0" ];
|
||||
227 -> 180 [ label="0" ];
|
||||
246 -> 181 [ label="0" ];
|
||||
221 -> 182 [ label="0" ];
|
||||
175 -> 183 [ label="1" ];
|
||||
247 -> 184 [ label="0" ];
|
||||
224 -> 185 [ label="0" ];
|
||||
223 -> 186 [ label="0" ];
|
||||
228 -> 187 [ label="0" ];
|
||||
168 -> 188 [ label="0" ];
|
||||
17 -> 189 [ label="0" ];
|
||||
18 -> 190 [ label="0" ];
|
||||
140 -> 191 [ label="0" ];
|
||||
167 -> 192 [ label="0" ];
|
||||
140 -> 193 [ label="1" ];
|
||||
193 -> 194 [ label="1" ];
|
||||
191 -> 195 [ label="1" ];
|
||||
208 -> 196 [ label="0" ];
|
||||
146 -> 197 [ label="0" ];
|
||||
178 -> 198 [ label="1" ];
|
||||
119 -> 199 [ label="0" ];
|
||||
85 -> 200 [ label="1" ];
|
||||
149 -> 201 [ label="0" ];
|
||||
212 -> 202 [ label="0" ];
|
||||
189 -> 203 [ label="1" ];
|
||||
157 -> 204 [ label="0" ];
|
||||
82 -> 205 [ label="1" ];
|
||||
158 -> 206 [ label="0" ];
|
||||
190 -> 207 [ label="1" ];
|
||||
279 -> 208 [ label="0" ];
|
||||
234 -> 209 [ label="1" ];
|
||||
410 -> 210 [ label="1" ];
|
||||
405 -> 211 [ label="1" ];
|
||||
275 -> 212 [ label="0" ];
|
||||
329 -> 213 [ label="1" ];
|
||||
229 -> 214 [ label="1" ];
|
||||
49 -> 215 [ label="0" ];
|
||||
49 -> 216 [ label="1" ];
|
||||
141 -> 217 [ label="0" ];
|
||||
113 -> 218 [ label="1" ];
|
||||
143 -> 219 [ label="0" ];
|
||||
116 -> 220 [ label="0" ];
|
||||
148 -> 221 [ label="0" ];
|
||||
12 -> 222 [ label="1" ];
|
||||
296 -> 223 [ label="1" ];
|
||||
129 -> 224 [ label="1" ];
|
||||
115 -> 225 [ label="1" ];
|
||||
105 -> 226 [ label="1" ];
|
||||
150 -> 227 [ label="0" ];
|
||||
312 -> 228 [ label="1" ];
|
||||
216 -> 229 [ label="1" ];
|
||||
106 -> 230 [ label="1" ];
|
||||
189 -> 231 [ label="0" ];
|
||||
190 -> 232 [ label="0" ];
|
||||
191 -> 233 [ label="0" ];
|
||||
215 -> 234 [ label="1" ];
|
||||
307 -> 235 [ label="0" ];
|
||||
193 -> 236 [ label="0" ];
|
||||
308 -> 237 [ label="0" ];
|
||||
310 -> 238 [ label="0" ];
|
||||
311 -> 240 [ label="0" ];
|
||||
197 -> 241 [ label="0" ];
|
||||
201 -> 242 [ label="0" ];
|
||||
287 -> 243 [ label="0" ];
|
||||
318 -> 244 [ label="0" ];
|
||||
287 -> 245 [ label="1" ];
|
||||
255 -> 246 [ label="1" ];
|
||||
255 -> 247 [ label="0" ];
|
||||
188 -> 248 [ label="0" ];
|
||||
213 -> 249 [ label="0" ];
|
||||
213 -> 250 [ label="1" ];
|
||||
331 -> 251 [ color="red" label="1" ];
|
||||
331 -> 252 [ label="0" ];
|
||||
192 -> 253 [ label="0" ];
|
||||
334 -> 254 [ label="0" ];
|
||||
147 -> 255 [ label="1" ];
|
||||
63 -> 256 [ label="1" ];
|
||||
61 -> 257 [ label="1" ];
|
||||
229 -> 258 [ label="0" ];
|
||||
183 -> 259 [ label="0" ];
|
||||
185 -> 260 [ label="0" ];
|
||||
448 -> 261 [ label="1" ];
|
||||
198 -> 262 [ label="0" ];
|
||||
199 -> 263 [ label="0" ];
|
||||
446 -> 264 [ label="1" ];
|
||||
350 -> 265 [ label="0" ];
|
||||
236 -> 266 [ label="0" ];
|
||||
233 -> 267 [ label="0" ];
|
||||
234 -> 268 [ label="0" ];
|
||||
235 -> 269 [ label="0" ];
|
||||
237 -> 270 [ label="0" ];
|
||||
173 -> 271 [ label="0" ];
|
||||
174 -> 272 [ label="0" ];
|
||||
239 -> 273 [ color="red" label="0" ];
|
||||
175 -> 274 [ label="0" ];
|
||||
293 -> 275 [ label="0" ];
|
||||
177 -> 276 [ label="0" ];
|
||||
209 -> 277 [ label="0" ];
|
||||
178 -> 278 [ label="0" ];
|
||||
295 -> 279 [ label="0" ];
|
||||
179 -> 280 [ label="0" ];
|
||||
242 -> 281 [ label="0" ];
|
||||
241 -> 282 [ label="0" ];
|
||||
210 -> 283 [ label="0" ];
|
||||
408 -> 284 [ label="1" ];
|
||||
211 -> 285 [ label="0" ];
|
||||
214 -> 286 [ label="0" ];
|
||||
220 -> 287 [ label="0" ];
|
||||
135 -> 288 [ label="0" ];
|
||||
134 -> 289 [ label="0" ];
|
||||
133 -> 290 [ label="0" ];
|
||||
132 -> 291 [ label="0" ];
|
||||
286 -> 292 [ label="0" ];
|
||||
369 -> 293 [ label="0" ];
|
||||
277 -> 294 [ label="0" ];
|
||||
369 -> 295 [ label="1" ];
|
||||
320 -> 296 [ label="1" ];
|
||||
341 -> 297 [ label="0" ];
|
||||
344 -> 298 [ label="0" ];
|
||||
249 -> 299 [ label="0" ];
|
||||
250 -> 300 [ label="0" ];
|
||||
137 -> 301 [ label="0" ];
|
||||
460 -> 302 [ label="1" ];
|
||||
399 -> 303 [ label="1" ];
|
||||
138 -> 304 [ label="0" ];
|
||||
474 -> 305 [ label="1" ];
|
||||
377 -> 306 [ label="1" ];
|
||||
379 -> 307 [ label="0" ];
|
||||
380 -> 308 [ label="0" ];
|
||||
327 -> 309 [ label="0" ];
|
||||
112 -> 310 [ label="1" ];
|
||||
117 -> 311 [ label="1" ];
|
||||
317 -> 312 [ label="1" ];
|
||||
261 -> 313 [ label="0" ];
|
||||
264 -> 314 [ label="0" ];
|
||||
153 -> 315 [ label="0" ];
|
||||
330 -> 316 [ label="0" ];
|
||||
243 -> 317 [ label="0" ];
|
||||
273 -> 318 [ label="1" ];
|
||||
267 -> 319 [ label="0" ];
|
||||
245 -> 320 [ label="0" ];
|
||||
266 -> 321 [ label="0" ];
|
||||
152 -> 322 [ label="0" ];
|
||||
268 -> 323 [ label="0" ];
|
||||
258 -> 324 [ label="0" ];
|
||||
401 -> 325 [ label="0" ];
|
||||
402 -> 326 [ label="0" ];
|
||||
403 -> 327 [ label="0" ];
|
||||
411 -> 328 [ label="0" ];
|
||||
55 -> 329 [ label="1" ];
|
||||
404 -> 330 [ label="0" ];
|
||||
169 -> 331 [ color="red" label="0" ];
|
||||
409 -> 332 [ label="0" ];
|
||||
289 -> 333 [ label="0" ];
|
||||
301 -> 334 [ label="0" ];
|
||||
97 -> 335 [ label="1" ];
|
||||
288 -> 336 [ label="0" ];
|
||||
259 -> 337 [ label="0" ];
|
||||
1 -> 338 [ label="1" ];
|
||||
466 -> 339 [ label="1" ];
|
||||
262 -> 340 [ label="0" ];
|
||||
278 -> 341 [ label="0" ];
|
||||
280 -> 342 [ label="0" ];
|
||||
299 -> 343 [ label="0" ];
|
||||
274 -> 344 [ label="0" ];
|
||||
26 -> 345 [ label="1" ];
|
||||
276 -> 346 [ label="0" ];
|
||||
300 -> 347 [ label="0" ];
|
||||
30 -> 348 [ label="1" ];
|
||||
302 -> 349 [ label="0" ];
|
||||
304 -> 350 [ label="0" ];
|
||||
305 -> 351 [ label="0" ];
|
||||
433 -> 352 [ label="0" ];
|
||||
432 -> 353 [ label="0" ];
|
||||
83 -> 354 [ label="1" ];
|
||||
125 -> 355 [ label="1" ];
|
||||
438 -> 356 [ color="red" label="0" ];
|
||||
80 -> 357 [ label="1" ];
|
||||
374 -> 358 [ label="1" ];
|
||||
126 -> 359 [ label="1" ];
|
||||
447 -> 360 [ label="0" ];
|
||||
321 -> 361 [ label="0" ];
|
||||
371 -> 362 [ label="1" ];
|
||||
440 -> 363 [ label="0" ];
|
||||
323 -> 364 [ label="0" ];
|
||||
319 -> 365 [ label="0" ];
|
||||
324 -> 366 [ label="0" ];
|
||||
321 -> 367 [ label="1" ];
|
||||
319 -> 368 [ label="1" ];
|
||||
378 -> 369 [ label="0" ];
|
||||
384 -> 370 [ label="1" ];
|
||||
382 -> 371 [ label="0" ];
|
||||
452 -> 372 [ label="0" ];
|
||||
384 -> 373 [ label="0" ];
|
||||
385 -> 374 [ label="0" ];
|
||||
329 -> 375 [ label="0" ];
|
||||
453 -> 376 [ label="0" ];
|
||||
460 -> 377 [ label="0" ];
|
||||
222 -> 378 [ label="1" ];
|
||||
19 -> 379 [ label="1" ];
|
||||
20 -> 380 [ label="1" ];
|
||||
312 -> 381 [ label="0" ];
|
||||
339 -> 382 [ label="1" ];
|
||||
296 -> 383 [ label="0" ];
|
||||
338 -> 384 [ label="0" ];
|
||||
339 -> 385 [ label="0" ];
|
||||
203 -> 386 [ label="1" ];
|
||||
343 -> 387 [ label="0" ];
|
||||
376 -> 388 [ label="1" ];
|
||||
251 -> 389 [ label="1" ];
|
||||
347 -> 390 [ label="0" ];
|
||||
317 -> 391 [ label="0" ];
|
||||
372 -> 392 [ label="1" ];
|
||||
320 -> 393 [ label="0" ];
|
||||
345 -> 394 [ label="0" ];
|
||||
132 -> 395 [ color="red" label="1" ];
|
||||
348 -> 396 [ label="0" ];
|
||||
133 -> 397 [ label="1" ];
|
||||
252 -> 398 [ label="1" ];
|
||||
474 -> 399 [ label="0" ];
|
||||
207 -> 400 [ label="1" ];
|
||||
208 -> 401 [ label="1" ];
|
||||
212 -> 402 [ label="1" ];
|
||||
415 -> 403 [ label="0" ];
|
||||
417 -> 404 [ label="0" ];
|
||||
398 -> 405 [ label="1" ];
|
||||
152 -> 406 [ label="1" ];
|
||||
153 -> 407 [ label="1" ];
|
||||
356 -> 408 [ label="0" ];
|
||||
360 -> 409 [ label="0" ];
|
||||
389 -> 410 [ label="1" ];
|
||||
363 -> 411 [ label="0" ];
|
||||
429 -> 412 [ label="1" ];
|
||||
428 -> 413 [ color="red" label="1" ];
|
||||
405 -> 414 [ label="0" ];
|
||||
13 -> 415 [ label="0" ];
|
||||
410 -> 416 [ label="0" ];
|
||||
14 -> 417 [ label="0" ];
|
||||
150 -> 418 [ label="1" ];
|
||||
148 -> 419 [ label="1" ];
|
||||
370 -> 420 [ label="0" ];
|
||||
371 -> 421 [ label="0" ];
|
||||
469 -> 422 [ label="0" ];
|
||||
373 -> 423 [ label="0" ];
|
||||
374 -> 424 [ label="0" ];
|
||||
375 -> 425 [ label="1" ];
|
||||
375 -> 426 [ label="0" ];
|
||||
467 -> 427 [ label="0" ];
|
||||
251 -> 428 [ color="red" label="0" ];
|
||||
252 -> 429 [ label="0" ];
|
||||
387 -> 430 [ label="1" ];
|
||||
390 -> 431 [ label="1" ];
|
||||
449 -> 432 [ label="0" ];
|
||||
450 -> 433 [ label="0" ];
|
||||
289 -> 434 [ label="1" ];
|
||||
288 -> 435 [ label="1" ];
|
||||
387 -> 436 [ label="0" ];
|
||||
357 -> 437 [ label="0" ];
|
||||
273 -> 438 [ color="red" label="0" ];
|
||||
390 -> 439 [ label="0" ];
|
||||
426 -> 440 [ label="1" ];
|
||||
423 -> 441 [ label="1" ];
|
||||
358 -> 442 [ label="0" ];
|
||||
354 -> 443 [ label="0" ];
|
||||
420 -> 444 [ label="1" ];
|
||||
362 -> 445 [ label="0" ];
|
||||
389 -> 446 [ label="0" ];
|
||||
425 -> 447 [ label="1" ];
|
||||
398 -> 448 [ label="0" ];
|
||||
36 -> 449 [ label="0" ];
|
||||
37 -> 450 [ label="0" ];
|
||||
239 -> 451 [ label="1" ];
|
||||
284 -> 452 [ label="0" ];
|
||||
284 -> 453 [ label="1" ];
|
||||
168 -> 454 [ label="1" ];
|
||||
167 -> 455 [ label="1" ];
|
||||
462 -> 456 [ label="1" ];
|
||||
461 -> 457 [ label="1" ];
|
||||
98 -> 458 [ label="1" ];
|
||||
413 -> 459 [ label="0" ];
|
||||
429 -> 460 [ label="0" ];
|
||||
452 -> 461 [ label="1" ];
|
||||
453 -> 462 [ label="1" ];
|
||||
381 -> 463 [ label="0" ];
|
||||
412 -> 464 [ label="0" ];
|
||||
383 -> 465 [ label="0" ];
|
||||
116 -> 466 [ label="1" ];
|
||||
393 -> 467 [ label="0" ];
|
||||
425 -> 468 [ label="0" ];
|
||||
391 -> 469 [ label="0" ];
|
||||
426 -> 470 [ label="0" ];
|
||||
345 -> 471 [ label="1" ];
|
||||
334 -> 472 [ label="1" ];
|
||||
348 -> 473 [ label="1" ];
|
||||
428 -> 474 [ label="0" ];
|
||||
350 -> 475 [ label="1" ];
|
||||
}
|
||||
339
PI5/generated/ej3_f1.dot
Normal file
339
PI5/generated/ej3_f1.dot
Normal file
@@ -0,0 +1,339 @@
|
||||
strict digraph G {
|
||||
1 [ color="black" label="(9,[0, 92],[1, 3, 0, 10, 5])" ];
|
||||
2 [ color="black" label="(9,[0, 97],[6, 0, 3, 10, 5])" ];
|
||||
3 [ color="black" label="(5,[5, 100],[6, 3, 8, 10, 5])" ];
|
||||
4 [ color="black" label="(9,[0, 100],[1, 3, 8, 10, 5])" ];
|
||||
5 [ color="black" label="(8,[0, 97],[6, 0, 8, 10, 0])" ];
|
||||
6 [ color="black" label="(8,[0, 89],[6, 0, 0, 10, 0])" ];
|
||||
7 [ color="black" label="(5,[0, 100],[1, 3, 8, 10, 5])" ];
|
||||
8 [ color="black" label="(9,[5, 100],[6, 3, 8, 10, 5])" ];
|
||||
9 [ color="black" label="(9,[5, 92],[6, 3, 0, 10, 5])" ];
|
||||
10 [ color="black" label="(7,[0, 100],[6, 3, 3, 10, 5])" ];
|
||||
11 [ color="black" label="(6,[0, 100],[6, 3, 8, 10, 0])" ];
|
||||
12 [ color="black" label="(7,[0, 97],[1, 0, 8, 10, 5])" ];
|
||||
13 [ color="black" label="(1,[5, 100],[6, 3, 8, 10, 5])" ];
|
||||
14 [ color="black" label="(9,[0, 89],[0, 3, 8, 0, 5])" ];
|
||||
15 [ color="black" label="(9,[0, 81],[0, 3, 0, 0, 5])" ];
|
||||
16 [ color="black" label="(10,[0, 92],[6, 3, 0, 10, 0])" ];
|
||||
17 [ color="black" label="(9,[0, 90],[6, 3, 3, 0, 5])" ];
|
||||
18 [ color="black" label="(7,[0, 99],[0, 3, 8, 10, 5])" ];
|
||||
19 [ color="black" label="(10,[5, 84],[0, 3, 8, 0, 5])" ];
|
||||
20 [ color="black" label="(7,[5, 97],[6, 0, 8, 10, 5])" ];
|
||||
21 [ color="black" label="(9,[0, 87],[1, 0, 8, 0, 5])" ];
|
||||
22 [ color="black" label="(9,[0, 79],[1, 0, 0, 0, 5])" ];
|
||||
23 [ color="black" label="(9,[0, 96],[0, 0, 8, 10, 5])" ];
|
||||
24 [ color="black" label="(9,[0, 88],[0, 0, 0, 10, 5])" ];
|
||||
25 [ color="black" label="(10,[0, 95],[1, 3, 8, 10, 0])" ];
|
||||
26 [ color="black" label="(10,[5, 91],[0, 0, 8, 10, 5])" ];
|
||||
27 [ color="black" label="(10,[5, 83],[0, 0, 0, 10, 5])" ];
|
||||
28 [ color="black" label="(10,[0, 87],[1, 3, 0, 10, 0])" ];
|
||||
29 [ color="black" label="(10,[0, 92],[6, 0, 3, 10, 0])" ];
|
||||
30 [ color="black" label="(9,[5, 87],[6, 0, 8, 0, 5])" ];
|
||||
31 [ color="black" label="(9,[5, 79],[6, 0, 0, 0, 5])" ];
|
||||
32 [ color="black" label="(10,[5, 95],[6, 3, 8, 10, 0])" ];
|
||||
33 [ color="black" label="(10,[5, 87],[6, 3, 0, 10, 0])" ];
|
||||
34 [ color="black" label="(8,[0, 97],[6, 3, 0, 10, 5])" ];
|
||||
35 [ color="black" label="(6,[0, 94],[0, 3, 3, 10, 5])" ];
|
||||
36 [ color="black" label="(8,[5, 94],[0, 3, 8, 10, 5])" ];
|
||||
37 [ color="black" label="(4,[0, 100],[1, 3, 8, 10, 5])" ];
|
||||
38 [ color="black" label="(8,[5, 86],[0, 3, 0, 10, 5])" ];
|
||||
39 [ color="black" label="(10,[0, 82],[1, 0, 8, 0, 0])" ];
|
||||
40 [ color="black" label="(10,[5, 76],[0, 0, 8, 0, 0])" ];
|
||||
41 [ color="black" label="(10,[0, 74],[1, 0, 0, 0, 0])" ];
|
||||
42 [ color="black" label="(10,[0, 100],[1, 3, 8, 10, 5])" ];
|
||||
43 [ color="black" label="(10,[5, 86],[0, 0, 8, 10, 0])" ];
|
||||
44 [ color="black" label="(10,[5, 78],[0, 0, 0, 10, 0])" ];
|
||||
45 [ color="black" label="(10,[0, 92],[1, 3, 0, 10, 5])" ];
|
||||
46 [ color="black" label="(4,[5, 100],[6, 3, 8, 10, 5])" ];
|
||||
47 [ color="black" label="(7,[0, 97],[6, 0, 8, 10, 0])" ];
|
||||
48 [ color="black" label="(10,[5, 82],[6, 0, 8, 0, 0])" ];
|
||||
49 [ color="black" label="(10,[5, 74],[6, 0, 0, 0, 0])" ];
|
||||
50 [ color="black" label="(8,[0, 97],[6, 0, 3, 10, 5])" ];
|
||||
51 [ color="black" label="(6,[0, 100],[1, 3, 8, 10, 5])" ];
|
||||
52 [ color="black" label="(8,[5, 100],[6, 3, 8, 10, 5])" ];
|
||||
53 [ color="black" label="(8,[5, 92],[6, 3, 0, 10, 5])" ];
|
||||
54 [ color="black" label="(8,[0, 97],[1, 0, 8, 10, 5])" ];
|
||||
55 [ color="black" label="(8,[0, 89],[1, 0, 0, 10, 5])" ];
|
||||
56 [ color="black" label="(10,[0, 86],[0, 0, 8, 0, 5])" ];
|
||||
57 [ color="black" label="(6,[0, 100],[6, 3, 3, 10, 5])" ];
|
||||
58 [ color="black" label="(10,[0, 78],[0, 0, 0, 0, 5])" ];
|
||||
59 [ color="black" label="(5,[0, 100],[6, 3, 8, 10, 0])" ];
|
||||
60 [ color="black" label="(0,[5, 100],[6, 3, 8, 10, 5])" ];
|
||||
61 [ color="black" label="(10,[0, 100],[6, 3, 3, 10, 5])" ];
|
||||
62 [ color="black" label="(9,[0, 100],[6, 3, 8, 10, 0])" ];
|
||||
63 [ color="black" label="(10,[0, 99],[0, 3, 8, 10, 5])" ];
|
||||
64 [ color="black" label="(10,[0, 91],[0, 3, 0, 10, 5])" ];
|
||||
65 [ color="black" label="(9,[5, 76],[0, 3, 0, 0, 5])" ];
|
||||
66 [ color="black" label="(9,[0, 87],[6, 0, 8, 0, 0])" ];
|
||||
67 [ color="black" label="(9,[5, 84],[0, 3, 8, 0, 5])" ];
|
||||
68 [ color="black" label="(6,[0, 99],[0, 3, 8, 10, 5])" ];
|
||||
69 [ color="black" label="(8,[0, 96],[0, 0, 8, 10, 5])" ];
|
||||
70 [ color="black" label="(8,[0, 88],[0, 0, 0, 10, 5])" ];
|
||||
71 [ color="black" label="(10,[0, 87],[1, 0, 8, 0, 5])" ];
|
||||
72 [ color="black" label="(10,[0, 79],[1, 0, 0, 0, 5])" ];
|
||||
73 [ color="black" label="(10,[5, 97],[6, 0, 8, 10, 5])" ];
|
||||
74 [ color="black" label="(10,[5, 89],[6, 0, 0, 10, 5])" ];
|
||||
75 [ color="black" label="(9,[5, 91],[0, 0, 8, 10, 5])" ];
|
||||
76 [ color="black" label="(9,[5, 83],[0, 0, 0, 10, 5])" ];
|
||||
77 [ color="black" label="(10,[5, 90],[6, 3, 8, 0, 5])" ];
|
||||
78 [ color="black" label="(10,[5, 82],[6, 3, 0, 0, 5])" ];
|
||||
79 [ color="black" label="(2,[2, 100],[6, 0, 8, 10, 5])" ];
|
||||
80 [ color="black" label="(10,[0, 84],[0, 3, 8, 0, 0])" ];
|
||||
81 [ color="black" label="(10,[0, 76],[0, 3, 0, 0, 0])" ];
|
||||
82 [ color="black" label="(9,[0, 87],[6, 3, 0, 0, 5])" ];
|
||||
83 [ color="black" label="(1,[0, 100],[1, 3, 8, 10, 5])" ];
|
||||
84 [ color="black" label="(7,[5, 94],[0, 3, 8, 10, 5])" ];
|
||||
85 [ color="black" label="(10,[0, 91],[0, 0, 8, 10, 0])" ];
|
||||
86 [ color="black" label="(10,[0, 83],[0, 0, 0, 10, 0])" ];
|
||||
87 [ color="black" label="(7,[0, 97],[6, 0, 3, 10, 5])" ];
|
||||
88 [ color="black" label="(3,[5, 100],[6, 3, 8, 10, 5])" ];
|
||||
89 [ color="black" label="(7,[5, 100],[6, 3, 8, 10, 5])" ];
|
||||
90 [ color="black" label="(7,[0, 100],[1, 3, 8, 10, 5])" ];
|
||||
91 [ color="black" label="(8,[0, 100],[6, 3, 8, 10, 0])" ];
|
||||
92 [ color="black" label="(8,[0, 92],[6, 3, 0, 10, 0])" ];
|
||||
93 [ color="black" label="(9,[0, 97],[1, 0, 8, 10, 5])" ];
|
||||
94 [ color="black" label="(9,[0, 89],[1, 0, 0, 10, 5])" ];
|
||||
95 [ color="black" label="(9,[0, 86],[0, 0, 8, 0, 5])" ];
|
||||
96 [ color="black" label="(9,[0, 78],[0, 0, 0, 0, 5])" ];
|
||||
97 [ color="black" label="(5,[0, 100],[6, 3, 3, 10, 5])" ];
|
||||
98 [ color="black" label="(9,[0, 100],[6, 3, 3, 10, 5])" ];
|
||||
99 [ color="black" label="(9,[0, 99],[0, 3, 8, 10, 5])" ];
|
||||
100 [ color="black" label="(9,[0, 91],[0, 3, 0, 10, 5])" ];
|
||||
101 [ color="black" label="(9,[0, 87],[6, 0, 3, 0, 5])" ];
|
||||
102 [ color="black" label="(9,[0, 82],[1, 3, 0, 0, 5])" ];
|
||||
103 [ color="black" label="(10,[5, 81],[0, 0, 8, 0, 5])" ];
|
||||
104 [ color="black" label="(9,[0, 90],[1, 3, 8, 0, 5])" ];
|
||||
105 [ color="black" label="(7,[0, 96],[0, 0, 8, 10, 5])" ];
|
||||
106 [ color="black" label="(9,[5, 97],[6, 0, 8, 10, 5])" ];
|
||||
107 [ color="black" label="(9,[5, 89],[6, 0, 0, 10, 5])" ];
|
||||
108 [ color="black" label="(8,[0, 94],[6, 0, 0, 10, 5])" ];
|
||||
109 [ color="black" label="(8,[5, 91],[0, 0, 8, 10, 5])" ];
|
||||
110 [ color="black" label="(8,[5, 83],[0, 0, 0, 10, 5])" ];
|
||||
111 [ color="black" label="(10,[0, 92],[1, 0, 8, 10, 0])" ];
|
||||
112 [ color="black" label="(10,[0, 84],[1, 0, 0, 10, 0])" ];
|
||||
113 [ color="black" label="(9,[5, 90],[6, 3, 8, 0, 5])" ];
|
||||
114 [ color="black" label="(9,[5, 82],[6, 3, 0, 0, 5])" ];
|
||||
115 [ color="black" label="(10,[0, 95],[6, 3, 3, 10, 0])" ];
|
||||
116 [ color="black" label="(10,[0, 97],[6, 3, 0, 10, 5])" ];
|
||||
117 [ color="black" label="(10,[5, 79],[0, 3, 8, 0, 0])" ];
|
||||
118 [ color="black" label="(4,[0, 100],[6, 3, 3, 10, 5])" ];
|
||||
119 [ color="black" label="(10,[5, 94],[0, 3, 8, 10, 5])" ];
|
||||
120 [ color="black" label="(2,[0, 100],[1, 3, 8, 10, 5])" ];
|
||||
121 [ color="black" label="(10,[5, 86],[0, 3, 0, 10, 5])" ];
|
||||
122 [ color="black" label="(10,[0, 85],[1, 3, 8, 0, 0])" ];
|
||||
123 [ color="black" label="(6,[5, 94],[0, 3, 8, 10, 5])" ];
|
||||
124 [ color="black" label="(10,[0, 77],[1, 3, 0, 0, 0])" ];
|
||||
125 [ color="black" label="(10,[5, 92],[6, 0, 8, 10, 0])" ];
|
||||
126 [ color="black" label="(10,[5, 84],[6, 0, 0, 10, 0])" ];
|
||||
127 [ color="black" label="(6,[5, 100],[6, 3, 8, 10, 5])" ];
|
||||
128 [ color="black" label="(9,[0, 97],[6, 0, 8, 10, 0])" ];
|
||||
129 [ color="black" label="(10,[0, 97],[6, 0, 3, 10, 5])" ];
|
||||
130 [ color="black" label="(10,[5, 100],[6, 3, 8, 10, 5])" ];
|
||||
131 [ color="black" label="(10,[5, 92],[6, 3, 0, 10, 5])" ];
|
||||
132 [ color="black" label="(8,[0, 100],[1, 3, 8, 10, 5])" ];
|
||||
133 [ color="black" label="(8,[0, 92],[1, 3, 0, 10, 5])" ];
|
||||
134 [ color="black" label="(10,[0, 97],[1, 0, 8, 10, 5])" ];
|
||||
135 [ color="black" label="(10,[5, 85],[6, 3, 8, 0, 0])" ];
|
||||
136 [ color="black" label="(10,[0, 89],[1, 0, 0, 10, 5])" ];
|
||||
137 [ color="black" label="(10,[5, 77],[6, 3, 0, 0, 0])" ];
|
||||
138 [ color="black" label="(8,[0, 100],[6, 3, 3, 10, 5])" ];
|
||||
139 [ color="black" label="(7,[0, 100],[6, 3, 8, 10, 0])" ];
|
||||
140 [ color="black" label="(2,[5, 100],[6, 3, 8, 10, 5])" ];
|
||||
141 [ color="black" label="(10,[0, 89],[0, 3, 8, 0, 5])" ];
|
||||
142 [ color="black" label="(10,[0, 81],[0, 3, 0, 0, 5])" ];
|
||||
143 [ color="black" label="(9,[0, 90],[6, 3, 8, 0, 0])" ];
|
||||
144 [ color="black" label="(8,[0, 99],[0, 3, 8, 10, 5])" ];
|
||||
145 [ color="black" label="(8,[0, 91],[0, 3, 0, 10, 5])" ];
|
||||
146 [ color="black" label="(10,[5, 89],[0, 3, 8, 10, 0])" ];
|
||||
147 [ color="black" label="(8,[5, 97],[6, 0, 8, 10, 5])" ];
|
||||
148 [ color="black" label="(8,[5, 89],[6, 0, 0, 10, 5])" ];
|
||||
149 [ color="black" label="(10,[5, 81],[0, 3, 0, 10, 0])" ];
|
||||
150 [ color="black" label="(10,[0, 90],[1, 3, 8, 0, 5])" ];
|
||||
151 [ color="black" label="(9,[5, 81],[0, 0, 8, 0, 5])" ];
|
||||
152 [ color="black" label="(10,[0, 82],[1, 3, 0, 0, 5])" ];
|
||||
153 [ color="black" label="(9,[5, 73],[0, 0, 0, 0, 5])" ];
|
||||
154 [ color="black" label="(10,[0, 96],[0, 0, 8, 10, 5])" ];
|
||||
155 [ color="black" label="(10,[0, 88],[0, 0, 0, 10, 5])" ];
|
||||
156 [ color="black" label="(4,[0, 100],[6, 3, 8, 5, 5])" ];
|
||||
157 [ color="black" label="(10,[5, 87],[6, 0, 8, 0, 5])" ];
|
||||
158 [ color="black" label="(10,[5, 79],[6, 0, 0, 0, 5])" ];
|
||||
159 [ color="black" label="(7,[5, 91],[0, 0, 8, 10, 5])" ];
|
||||
160 [ color="black" label="(10,[0, 81],[0, 0, 8, 0, 0])" ];
|
||||
161 [ color="black" label="(10,[0, 73],[0, 0, 0, 0, 0])" ];
|
||||
162 [ color="black" label="(9,[0, 97],[6, 3, 0, 10, 5])" ];
|
||||
163 [ color="black" label="(10,[0, 94],[0, 3, 8, 10, 0])" ];
|
||||
164 [ color="black" label="(10,[0, 86],[0, 3, 0, 10, 0])" ];
|
||||
165 [ color="black" label="(3,[0, 100],[6, 3, 3, 10, 5])" ];
|
||||
166 [ color="black" label="(6,[0, 94],[0, 3, 8, 10, 0])" ];
|
||||
167 [ color="black" label="(9,[5, 86],[0, 3, 0, 10, 5])" ];
|
||||
168 [ color="black" label="(9,[5, 94],[0, 3, 8, 10, 5])" ];
|
||||
169 [ color="black" label="(3,[0, 100],[1, 3, 8, 10, 5])" ];
|
||||
133 -> 1 [ label="0" ];
|
||||
50 -> 2 [ label="0" ];
|
||||
46 -> 3 [ label="0" ];
|
||||
132 -> 4 [ label="0" ];
|
||||
47 -> 5 [ label="0" ];
|
||||
47 -> 6 [ label="8" ];
|
||||
37 -> 7 [ color="red" label="0" ];
|
||||
52 -> 8 [ label="0" ];
|
||||
53 -> 9 [ label="0" ];
|
||||
57 -> 10 [ label="0" ];
|
||||
59 -> 11 [ label="0" ];
|
||||
51 -> 12 [ label="3" ];
|
||||
60 -> 13 [ label="0" ];
|
||||
144 -> 14 [ label="10" ];
|
||||
145 -> 15 [ label="10" ];
|
||||
162 -> 16 [ label="5" ];
|
||||
138 -> 17 [ label="10" ];
|
||||
68 -> 18 [ label="0" ];
|
||||
67 -> 19 [ label="0" ];
|
||||
127 -> 20 [ label="3" ];
|
||||
54 -> 21 [ label="10" ];
|
||||
55 -> 22 [ label="10" ];
|
||||
69 -> 23 [ label="0" ];
|
||||
70 -> 24 [ label="0" ];
|
||||
4 -> 25 [ label="5" ];
|
||||
75 -> 26 [ label="0" ];
|
||||
76 -> 27 [ label="0" ];
|
||||
1 -> 28 [ label="5" ];
|
||||
2 -> 29 [ label="5" ];
|
||||
147 -> 30 [ label="10" ];
|
||||
148 -> 31 [ label="10" ];
|
||||
8 -> 32 [ label="5" ];
|
||||
9 -> 33 [ label="5" ];
|
||||
10 -> 34 [ label="3" ];
|
||||
97 -> 35 [ label="6" ];
|
||||
84 -> 36 [ label="0" ];
|
||||
169 -> 37 [ color="red" label="0" ];
|
||||
84 -> 38 [ label="8" ];
|
||||
21 -> 39 [ label="5" ];
|
||||
151 -> 40 [ label="5" ];
|
||||
22 -> 41 [ label="5" ];
|
||||
4 -> 42 [ label="0" ];
|
||||
75 -> 43 [ label="5" ];
|
||||
76 -> 44 [ label="5" ];
|
||||
1 -> 45 [ label="0" ];
|
||||
88 -> 46 [ label="0" ];
|
||||
11 -> 47 [ label="3" ];
|
||||
30 -> 48 [ label="5" ];
|
||||
31 -> 49 [ label="5" ];
|
||||
87 -> 50 [ label="0" ];
|
||||
7 -> 51 [ label="0" ];
|
||||
89 -> 52 [ label="0" ];
|
||||
89 -> 53 [ label="8" ];
|
||||
12 -> 54 [ label="0" ];
|
||||
12 -> 55 [ label="8" ];
|
||||
95 -> 56 [ label="0" ];
|
||||
97 -> 57 [ label="0" ];
|
||||
96 -> 58 [ label="0" ];
|
||||
46 -> 59 [ label="5" ];
|
||||
98 -> 61 [ label="0" ];
|
||||
91 -> 62 [ label="0" ];
|
||||
99 -> 63 [ label="0" ];
|
||||
100 -> 64 [ label="0" ];
|
||||
38 -> 65 [ label="10" ];
|
||||
5 -> 66 [ label="10" ];
|
||||
36 -> 67 [ label="10" ];
|
||||
7 -> 68 [ color="red" label="1" ];
|
||||
105 -> 69 [ label="0" ];
|
||||
105 -> 70 [ color="red" label="8" ];
|
||||
21 -> 71 [ label="0" ];
|
||||
22 -> 72 [ label="0" ];
|
||||
106 -> 73 [ label="0" ];
|
||||
107 -> 74 [ label="0" ];
|
||||
109 -> 75 [ label="0" ];
|
||||
110 -> 76 [ label="0" ];
|
||||
113 -> 77 [ label="0" ];
|
||||
114 -> 78 [ label="0" ];
|
||||
13 -> 79 [ label="3" ];
|
||||
14 -> 80 [ label="5" ];
|
||||
15 -> 81 [ label="5" ];
|
||||
34 -> 82 [ label="10" ];
|
||||
60 -> 83 [ color="red" label="5" ];
|
||||
123 -> 84 [ label="0" ];
|
||||
23 -> 85 [ label="5" ];
|
||||
24 -> 86 [ label="5" ];
|
||||
57 -> 87 [ label="3" ];
|
||||
140 -> 88 [ label="0" ];
|
||||
127 -> 89 [ label="0" ];
|
||||
51 -> 90 [ label="0" ];
|
||||
139 -> 91 [ label="0" ];
|
||||
139 -> 92 [ label="8" ];
|
||||
54 -> 93 [ label="0" ];
|
||||
55 -> 94 [ label="0" ];
|
||||
69 -> 95 [ label="10" ];
|
||||
70 -> 96 [ color="red" label="10" ];
|
||||
118 -> 97 [ label="0" ];
|
||||
138 -> 98 [ label="0" ];
|
||||
144 -> 99 [ label="0" ];
|
||||
145 -> 100 [ label="0" ];
|
||||
50 -> 101 [ label="10" ];
|
||||
133 -> 102 [ label="10" ];
|
||||
151 -> 103 [ label="0" ];
|
||||
132 -> 104 [ label="10" ];
|
||||
68 -> 105 [ color="red" label="3" ];
|
||||
147 -> 106 [ label="0" ];
|
||||
148 -> 107 [ label="0" ];
|
||||
87 -> 108 [ label="3" ];
|
||||
159 -> 109 [ label="0" ];
|
||||
159 -> 110 [ label="8" ];
|
||||
93 -> 111 [ label="5" ];
|
||||
94 -> 112 [ label="5" ];
|
||||
52 -> 113 [ label="10" ];
|
||||
53 -> 114 [ label="10" ];
|
||||
98 -> 115 [ label="5" ];
|
||||
162 -> 116 [ label="0" ];
|
||||
67 -> 117 [ label="5" ];
|
||||
165 -> 118 [ label="0" ];
|
||||
168 -> 119 [ label="0" ];
|
||||
83 -> 120 [ color="red" label="0" ];
|
||||
167 -> 121 [ label="0" ];
|
||||
104 -> 122 [ label="5" ];
|
||||
3 -> 123 [ label="6" ];
|
||||
102 -> 124 [ label="5" ];
|
||||
106 -> 125 [ label="5" ];
|
||||
107 -> 126 [ label="5" ];
|
||||
3 -> 127 [ label="0" ];
|
||||
5 -> 128 [ label="0" ];
|
||||
2 -> 129 [ label="0" ];
|
||||
8 -> 130 [ label="0" ];
|
||||
9 -> 131 [ label="0" ];
|
||||
90 -> 132 [ label="0" ];
|
||||
90 -> 133 [ label="8" ];
|
||||
93 -> 134 [ label="0" ];
|
||||
113 -> 135 [ label="5" ];
|
||||
94 -> 136 [ label="0" ];
|
||||
114 -> 137 [ label="5" ];
|
||||
10 -> 138 [ label="0" ];
|
||||
11 -> 139 [ label="0" ];
|
||||
13 -> 140 [ label="0" ];
|
||||
14 -> 141 [ label="0" ];
|
||||
15 -> 142 [ label="0" ];
|
||||
91 -> 143 [ label="10" ];
|
||||
18 -> 144 [ label="0" ];
|
||||
18 -> 145 [ label="8" ];
|
||||
168 -> 146 [ label="5" ];
|
||||
20 -> 147 [ label="0" ];
|
||||
20 -> 148 [ label="8" ];
|
||||
167 -> 149 [ label="5" ];
|
||||
104 -> 150 [ label="0" ];
|
||||
109 -> 151 [ label="10" ];
|
||||
102 -> 152 [ label="0" ];
|
||||
110 -> 153 [ label="10" ];
|
||||
23 -> 154 [ label="0" ];
|
||||
24 -> 155 [ label="0" ];
|
||||
88 -> 156 [ label="5" ];
|
||||
30 -> 157 [ label="0" ];
|
||||
31 -> 158 [ label="0" ];
|
||||
123 -> 159 [ label="3" ];
|
||||
95 -> 160 [ label="5" ];
|
||||
96 -> 161 [ color="red" label="5" ];
|
||||
34 -> 162 [ label="0" ];
|
||||
99 -> 163 [ label="5" ];
|
||||
100 -> 164 [ label="5" ];
|
||||
140 -> 165 [ label="5" ];
|
||||
59 -> 166 [ label="6" ];
|
||||
38 -> 167 [ label="0" ];
|
||||
36 -> 168 [ label="0" ];
|
||||
120 -> 169 [ color="red" label="0" ];
|
||||
}
|
||||
4967
PI5/generated/ej3_f2.dot
Normal file
4967
PI5/generated/ej3_f2.dot
Normal file
File diff suppressed because it is too large
Load Diff
460313
PI5/generated/ej3_f3.dot
Normal file
460313
PI5/generated/ej3_f3.dot
Normal file
File diff suppressed because it is too large
Load Diff
23
PI5/generated/ej4_f1.dot
Normal file
23
PI5/generated/ej4_f1.dot
Normal file
@@ -0,0 +1,23 @@
|
||||
strict digraph G {
|
||||
1 [ color="black" label="(4,[4, 5],6)" ];
|
||||
2 [ color="black" label="(1,[1, 2, 3, 4, 5],0)" ];
|
||||
3 [ color="black" label="(1,[0, 2, 3, 4, 5],1)" ];
|
||||
4 [ color="black" label="(5,[5],4)" ];
|
||||
5 [ color="black" label="(1,[0, 1, 3, 4, 5],2)" ];
|
||||
6 [ color="black" label="(0,[0, 1, 2, 3, 4, 5],6)" ];
|
||||
7 [ color="black" label="(3,[2, 4, 5],0)" ];
|
||||
8 [ color="black" label="(2,[1, 3, 4, 5],6)" ];
|
||||
9 [ color="black" label="(3,[0, 4, 5],2)" ];
|
||||
10 [ color="black" label="(6,[],6)" ];
|
||||
11 [ color="black" label="(2,[0, 2, 4, 5],6)" ];
|
||||
7 -> 1 [ color="red" label="2" ];
|
||||
6 -> 2 [ label="0" ];
|
||||
6 -> 3 [ color="red" label="1" ];
|
||||
1 -> 4 [ color="red" label="4" ];
|
||||
6 -> 5 [ label="2" ];
|
||||
11 -> 7 [ color="red" label="0" ];
|
||||
2 -> 8 [ label="2" ];
|
||||
11 -> 9 [ label="2" ];
|
||||
4 -> 10 [ color="red" label="5" ];
|
||||
3 -> 11 [ color="red" label="3" ];
|
||||
}
|
||||
47
PI5/generated/ej4_f2.dot
Normal file
47
PI5/generated/ej4_f2.dot
Normal file
@@ -0,0 +1,47 @@
|
||||
strict digraph G {
|
||||
1 [ color="black" label="(4,[0, 2, 4, 5],8)" ];
|
||||
2 [ color="black" label="(7,[5],0)" ];
|
||||
3 [ color="black" label="(1,[1, 2, 3, 4, 5, 6, 7],0)" ];
|
||||
4 [ color="black" label="(6,[1, 7],8)" ];
|
||||
5 [ color="black" label="(1,[0, 2, 3, 4, 5, 6, 7],1)" ];
|
||||
6 [ color="black" label="(1,[0, 1, 3, 4, 5, 6, 7],2)" ];
|
||||
7 [ color="black" label="(6,[0, 5],8)" ];
|
||||
8 [ color="black" label="(1,[0, 1, 2, 4, 5, 6, 7],3)" ];
|
||||
9 [ color="black" label="(0,[0, 1, 2, 3, 4, 5, 6, 7],8)" ];
|
||||
10 [ color="black" label="(2,[1, 3, 4, 5, 6, 7],8)" ];
|
||||
11 [ color="black" label="(3,[1, 2, 4, 5, 7],0)" ];
|
||||
12 [ color="black" label="(8,[],8)" ];
|
||||
13 [ color="black" label="(2,[0, 2, 4, 5, 6, 7],8)" ];
|
||||
14 [ color="black" label="(3,[0, 2, 4, 5, 7],1)" ];
|
||||
15 [ color="black" label="(2,[0, 1, 3, 5, 6, 7],8)" ];
|
||||
16 [ color="black" label="(3,[0, 1, 4, 5, 7],2)" ];
|
||||
17 [ color="black" label="(2,[0, 2, 3, 4, 5, 7],8)" ];
|
||||
18 [ color="black" label="(2,[0, 1, 2, 4, 5, 7],8)" ];
|
||||
19 [ color="black" label="(5,[1, 5, 7],0)" ];
|
||||
20 [ color="black" label="(5,[0, 5, 7],1)" ];
|
||||
21 [ color="black" label="(4,[1, 4, 5, 7],8)" ];
|
||||
22 [ color="black" label="(4,[1, 2, 4, 7],8)" ];
|
||||
23 [ color="black" label="(4,[0, 1, 5, 7],8)" ];
|
||||
14 -> 1 [ label="7" ];
|
||||
7 -> 2 [ color="red" label="0" ];
|
||||
9 -> 3 [ label="0" ];
|
||||
19 -> 4 [ label="5" ];
|
||||
9 -> 5 [ label="1" ];
|
||||
9 -> 6 [ label="2" ];
|
||||
20 -> 7 [ color="red" label="7" ];
|
||||
9 -> 8 [ color="red" label="3" ];
|
||||
6 -> 10 [ label="0" ];
|
||||
18 -> 11 [ label="0" ];
|
||||
2 -> 12 [ color="red" label="5" ];
|
||||
8 -> 13 [ label="1" ];
|
||||
18 -> 14 [ label="1" ];
|
||||
6 -> 15 [ label="4" ];
|
||||
18 -> 16 [ color="red" label="2" ];
|
||||
5 -> 17 [ label="6" ];
|
||||
8 -> 18 [ color="red" label="6" ];
|
||||
23 -> 19 [ label="0" ];
|
||||
23 -> 20 [ color="red" label="1" ];
|
||||
16 -> 21 [ label="0" ];
|
||||
11 -> 22 [ label="5" ];
|
||||
16 -> 23 [ color="red" label="4" ];
|
||||
}
|
||||
73
PI5/generated/ej4_f3.dot
Normal file
73
PI5/generated/ej4_f3.dot
Normal file
@@ -0,0 +1,73 @@
|
||||
strict digraph G {
|
||||
1 [ color="black" label="(3,[0, 2, 4, 5, 7, 8, 9],1)" ];
|
||||
2 [ color="black" label="(2,[0, 2, 4, 5, 6, 7, 8, 9],10)" ];
|
||||
3 [ color="black" label="(2,[0, 1, 3, 5, 6, 7, 8, 9],10)" ];
|
||||
4 [ color="black" label="(9,[8],7)" ];
|
||||
5 [ color="black" label="(2,[0, 2, 3, 4, 5, 6, 7, 8],10)" ];
|
||||
6 [ color="black" label="(5,[1, 4, 7, 8, 9],2)" ];
|
||||
7 [ color="black" label="(5,[1, 2, 7, 8, 9],4)" ];
|
||||
8 [ color="black" label="(4,[1, 2, 4, 7, 8, 9],10)" ];
|
||||
9 [ color="black" label="(7,[4, 8, 9],2)" ];
|
||||
10 [ color="black" label="(10,[],10)" ];
|
||||
11 [ color="black" label="(1,[0, 2, 3, 4, 5, 6, 7, 8, 9],1)" ];
|
||||
12 [ color="black" label="(7,[4, 7, 8],2)" ];
|
||||
13 [ color="black" label="(6,[1, 7, 8, 9],10)" ];
|
||||
14 [ color="black" label="(7,[2, 8, 9],4)" ];
|
||||
15 [ color="black" label="(6,[2, 4, 8, 9],10)" ];
|
||||
16 [ color="black" label="(1,[0, 1, 2, 4, 5, 6, 7, 8, 9],3)" ];
|
||||
17 [ color="black" label="(7,[2, 7, 8],4)" ];
|
||||
18 [ color="black" label="(6,[2, 4, 7, 8],10)" ];
|
||||
19 [ color="black" label="(3,[1, 2, 4, 5, 7, 8, 9],0)" ];
|
||||
20 [ color="black" label="(8,[8, 9],10)" ];
|
||||
21 [ color="black" label="(3,[0, 1, 4, 5, 7, 8, 9],2)" ];
|
||||
22 [ color="black" label="(8,[7, 8],10)" ];
|
||||
23 [ color="black" label="(2,[1, 2, 3, 4, 6, 7, 8, 9],10)" ];
|
||||
24 [ color="black" label="(2,[0, 2, 3, 4, 5, 7, 8, 9],10)" ];
|
||||
25 [ color="black" label="(3,[0, 1, 2, 5, 7, 8, 9],4)" ];
|
||||
26 [ color="black" label="(2,[0, 1, 2, 4, 5, 7, 8, 9],10)" ];
|
||||
27 [ color="black" label="(5,[2, 4, 7, 8, 9],1)" ];
|
||||
28 [ color="black" label="(9,[9],8)" ];
|
||||
29 [ color="black" label="(2,[0, 1, 2, 4, 5, 6, 7, 9],10)" ];
|
||||
30 [ color="black" label="(4,[0, 1, 5, 7, 8, 9],10)" ];
|
||||
31 [ color="black" label="(4,[0, 2, 4, 5, 8, 9],10)" ];
|
||||
32 [ color="black" label="(1,[1, 2, 3, 4, 5, 6, 7, 8, 9],0)" ];
|
||||
33 [ color="black" label="(4,[0, 2, 4, 5, 7, 8],10)" ];
|
||||
34 [ color="black" label="(1,[0, 1, 3, 4, 5, 6, 7, 8, 9],2)" ];
|
||||
35 [ color="black" label="(1,[0, 1, 2, 3, 5, 6, 7, 8, 9],4)" ];
|
||||
36 [ color="black" label="(0,[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],10)" ];
|
||||
26 -> 1 [ label="1" ];
|
||||
11 -> 2 [ label="3" ];
|
||||
34 -> 3 [ label="4" ];
|
||||
22 -> 4 [ label="7" ];
|
||||
11 -> 5 [ label="9" ];
|
||||
8 -> 6 [ label="2" ];
|
||||
8 -> 7 [ label="4" ];
|
||||
19 -> 8 [ color="red" label="5" ];
|
||||
15 -> 9 [ color="red" label="2" ];
|
||||
28 -> 10 [ color="red" label="9" ];
|
||||
36 -> 11 [ label="1" ];
|
||||
18 -> 12 [ label="2" ];
|
||||
6 -> 13 [ label="4" ];
|
||||
15 -> 14 [ label="4" ];
|
||||
27 -> 15 [ color="red" label="7" ];
|
||||
36 -> 16 [ color="red" label="3" ];
|
||||
18 -> 17 [ label="4" ];
|
||||
27 -> 18 [ label="9" ];
|
||||
26 -> 19 [ color="red" label="0" ];
|
||||
9 -> 20 [ color="red" label="4" ];
|
||||
26 -> 21 [ label="2" ];
|
||||
12 -> 22 [ label="4" ];
|
||||
32 -> 23 [ label="5" ];
|
||||
11 -> 24 [ label="6" ];
|
||||
26 -> 25 [ label="4" ];
|
||||
16 -> 26 [ color="red" label="6" ];
|
||||
8 -> 27 [ color="red" label="1" ];
|
||||
20 -> 28 [ color="red" label="8" ];
|
||||
16 -> 29 [ label="8" ];
|
||||
21 -> 30 [ label="4" ];
|
||||
1 -> 31 [ label="7" ];
|
||||
36 -> 32 [ label="0" ];
|
||||
1 -> 33 [ label="9" ];
|
||||
36 -> 34 [ label="2" ];
|
||||
36 -> 35 [ label="4" ];
|
||||
}
|
||||
107
PI5/src/adda/ej1/TestHuertosGV.java
Normal file
107
PI5/src/adda/ej1/TestHuertosGV.java
Normal file
@@ -0,0 +1,107 @@
|
||||
package adda.ej1;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import org.jgrapht.GraphPath;
|
||||
|
||||
import adda.ej1.common.DatosHuertos;
|
||||
import adda.ej1.common.HuertosEdge;
|
||||
import adda.ej1.common.HuertosHeuristic;
|
||||
import adda.ej1.common.HuertosVertex;
|
||||
import adda.ej1.common.SolucionHuertos;
|
||||
import adda.util.ConsoleColors;
|
||||
import adda.util.Titles;
|
||||
import us.lsi.colors.GraphColors;
|
||||
import us.lsi.colors.GraphColors.Color;
|
||||
import us.lsi.common.String2;
|
||||
import us.lsi.graphs.alg.AStar;
|
||||
import us.lsi.graphs.alg.BT;
|
||||
import us.lsi.graphs.alg.PDR;
|
||||
import us.lsi.graphs.virtual.EGraph;
|
||||
import us.lsi.graphs.virtual.EGraph.Type;
|
||||
import us.lsi.path.EGraphPath.PathType;
|
||||
|
||||
public class TestHuertosGV {
|
||||
public static void main(String[] args) {
|
||||
IntStream.range(1, 4).forEach(i -> {
|
||||
System.out.println(ConsoleColors.BLUE + Titles.getTitle(i)
|
||||
+ ConsoleColors.RESET);
|
||||
DatosHuertos.iniDatos("ficheros/ejercicios/Ejercicio1DatosEntrada"+i+".txt");
|
||||
|
||||
System.out.println(ConsoleColors.RED + "A ESTRELLA"
|
||||
+ String2.linea() + ConsoleColors.RESET);
|
||||
testAstar(i);
|
||||
|
||||
System.out.println(ConsoleColors.RED + "\nBACKTRACKING"
|
||||
+ String2.linea() + ConsoleColors.RESET);
|
||||
testBT(i);
|
||||
|
||||
System.out.println(ConsoleColors.RED + "\nDINAMICA"
|
||||
+ String2.linea() + ConsoleColors.RESET);
|
||||
testPDR(i);
|
||||
});
|
||||
}
|
||||
|
||||
private static void testAstar(int i) {
|
||||
EGraph<HuertosVertex, HuertosEdge> g = EGraph.virtual(
|
||||
HuertosVertex.initial(),
|
||||
HuertosVertex.goal(),
|
||||
PathType.Sum, Type.Max
|
||||
)
|
||||
.heuristic(HuertosHeuristic::heuristic)
|
||||
.edgeWeight(e -> e.weight())
|
||||
.build();
|
||||
|
||||
AStar<HuertosVertex, HuertosEdge,?> alg = AStar.of(g);
|
||||
GraphPath<HuertosVertex, HuertosEdge> gp = alg.search().get();
|
||||
List<Integer> ls = gp.getEdgeList().stream().map(x -> x.action())
|
||||
.collect(Collectors.toList());
|
||||
SolucionHuertos sh = new SolucionHuertos(ls);
|
||||
System.out.println(sh);
|
||||
|
||||
GraphColors.toDot(alg.outGraph(),
|
||||
"generated/ej1_f"+i+".dot",
|
||||
v -> v.toString(),
|
||||
e -> e.action().toString(),
|
||||
v -> GraphColors.color(Color.black),
|
||||
e -> GraphColors.colorIf(Color.red, gp.getEdgeList().contains(e)));
|
||||
}
|
||||
|
||||
private static void testBT(int i) {
|
||||
EGraph<HuertosVertex, HuertosEdge> g = EGraph.virtual(
|
||||
HuertosVertex.initial(),
|
||||
HuertosVertex.goal(),
|
||||
PathType.Sum, Type.Max
|
||||
)
|
||||
.heuristic(HuertosHeuristic::heuristic)
|
||||
.edgeWeight(e -> e.weight())
|
||||
.build();
|
||||
|
||||
BT<HuertosVertex, HuertosEdge,?> alg = BT.of(g);
|
||||
GraphPath<HuertosVertex, HuertosEdge> gp = alg.search().get();
|
||||
List<Integer> ls = gp.getEdgeList().stream().map(x -> x.action())
|
||||
.collect(Collectors.toList());
|
||||
SolucionHuertos sh = new SolucionHuertos(ls);
|
||||
System.out.println(sh);
|
||||
}
|
||||
|
||||
private static void testPDR(int i) {
|
||||
EGraph<HuertosVertex, HuertosEdge> g = EGraph.virtual(
|
||||
HuertosVertex.initial(),
|
||||
HuertosVertex.goal(),
|
||||
PathType.Sum, Type.Max
|
||||
)
|
||||
.heuristic(HuertosHeuristic::heuristic)
|
||||
.edgeWeight(e -> e.weight())
|
||||
.build();
|
||||
|
||||
PDR<HuertosVertex, HuertosEdge,?> alg = PDR.of(g);
|
||||
GraphPath<HuertosVertex, HuertosEdge> gp = alg.search().get();
|
||||
List<Integer> ls = gp.getEdgeList().stream().map(x -> x.action())
|
||||
.collect(Collectors.toList());
|
||||
SolucionHuertos sh = new SolucionHuertos(ls);
|
||||
System.out.println(sh);
|
||||
}
|
||||
}
|
||||
99
PI5/src/adda/ej1/common/DatosHuertos.java
Normal file
99
PI5/src/adda/ej1/common/DatosHuertos.java
Normal file
@@ -0,0 +1,99 @@
|
||||
package adda.ej1.common;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import us.lsi.common.Files2;
|
||||
import us.lsi.common.String2;
|
||||
|
||||
public class DatosHuertos {
|
||||
public static int N;
|
||||
public static int M;
|
||||
private static List<Verdura> verduras;
|
||||
private static List<Huerto> huertos;
|
||||
|
||||
public static record Huerto(String nombre, Integer metrosDisponibles) {
|
||||
public static Huerto of(String s) {
|
||||
s = s.replace(";", "");
|
||||
String[] partes = s.split(": metrosdisponibles=");
|
||||
return new Huerto(partes[0], Integer.valueOf(partes[1]));
|
||||
}
|
||||
}
|
||||
|
||||
public static record Verdura(String nombre, Integer metrosRequeridos, List<String> incompatibles) {
|
||||
public static Verdura of(String s) {
|
||||
s = s.replace(" -> metrosrequeridos=", ";").replace(" incomp=", "");
|
||||
String[] partes = s.split(";");
|
||||
return new Verdura(partes[0], Integer.valueOf(partes[1]), Arrays.asList(partes[2].split(",")));
|
||||
}
|
||||
}
|
||||
|
||||
public static void toConsole() {
|
||||
String2.toConsole(huertos, "Huertos de verdura:");
|
||||
String2.toConsole(verduras, "Verduras:");
|
||||
String2.toConsole(String2.linea());
|
||||
}
|
||||
|
||||
public static void iniDatos(String fichero) {
|
||||
List<String> lineas = Files2.linesFromFile(fichero);
|
||||
Integer aux = lineas.indexOf("// VARIEDADES");
|
||||
List<String> h = lineas.subList(1, aux);
|
||||
List<String> v = lineas.subList(aux + 1, lineas.size());
|
||||
|
||||
huertos = new ArrayList<>();
|
||||
for(String huerto : h) {
|
||||
huertos.add(Huerto.of(huerto));
|
||||
}
|
||||
|
||||
verduras = new ArrayList<>();
|
||||
for(String verdura : v) {
|
||||
verduras.add(Verdura.of(verdura));
|
||||
}
|
||||
|
||||
N = verduras.size();
|
||||
M = huertos.size();
|
||||
// toConsole();
|
||||
}
|
||||
|
||||
public static Verdura getVerdura(Integer i) {
|
||||
return verduras.get(i);
|
||||
}
|
||||
|
||||
public static List<Verdura> getVerduras() {
|
||||
return verduras;
|
||||
}
|
||||
|
||||
public static Huerto getHuerto(Integer j) {
|
||||
return huertos.get(j);
|
||||
}
|
||||
|
||||
public static Integer getN() {
|
||||
return N;
|
||||
}
|
||||
|
||||
public static Integer getM() {
|
||||
return M;
|
||||
}
|
||||
|
||||
public static Integer getMetrosRequeridos(Integer i) {
|
||||
return verduras.get(i).metrosRequeridos();
|
||||
}
|
||||
|
||||
public static Integer getMetrosDisponibles(Integer j) {
|
||||
return huertos.get(j).metrosDisponibles();
|
||||
}
|
||||
|
||||
// Incompatible -> 1; Compatible -> 0
|
||||
public static Integer incompatible(Integer i, Integer k) {
|
||||
return verduras.get(i).incompatibles().contains(verduras.get(k).nombre()) ? 1 : 0;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
iniDatos("ficheros/ej1/Ejercicio1DatosEntrada1.txt");
|
||||
}
|
||||
|
||||
public static List<Huerto> getHuertos() {
|
||||
return huertos;
|
||||
}
|
||||
}
|
||||
15
PI5/src/adda/ej1/common/HuertosEdge.java
Normal file
15
PI5/src/adda/ej1/common/HuertosEdge.java
Normal file
@@ -0,0 +1,15 @@
|
||||
package adda.ej1.common;
|
||||
|
||||
import us.lsi.graphs.virtual.SimpleEdgeAction;
|
||||
|
||||
public record HuertosEdge(
|
||||
HuertosVertex source,
|
||||
HuertosVertex target,
|
||||
Integer action,
|
||||
Double weight)
|
||||
implements SimpleEdgeAction<HuertosVertex, Integer> {
|
||||
|
||||
public static HuertosEdge of(HuertosVertex v1, HuertosVertex v2, Integer action) {
|
||||
return new HuertosEdge(v1, v2, action, action == -1 ? 0. : 1.);
|
||||
}
|
||||
}
|
||||
14
PI5/src/adda/ej1/common/HuertosHeuristic.java
Normal file
14
PI5/src/adda/ej1/common/HuertosHeuristic.java
Normal file
@@ -0,0 +1,14 @@
|
||||
package adda.ej1.common;
|
||||
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public class HuertosHeuristic {
|
||||
|
||||
public static Double heuristic(
|
||||
HuertosVertex v1,
|
||||
Predicate<HuertosVertex> goal,
|
||||
HuertosVertex v2) {
|
||||
// MAXIMO DE VERDURAS PLANTABLES DE v1.index() HASTA DatosHuertos.getN()
|
||||
return (double) DatosHuertos.getN() - v1.index();
|
||||
}
|
||||
}
|
||||
103
PI5/src/adda/ej1/common/HuertosVertex.java
Normal file
103
PI5/src/adda/ej1/common/HuertosVertex.java
Normal file
@@ -0,0 +1,103 @@
|
||||
package adda.ej1.common;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import adda.ej1.common.DatosHuertos.Huerto;
|
||||
import us.lsi.common.Set2;
|
||||
import us.lsi.graphs.virtual.VirtualVertex;
|
||||
|
||||
public record HuertosVertex(Integer index,
|
||||
List<Set<Integer>> reparto, // reparto en cada huerto de las verduras ya plantadas
|
||||
List<Integer> metrosDisponibles) // metros disponibles que quedan en cada huerto
|
||||
implements VirtualVertex<HuertosVertex, HuertosEdge, Integer> {
|
||||
|
||||
public static HuertosVertex of(Integer index,
|
||||
List<Set<Integer>> reparto, List<Integer> metrosDisponibles) {
|
||||
return new HuertosVertex(index,reparto,metrosDisponibles);
|
||||
}
|
||||
|
||||
public static HuertosVertex initial() {
|
||||
return of(0,repartoInicial(),
|
||||
DatosHuertos.getHuertos().stream()
|
||||
.map(Huerto::metrosDisponibles)
|
||||
.toList());
|
||||
}
|
||||
|
||||
private static List<Set<Integer>> repartoInicial() {
|
||||
List<Set<Integer>> res = new ArrayList<>();
|
||||
IntStream.range(0, DatosHuertos.getM())
|
||||
.forEach(i -> {
|
||||
res.add(Set.of());
|
||||
});
|
||||
return res;
|
||||
}
|
||||
|
||||
public static Predicate<HuertosVertex> goal() {
|
||||
return v -> v.index == DatosHuertos.getN();
|
||||
}
|
||||
|
||||
// X_i = en que huerto (X) se planta la verdura i -> X_0 = 1 Verdura0 en huerto 1.
|
||||
// this.index es ese i
|
||||
@Override
|
||||
public List<Integer> actions() {
|
||||
Stream<Integer> actions = IntStream.range(0, DatosHuertos.getM())
|
||||
.boxed()
|
||||
.filter(j -> cabe(this.index, j))
|
||||
.filter(j -> compatible(this.index, j));
|
||||
|
||||
if(this.index < DatosHuertos.getN()) {
|
||||
List<Integer> res = actions.collect(Collectors.toList());
|
||||
res.add(-1);
|
||||
return res;
|
||||
} else {
|
||||
return List.of();
|
||||
}
|
||||
}
|
||||
|
||||
private boolean cabe(Integer i, Integer j) {
|
||||
return this.metrosDisponibles.get(j) >= DatosHuertos.getMetrosRequeridos(i);
|
||||
}
|
||||
|
||||
private boolean compatible(Integer i, Integer j) {
|
||||
return this.reparto.get(j).stream()
|
||||
.noneMatch(k -> DatosHuertos.incompatible(i, k) == 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HuertosVertex neighbor(Integer a) {
|
||||
List<Set<Integer>> nuevoReparto = new ArrayList<>();
|
||||
for(Set<Integer> s : this.reparto) {
|
||||
nuevoReparto.add(Set2.copy(s));
|
||||
}
|
||||
List<Integer> nuevosMetrosDisponibles = new ArrayList<>(this.metrosDisponibles);
|
||||
|
||||
if(a == -1) {
|
||||
return of(this.index + 1, nuevoReparto, nuevosMetrosDisponibles);
|
||||
} else {
|
||||
Set<Integer> nuevoSet = nuevoReparto.get(a);
|
||||
nuevoSet.add(this.index);
|
||||
nuevoReparto.set(a, nuevoSet);
|
||||
|
||||
nuevosMetrosDisponibles.set(a, nuevosMetrosDisponibles.get(a) -
|
||||
DatosHuertos.getMetrosRequeridos(this.index));
|
||||
|
||||
return of(this.index + 1, nuevoReparto, nuevosMetrosDisponibles);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public HuertosEdge edge(Integer a) {
|
||||
return HuertosEdge.of(this, neighbor(a), a);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "("+this.index+","+this.reparto+","+this.metrosDisponibles+")";
|
||||
}
|
||||
}
|
||||
50
PI5/src/adda/ej1/common/SolucionHuertos.java
Normal file
50
PI5/src/adda/ej1/common/SolucionHuertos.java
Normal file
@@ -0,0 +1,50 @@
|
||||
package adda.ej1.common;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import adda.ej1.common.DatosHuertos.Huerto;
|
||||
import adda.ej1.common.DatosHuertos.Verdura;
|
||||
import us.lsi.common.Pair;
|
||||
|
||||
public class SolucionHuertos {
|
||||
private static int index;
|
||||
private static Integer distintas;
|
||||
private static List<Pair<Verdura, Huerto>> solucion;
|
||||
|
||||
public static SolucionHuertos of_range(List<Integer> ls) {
|
||||
return new SolucionHuertos(ls);
|
||||
}
|
||||
|
||||
public SolucionHuertos() {
|
||||
distintas = 0;
|
||||
solucion = new ArrayList<>();
|
||||
}
|
||||
|
||||
public SolucionHuertos(List<Integer> ls) {
|
||||
index = 0;
|
||||
solucion = new ArrayList<>();
|
||||
ls.stream().forEach(hue -> {
|
||||
if(hue != -1) {
|
||||
Verdura v = DatosHuertos.getVerdura(index);
|
||||
Huerto h = DatosHuertos.getHuerto(hue);
|
||||
solucion.add(Pair.of(v, h));
|
||||
}
|
||||
index++;
|
||||
});
|
||||
distintas = (int) solucion.stream()
|
||||
.map(p -> p.first())
|
||||
.distinct().count();
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
String verduras = solucion.stream()
|
||||
.map(p -> p.first().nombre() + ": Huerto " + p.second().nombre().replace("H", ""))
|
||||
.collect(Collectors.joining("\n ", "Reparto de verduras y huerto en el que es plantada " +
|
||||
"cada una de ellas (si procede):\n ", "\n"));
|
||||
return String.format("%sVariedades cultivadas: %d", verduras, distintas);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
89
PI5/src/adda/ej1/common/manual/HuertosPDR.java
Normal file
89
PI5/src/adda/ej1/common/manual/HuertosPDR.java
Normal file
@@ -0,0 +1,89 @@
|
||||
package adda.ej1.common.manual;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import adda.ej1.common.DatosHuertos;
|
||||
import adda.ej1.common.SolucionHuertos;
|
||||
import us.lsi.common.List2;
|
||||
import us.lsi.common.Map2;
|
||||
|
||||
public class HuertosPDR {
|
||||
|
||||
public static record Spm(Integer a, Integer weight) implements Comparable<Spm> {
|
||||
public static Spm of(Integer a, Integer weight) {
|
||||
return new Spm(a, weight);
|
||||
}
|
||||
@Override
|
||||
public int compareTo(Spm sp) {
|
||||
return this.weight.compareTo(sp.weight);
|
||||
}
|
||||
}
|
||||
|
||||
public static Map<HuertosProblem, Spm> mem;
|
||||
public static Integer bestVal = Integer.MIN_VALUE;
|
||||
|
||||
private static SolucionHuertos sol() {
|
||||
List<Integer> actions = List2.empty();
|
||||
HuertosProblem prob = HuertosProblem.initial();
|
||||
Spm spm = mem.get(prob);
|
||||
while(spm != null && spm.a != null) {
|
||||
HuertosProblem old = prob;
|
||||
actions.add(spm.a);
|
||||
prob = old.neighbor(spm.a);
|
||||
spm = mem.get(prob);
|
||||
}
|
||||
return new SolucionHuertos(actions);
|
||||
}
|
||||
|
||||
private static Double cota(Integer ac, HuertosProblem prob, Integer a) {
|
||||
Integer w = a == -1 ? 0 : 1;
|
||||
return ac + w + prob.neighbor(a).heuristic();
|
||||
}
|
||||
|
||||
private static Spm pdr_search(HuertosProblem prob, Integer ac) {
|
||||
Spm res = null;
|
||||
boolean isTerminal = prob.index() == DatosHuertos.getN();
|
||||
boolean isSolution = true;
|
||||
|
||||
if(mem.containsKey(prob)) {
|
||||
res = mem.get(prob);
|
||||
} else if(isTerminal && isSolution) {
|
||||
res = Spm.of(null, 0);
|
||||
mem.put(prob, res);
|
||||
if(ac > bestVal) { //maximizando
|
||||
bestVal = ac;
|
||||
}
|
||||
} else {
|
||||
List<Spm> sols = List2.empty();
|
||||
for(Integer a : prob.actions()) {
|
||||
Double cota = cota(ac, prob, a);
|
||||
if(cota <= bestVal) {
|
||||
continue;
|
||||
}
|
||||
HuertosProblem n = prob.neighbor(a);
|
||||
Integer w = a == -1 ? 0 : 1;
|
||||
|
||||
Spm spm = pdr_search(n, ac + w);
|
||||
if(spm != null) {
|
||||
Spm aux = Spm.of(a, spm.weight() + w);
|
||||
sols.add(aux);
|
||||
}
|
||||
}
|
||||
// maximizando
|
||||
res = sols.stream().max(Comparator.naturalOrder()).orElse(null);
|
||||
if(res != null) {
|
||||
mem.put(prob, res);
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public static SolucionHuertos search() {
|
||||
mem = Map2.empty();
|
||||
bestVal = Integer.MIN_VALUE; // maximizando
|
||||
pdr_search(HuertosProblem.initial(),0);
|
||||
return sol();
|
||||
}
|
||||
}
|
||||
89
PI5/src/adda/ej1/common/manual/HuertosProblem.java
Normal file
89
PI5/src/adda/ej1/common/manual/HuertosProblem.java
Normal file
@@ -0,0 +1,89 @@
|
||||
package adda.ej1.common.manual;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import adda.ej1.common.DatosHuertos;
|
||||
import adda.ej1.common.DatosHuertos.Huerto;
|
||||
import us.lsi.common.Set2;
|
||||
|
||||
public record HuertosProblem(
|
||||
Integer index,
|
||||
List<Set<Integer>> reparto,
|
||||
List<Integer> metrosDisponibles) {
|
||||
|
||||
public static HuertosProblem of(Integer index,
|
||||
List<Set<Integer>> reparto, List<Integer> metrosDisponibles) {
|
||||
return new HuertosProblem(index,reparto,metrosDisponibles);
|
||||
}
|
||||
|
||||
public static HuertosProblem initial() {
|
||||
return of(0,repartoInicial(),
|
||||
DatosHuertos.getHuertos().stream()
|
||||
.map(Huerto::metrosDisponibles)
|
||||
.toList());
|
||||
}
|
||||
|
||||
private static List<Set<Integer>> repartoInicial() {
|
||||
List<Set<Integer>> res = new ArrayList<>();
|
||||
IntStream.range(0, DatosHuertos.getM())
|
||||
.forEach(i -> {
|
||||
res.add(Set.of());
|
||||
});
|
||||
return res;
|
||||
}
|
||||
|
||||
public List<Integer> actions() {
|
||||
Stream<Integer> actions = IntStream.range(0, DatosHuertos.getM())
|
||||
.boxed()
|
||||
.filter(j -> cabe(this.index, j))
|
||||
.filter(j -> compatible(this.index, j));
|
||||
|
||||
if(this.index < DatosHuertos.getN()) {
|
||||
List<Integer> res = actions.collect(Collectors.toList());
|
||||
res.add(-1);
|
||||
return res;
|
||||
} else {
|
||||
return List.of();
|
||||
}
|
||||
}
|
||||
|
||||
private boolean cabe(Integer i, Integer j) {
|
||||
return this.metrosDisponibles.get(j) >= DatosHuertos.getMetrosRequeridos(i);
|
||||
}
|
||||
|
||||
private boolean compatible(Integer i, Integer j) {
|
||||
return this.reparto.get(j).stream()
|
||||
.noneMatch(k -> DatosHuertos.incompatible(i, k) == 1);
|
||||
}
|
||||
|
||||
public HuertosProblem neighbor(Integer a) {
|
||||
List<Set<Integer>> nuevoReparto = new ArrayList<>();
|
||||
for(Set<Integer> s : this.reparto) {
|
||||
nuevoReparto.add(Set2.copy(s));
|
||||
}
|
||||
List<Integer> nuevosMetrosDisponibles = new ArrayList<>(this.metrosDisponibles);
|
||||
|
||||
if(a == -1) {
|
||||
return of(this.index + 1, nuevoReparto, nuevosMetrosDisponibles);
|
||||
} else {
|
||||
Set<Integer> nuevoSet = nuevoReparto.get(a);
|
||||
nuevoSet.add(this.index);
|
||||
nuevoReparto.set(a, nuevoSet);
|
||||
|
||||
nuevosMetrosDisponibles.set(a, nuevosMetrosDisponibles.get(a) -
|
||||
DatosHuertos.getMetrosRequeridos(this.index));
|
||||
|
||||
return of(this.index + 1, nuevoReparto, nuevosMetrosDisponibles);
|
||||
}
|
||||
}
|
||||
|
||||
public Double heuristic() {
|
||||
// MAXIMO DE VERDURAS PLANTABLES DE v1.index() HASTA DatosHuertos.getN()
|
||||
return (double) DatosHuertos.getN() - this.index;
|
||||
}
|
||||
}
|
||||
22
PI5/src/adda/ej1/common/manual/TestPDR.java
Normal file
22
PI5/src/adda/ej1/common/manual/TestPDR.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package adda.ej1.common.manual;
|
||||
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import adda.ej1.common.DatosHuertos;
|
||||
import adda.util.ConsoleColors;
|
||||
import adda.util.Titles;
|
||||
import us.lsi.common.String2;
|
||||
|
||||
public class TestPDR {
|
||||
public static void main(String[] args) {
|
||||
IntStream.range(1, 4).forEach(i -> {
|
||||
System.out.println(ConsoleColors.BLUE + Titles.getTitle(i)
|
||||
+ ConsoleColors.RESET);
|
||||
DatosHuertos.iniDatos("ficheros/ejercicios/Ejercicio1DatosEntrada"+i+".txt");
|
||||
|
||||
System.out.println(ConsoleColors.RED + "\nPDR MANUAL"
|
||||
+ String2.linea() + ConsoleColors.RESET);
|
||||
System.out.println(HuertosPDR.search());
|
||||
});
|
||||
}
|
||||
}
|
||||
110
PI5/src/adda/ej2/TestCesta.java
Normal file
110
PI5/src/adda/ej2/TestCesta.java
Normal file
@@ -0,0 +1,110 @@
|
||||
package adda.ej2;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import org.jgrapht.GraphPath;
|
||||
|
||||
import adda.ej2.common.CestaEdge;
|
||||
import adda.ej2.common.CestaHeuristic;
|
||||
import adda.ej2.common.CestaVertex;
|
||||
import adda.ej2.common.DatosCesta;
|
||||
import adda.ej2.common.SolucionCesta;
|
||||
import adda.util.ConsoleColors;
|
||||
import adda.util.Titles;
|
||||
import us.lsi.colors.GraphColors;
|
||||
import us.lsi.colors.GraphColors.Color;
|
||||
import us.lsi.common.String2;
|
||||
import us.lsi.graphs.alg.AStar;
|
||||
import us.lsi.graphs.alg.BT;
|
||||
import us.lsi.graphs.alg.PDR;
|
||||
import us.lsi.graphs.virtual.EGraph;
|
||||
import us.lsi.graphs.virtual.EGraph.Type;
|
||||
import us.lsi.path.EGraphPath.PathType;
|
||||
|
||||
public class TestCesta {
|
||||
public static void main(String[] args) {
|
||||
IntStream.range(1, 4).forEach(i -> {
|
||||
System.out.println(ConsoleColors.BLUE + Titles.getTitle(i)
|
||||
+ ConsoleColors.RESET);
|
||||
DatosCesta.iniDatos("ficheros/ejercicios/Ejercicio2DatosEntrada"+i+".txt");
|
||||
|
||||
System.out.println(ConsoleColors.RED + "A ESTRELLA"
|
||||
+ String2.linea() + ConsoleColors.RESET);
|
||||
testAstar(i);
|
||||
|
||||
System.out.println(ConsoleColors.RED + "\nBACKTRACKING"
|
||||
+ String2.linea() + ConsoleColors.RESET);
|
||||
testBT(i);
|
||||
|
||||
System.out.println(ConsoleColors.RED + "\nDINAMICA"
|
||||
+ String2.linea() + ConsoleColors.RESET);
|
||||
testPDR(i);
|
||||
});
|
||||
}
|
||||
|
||||
private static void testAstar(int i) {
|
||||
EGraph<CestaVertex, CestaEdge> g = EGraph.virtual(
|
||||
CestaVertex.initial(),
|
||||
CestaVertex.goal(),
|
||||
PathType.Last, Type.Min
|
||||
)
|
||||
.goalHasSolution(CestaVertex.goalHasSolution())
|
||||
.heuristic(CestaHeuristic::heuristic)
|
||||
.edgeWeight(e -> e.weight())
|
||||
.build();
|
||||
|
||||
AStar<CestaVertex, CestaEdge,?> alg = AStar.of(g);
|
||||
GraphPath<CestaVertex, CestaEdge> gp = alg.search().get();
|
||||
List<Integer> ls = gp.getEdgeList().stream().map(x -> x.action())
|
||||
.collect(Collectors.toList());
|
||||
SolucionCesta sh = new SolucionCesta(ls);
|
||||
System.out.println(sh);
|
||||
|
||||
GraphColors.toDot(alg.outGraph(),
|
||||
"generated/ej2_f"+i+".dot",
|
||||
v -> v.toString(),
|
||||
e -> e.action().toString(),
|
||||
v -> GraphColors.color(Color.black),
|
||||
e -> GraphColors.colorIf(Color.red, gp.getEdgeList().contains(e)));
|
||||
}
|
||||
|
||||
private static void testBT(int i) {
|
||||
EGraph<CestaVertex, CestaEdge> g = EGraph.virtual(
|
||||
CestaVertex.initial(),
|
||||
CestaVertex.goal(),
|
||||
PathType.Last, Type.Min
|
||||
)
|
||||
.goalHasSolution(CestaVertex.goalHasSolution())
|
||||
.heuristic(CestaHeuristic::heuristic)
|
||||
.edgeWeight(e -> e.weight())
|
||||
.build();
|
||||
|
||||
BT<CestaVertex, CestaEdge,?> alg = BT.of(g);
|
||||
GraphPath<CestaVertex, CestaEdge> gp = alg.search().get();
|
||||
List<Integer> ls = gp.getEdgeList().stream().map(x -> x.action())
|
||||
.collect(Collectors.toList());
|
||||
SolucionCesta sh = new SolucionCesta(ls);
|
||||
System.out.println(sh);
|
||||
}
|
||||
|
||||
private static void testPDR(int i) {
|
||||
EGraph<CestaVertex, CestaEdge> g = EGraph.virtual(
|
||||
CestaVertex.initial(),
|
||||
CestaVertex.goal(),
|
||||
PathType.Last, Type.Min
|
||||
)
|
||||
.goalHasSolution(CestaVertex.goalHasSolution())
|
||||
.heuristic(CestaHeuristic::heuristic)
|
||||
.edgeWeight(e -> e.weight())
|
||||
.build();
|
||||
|
||||
PDR<CestaVertex, CestaEdge,?> alg = PDR.of(g);
|
||||
GraphPath<CestaVertex, CestaEdge> gp = alg.search().get();
|
||||
List<Integer> ls = gp.getEdgeList().stream().map(x -> x.action())
|
||||
.collect(Collectors.toList());
|
||||
SolucionCesta sh = new SolucionCesta(ls);
|
||||
System.out.println(sh);
|
||||
}
|
||||
}
|
||||
15
PI5/src/adda/ej2/common/CestaEdge.java
Normal file
15
PI5/src/adda/ej2/common/CestaEdge.java
Normal file
@@ -0,0 +1,15 @@
|
||||
package adda.ej2.common;
|
||||
|
||||
import us.lsi.graphs.virtual.SimpleEdgeAction;
|
||||
|
||||
public record CestaEdge(
|
||||
CestaVertex source,
|
||||
CestaVertex target,
|
||||
Integer action,
|
||||
Double weight)
|
||||
implements SimpleEdgeAction<CestaVertex, Integer> {
|
||||
|
||||
public static CestaEdge of(CestaVertex v1, CestaVertex v2, Integer action) {
|
||||
return new CestaEdge(v1, v2, action, action * 1.0);
|
||||
}
|
||||
}
|
||||
14
PI5/src/adda/ej2/common/CestaHeuristic.java
Normal file
14
PI5/src/adda/ej2/common/CestaHeuristic.java
Normal file
@@ -0,0 +1,14 @@
|
||||
package adda.ej2.common;
|
||||
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public class CestaHeuristic {
|
||||
public static Double heuristic(
|
||||
CestaVertex v1,
|
||||
Predicate<CestaVertex> goal,
|
||||
CestaVertex v2) {
|
||||
// MÍNIMO PRECIO DESDE v1.index() HASTA DatosCesta.getN()
|
||||
return Math.abs((double) DatosCesta.getPrecio(v1.index() == 0 ? 0 : v1.index() - 1)
|
||||
- DatosCesta.getPrecio(DatosCesta.getN() - 1));
|
||||
}
|
||||
}
|
||||
134
PI5/src/adda/ej2/common/CestaVertex.java
Normal file
134
PI5/src/adda/ej2/common/CestaVertex.java
Normal file
@@ -0,0 +1,134 @@
|
||||
package adda.ej2.common;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import adda.ej2.common.DatosCesta.Producto;
|
||||
import us.lsi.common.List2;
|
||||
import us.lsi.common.Pair;
|
||||
import us.lsi.common.Set2;
|
||||
import us.lsi.graphs.virtual.VirtualVertex;
|
||||
|
||||
public record CestaVertex(
|
||||
Integer index,
|
||||
Set<Integer> categoriasPorCubrir,
|
||||
List<Integer> presupuestoRestante,
|
||||
Integer acumValoracion)
|
||||
implements VirtualVertex<CestaVertex, CestaEdge, Integer> {
|
||||
|
||||
public static CestaVertex of(
|
||||
Integer index,
|
||||
Set<Integer> categoriasPorCubrir,
|
||||
List<Integer> presupuestoRestante,
|
||||
Integer acumValoracion) {
|
||||
return new CestaVertex(index,categoriasPorCubrir,
|
||||
presupuestoRestante,acumValoracion);
|
||||
}
|
||||
|
||||
public static CestaVertex initial() {
|
||||
return of(0,initValues().first(),initValues().second(),0);
|
||||
}
|
||||
|
||||
private Integer catActual() {
|
||||
return DatosCesta.getCategoria(this.index);
|
||||
}
|
||||
|
||||
private static Pair<Set<Integer>,List<Integer>> initValues() {
|
||||
Set<Integer> cpc = DatosCesta.getProductos().stream()
|
||||
.map(Producto::categoria)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
List<Integer> pr = new ArrayList<>();
|
||||
|
||||
IntStream.range(0, DatosCesta.getM())
|
||||
.forEach(i -> pr.add(DatosCesta.getPresupuesto()));
|
||||
|
||||
return Pair.of(cpc, pr);
|
||||
}
|
||||
|
||||
// index ES EL PRODUCTO i
|
||||
public static Predicate<CestaVertex> goal() {
|
||||
return v -> v.index() == DatosCesta.getN();
|
||||
}
|
||||
|
||||
public static Predicate<CestaVertex> goalHasSolution() {
|
||||
return v -> cubreTodas(v) && !superaPresupuesto(v) && mediaValoracionesSupera(v);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Integer> actions() {
|
||||
// Si se selecciona el producto i -> List.of(1)
|
||||
// Si no se selecciona -> List.of(0)
|
||||
if(this.index < DatosCesta.getN()) {
|
||||
Integer cat = DatosCesta.getCategoria(this.index);
|
||||
if((this.categoriasPorCubrir.size() != 0 &&
|
||||
DatosCesta.getProducto(this.index)
|
||||
.tieneCategoriaEn(this.categoriasPorCubrir)) &&
|
||||
DatosCesta.getPresupuesto() - this.presupuestoRestante.get(cat) >= 0) {
|
||||
return List.of(1,0);
|
||||
} else {
|
||||
return List.of(0);
|
||||
}
|
||||
}
|
||||
return List.of();
|
||||
}
|
||||
|
||||
private static boolean mediaValoracionesSupera(CestaVertex v) {
|
||||
return v.acumValoracion >= 0;
|
||||
}
|
||||
|
||||
private static boolean superaPresupuesto(CestaVertex v) {
|
||||
boolean res = false;
|
||||
for(Integer p : v.presupuestoRestante()) {
|
||||
if(p > DatosCesta.getPresupuesto()) {
|
||||
res = true;
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
private static boolean cubreTodas(CestaVertex v) {
|
||||
return v.categoriasPorCubrir().size() == 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CestaVertex neighbor(Integer a) {
|
||||
if(a == 0) {
|
||||
return of(this.index() + 1, Set2.copy(this.categoriasPorCubrir()),
|
||||
List2.copy(this.presupuestoRestante()), this.acumValoracion());
|
||||
} else {
|
||||
Set<Integer> nuevasCategorias = Set2.copy(this.categoriasPorCubrir());
|
||||
nuevasCategorias.remove(DatosCesta.getCategoria(this.index()));
|
||||
|
||||
List<Integer> nuevoPresupuesto = List2.copy(this.presupuestoRestante());
|
||||
nuevoPresupuesto.set(this.catActual(),
|
||||
nuevoPresupuesto.get(this.catActual()) -
|
||||
DatosCesta.getPrecio(this.index()));
|
||||
|
||||
Integer nuevoAcum = this.acumValoracion();
|
||||
|
||||
return of(this.index() + 1, nuevasCategorias, nuevoPresupuesto,
|
||||
nuevoAcum + DatosCesta.getValoracion(this.index) - 3);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public CestaEdge edge(Integer a) {
|
||||
return CestaEdge.of(this, neighbor(a), a);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "("+this.index+", "+this.categoriasPorCubrir()+", "+
|
||||
this.presupuestoRestante()+", "+this.acumValoracion()+")";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
104
PI5/src/adda/ej2/common/DatosCesta.java
Normal file
104
PI5/src/adda/ej2/common/DatosCesta.java
Normal file
@@ -0,0 +1,104 @@
|
||||
package adda.ej2.common;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import us.lsi.common.Files2;
|
||||
import us.lsi.common.String2;
|
||||
|
||||
public class DatosCesta {
|
||||
public static int N; // productos
|
||||
public static int M; // categorias
|
||||
public static int PRES;
|
||||
private static List<Producto> productos;
|
||||
private static List<Integer> categorias;
|
||||
|
||||
public static record Producto(Integer id, Integer precio, Integer categoria, Integer valoracion) {
|
||||
public static Producto of(String s) {
|
||||
List<Integer> datos = Stream.of(s.split(":"))
|
||||
.map(Integer::valueOf).toList();
|
||||
return new Producto(datos.get(0), datos.get(1), datos.get(2), datos.get(3));
|
||||
}
|
||||
|
||||
public boolean tieneCategoriaEn(Collection<Integer> categorias) {
|
||||
boolean res = false;
|
||||
for(Integer c : categorias) {
|
||||
if(this.categoria == c) {
|
||||
res = true;
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
public static void toConsole() {
|
||||
String2.toConsole("Presupuesto: %d", PRES);
|
||||
String2.toConsole(productos, "Cesta de productos:");
|
||||
String2.toConsole(String2.linea());
|
||||
}
|
||||
|
||||
public static void iniDatos(String fichero) {
|
||||
List<String> lineas = Files2.linesFromFile(fichero);
|
||||
List<String> productosStrings = lineas.subList(2, lineas.size());
|
||||
|
||||
PRES = Integer.valueOf(lineas.get(0).replace("Presupuesto = ", ""));
|
||||
|
||||
productos = new ArrayList<>();
|
||||
for(String producto : productosStrings) {
|
||||
productos.add(Producto.of(producto));
|
||||
}
|
||||
|
||||
categorias = productos.stream().map(Producto::categoria).distinct().toList();
|
||||
|
||||
N = productos.size();
|
||||
M = (int) productos.stream()
|
||||
.map(Producto::categoria)
|
||||
.distinct().count();
|
||||
}
|
||||
|
||||
public static Integer getN() {
|
||||
return N;
|
||||
}
|
||||
|
||||
public static Integer getM() {
|
||||
return M;
|
||||
}
|
||||
|
||||
public static Integer getPrecio(Integer i) {
|
||||
return productos.get(i).precio();
|
||||
}
|
||||
|
||||
public static Integer getValoracion(Integer i) {
|
||||
return productos.get(i).valoracion();
|
||||
}
|
||||
|
||||
public static Integer getCategoria(Integer i) {
|
||||
return productos.get(i).categoria();
|
||||
}
|
||||
|
||||
public static Integer tieneCategoria(Integer i, Integer j) {
|
||||
return productos.get(i).categoria.equals(categorias.get(j)) ? 1 : 0;
|
||||
}
|
||||
|
||||
public static Integer getPresupuesto() {
|
||||
return PRES;
|
||||
}
|
||||
|
||||
public static Producto getProducto(int i) {
|
||||
return productos.get(i);
|
||||
}
|
||||
|
||||
public static List<Integer> getCategorias() {
|
||||
return categorias;
|
||||
}
|
||||
|
||||
public static List<Producto> getProductos() {
|
||||
return productos;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
iniDatos("ficheros/ej2/Ejercicio2DatosEntrada1.txt");
|
||||
}
|
||||
}
|
||||
37
PI5/src/adda/ej2/common/SolucionCesta.java
Normal file
37
PI5/src/adda/ej2/common/SolucionCesta.java
Normal file
@@ -0,0 +1,37 @@
|
||||
package adda.ej2.common;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class SolucionCesta {
|
||||
private static Integer precioTotal;
|
||||
private static List<Integer> solucion;
|
||||
|
||||
public static SolucionCesta of_list(List<Integer> ls) {
|
||||
return new SolucionCesta(ls);
|
||||
}
|
||||
|
||||
public SolucionCesta() {
|
||||
precioTotal = 0;
|
||||
solucion = new ArrayList<>();
|
||||
}
|
||||
|
||||
public SolucionCesta(List<Integer> ls) {
|
||||
solucion = new ArrayList<>();
|
||||
precioTotal = 0;
|
||||
for(int i = 0; i < ls.size(); i++) {
|
||||
if(ls.get(i) > 0) {
|
||||
precioTotal += DatosCesta.getProducto(i).precio();
|
||||
solucion.add(DatosCesta.getProducto(i).id());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
String productos = solucion.stream()
|
||||
.map(x -> "Producto " + x)
|
||||
.collect(Collectors.joining(", ", "Productos elegidos: {", "}\n"));
|
||||
return String.format("%sPrecio total de la cesta: %d", productos, precioTotal);
|
||||
}
|
||||
}
|
||||
91
PI5/src/adda/ej2/common/manual/CestaPDR.java
Normal file
91
PI5/src/adda/ej2/common/manual/CestaPDR.java
Normal file
@@ -0,0 +1,91 @@
|
||||
package adda.ej2.common.manual;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import adda.ej2.common.DatosCesta;
|
||||
import adda.ej2.common.SolucionCesta;
|
||||
import us.lsi.common.List2;
|
||||
import us.lsi.common.Map2;
|
||||
|
||||
public class CestaPDR {
|
||||
|
||||
public static record Spm(Integer a, Integer weight) implements Comparable<Spm> {
|
||||
public static Spm of(Integer a, Integer weight) {
|
||||
return new Spm(a, weight);
|
||||
}
|
||||
@Override
|
||||
public int compareTo(Spm sp) {
|
||||
return this.weight.compareTo(sp.weight);
|
||||
}
|
||||
}
|
||||
|
||||
public static Map<CestaProblem, Spm> mem;
|
||||
public static Integer bestVal = Integer.MAX_VALUE;
|
||||
|
||||
public static SolucionCesta sol() {
|
||||
List<Integer> actions = List2.empty();
|
||||
CestaProblem prob = CestaProblem.initial();
|
||||
Spm spm = mem.get(prob);
|
||||
while(spm != null && spm.a != null) {
|
||||
CestaProblem old = prob;
|
||||
actions.add(spm.a);
|
||||
prob = old.neighbor(spm.a);
|
||||
spm = mem.get(prob);
|
||||
}
|
||||
return new SolucionCesta(actions);
|
||||
}
|
||||
|
||||
public static Double cota(Integer ac, CestaProblem prob, Integer a) {
|
||||
return ac + a + prob.neighbor(a).heuristic();
|
||||
}
|
||||
|
||||
private static Spm pdr_search(CestaProblem prob, int ac, Map<CestaProblem, Spm> mem) {
|
||||
Spm res = null;
|
||||
|
||||
boolean isTerminal = prob.index() == DatosCesta.getN();
|
||||
boolean isSolution = prob.categoriasPorCubrir().isEmpty() &&
|
||||
prob.presupuestoRestante().stream().allMatch(p -> p >= 0) &&
|
||||
prob.acumValoracion() >= 0;
|
||||
|
||||
if(mem.containsKey(prob)) {
|
||||
res = mem.get(prob);
|
||||
} else if(isTerminal && isSolution) {
|
||||
res = Spm.of(null, 0);
|
||||
mem.put(prob, res);
|
||||
if(ac < bestVal) { // minimizando
|
||||
bestVal = ac;
|
||||
}
|
||||
} else {
|
||||
List<Spm> sols = List2.empty();
|
||||
for(Integer a : prob.actions()) {
|
||||
Double cota = cota(ac, prob, a);
|
||||
if(cota > bestVal) {
|
||||
continue;
|
||||
}
|
||||
CestaProblem n = prob.neighbor(a);
|
||||
Integer w = DatosCesta.getPrecio(prob.index()) * a;
|
||||
Spm spm = pdr_search(n, ac + w, mem);
|
||||
if(spm != null) {
|
||||
Spm aux = Spm.of(a, spm.weight() + w);
|
||||
sols.add(aux);
|
||||
}
|
||||
}
|
||||
// minimizando
|
||||
res = sols.stream().min(Comparator.naturalOrder()).orElse(null);
|
||||
if(res != null) {
|
||||
mem.put(prob, res);
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public static SolucionCesta search() {
|
||||
mem = Map2.empty();
|
||||
bestVal = Integer.MAX_VALUE; // minimizando
|
||||
pdr_search(CestaProblem.initial(), 0, mem);
|
||||
return sol();
|
||||
}
|
||||
|
||||
}
|
||||
94
PI5/src/adda/ej2/common/manual/CestaProblem.java
Normal file
94
PI5/src/adda/ej2/common/manual/CestaProblem.java
Normal file
@@ -0,0 +1,94 @@
|
||||
package adda.ej2.common.manual;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import adda.ej2.common.DatosCesta;
|
||||
import adda.ej2.common.DatosCesta.Producto;
|
||||
import us.lsi.common.List2;
|
||||
import us.lsi.common.Pair;
|
||||
import us.lsi.common.Set2;
|
||||
|
||||
public record CestaProblem(
|
||||
Integer index,
|
||||
Set<Integer> categoriasPorCubrir,
|
||||
List<Integer> presupuestoRestante,
|
||||
Integer acumValoracion) {
|
||||
|
||||
public static CestaProblem of(
|
||||
Integer index,
|
||||
Set<Integer> categoriasPorCubrir,
|
||||
List<Integer> presupuestoRestante,
|
||||
Integer acumValoracion) {
|
||||
return new CestaProblem(index,categoriasPorCubrir,
|
||||
presupuestoRestante,acumValoracion);
|
||||
}
|
||||
|
||||
public static CestaProblem initial() {
|
||||
return of(0,initValues().first(),initValues().second(),0);
|
||||
}
|
||||
|
||||
private Integer catActual() {
|
||||
return DatosCesta.getCategoria(this.index);
|
||||
}
|
||||
|
||||
private static Pair<Set<Integer>,List<Integer>> initValues() {
|
||||
Set<Integer> cpc = DatosCesta.getProductos().stream()
|
||||
.map(Producto::categoria)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
List<Integer> pr = new ArrayList<>();
|
||||
|
||||
IntStream.range(0, DatosCesta.getM())
|
||||
.forEach(i -> pr.add(DatosCesta.getPresupuesto()));
|
||||
|
||||
return Pair.of(cpc, pr);
|
||||
}
|
||||
|
||||
public List<Integer> actions() {
|
||||
// Si se selecciona el producto i -> List.of(1)
|
||||
// Si no se selecciona -> List.of(0)
|
||||
if(this.index < DatosCesta.getN()) {
|
||||
Integer cat = DatosCesta.getCategoria(this.index);
|
||||
if((this.categoriasPorCubrir.size() != 0 &&
|
||||
DatosCesta.getProducto(this.index)
|
||||
.tieneCategoriaEn(this.categoriasPorCubrir)) &&
|
||||
DatosCesta.getPresupuesto() - this.presupuestoRestante.get(cat) >= 0) {
|
||||
return List.of(1,0);
|
||||
} else {
|
||||
return List.of(0);
|
||||
}
|
||||
}
|
||||
return List.of();
|
||||
}
|
||||
|
||||
public CestaProblem neighbor(Integer a) {
|
||||
if(a == 0) {
|
||||
return of(this.index() + 1, Set2.copy(this.categoriasPorCubrir()),
|
||||
List2.copy(this.presupuestoRestante()), this.acumValoracion());
|
||||
} else {
|
||||
Set<Integer> nuevasCategorias = Set2.copy(this.categoriasPorCubrir());
|
||||
nuevasCategorias.remove(DatosCesta.getCategoria(this.index()));
|
||||
|
||||
List<Integer> nuevoPresupuesto = List2.copy(this.presupuestoRestante());
|
||||
nuevoPresupuesto.set(this.catActual(),
|
||||
nuevoPresupuesto.get(this.catActual()) -
|
||||
DatosCesta.getPrecio(this.index()));
|
||||
|
||||
Integer nuevoAcum = this.acumValoracion();
|
||||
|
||||
return of(this.index() + 1, nuevasCategorias, nuevoPresupuesto,
|
||||
nuevoAcum + DatosCesta.getValoracion(this.index) - 3);
|
||||
}
|
||||
}
|
||||
|
||||
public Double heuristic() {
|
||||
// MÍNIMO PRECIO DESDE v1.index() HASTA DatosCesta.getN()
|
||||
return Math.abs((double) DatosCesta.getPrecio(this.index() == 0 ? 0 : this.index() - 1)
|
||||
- DatosCesta.getPrecio(DatosCesta.getN() - 1));
|
||||
}
|
||||
|
||||
}
|
||||
22
PI5/src/adda/ej2/common/manual/TestPDR.java
Normal file
22
PI5/src/adda/ej2/common/manual/TestPDR.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package adda.ej2.common.manual;
|
||||
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import adda.ej2.common.DatosCesta;
|
||||
import adda.util.ConsoleColors;
|
||||
import adda.util.Titles;
|
||||
import us.lsi.common.String2;
|
||||
|
||||
public class TestPDR {
|
||||
public static void main(String[] args) {
|
||||
IntStream.range(1, 4).forEach(i -> {
|
||||
System.out.println(ConsoleColors.BLUE + Titles.getTitle(i)
|
||||
+ ConsoleColors.RESET);
|
||||
DatosCesta.iniDatos("ficheros/ejercicios/Ejercicio2DatosEntrada"+i+".txt");
|
||||
|
||||
System.out.println(ConsoleColors.RED + "\nPDR MANUAL"
|
||||
+ String2.linea() + ConsoleColors.RESET);
|
||||
System.out.println(CestaPDR.search());
|
||||
});
|
||||
}
|
||||
}
|
||||
110
PI5/src/adda/ej3/TestProductosTransportes.java
Normal file
110
PI5/src/adda/ej3/TestProductosTransportes.java
Normal file
@@ -0,0 +1,110 @@
|
||||
package adda.ej3;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import org.jgrapht.GraphPath;
|
||||
|
||||
import adda.ej3.common.DatosProductosTransportes;
|
||||
import adda.ej3.common.ProductosTransportesEdge;
|
||||
import adda.ej3.common.ProductosTransportesHeuristic;
|
||||
import adda.ej3.common.ProductosTransportesVertex;
|
||||
import adda.ej3.common.SolucionProductosTransportes;
|
||||
import adda.util.ConsoleColors;
|
||||
import adda.util.Titles;
|
||||
import us.lsi.colors.GraphColors;
|
||||
import us.lsi.colors.GraphColors.Color;
|
||||
import us.lsi.common.String2;
|
||||
import us.lsi.graphs.alg.AStar;
|
||||
import us.lsi.graphs.alg.BT;
|
||||
import us.lsi.graphs.alg.PDR;
|
||||
import us.lsi.graphs.virtual.EGraph;
|
||||
import us.lsi.graphs.virtual.EGraph.Type;
|
||||
import us.lsi.path.EGraphPath.PathType;
|
||||
|
||||
public class TestProductosTransportes {
|
||||
public static void main(String[] args) {
|
||||
IntStream.range(1, 4).forEach(i -> {
|
||||
System.out.println(ConsoleColors.BLUE + Titles.getTitle(i)
|
||||
+ ConsoleColors.RESET);
|
||||
DatosProductosTransportes.iniDatos("ficheros/ejercicios/Ejercicio3DatosEntrada"+i+".txt");
|
||||
|
||||
System.out.println(ConsoleColors.RED + "A ESTRELLA"
|
||||
+ String2.linea() + ConsoleColors.RESET);
|
||||
testAstar(i);
|
||||
|
||||
System.out.println(ConsoleColors.RED + "\nBACKTRACKING"
|
||||
+ String2.linea() + ConsoleColors.RESET);
|
||||
testBT(i);
|
||||
|
||||
System.out.println(ConsoleColors.RED + "\nDINAMICA"
|
||||
+ String2.linea() + ConsoleColors.RESET);
|
||||
testPDR(i);
|
||||
});
|
||||
}
|
||||
|
||||
private static void testAstar(int i) {
|
||||
EGraph<ProductosTransportesVertex, ProductosTransportesEdge> g = EGraph.virtual(
|
||||
ProductosTransportesVertex.initial(),
|
||||
ProductosTransportesVertex.goal(),
|
||||
PathType.Sum, Type.Min
|
||||
)
|
||||
.heuristic(ProductosTransportesHeuristic::heuristic)
|
||||
.goalHasSolution(ProductosTransportesVertex.goalHasSolution())
|
||||
.edgeWeight(e -> e.weight())
|
||||
.build();
|
||||
|
||||
AStar<ProductosTransportesVertex, ProductosTransportesEdge,?> alg = AStar.of(g);
|
||||
GraphPath<ProductosTransportesVertex, ProductosTransportesEdge> gp = alg.search().get();
|
||||
List<Integer> ls = gp.getEdgeList().stream().map(x -> x.action())
|
||||
.collect(Collectors.toList());
|
||||
SolucionProductosTransportes sh = new SolucionProductosTransportes(ls);
|
||||
System.out.println(sh);
|
||||
|
||||
GraphColors.toDot(alg.outGraph(),
|
||||
"generated/ej3_f"+i+".dot",
|
||||
v -> v.toString(),
|
||||
e -> e.action().toString(),
|
||||
v -> GraphColors.color(Color.black),
|
||||
e -> GraphColors.colorIf(Color.red, gp.getEdgeList().contains(e)));
|
||||
}
|
||||
|
||||
private static void testBT(int i) {
|
||||
EGraph<ProductosTransportesVertex, ProductosTransportesEdge> g = EGraph.virtual(
|
||||
ProductosTransportesVertex.initial(),
|
||||
ProductosTransportesVertex.goal(),
|
||||
PathType.Sum, Type.Min
|
||||
)
|
||||
.heuristic(ProductosTransportesHeuristic::heuristic)
|
||||
.goalHasSolution(ProductosTransportesVertex.goalHasSolution())
|
||||
.edgeWeight(e -> e.weight())
|
||||
.build();
|
||||
|
||||
BT<ProductosTransportesVertex, ProductosTransportesEdge,?> alg = BT.of(g);
|
||||
GraphPath<ProductosTransportesVertex, ProductosTransportesEdge> gp = alg.search().get();
|
||||
List<Integer> ls = gp.getEdgeList().stream().map(x -> x.action())
|
||||
.collect(Collectors.toList());
|
||||
SolucionProductosTransportes sh = new SolucionProductosTransportes(ls);
|
||||
System.out.println(sh);
|
||||
}
|
||||
|
||||
private static void testPDR(int i) {
|
||||
EGraph<ProductosTransportesVertex, ProductosTransportesEdge> g = EGraph.virtual(
|
||||
ProductosTransportesVertex.initial(),
|
||||
ProductosTransportesVertex.goal(),
|
||||
PathType.Sum, Type.Min
|
||||
)
|
||||
.heuristic(ProductosTransportesHeuristic::heuristic)
|
||||
.goalHasSolution(ProductosTransportesVertex.goalHasSolution())
|
||||
.edgeWeight(e -> e.weight())
|
||||
.build();
|
||||
|
||||
PDR<ProductosTransportesVertex, ProductosTransportesEdge,?> alg = PDR.of(g);
|
||||
GraphPath<ProductosTransportesVertex, ProductosTransportesEdge> gp = alg.search().get();
|
||||
List<Integer> ls = gp.getEdgeList().stream().map(x -> x.action())
|
||||
.collect(Collectors.toList());
|
||||
SolucionProductosTransportes sh = new SolucionProductosTransportes(ls);
|
||||
System.out.println(sh);
|
||||
}
|
||||
}
|
||||
94
PI5/src/adda/ej3/common/DatosProductosTransportes.java
Normal file
94
PI5/src/adda/ej3/common/DatosProductosTransportes.java
Normal file
@@ -0,0 +1,94 @@
|
||||
package adda.ej3.common;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import us.lsi.common.Files2;
|
||||
import us.lsi.common.String2;
|
||||
|
||||
public class DatosProductosTransportes {
|
||||
public static int N; // productos
|
||||
public static int M; // destinos
|
||||
public static List<Destino> destinos;
|
||||
public static List<Producto> productos;
|
||||
|
||||
public static record Destino(Integer id, Integer demanda) {
|
||||
public static Destino of(String s) {
|
||||
String[] partes = s.replaceAll("D(\\d+): demandaminima=(\\d+);", "$1,$2").split(",");
|
||||
return new Destino(Integer.valueOf(partes[0]), Integer.valueOf(partes[1]));
|
||||
}
|
||||
}
|
||||
|
||||
public static record Producto(Integer id, Integer cantidad, List<Integer> coste) {
|
||||
public static Producto of(String s) {
|
||||
String[] partes = s.replace(" -> uds=", ";").replace(" coste_almacenamiento=", "").split(";");
|
||||
String[] costes = partes[2].replaceAll("\\([0-9]+:", "").replace(")", "").split(",");
|
||||
return new Producto(Integer.valueOf(partes[0].substring(1)), Integer.valueOf(partes[1]),
|
||||
Stream.of(costes).map(Integer::valueOf).collect(Collectors.toList()));
|
||||
}
|
||||
}
|
||||
|
||||
public static void toConsole() {
|
||||
String2.toConsole(destinos, "Destinos posibles:");
|
||||
String2.toConsole(productos, "Productos del distribuidor:");
|
||||
String2.toConsole(String2.linea());
|
||||
}
|
||||
|
||||
public static void iniDatos(String fichero) {
|
||||
List<String> lineas = Files2.linesFromFile(fichero);
|
||||
Integer aux = lineas.indexOf("// PRODUCTOS Id_producto -> unidades=integer;coste_almacenamiento=(destino:coste)");
|
||||
List<String> d = lineas.subList(1, aux);
|
||||
List<String> p = lineas.subList(aux + 1, lineas.size());
|
||||
|
||||
destinos = new ArrayList<>();
|
||||
for(String destino : d) {
|
||||
destinos.add(Destino.of(destino));
|
||||
}
|
||||
|
||||
productos = new ArrayList<>();
|
||||
for(String producto : p) {
|
||||
productos.add(Producto.of(producto));
|
||||
}
|
||||
|
||||
N = productos.size();
|
||||
M = destinos.size();
|
||||
}
|
||||
|
||||
public static Integer getN() {
|
||||
return N;
|
||||
}
|
||||
|
||||
public static Integer getM() {
|
||||
return M;
|
||||
}
|
||||
|
||||
public static Integer getCantidad(Integer i) {
|
||||
return productos.get(i).cantidad();
|
||||
}
|
||||
|
||||
public static Integer getDemanda(Integer j) {
|
||||
return destinos.get(j).demanda();
|
||||
}
|
||||
|
||||
public static Integer getCoste(Integer i, Integer j) {
|
||||
return productos.get(i).coste().get(j);
|
||||
}
|
||||
|
||||
public static Producto getProducto(int i) {
|
||||
return productos.get(i);
|
||||
}
|
||||
|
||||
public static List<Producto> getProductos() {
|
||||
return productos;
|
||||
}
|
||||
|
||||
public static List<Destino> getDestinos() {
|
||||
return destinos;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
iniDatos("ficheros/ej3/Ejercicio3DatosEntrada1.txt");
|
||||
}
|
||||
}
|
||||
20
PI5/src/adda/ej3/common/ProductosTransportesEdge.java
Normal file
20
PI5/src/adda/ej3/common/ProductosTransportesEdge.java
Normal file
@@ -0,0 +1,20 @@
|
||||
package adda.ej3.common;
|
||||
|
||||
import us.lsi.graphs.virtual.SimpleEdgeAction;
|
||||
|
||||
public record ProductosTransportesEdge(
|
||||
ProductosTransportesVertex source,
|
||||
ProductosTransportesVertex target,
|
||||
Integer action,
|
||||
Double weight)
|
||||
implements SimpleEdgeAction<ProductosTransportesVertex, Integer> {
|
||||
|
||||
public static ProductosTransportesEdge of(ProductosTransportesVertex v1,
|
||||
ProductosTransportesVertex v2, Integer action) {
|
||||
int i = v1.z() / DatosProductosTransportes.getM();
|
||||
int j = v1.z() % DatosProductosTransportes.getM();
|
||||
double w = DatosProductosTransportes.getCoste(i, j) * action;
|
||||
return new ProductosTransportesEdge(v1, v2, action, w);
|
||||
}
|
||||
|
||||
}
|
||||
19
PI5/src/adda/ej3/common/ProductosTransportesHeuristic.java
Normal file
19
PI5/src/adda/ej3/common/ProductosTransportesHeuristic.java
Normal file
@@ -0,0 +1,19 @@
|
||||
package adda.ej3.common;
|
||||
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
public class ProductosTransportesHeuristic {
|
||||
public static Double heuristic(ProductosTransportesVertex v1, Predicate<ProductosTransportesVertex> goal,
|
||||
ProductosTransportesVertex v2) {
|
||||
// COSTE MINIMO DE PRODS AUN DEMANDADOS EN [z, n*m)
|
||||
if (v1.demandasRestantes().stream().allMatch(x -> x <= 0))
|
||||
return 0.;
|
||||
Integer ultimoIndice = DatosProductosTransportes.getM() * DatosProductosTransportes.getN();
|
||||
return IntStream.range(v1.z(), ultimoIndice)
|
||||
.filter(i -> v1.demandasRestantes().get(i % DatosProductosTransportes.getM()) > 0)
|
||||
.mapToDouble(i -> DatosProductosTransportes.getCoste(i / DatosProductosTransportes.getM(),
|
||||
i % DatosProductosTransportes.getM()))
|
||||
.min().orElse(Double.MAX_VALUE);
|
||||
}
|
||||
}
|
||||
99
PI5/src/adda/ej3/common/ProductosTransportesVertex.java
Normal file
99
PI5/src/adda/ej3/common/ProductosTransportesVertex.java
Normal file
@@ -0,0 +1,99 @@
|
||||
package adda.ej3.common;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import adda.ej3.common.DatosProductosTransportes.Destino;
|
||||
import adda.ej3.common.DatosProductosTransportes.Producto;
|
||||
import us.lsi.common.List2;
|
||||
import us.lsi.common.Pair;
|
||||
import us.lsi.graphs.virtual.VirtualVertex;
|
||||
|
||||
public record ProductosTransportesVertex(
|
||||
Integer z,
|
||||
List<Integer> unidadesRestantes,
|
||||
List<Integer> demandasRestantes)
|
||||
implements VirtualVertex<ProductosTransportesVertex, ProductosTransportesEdge, Integer>{
|
||||
|
||||
public static ProductosTransportesVertex of(
|
||||
Integer z,
|
||||
List<Integer> unidadesRestantes,
|
||||
List<Integer> demandasRestantes) {
|
||||
return new ProductosTransportesVertex(z,unidadesRestantes,demandasRestantes);
|
||||
}
|
||||
|
||||
public static ProductosTransportesVertex initial() {
|
||||
return of(0, initialValues().first(), initialValues().second());
|
||||
}
|
||||
|
||||
private static Pair<List<Integer>,List<Integer>> initialValues() {
|
||||
List<Integer> ur = DatosProductosTransportes.getProductos().stream()
|
||||
.map(Producto::cantidad).toList();
|
||||
List<Integer> dr = DatosProductosTransportes.getDestinos().stream()
|
||||
.map(Destino::demanda).toList();
|
||||
return Pair.of(ur, dr);
|
||||
}
|
||||
|
||||
// GOAL OK
|
||||
public static Predicate<ProductosTransportesVertex> goal() {
|
||||
return v -> v.z() == DatosProductosTransportes.getN() * DatosProductosTransportes.getM();
|
||||
}
|
||||
|
||||
// GOALHASSOLUTION OK
|
||||
public static Predicate<ProductosTransportesVertex> goalHasSolution() {
|
||||
return v -> v.demandasRestantes.stream().allMatch(d -> d == 0);
|
||||
}
|
||||
|
||||
// ACTIONS OK
|
||||
public List<Integer> actions() {
|
||||
// TODO Auto-generated method stub
|
||||
List<Integer> actions = new ArrayList<>();
|
||||
Integer totVars = DatosProductosTransportes.getN() *
|
||||
DatosProductosTransportes.getM();
|
||||
|
||||
if(z < totVars) {
|
||||
Integer uds = this.unidadesRestantes
|
||||
.get(z/DatosProductosTransportes.getM());
|
||||
Integer dem = this.demandasRestantes
|
||||
.get(z%DatosProductosTransportes.getM());
|
||||
if (dem == 0 || uds == 0) {
|
||||
actions = List.of(0);
|
||||
} else if (uds < 0) {
|
||||
return List2.empty();
|
||||
} else if (uds < dem) {
|
||||
actions = List.of(0, uds);
|
||||
} else {
|
||||
actions = List.of(0, dem);
|
||||
}
|
||||
return actions;
|
||||
} else {
|
||||
return actions;
|
||||
}
|
||||
}
|
||||
|
||||
// NEIGHBOR OK
|
||||
@Override
|
||||
public ProductosTransportesVertex neighbor(Integer a) {
|
||||
Integer i = this.z / DatosProductosTransportes.getM();
|
||||
Integer j = this.z % DatosProductosTransportes.getM();
|
||||
List<Integer> nuevasUnidadesRestantes = new ArrayList<>(unidadesRestantes());
|
||||
List<Integer> nuevasDemandasRestantes = new ArrayList<>(demandasRestantes());
|
||||
|
||||
nuevasUnidadesRestantes.set(i, nuevasUnidadesRestantes.get(i) - a);
|
||||
nuevasDemandasRestantes.set(j, nuevasDemandasRestantes.get(j) - a);
|
||||
|
||||
return of(this.z + 1, nuevasUnidadesRestantes, nuevasDemandasRestantes);
|
||||
}
|
||||
|
||||
// EDGE OK
|
||||
@Override
|
||||
public ProductosTransportesEdge edge(Integer a) {
|
||||
return ProductosTransportesEdge.of(this, neighbor(a), a);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "("+this.z+","+this.unidadesRestantes+","+this.demandasRestantes+")";
|
||||
}
|
||||
|
||||
}
|
||||
45
PI5/src/adda/ej3/common/SolucionProductosTransportes.java
Normal file
45
PI5/src/adda/ej3/common/SolucionProductosTransportes.java
Normal file
@@ -0,0 +1,45 @@
|
||||
package adda.ej3.common;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class SolucionProductosTransportes {
|
||||
private static Map<Integer, List<Integer>> solucion;
|
||||
private static Integer costeTotal;
|
||||
|
||||
public static SolucionProductosTransportes of_range(List<Integer> ls) {
|
||||
return new SolucionProductosTransportes(ls);
|
||||
}
|
||||
|
||||
public SolucionProductosTransportes() {
|
||||
solucion = new HashMap<>();
|
||||
costeTotal = 0;
|
||||
}
|
||||
|
||||
public SolucionProductosTransportes(List<Integer> ls) {
|
||||
solucion = new HashMap<>();
|
||||
costeTotal = 0;
|
||||
|
||||
for(int i = 0; i < DatosProductosTransportes.getN(); i++) {
|
||||
solucion.put(i, new ArrayList<>());
|
||||
for(int j = 0; j < DatosProductosTransportes.getM(); j++) {
|
||||
solucion.get(i).add(ls.get(i * DatosProductosTransportes.getM() + j));
|
||||
costeTotal += ls.get(i * DatosProductosTransportes.getM() + j) *
|
||||
DatosProductosTransportes.getCoste(i, j);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
String productos = solucion.entrySet().stream()
|
||||
.map(e -> e.getKey() + ": " + e.getValue())
|
||||
.collect(Collectors.joining("\n",
|
||||
"Reparto obtenido (cantidad de producto repartido a cada destino):\n" +
|
||||
"//Destino m:[cantidad de producto n, cantidad de producto n+1, ...]\n",
|
||||
"\n"));
|
||||
return String.format("%sCoste total de almacenamiento: %d", productos, costeTotal);
|
||||
}
|
||||
}
|
||||
38
PI5/src/adda/ej3/common/manual/ProductosTransportesBT.java
Normal file
38
PI5/src/adda/ej3/common/manual/ProductosTransportesBT.java
Normal file
@@ -0,0 +1,38 @@
|
||||
package adda.ej3.common.manual;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ProductosTransportesBT {
|
||||
private static Double bestVal;
|
||||
private static ProductosTransportesState state;
|
||||
private static List<Integer> sol;
|
||||
|
||||
public static void search() {
|
||||
sol = null;
|
||||
bestVal = Double.MAX_VALUE; // minimizando
|
||||
state = ProductosTransportesState.initial();
|
||||
bt_search();
|
||||
}
|
||||
|
||||
private static void bt_search() {
|
||||
if(state.isSolution()) {
|
||||
Double d = state.ac;
|
||||
if(d < bestVal) { // minimizando
|
||||
bestVal = d;
|
||||
sol = state.sol();
|
||||
}
|
||||
} else if(!state.isTerminal()) {
|
||||
for(Integer a : state.actual.actions()) {
|
||||
if(state.cota(a) < bestVal) { // minimizando
|
||||
state.forward(a);
|
||||
bt_search();
|
||||
state.back();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static List<Integer> sol() {
|
||||
return sol;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
package adda.ej3.common.manual;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import adda.ej3.common.DatosProductosTransportes;
|
||||
import adda.ej3.common.DatosProductosTransportes.Destino;
|
||||
import adda.ej3.common.DatosProductosTransportes.Producto;
|
||||
import us.lsi.common.List2;
|
||||
import us.lsi.common.Pair;
|
||||
|
||||
public record ProductosTransportesProblem (
|
||||
Integer z,
|
||||
List<Integer> unidadesRestantes,
|
||||
List<Integer> demandasRestantes) {
|
||||
|
||||
public static ProductosTransportesProblem of(
|
||||
Integer z,
|
||||
List<Integer> unidadesRestantes,
|
||||
List<Integer> demandasRestantes) {
|
||||
return new ProductosTransportesProblem(z,unidadesRestantes,demandasRestantes);
|
||||
}
|
||||
|
||||
public static ProductosTransportesProblem initial() {
|
||||
return of(0, initialValues().first(), initialValues().second());
|
||||
}
|
||||
|
||||
private static Pair<List<Integer>,List<Integer>> initialValues() {
|
||||
List<Integer> ur = DatosProductosTransportes.getProductos().stream()
|
||||
.map(Producto::cantidad).toList();
|
||||
List<Integer> dr = DatosProductosTransportes.getDestinos().stream()
|
||||
.map(Destino::demanda).toList();
|
||||
return Pair.of(ur, dr);
|
||||
}
|
||||
|
||||
public List<Integer> actions() {
|
||||
List<Integer> actions = new ArrayList<>();
|
||||
Integer totVars = DatosProductosTransportes.getN() *
|
||||
DatosProductosTransportes.getM();
|
||||
|
||||
if(z < totVars) {
|
||||
Integer uds = this.unidadesRestantes
|
||||
.get(z/DatosProductosTransportes.getM());
|
||||
Integer dem = this.demandasRestantes
|
||||
.get(z%DatosProductosTransportes.getM());
|
||||
if (dem == 0 || uds == 0) {
|
||||
actions = List.of(0);
|
||||
} else if (uds < 0) {
|
||||
return List2.empty();
|
||||
} else if (uds < dem) {
|
||||
actions = List.of(0, uds);
|
||||
} else {
|
||||
actions = List.of(0, dem);
|
||||
}
|
||||
return actions;
|
||||
} else {
|
||||
return actions;
|
||||
}
|
||||
}
|
||||
|
||||
public ProductosTransportesProblem neighbor(Integer a) {
|
||||
Integer i = this.z / DatosProductosTransportes.getM();
|
||||
Integer j = this.z % DatosProductosTransportes.getM();
|
||||
List<Integer> nuevasUnidadesRestantes = new ArrayList<>(unidadesRestantes());
|
||||
List<Integer> nuevasDemandasRestantes = new ArrayList<>(demandasRestantes());
|
||||
|
||||
nuevasUnidadesRestantes.set(i, nuevasUnidadesRestantes.get(i) - a);
|
||||
nuevasDemandasRestantes.set(j, nuevasDemandasRestantes.get(j) - a);
|
||||
|
||||
return of(this.z + 1, nuevasUnidadesRestantes, nuevasDemandasRestantes);
|
||||
}
|
||||
|
||||
public Double heuristic() {
|
||||
// COSTE MINIMO DE PRODS AUN DEMANDADOS EN [z, n*m)
|
||||
if (this.demandasRestantes().stream().allMatch(x -> x <= 0))
|
||||
return 0.;
|
||||
Integer ultimoIndice = DatosProductosTransportes.getM() * DatosProductosTransportes.getN();
|
||||
return IntStream.range(this.z(), ultimoIndice)
|
||||
.filter(i -> this.demandasRestantes().get(i % DatosProductosTransportes.getM()) > 0)
|
||||
.mapToDouble(i -> DatosProductosTransportes.getCoste(i / DatosProductosTransportes.getM(),
|
||||
i % DatosProductosTransportes.getM()))
|
||||
.min().orElse(Double.MAX_VALUE);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package adda.ej3.common.manual;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import adda.ej3.common.DatosProductosTransportes;
|
||||
import us.lsi.common.List2;
|
||||
|
||||
public class ProductosTransportesState {
|
||||
ProductosTransportesProblem actual;
|
||||
Double ac;
|
||||
List<Integer> actions;
|
||||
List<ProductosTransportesProblem> prev;
|
||||
|
||||
private ProductosTransportesState(ProductosTransportesProblem prob, Double a,
|
||||
List<Integer> li, List<ProductosTransportesProblem> lp) {
|
||||
actual = prob;
|
||||
ac = a;
|
||||
actions = li;
|
||||
prev = lp;
|
||||
}
|
||||
|
||||
public static ProductosTransportesState of(ProductosTransportesProblem prob, Double ac,
|
||||
List<Integer> li, List<ProductosTransportesProblem> lp) {
|
||||
return new ProductosTransportesState(prob,ac,li,lp);
|
||||
}
|
||||
|
||||
public static ProductosTransportesState initial() {
|
||||
ProductosTransportesProblem p = ProductosTransportesProblem.initial();
|
||||
return of(p, 0., List2.empty(), List2.empty());
|
||||
}
|
||||
|
||||
public void forward(Integer a) {
|
||||
ac += a * DatosProductosTransportes.getCoste(actual.z()/DatosProductosTransportes.getM(),
|
||||
actual.z()%DatosProductosTransportes.getM());
|
||||
actions.add(a);
|
||||
prev.add(actual);
|
||||
actual = actual.neighbor(a);
|
||||
}
|
||||
|
||||
public void back() {
|
||||
int last = actions.size() - 1;
|
||||
var prev_prob = prev.get(last);
|
||||
|
||||
ac -= actions.get(last) * DatosProductosTransportes.getCoste(prev_prob.z()/DatosProductosTransportes.getM(),
|
||||
prev_prob.z()%DatosProductosTransportes.getM());
|
||||
|
||||
actions.remove(last);
|
||||
prev.remove(last);
|
||||
actual = prev_prob;
|
||||
}
|
||||
|
||||
public List<Integer> actions() {
|
||||
return actual.actions();
|
||||
}
|
||||
|
||||
public Double cota(Integer a) {
|
||||
Double w = (double) a * DatosProductosTransportes.getCoste(actual.z()/DatosProductosTransportes.getM(),
|
||||
actual.z()%DatosProductosTransportes.getM());
|
||||
return ac + w + actual.neighbor(a).heuristic();
|
||||
}
|
||||
|
||||
public boolean isSolution() {
|
||||
return actual.demandasRestantes().stream().allMatch(x -> x <= 0);
|
||||
}
|
||||
|
||||
public boolean isTerminal() {
|
||||
return actual.z() == DatosProductosTransportes.getN() * DatosProductosTransportes.getM();
|
||||
}
|
||||
|
||||
public List<Integer> sol() {
|
||||
return actions;
|
||||
}
|
||||
}
|
||||
25
PI5/src/adda/ej3/common/manual/TestBT.java
Normal file
25
PI5/src/adda/ej3/common/manual/TestBT.java
Normal file
@@ -0,0 +1,25 @@
|
||||
package adda.ej3.common.manual;
|
||||
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import adda.ej3.common.DatosProductosTransportes;
|
||||
import adda.util.ConsoleColors;
|
||||
import adda.util.Titles;
|
||||
import us.lsi.common.String2;
|
||||
|
||||
public class TestBT {
|
||||
public static void main(String[] args) {
|
||||
IntStream.range(1, 4).forEach(i -> {
|
||||
System.out.println(ConsoleColors.BLUE + Titles.getTitle(i)
|
||||
+ ConsoleColors.RESET);
|
||||
DatosProductosTransportes.iniDatos("ficheros/ejercicios/Ejercicio3DatosEntrada"+i+".txt");
|
||||
|
||||
System.out.println(ConsoleColors.RED + "\nBT MANUAL"
|
||||
+ String2.linea() + ConsoleColors.RESET);
|
||||
|
||||
ProductosTransportesBT.search();
|
||||
|
||||
System.out.println(ProductosTransportesBT.sol());
|
||||
});
|
||||
}
|
||||
}
|
||||
110
PI5/src/adda/ej4/TestPersonas.java
Normal file
110
PI5/src/adda/ej4/TestPersonas.java
Normal file
@@ -0,0 +1,110 @@
|
||||
package adda.ej4;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import org.jgrapht.GraphPath;
|
||||
|
||||
import adda.ej4.common.DatosPersonas;
|
||||
import adda.ej4.common.PersonaEdge;
|
||||
import adda.ej4.common.PersonaHeuristic;
|
||||
import adda.ej4.common.PersonaVertex;
|
||||
import adda.ej4.common.SolucionPersonas;
|
||||
import adda.util.ConsoleColors;
|
||||
import adda.util.Titles;
|
||||
import us.lsi.colors.GraphColors;
|
||||
import us.lsi.colors.GraphColors.Color;
|
||||
import us.lsi.common.String2;
|
||||
import us.lsi.graphs.alg.AStar;
|
||||
import us.lsi.graphs.alg.BT;
|
||||
import us.lsi.graphs.alg.PDR;
|
||||
import us.lsi.graphs.virtual.EGraph;
|
||||
import us.lsi.graphs.virtual.EGraph.Type;
|
||||
import us.lsi.path.EGraphPath.PathType;
|
||||
|
||||
public class TestPersonas {
|
||||
public static void main(String[] args) {
|
||||
IntStream.range(1, 4).forEach(i -> {
|
||||
System.out.println(ConsoleColors.BLUE + Titles.getTitle(i)
|
||||
+ ConsoleColors.RESET);
|
||||
DatosPersonas.iniDatos("ficheros/ejercicios/Ejercicio4DatosEntrada"+i+".txt");
|
||||
|
||||
System.out.println(ConsoleColors.RED + "A ESTRELLA"
|
||||
+ String2.linea() + ConsoleColors.RESET);
|
||||
testAstar(i);
|
||||
|
||||
System.out.println(ConsoleColors.RED + "\nBACKTRACKING"
|
||||
+ String2.linea() + ConsoleColors.RESET);
|
||||
testBT(i);
|
||||
|
||||
System.out.println(ConsoleColors.RED + "\nDINAMICA"
|
||||
+ String2.linea() + ConsoleColors.RESET);
|
||||
testPDR(i);
|
||||
});
|
||||
}
|
||||
|
||||
private static void testAstar(int i) {
|
||||
EGraph<PersonaVertex, PersonaEdge> g = EGraph.virtual(
|
||||
PersonaVertex.initial(),
|
||||
PersonaVertex.goal(),
|
||||
PathType.Sum, Type.Min
|
||||
)
|
||||
.heuristic(PersonaHeuristic::heuristic)
|
||||
.goalHasSolution(PersonaVertex.goalHasSolution())
|
||||
.edgeWeight(e -> e.weight())
|
||||
.build();
|
||||
|
||||
AStar<PersonaVertex, PersonaEdge,?> alg = AStar.of(g);
|
||||
GraphPath<PersonaVertex, PersonaEdge> gp = alg.search().get();
|
||||
List<Integer> ls = gp.getEdgeList().stream().map(x -> x.action())
|
||||
.collect(Collectors.toList());
|
||||
SolucionPersonas sh = new SolucionPersonas(ls);
|
||||
System.out.println(sh);
|
||||
|
||||
GraphColors.toDot(alg.outGraph(),
|
||||
"generated/ej4_f"+i+".dot",
|
||||
v -> v.toString(),
|
||||
e -> e.action().toString(),
|
||||
v -> GraphColors.color(Color.black),
|
||||
e -> GraphColors.colorIf(Color.red, gp.getEdgeList().contains(e)));
|
||||
}
|
||||
|
||||
private static void testBT(int i) {
|
||||
EGraph<PersonaVertex, PersonaEdge> g = EGraph.virtual(
|
||||
PersonaVertex.initial(),
|
||||
PersonaVertex.goal(),
|
||||
PathType.Sum, Type.Min
|
||||
)
|
||||
.heuristic(PersonaHeuristic::heuristic)
|
||||
.goalHasSolution(PersonaVertex.goalHasSolution())
|
||||
.edgeWeight(e -> e.weight())
|
||||
.build();
|
||||
|
||||
BT<PersonaVertex, PersonaEdge,?> alg = BT.of(g);
|
||||
GraphPath<PersonaVertex, PersonaEdge> gp = alg.search().get();
|
||||
List<Integer> ls = gp.getEdgeList().stream().map(x -> x.action())
|
||||
.collect(Collectors.toList());
|
||||
SolucionPersonas sh = new SolucionPersonas(ls);
|
||||
System.out.println(sh);
|
||||
}
|
||||
|
||||
private static void testPDR(int i) {
|
||||
EGraph<PersonaVertex, PersonaEdge> g = EGraph.virtual(
|
||||
PersonaVertex.initial(),
|
||||
PersonaVertex.goal(),
|
||||
PathType.Sum, Type.Min
|
||||
)
|
||||
.heuristic(PersonaHeuristic::heuristic)
|
||||
.goalHasSolution(PersonaVertex.goalHasSolution())
|
||||
.edgeWeight(e -> e.weight())
|
||||
.build();
|
||||
|
||||
PDR<PersonaVertex, PersonaEdge,?> alg = PDR.of(g);
|
||||
GraphPath<PersonaVertex, PersonaEdge> gp = alg.search().get();
|
||||
List<Integer> ls = gp.getEdgeList().stream().map(x -> x.action())
|
||||
.collect(Collectors.toList());
|
||||
SolucionPersonas sh = new SolucionPersonas(ls);
|
||||
System.out.println(sh);
|
||||
}
|
||||
}
|
||||
91
PI5/src/adda/ej4/common/DatosPersonas.java
Normal file
91
PI5/src/adda/ej4/common/DatosPersonas.java
Normal file
@@ -0,0 +1,91 @@
|
||||
package adda.ej4.common;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import us.lsi.common.Files2;
|
||||
import us.lsi.common.String2;
|
||||
|
||||
public class DatosPersonas {
|
||||
private static int N;
|
||||
private static List<Persona> personas;
|
||||
|
||||
public static record Persona(Integer id, Integer edad, Set<String> idiomas,
|
||||
String nacionalidad, List<Integer> afinidades) {
|
||||
public static Persona of(String s) {
|
||||
String[] partes = s.replaceAll("P(\\d+) -> ", "$1; ")
|
||||
.replaceAll("\\s\\w+=","").split(";");
|
||||
return new Persona(
|
||||
Integer.valueOf(partes[0]),
|
||||
Integer.valueOf(partes[1]),
|
||||
Set.of(partes[2].replaceAll("[()\\s]","").split(",")),
|
||||
partes[3],
|
||||
List.of(partes[4].replaceAll("\\((\\d+):(\\d+)\\)", "$2").split(",")).stream()
|
||||
.map(Integer::valueOf)
|
||||
.toList()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public static void toConsole() {
|
||||
String2.toConsole(personas, "Personas posibles:");
|
||||
String2.toConsole(String2.linea());
|
||||
}
|
||||
|
||||
public static void iniDatos(String fichero) {
|
||||
List<String> lineas = Files2.linesFromFile(fichero);
|
||||
List<String> personasStrings = lineas.subList(1, lineas.size());
|
||||
|
||||
personas = new ArrayList<>();
|
||||
for(String persona : personasStrings) {
|
||||
personas.add(Persona.of(persona));
|
||||
}
|
||||
|
||||
N = personas.size();
|
||||
}
|
||||
|
||||
public static Integer getN() {
|
||||
return N;
|
||||
}
|
||||
|
||||
public static Integer getAfinidad(Integer i, Integer j) {
|
||||
j = i > j ? j : j - 1;
|
||||
return personas.get(i).afinidades().get(j);
|
||||
}
|
||||
|
||||
public static List<Integer> getAfinidades(Integer i) {
|
||||
return personas.get(i).afinidades();
|
||||
}
|
||||
|
||||
public static Integer getEdad(Integer i) {
|
||||
return personas.get(i).edad();
|
||||
}
|
||||
|
||||
public static Set<String> getIdiomas(Integer i) {
|
||||
return personas.get(i).idiomas();
|
||||
}
|
||||
|
||||
public static String getNacionalidad(Integer i) {
|
||||
return personas.get(i).nacionalidad();
|
||||
}
|
||||
|
||||
public static Boolean idiomaComun(Integer i, Integer j) {
|
||||
Set<String> idiomas = new HashSet<>(personas.get(i).idiomas());
|
||||
idiomas.retainAll(personas.get(j).idiomas());
|
||||
return idiomas.size() >= 1;
|
||||
}
|
||||
|
||||
public static Boolean mismaNacionalidad(Integer i, Integer j) {
|
||||
return personas.get(i).nacionalidad().equals(personas.get(j).nacionalidad());
|
||||
}
|
||||
|
||||
public static Boolean maximaDiferenciaEdad(Integer i, Integer j) {
|
||||
return Math.abs(personas.get(i).edad() - personas.get(j).edad()) <= 5;
|
||||
}
|
||||
|
||||
public static Integer getId(Integer i) {
|
||||
return personas.get(i).id();
|
||||
}
|
||||
}
|
||||
19
PI5/src/adda/ej4/common/PersonaEdge.java
Normal file
19
PI5/src/adda/ej4/common/PersonaEdge.java
Normal file
@@ -0,0 +1,19 @@
|
||||
package adda.ej4.common;
|
||||
|
||||
import us.lsi.graphs.virtual.SimpleEdgeAction;
|
||||
|
||||
public record PersonaEdge(
|
||||
PersonaVertex source,
|
||||
PersonaVertex target,
|
||||
Integer action,
|
||||
Double weight
|
||||
) implements SimpleEdgeAction<PersonaVertex, Integer>{
|
||||
|
||||
public static PersonaEdge of(PersonaVertex source, PersonaVertex taget, Integer action) {
|
||||
Double weight = 0.;
|
||||
for (int i = 0; i < DatosPersonas.getN(); i++) {
|
||||
weight = (double) DatosPersonas.getAfinidades(i).indexOf(action);
|
||||
}
|
||||
return new PersonaEdge(source, taget, action, weight);
|
||||
}
|
||||
}
|
||||
19
PI5/src/adda/ej4/common/PersonaHeuristic.java
Normal file
19
PI5/src/adda/ej4/common/PersonaHeuristic.java
Normal file
@@ -0,0 +1,19 @@
|
||||
package adda.ej4.common;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
public class PersonaHeuristic {
|
||||
public static Double heuristic(PersonaVertex v1, Predicate<PersonaVertex> goal, PersonaVertex v2) {
|
||||
//AFINIDAD MAXIMA EN [i,n)
|
||||
if(v1.index() % 2 == 0) {
|
||||
return (double) IntStream.range(v1.index(), DatosPersonas.getN()).boxed()
|
||||
.map(i -> Collections.max(DatosPersonas.getAfinidades(i)))
|
||||
.max(Comparator.naturalOrder()).orElse(0);
|
||||
} else {
|
||||
return 0.;
|
||||
}
|
||||
}
|
||||
}
|
||||
93
PI5/src/adda/ej4/common/PersonaVertex.java
Normal file
93
PI5/src/adda/ej4/common/PersonaVertex.java
Normal file
@@ -0,0 +1,93 @@
|
||||
package adda.ej4.common;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import us.lsi.common.Set2;
|
||||
import us.lsi.graphs.virtual.VirtualVertex;
|
||||
|
||||
public record PersonaVertex(Integer index, Set<Integer> restantes, Integer ultima)
|
||||
implements VirtualVertex<PersonaVertex, PersonaEdge, Integer> {
|
||||
|
||||
public static PersonaVertex of(Integer i, Set<Integer> restantes, Integer ultima) {
|
||||
return new PersonaVertex(i, restantes, ultima);
|
||||
}
|
||||
|
||||
public static PersonaVertex initial() {
|
||||
Set<Integer> restantes = IntStream.range(0, DatosPersonas.getN()).boxed().map(i -> DatosPersonas.getId(i))
|
||||
.collect(Collectors.toSet());
|
||||
return of(0, restantes, DatosPersonas.getN());
|
||||
}
|
||||
|
||||
public static Predicate<PersonaVertex> goal() {
|
||||
return v -> v.index() == DatosPersonas.getN();
|
||||
}
|
||||
|
||||
public static Predicate<PersonaVertex> goalHasSolution() {
|
||||
return v -> v.restantes().isEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Integer> actions() {
|
||||
List<Integer> actions = new ArrayList<>();
|
||||
|
||||
if (this.index() < DatosPersonas.getN()) {
|
||||
List<Integer> copyRestantes = new ArrayList<>(restantes());
|
||||
for (int i = 0; i < copyRestantes.size(); i++) {
|
||||
if (this.index() % 2 == 0) {
|
||||
Integer p = copyRestantes.get(0);
|
||||
actions.add(p);
|
||||
copyRestantes.remove(p);
|
||||
} else if (this.index() % 2 == 1) {
|
||||
Integer p = copyRestantes.get(i);
|
||||
if (restsOk(ultima(), p)) {
|
||||
actions.add(p);
|
||||
copyRestantes.remove(p);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return actions;
|
||||
}
|
||||
|
||||
|
||||
private boolean restsOk(Integer persona1, Integer persona2) {
|
||||
return Math.abs(DatosPersonas.getEdad(persona1) - DatosPersonas.getEdad(persona2)) <= 5
|
||||
&& !Collections.disjoint(DatosPersonas.getIdiomas(persona1), DatosPersonas.getIdiomas(persona2))
|
||||
&& !DatosPersonas.getNacionalidad(persona1).equals(DatosPersonas.getNacionalidad(persona2));
|
||||
}
|
||||
|
||||
@Override
|
||||
public PersonaVertex neighbor(Integer a) {
|
||||
Set<Integer> nuevasRestantes = new HashSet<>();
|
||||
Integer nuevaUltima = a;
|
||||
|
||||
if(this.index % 2 == 0) {
|
||||
nuevasRestantes = Set2.copy(this.restantes);
|
||||
nuevasRestantes.remove(a);
|
||||
nuevaUltima = a;
|
||||
} else {
|
||||
nuevasRestantes = Set2.copy(this.restantes);
|
||||
nuevasRestantes.remove(a);
|
||||
nuevaUltima = DatosPersonas.getN();
|
||||
}
|
||||
|
||||
return of(this.index + 1, nuevasRestantes, nuevaUltima);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PersonaEdge edge(Integer a) {
|
||||
return PersonaEdge.of(this, neighbor(a), a);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "(" + this.index + "," + this.restantes + "," + this.ultima + ")";
|
||||
}
|
||||
}
|
||||
37
PI5/src/adda/ej4/common/SolucionPersonas.java
Normal file
37
PI5/src/adda/ej4/common/SolucionPersonas.java
Normal file
@@ -0,0 +1,37 @@
|
||||
package adda.ej4.common;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import us.lsi.common.Pair;
|
||||
|
||||
public class SolucionPersonas {
|
||||
private static List<Pair<Integer,Integer>> solucion;
|
||||
private static Integer sumaAf;
|
||||
|
||||
public static SolucionPersonas of_list(List<Integer> ls) {
|
||||
return new SolucionPersonas(ls);
|
||||
}
|
||||
|
||||
public SolucionPersonas() {
|
||||
sumaAf = 0;
|
||||
solucion = new ArrayList<>();
|
||||
}
|
||||
|
||||
public SolucionPersonas(List<Integer> ls) {
|
||||
sumaAf = 0;
|
||||
solucion = new ArrayList<>();
|
||||
for(int i = 0; i < ls.size() - 1; i+=2) {
|
||||
solucion.add(Pair.of(ls.get(i), ls.get(i+1)));
|
||||
sumaAf += DatosPersonas.getAfinidad(ls.get(i), ls.get(i+1));
|
||||
}
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
String personas = solucion.stream()
|
||||
.map(p -> "(" + p.first() + ", " + p.second() + ")")
|
||||
.collect(Collectors.joining(", ", "Relación de parejas:\n[", "]\n"));
|
||||
return String.format("%sSuma de afinidades: %d", personas, sumaAf);
|
||||
}
|
||||
}
|
||||
41
PI5/src/adda/ej4/common/manual/PersonasBT.java
Normal file
41
PI5/src/adda/ej4/common/manual/PersonasBT.java
Normal file
@@ -0,0 +1,41 @@
|
||||
package adda.ej4.common.manual;
|
||||
|
||||
import adda.ej4.common.SolucionPersonas;
|
||||
|
||||
public class PersonasBT {
|
||||
|
||||
private static Double bestVal;
|
||||
private static PersonasState state;
|
||||
private static SolucionPersonas sol;
|
||||
|
||||
public static void search() {
|
||||
sol = null;
|
||||
bestVal = Double.MIN_VALUE; // maximizando
|
||||
state = PersonasState.initial();
|
||||
bt_search();
|
||||
}
|
||||
|
||||
private static void bt_search() {
|
||||
if(state.isTerminal()) {
|
||||
Double d = state.ac;
|
||||
if(d > bestVal) { // maximizando
|
||||
bestVal = d;
|
||||
sol = state.sol();
|
||||
}
|
||||
} else {
|
||||
for(Integer a : state.actual.actions()) {
|
||||
Double cota = state.cota(a);
|
||||
if(cota < bestVal) {
|
||||
continue;
|
||||
}
|
||||
state.forward(a);
|
||||
bt_search();
|
||||
state.back();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static SolucionPersonas sol() {
|
||||
return sol;
|
||||
}
|
||||
}
|
||||
83
PI5/src/adda/ej4/common/manual/PersonasProblem.java
Normal file
83
PI5/src/adda/ej4/common/manual/PersonasProblem.java
Normal file
@@ -0,0 +1,83 @@
|
||||
package adda.ej4.common.manual;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import adda.ej4.common.DatosPersonas;
|
||||
import us.lsi.common.Set2;
|
||||
|
||||
public record PersonasProblem(Integer index, Set<Integer> restantes, Integer ultima) {
|
||||
public static PersonasProblem of(Integer i, Set<Integer> restantes, Integer ultima) {
|
||||
return new PersonasProblem(i, restantes, ultima);
|
||||
}
|
||||
|
||||
public static PersonasProblem initial() {
|
||||
Set<Integer> restantes = IntStream.range(0, DatosPersonas.getN()).boxed().map(i -> DatosPersonas.getId(i))
|
||||
.collect(Collectors.toSet());
|
||||
return of(0, restantes, DatosPersonas.getN());
|
||||
}
|
||||
|
||||
public List<Integer> actions() {
|
||||
List<Integer> actions = new ArrayList<>();
|
||||
|
||||
if (this.index() < DatosPersonas.getN()) {
|
||||
List<Integer> copyRestantes = new ArrayList<>(restantes());
|
||||
for (int i = 0; i < copyRestantes.size(); i++) {
|
||||
if (this.index() % 2 == 0) {
|
||||
Integer p = copyRestantes.get(0);
|
||||
actions.add(p);
|
||||
copyRestantes.remove(p);
|
||||
} else if (this.index() % 2 == 1) {
|
||||
Integer p = copyRestantes.get(i);
|
||||
if (restsOk(ultima(), p)) {
|
||||
actions.add(p);
|
||||
copyRestantes.remove(p);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return actions;
|
||||
}
|
||||
|
||||
|
||||
private boolean restsOk(Integer persona1, Integer persona2) {
|
||||
return Math.abs(DatosPersonas.getEdad(persona1) - DatosPersonas.getEdad(persona2)) <= 5
|
||||
&& !Collections.disjoint(DatosPersonas.getIdiomas(persona1), DatosPersonas.getIdiomas(persona2))
|
||||
&& !DatosPersonas.getNacionalidad(persona1).equals(DatosPersonas.getNacionalidad(persona2));
|
||||
}
|
||||
|
||||
public PersonasProblem neighbor(Integer a) {
|
||||
Set<Integer> nuevasRestantes = new HashSet<>();
|
||||
Integer nuevaUltima = a;
|
||||
|
||||
if(this.index % 2 == 0) {
|
||||
nuevasRestantes = Set2.copy(this.restantes);
|
||||
nuevasRestantes.remove(a);
|
||||
nuevaUltima = a;
|
||||
} else {
|
||||
nuevasRestantes = Set2.copy(this.restantes);
|
||||
nuevasRestantes.remove(a);
|
||||
nuevaUltima = DatosPersonas.getN();
|
||||
}
|
||||
|
||||
return of(this.index + 1, nuevasRestantes, nuevaUltima);
|
||||
}
|
||||
|
||||
public Double heuristic() {
|
||||
//AFINIDAD MAXIMA EN [i,n)
|
||||
if(this.index() % 2 == 0) {
|
||||
return (double) IntStream.range(this.index(), DatosPersonas.getN()).boxed()
|
||||
.map(i -> Collections.max(DatosPersonas.getAfinidades(i)))
|
||||
.max(Comparator.naturalOrder()).orElse(0);
|
||||
} else {
|
||||
return 0.;
|
||||
}
|
||||
}
|
||||
}
|
||||
77
PI5/src/adda/ej4/common/manual/PersonasState.java
Normal file
77
PI5/src/adda/ej4/common/manual/PersonasState.java
Normal file
@@ -0,0 +1,77 @@
|
||||
package adda.ej4.common.manual;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import adda.ej4.common.DatosPersonas;
|
||||
import adda.ej4.common.SolucionPersonas;
|
||||
import us.lsi.common.List2;
|
||||
|
||||
public class PersonasState {
|
||||
|
||||
PersonasProblem actual;
|
||||
Double ac;
|
||||
List<Integer> actions;
|
||||
List<PersonasProblem> prev;
|
||||
|
||||
private PersonasState(PersonasProblem prob, Double a,
|
||||
List<Integer> li, List<PersonasProblem> lp) {
|
||||
actual = prob;
|
||||
ac = a;
|
||||
actions = li;
|
||||
prev = lp;
|
||||
}
|
||||
|
||||
public static PersonasState of(PersonasProblem prob, Double ac,
|
||||
List<Integer> li, List<PersonasProblem> lp) {
|
||||
return new PersonasState(prob, ac, li, lp);
|
||||
}
|
||||
|
||||
public static PersonasState initial() {
|
||||
PersonasProblem p = PersonasProblem.initial();
|
||||
return of(p, 0., List2.empty(), List2.empty());
|
||||
}
|
||||
|
||||
public void forward(Integer a) {
|
||||
if(actual.ultima() != DatosPersonas.getN()) {
|
||||
ac += DatosPersonas.getAfinidad(actual.ultima(), a);
|
||||
}
|
||||
actions.add(a);
|
||||
prev.add(actual);
|
||||
actual = actual.neighbor(a);
|
||||
}
|
||||
|
||||
public void back() {
|
||||
int last = actions.size() - 1;
|
||||
var prev_prob = prev.get(last);
|
||||
if(prev_prob.ultima() != DatosPersonas.getN()) {
|
||||
ac -= DatosPersonas.getAfinidad(prev_prob.ultima(), actions.get(last));
|
||||
}
|
||||
actions.remove(last);
|
||||
prev.remove(last);
|
||||
actual = prev_prob;
|
||||
}
|
||||
|
||||
public List<Integer> actions() {
|
||||
return actual.actions();
|
||||
}
|
||||
|
||||
public Double cota(Integer a) {
|
||||
Integer w = 0;
|
||||
if(actual.ultima() != DatosPersonas.getN()) {
|
||||
w = DatosPersonas.getAfinidad(actual.ultima(), a);
|
||||
}
|
||||
return ac + w + actual.neighbor(a).heuristic();
|
||||
}
|
||||
|
||||
public boolean isSolution() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean isTerminal() {
|
||||
return actual.index() == DatosPersonas.getN();
|
||||
}
|
||||
|
||||
public SolucionPersonas sol() {
|
||||
return new SolucionPersonas(actions);
|
||||
}
|
||||
}
|
||||
25
PI5/src/adda/ej4/common/manual/TestBT.java
Normal file
25
PI5/src/adda/ej4/common/manual/TestBT.java
Normal file
@@ -0,0 +1,25 @@
|
||||
package adda.ej4.common.manual;
|
||||
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import adda.ej4.common.DatosPersonas;
|
||||
import adda.util.ConsoleColors;
|
||||
import adda.util.Titles;
|
||||
import us.lsi.common.String2;
|
||||
|
||||
public class TestBT {
|
||||
public static void main(String[] args) {
|
||||
IntStream.range(1, 4).forEach(i -> {
|
||||
System.out.println(ConsoleColors.BLUE + Titles.getTitle(i)
|
||||
+ ConsoleColors.RESET);
|
||||
DatosPersonas.iniDatos("ficheros/ejercicios/Ejercicio4DatosEntrada"+i+".txt");
|
||||
|
||||
System.out.println(ConsoleColors.RED + "\nBT MANUAL"
|
||||
+ String2.linea() + ConsoleColors.RESET);
|
||||
|
||||
PersonasBT.search();
|
||||
|
||||
System.out.println(PersonasBT.sol());
|
||||
});
|
||||
}
|
||||
}
|
||||
15
PI5/src/adda/util/ConsoleColors.java
Normal file
15
PI5/src/adda/util/ConsoleColors.java
Normal file
@@ -0,0 +1,15 @@
|
||||
package adda.util;
|
||||
public class ConsoleColors {
|
||||
// Reset
|
||||
public static final String RESET = "\033[0m"; // Text Reset
|
||||
|
||||
// Regular Colors
|
||||
public static final String BLACK = "\033[0;30m"; // BLACK
|
||||
public static final String RED = "\033[0;31m"; // RED
|
||||
public static final String GREEN = "\033[0;32m"; // GREEN
|
||||
public static final String YELLOW = "\033[0;33m"; // YELLOW
|
||||
public static final String BLUE = "\033[0;34m"; // BLUE
|
||||
public static final String MAGENTA = "\033[0;35m"; // MAGENTA
|
||||
public static final String CYAN = "\033[0;36m"; // CYAN
|
||||
public static final String WHITE = "\033[0;37m"; // WHITE
|
||||
}
|
||||
49
PI5/src/adda/util/Titles.java
Normal file
49
PI5/src/adda/util/Titles.java
Normal file
@@ -0,0 +1,49 @@
|
||||
package adda.util;
|
||||
|
||||
public class Titles {
|
||||
public static String F1 =
|
||||
"""
|
||||
####### ##### # ####### #
|
||||
# # # # ##
|
||||
# # # # # #
|
||||
##### # # ##### #
|
||||
# # # # #
|
||||
# # # # #
|
||||
# ##### ####### ####### #####
|
||||
|
||||
""";
|
||||
|
||||
public static String F2 =
|
||||
"""
|
||||
\n\n\n
|
||||
####### ##### # ####### #####
|
||||
# # # # # #
|
||||
# # # # #
|
||||
##### # # ##### #####
|
||||
# # # # #
|
||||
# # # # #
|
||||
# ##### ####### ####### #######
|
||||
|
||||
""";
|
||||
|
||||
public static String F3 =
|
||||
"""
|
||||
\n\n\n
|
||||
####### ##### # ####### #####
|
||||
# # # # # #
|
||||
# # # # #
|
||||
##### # # ##### #####
|
||||
# # # # #
|
||||
# # # # # #
|
||||
# ##### ####### ####### #####
|
||||
|
||||
""";
|
||||
public static String getTitle(int i) {
|
||||
return switch(i) {
|
||||
case 1: yield F1;
|
||||
case 2: yield F2;
|
||||
case 3: yield F3;
|
||||
default: yield "INVALID";
|
||||
};
|
||||
}
|
||||
}
|
||||
8
PI5/src/module-info.java
Normal file
8
PI5/src/module-info.java
Normal file
@@ -0,0 +1,8 @@
|
||||
module pi5 {
|
||||
requires transitive datos_compartidos;
|
||||
requires transitive grafos;
|
||||
requires transitive org.jgrapht.core;
|
||||
requires transitive org.jgrapht.io;
|
||||
requires transitive partecomun;
|
||||
requires transitive solve;
|
||||
}
|
||||
Reference in New Issue
Block a user