feat: tsp data files

This commit is contained in:
Renge 2024-03-09 17:30:02 -05:00
parent b5ea6f9865
commit b10f16f5dd
20 changed files with 3038 additions and 24 deletions

90
Assignment2/A/data10.P Normal file
View File

@ -0,0 +1,90 @@
edge(a, b, 13).
edge(a, c, 12).
edge(a, d, 10).
edge(a, e, 13).
edge(a, f, 13).
edge(a, g, 18).
edge(a, h, 3).
edge(a, i, 3).
edge(a, j, 12).
edge(b, a, 9).
edge(b, c, 20).
edge(b, d, 7).
edge(b, e, 18).
edge(b, f, 11).
edge(b, g, 2).
edge(b, h, 16).
edge(b, i, 2).
edge(b, j, 4).
edge(c, a, 11).
edge(c, b, 14).
edge(c, d, 4).
edge(c, e, 13).
edge(c, f, 7).
edge(c, g, 6).
edge(c, h, 17).
edge(c, i, 10).
edge(c, j, 13).
edge(d, a, 18).
edge(d, b, 12).
edge(d, c, 15).
edge(d, e, 7).
edge(d, f, 19).
edge(d, g, 20).
edge(d, h, 4).
edge(d, i, 12).
edge(d, j, 14).
edge(e, a, 6).
edge(e, b, 15).
edge(e, c, 5).
edge(e, d, 1).
edge(e, f, 19).
edge(e, g, 2).
edge(e, h, 20).
edge(e, i, 20).
edge(e, j, 14).
edge(f, a, 7).
edge(f, b, 12).
edge(f, c, 11).
edge(f, d, 8).
edge(f, e, 2).
edge(f, g, 20).
edge(f, h, 9).
edge(f, i, 3).
edge(f, j, 7).
edge(g, a, 7).
edge(g, b, 14).
edge(g, c, 15).
edge(g, d, 7).
edge(g, e, 18).
edge(g, f, 16).
edge(g, h, 8).
edge(g, i, 3).
edge(g, j, 14).
edge(h, a, 12).
edge(h, b, 8).
edge(h, c, 9).
edge(h, d, 2).
edge(h, e, 4).
edge(h, f, 16).
edge(h, g, 8).
edge(h, i, 12).
edge(h, j, 9).
edge(i, a, 15).
edge(i, b, 7).
edge(i, c, 16).
edge(i, d, 2).
edge(i, e, 16).
edge(i, f, 14).
edge(i, g, 13).
edge(i, h, 4).
edge(i, j, 19).
edge(j, a, 11).
edge(j, b, 11).
edge(j, c, 16).
edge(j, d, 14).
edge(j, e, 20).
edge(j, f, 11).
edge(j, g, 3).
edge(j, h, 15).
edge(j, i, 17).

100
Assignment2/A/data10.dat Normal file
View File

@ -0,0 +1,100 @@
let dist[1][1] := 7;
let dist[1][2] := 13;
let dist[1][3] := 12;
let dist[1][4] := 10;
let dist[1][5] := 13;
let dist[1][6] := 13;
let dist[1][7] := 18;
let dist[1][8] := 3;
let dist[1][9] := 3;
let dist[1][10] := 12;
let dist[2][1] := 9;
let dist[2][2] := 14;
let dist[2][3] := 20;
let dist[2][4] := 7;
let dist[2][5] := 18;
let dist[2][6] := 11;
let dist[2][7] := 2;
let dist[2][8] := 16;
let dist[2][9] := 2;
let dist[2][10] := 4;
let dist[3][1] := 11;
let dist[3][2] := 14;
let dist[3][3] := 19;
let dist[3][4] := 4;
let dist[3][5] := 13;
let dist[3][6] := 7;
let dist[3][7] := 6;
let dist[3][8] := 17;
let dist[3][9] := 10;
let dist[3][10] := 13;
let dist[4][1] := 18;
let dist[4][2] := 12;
let dist[4][3] := 15;
let dist[4][4] := 11;
let dist[4][5] := 7;
let dist[4][6] := 19;
let dist[4][7] := 20;
let dist[4][8] := 4;
let dist[4][9] := 12;
let dist[4][10] := 14;
let dist[5][1] := 6;
let dist[5][2] := 15;
let dist[5][3] := 5;
let dist[5][4] := 1;
let dist[5][5] := 20;
let dist[5][6] := 19;
let dist[5][7] := 2;
let dist[5][8] := 20;
let dist[5][9] := 20;
let dist[5][10] := 14;
let dist[6][1] := 7;
let dist[6][2] := 12;
let dist[6][3] := 11;
let dist[6][4] := 8;
let dist[6][5] := 2;
let dist[6][6] := 18;
let dist[6][7] := 20;
let dist[6][8] := 9;
let dist[6][9] := 3;
let dist[6][10] := 7;
let dist[7][1] := 7;
let dist[7][2] := 14;
let dist[7][3] := 15;
let dist[7][4] := 7;
let dist[7][5] := 18;
let dist[7][6] := 16;
let dist[7][7] := 6;
let dist[7][8] := 8;
let dist[7][9] := 3;
let dist[7][10] := 14;
let dist[8][1] := 12;
let dist[8][2] := 8;
let dist[8][3] := 9;
let dist[8][4] := 2;
let dist[8][5] := 4;
let dist[8][6] := 16;
let dist[8][7] := 8;
let dist[8][8] := 2;
let dist[8][9] := 12;
let dist[8][10] := 9;
let dist[9][1] := 15;
let dist[9][2] := 7;
let dist[9][3] := 16;
let dist[9][4] := 2;
let dist[9][5] := 16;
let dist[9][6] := 14;
let dist[9][7] := 13;
let dist[9][8] := 4;
let dist[9][9] := 1;
let dist[9][10] := 19;
let dist[10][1] := 11;
let dist[10][2] := 11;
let dist[10][3] := 16;
let dist[10][4] := 14;
let dist[10][5] := 20;
let dist[10][6] := 11;
let dist[10][7] := 3;
let dist[10][8] := 15;
let dist[10][9] := 17;
let dist[10][10] := 13;

190
Assignment2/A/data10.lp Normal file
View File

@ -0,0 +1,190 @@
node(a).
path(a, b).
edge(a, b, 13).
path(a, c).
edge(a, c, 12).
path(a, d).
edge(a, d, 10).
path(a, e).
edge(a, e, 13).
path(a, f).
edge(a, f, 13).
path(a, g).
edge(a, g, 18).
path(a, h).
edge(a, h, 3).
path(a, i).
edge(a, i, 3).
path(a, j).
edge(a, j, 12).
node(b).
path(b, a).
edge(b, a, 9).
path(b, c).
edge(b, c, 20).
path(b, d).
edge(b, d, 7).
path(b, e).
edge(b, e, 18).
path(b, f).
edge(b, f, 11).
path(b, g).
edge(b, g, 2).
path(b, h).
edge(b, h, 16).
path(b, i).
edge(b, i, 2).
path(b, j).
edge(b, j, 4).
node(c).
path(c, a).
edge(c, a, 11).
path(c, b).
edge(c, b, 14).
path(c, d).
edge(c, d, 4).
path(c, e).
edge(c, e, 13).
path(c, f).
edge(c, f, 7).
path(c, g).
edge(c, g, 6).
path(c, h).
edge(c, h, 17).
path(c, i).
edge(c, i, 10).
path(c, j).
edge(c, j, 13).
node(d).
path(d, a).
edge(d, a, 18).
path(d, b).
edge(d, b, 12).
path(d, c).
edge(d, c, 15).
path(d, e).
edge(d, e, 7).
path(d, f).
edge(d, f, 19).
path(d, g).
edge(d, g, 20).
path(d, h).
edge(d, h, 4).
path(d, i).
edge(d, i, 12).
path(d, j).
edge(d, j, 14).
node(e).
path(e, a).
edge(e, a, 6).
path(e, b).
edge(e, b, 15).
path(e, c).
edge(e, c, 5).
path(e, d).
edge(e, d, 1).
path(e, f).
edge(e, f, 19).
path(e, g).
edge(e, g, 2).
path(e, h).
edge(e, h, 20).
path(e, i).
edge(e, i, 20).
path(e, j).
edge(e, j, 14).
node(f).
path(f, a).
edge(f, a, 7).
path(f, b).
edge(f, b, 12).
path(f, c).
edge(f, c, 11).
path(f, d).
edge(f, d, 8).
path(f, e).
edge(f, e, 2).
path(f, g).
edge(f, g, 20).
path(f, h).
edge(f, h, 9).
path(f, i).
edge(f, i, 3).
path(f, j).
edge(f, j, 7).
node(g).
path(g, a).
edge(g, a, 7).
path(g, b).
edge(g, b, 14).
path(g, c).
edge(g, c, 15).
path(g, d).
edge(g, d, 7).
path(g, e).
edge(g, e, 18).
path(g, f).
edge(g, f, 16).
path(g, h).
edge(g, h, 8).
path(g, i).
edge(g, i, 3).
path(g, j).
edge(g, j, 14).
node(h).
path(h, a).
edge(h, a, 12).
path(h, b).
edge(h, b, 8).
path(h, c).
edge(h, c, 9).
path(h, d).
edge(h, d, 2).
path(h, e).
edge(h, e, 4).
path(h, f).
edge(h, f, 16).
path(h, g).
edge(h, g, 8).
path(h, i).
edge(h, i, 12).
path(h, j).
edge(h, j, 9).
node(i).
path(i, a).
edge(i, a, 15).
path(i, b).
edge(i, b, 7).
path(i, c).
edge(i, c, 16).
path(i, d).
edge(i, d, 2).
path(i, e).
edge(i, e, 16).
path(i, f).
edge(i, f, 14).
path(i, g).
edge(i, g, 13).
path(i, h).
edge(i, h, 4).
path(i, j).
edge(i, j, 19).
node(j).
path(j, a).
edge(j, a, 11).
path(j, b).
edge(j, b, 11).
path(j, c).
edge(j, c, 16).
path(j, d).
edge(j, d, 14).
path(j, e).
edge(j, e, 20).
path(j, f).
edge(j, f, 11).
path(j, g).
edge(j, g, 3).
path(j, h).
edge(j, h, 15).
path(j, i).
edge(j, i, 17).

12
Assignment2/A/data10.py Normal file
View File

@ -0,0 +1,12 @@
[
[7, 13, 12, 10, 13, 13, 18, 3, 3, 12],
[9, 14, 20, 7, 18, 11, 2, 16, 2, 4],
[11, 14, 19, 4, 13, 7, 6, 17, 10, 13],
[18, 12, 15, 11, 7, 19, 20, 4, 12, 14],
[6, 15, 5, 1, 20, 19, 2, 20, 20, 14],
[7, 12, 11, 8, 2, 18, 20, 9, 3, 7],
[7, 14, 15, 7, 18, 16, 6, 8, 3, 14],
[12, 8, 9, 2, 4, 16, 8, 2, 12, 9],
[15, 7, 16, 2, 16, 14, 13, 4, 1, 19],
[11, 11, 16, 14, 20, 11, 3, 15, 17, 13],
]

210
Assignment2/A/data15.P Normal file
View File

@ -0,0 +1,210 @@
edge(a, b, 4).
edge(a, c, 4).
edge(a, d, 14).
edge(a, e, 12).
edge(a, f, 20).
edge(a, g, 1).
edge(a, h, 1).
edge(a, i, 14).
edge(a, j, 12).
edge(a, k, 15).
edge(a, l, 15).
edge(a, m, 18).
edge(a, n, 11).
edge(a, o, 19).
edge(b, a, 5).
edge(b, c, 3).
edge(b, d, 6).
edge(b, e, 15).
edge(b, f, 6).
edge(b, g, 7).
edge(b, h, 5).
edge(b, i, 3).
edge(b, j, 19).
edge(b, k, 11).
edge(b, l, 8).
edge(b, m, 13).
edge(b, n, 6).
edge(b, o, 12).
edge(c, a, 3).
edge(c, b, 4).
edge(c, d, 2).
edge(c, e, 3).
edge(c, f, 1).
edge(c, g, 1).
edge(c, h, 2).
edge(c, i, 11).
edge(c, j, 2).
edge(c, k, 9).
edge(c, l, 10).
edge(c, m, 14).
edge(c, n, 20).
edge(c, o, 19).
edge(d, a, 17).
edge(d, b, 3).
edge(d, c, 17).
edge(d, e, 13).
edge(d, f, 19).
edge(d, g, 20).
edge(d, h, 12).
edge(d, i, 18).
edge(d, j, 9).
edge(d, k, 11).
edge(d, l, 20).
edge(d, m, 16).
edge(d, n, 18).
edge(d, o, 19).
edge(e, a, 6).
edge(e, b, 5).
edge(e, c, 2).
edge(e, d, 14).
edge(e, f, 8).
edge(e, g, 15).
edge(e, h, 6).
edge(e, i, 2).
edge(e, j, 13).
edge(e, k, 12).
edge(e, l, 7).
edge(e, m, 4).
edge(e, n, 9).
edge(e, o, 6).
edge(f, a, 6).
edge(f, b, 6).
edge(f, c, 14).
edge(f, d, 6).
edge(f, e, 9).
edge(f, g, 14).
edge(f, h, 13).
edge(f, i, 19).
edge(f, j, 12).
edge(f, k, 1).
edge(f, l, 1).
edge(f, m, 1).
edge(f, n, 17).
edge(f, o, 11).
edge(g, a, 15).
edge(g, b, 5).
edge(g, c, 4).
edge(g, d, 13).
edge(g, e, 16).
edge(g, f, 1).
edge(g, h, 12).
edge(g, i, 13).
edge(g, j, 5).
edge(g, k, 1).
edge(g, l, 15).
edge(g, m, 18).
edge(g, n, 19).
edge(g, o, 4).
edge(h, a, 6).
edge(h, b, 13).
edge(h, c, 2).
edge(h, d, 5).
edge(h, e, 10).
edge(h, f, 6).
edge(h, g, 18).
edge(h, i, 3).
edge(h, j, 12).
edge(h, k, 15).
edge(h, l, 7).
edge(h, m, 17).
edge(h, n, 19).
edge(h, o, 1).
edge(i, a, 15).
edge(i, b, 11).
edge(i, c, 12).
edge(i, d, 18).
edge(i, e, 9).
edge(i, f, 20).
edge(i, g, 19).
edge(i, h, 9).
edge(i, j, 4).
edge(i, k, 5).
edge(i, l, 19).
edge(i, m, 8).
edge(i, n, 5).
edge(i, o, 14).
edge(j, a, 1).
edge(j, b, 4).
edge(j, c, 19).
edge(j, d, 7).
edge(j, e, 20).
edge(j, f, 11).
edge(j, g, 5).
edge(j, h, 11).
edge(j, i, 9).
edge(j, k, 15).
edge(j, l, 8).
edge(j, m, 12).
edge(j, n, 4).
edge(j, o, 19).
edge(k, a, 20).
edge(k, b, 12).
edge(k, c, 5).
edge(k, d, 18).
edge(k, e, 10).
edge(k, f, 19).
edge(k, g, 1).
edge(k, h, 3).
edge(k, i, 8).
edge(k, j, 18).
edge(k, l, 20).
edge(k, m, 2).
edge(k, n, 13).
edge(k, o, 13).
edge(l, a, 5).
edge(l, b, 12).
edge(l, c, 9).
edge(l, d, 2).
edge(l, e, 10).
edge(l, f, 3).
edge(l, g, 10).
edge(l, h, 18).
edge(l, i, 10).
edge(l, j, 18).
edge(l, k, 1).
edge(l, m, 6).
edge(l, n, 8).
edge(l, o, 20).
edge(m, a, 1).
edge(m, b, 20).
edge(m, c, 4).
edge(m, d, 12).
edge(m, e, 4).
edge(m, f, 19).
edge(m, g, 17).
edge(m, h, 12).
edge(m, i, 19).
edge(m, j, 13).
edge(m, k, 2).
edge(m, l, 5).
edge(m, n, 5).
edge(m, o, 5).
edge(n, a, 2).
edge(n, b, 1).
edge(n, c, 16).
edge(n, d, 2).
edge(n, e, 15).
edge(n, f, 20).
edge(n, g, 12).
edge(n, h, 6).
edge(n, i, 5).
edge(n, j, 9).
edge(n, k, 4).
edge(n, l, 19).
edge(n, m, 9).
edge(n, o, 13).
edge(o, a, 12).
edge(o, b, 9).
edge(o, c, 20).
edge(o, d, 9).
edge(o, e, 2).
edge(o, f, 6).
edge(o, g, 17).
edge(o, h, 12).
edge(o, i, 11).
edge(o, j, 19).
edge(o, k, 20).
edge(o, l, 6).
edge(o, m, 3).
edge(o, n, 12).

225
Assignment2/A/data15.dat Normal file
View File

@ -0,0 +1,225 @@
let dist[1][1] := 11;
let dist[1][2] := 4;
let dist[1][3] := 4;
let dist[1][4] := 14;
let dist[1][5] := 12;
let dist[1][6] := 20;
let dist[1][7] := 1;
let dist[1][8] := 1;
let dist[1][9] := 14;
let dist[1][10] := 12;
let dist[1][11] := 15;
let dist[1][12] := 15;
let dist[1][13] := 18;
let dist[1][14] := 11;
let dist[1][15] := 19;
let dist[2][1] := 5;
let dist[2][2] := 13;
let dist[2][3] := 3;
let dist[2][4] := 6;
let dist[2][5] := 15;
let dist[2][6] := 6;
let dist[2][7] := 7;
let dist[2][8] := 5;
let dist[2][9] := 3;
let dist[2][10] := 19;
let dist[2][11] := 11;
let dist[2][12] := 8;
let dist[2][13] := 13;
let dist[2][14] := 6;
let dist[2][15] := 12;
let dist[3][1] := 3;
let dist[3][2] := 4;
let dist[3][3] := 10;
let dist[3][4] := 2;
let dist[3][5] := 3;
let dist[3][6] := 1;
let dist[3][7] := 1;
let dist[3][8] := 2;
let dist[3][9] := 11;
let dist[3][10] := 2;
let dist[3][11] := 9;
let dist[3][12] := 10;
let dist[3][13] := 14;
let dist[3][14] := 20;
let dist[3][15] := 19;
let dist[4][1] := 17;
let dist[4][2] := 3;
let dist[4][3] := 17;
let dist[4][4] := 4;
let dist[4][5] := 13;
let dist[4][6] := 19;
let dist[4][7] := 20;
let dist[4][8] := 12;
let dist[4][9] := 18;
let dist[4][10] := 9;
let dist[4][11] := 11;
let dist[4][12] := 20;
let dist[4][13] := 16;
let dist[4][14] := 18;
let dist[4][15] := 19;
let dist[5][1] := 6;
let dist[5][2] := 5;
let dist[5][3] := 2;
let dist[5][4] := 14;
let dist[5][5] := 20;
let dist[5][6] := 8;
let dist[5][7] := 15;
let dist[5][8] := 6;
let dist[5][9] := 2;
let dist[5][10] := 13;
let dist[5][11] := 12;
let dist[5][12] := 7;
let dist[5][13] := 4;
let dist[5][14] := 9;
let dist[5][15] := 6;
let dist[6][1] := 6;
let dist[6][2] := 6;
let dist[6][3] := 14;
let dist[6][4] := 6;
let dist[6][5] := 9;
let dist[6][6] := 20;
let dist[6][7] := 14;
let dist[6][8] := 13;
let dist[6][9] := 19;
let dist[6][10] := 12;
let dist[6][11] := 1;
let dist[6][12] := 1;
let dist[6][13] := 1;
let dist[6][14] := 17;
let dist[6][15] := 11;
let dist[7][1] := 15;
let dist[7][2] := 5;
let dist[7][3] := 4;
let dist[7][4] := 13;
let dist[7][5] := 16;
let dist[7][6] := 1;
let dist[7][7] := 6;
let dist[7][8] := 12;
let dist[7][9] := 13;
let dist[7][10] := 5;
let dist[7][11] := 1;
let dist[7][12] := 15;
let dist[7][13] := 18;
let dist[7][14] := 19;
let dist[7][15] := 4;
let dist[8][1] := 6;
let dist[8][2] := 13;
let dist[8][3] := 2;
let dist[8][4] := 5;
let dist[8][5] := 10;
let dist[8][6] := 6;
let dist[8][7] := 18;
let dist[8][8] := 10;
let dist[8][9] := 3;
let dist[8][10] := 12;
let dist[8][11] := 15;
let dist[8][12] := 7;
let dist[8][13] := 17;
let dist[8][14] := 19;
let dist[8][15] := 1;
let dist[9][1] := 15;
let dist[9][2] := 11;
let dist[9][3] := 12;
let dist[9][4] := 18;
let dist[9][5] := 9;
let dist[9][6] := 20;
let dist[9][7] := 19;
let dist[9][8] := 9;
let dist[9][9] := 8;
let dist[9][10] := 4;
let dist[9][11] := 5;
let dist[9][12] := 19;
let dist[9][13] := 8;
let dist[9][14] := 5;
let dist[9][15] := 14;
let dist[10][1] := 1;
let dist[10][2] := 4;
let dist[10][3] := 19;
let dist[10][4] := 7;
let dist[10][5] := 20;
let dist[10][6] := 11;
let dist[10][7] := 5;
let dist[10][8] := 11;
let dist[10][9] := 9;
let dist[10][10] := 19;
let dist[10][11] := 15;
let dist[10][12] := 8;
let dist[10][13] := 12;
let dist[10][14] := 4;
let dist[10][15] := 19;
let dist[11][1] := 20;
let dist[11][2] := 12;
let dist[11][3] := 5;
let dist[11][4] := 18;
let dist[11][5] := 10;
let dist[11][6] := 19;
let dist[11][7] := 1;
let dist[11][8] := 3;
let dist[11][9] := 8;
let dist[11][10] := 18;
let dist[11][11] := 13;
let dist[11][12] := 20;
let dist[11][13] := 2;
let dist[11][14] := 13;
let dist[11][15] := 13;
let dist[12][1] := 5;
let dist[12][2] := 12;
let dist[12][3] := 9;
let dist[12][4] := 2;
let dist[12][5] := 10;
let dist[12][6] := 3;
let dist[12][7] := 10;
let dist[12][8] := 18;
let dist[12][9] := 10;
let dist[12][10] := 18;
let dist[12][11] := 1;
let dist[12][12] := 16;
let dist[12][13] := 6;
let dist[12][14] := 8;
let dist[12][15] := 20;
let dist[13][1] := 1;
let dist[13][2] := 20;
let dist[13][3] := 4;
let dist[13][4] := 12;
let dist[13][5] := 4;
let dist[13][6] := 19;
let dist[13][7] := 17;
let dist[13][8] := 12;
let dist[13][9] := 19;
let dist[13][10] := 13;
let dist[13][11] := 2;
let dist[13][12] := 5;
let dist[13][13] := 2;
let dist[13][14] := 5;
let dist[13][15] := 5;
let dist[14][1] := 2;
let dist[14][2] := 1;
let dist[14][3] := 16;
let dist[14][4] := 2;
let dist[14][5] := 15;
let dist[14][6] := 20;
let dist[14][7] := 12;
let dist[14][8] := 6;
let dist[14][9] := 5;
let dist[14][10] := 9;
let dist[14][11] := 4;
let dist[14][12] := 19;
let dist[14][13] := 9;
let dist[14][14] := 1;
let dist[14][15] := 13;
let dist[15][1] := 12;
let dist[15][2] := 9;
let dist[15][3] := 20;
let dist[15][4] := 9;
let dist[15][5] := 2;
let dist[15][6] := 6;
let dist[15][7] := 17;
let dist[15][8] := 12;
let dist[15][9] := 11;
let dist[15][10] := 19;
let dist[15][11] := 20;
let dist[15][12] := 6;
let dist[15][13] := 3;
let dist[15][14] := 12;
let dist[15][15] := 18;

435
Assignment2/A/data15.lp Normal file
View File

@ -0,0 +1,435 @@
node(a).
path(a, b).
edge(a, b, 4).
path(a, c).
edge(a, c, 4).
path(a, d).
edge(a, d, 14).
path(a, e).
edge(a, e, 12).
path(a, f).
edge(a, f, 20).
path(a, g).
edge(a, g, 1).
path(a, h).
edge(a, h, 1).
path(a, i).
edge(a, i, 14).
path(a, j).
edge(a, j, 12).
path(a, k).
edge(a, k, 15).
path(a, l).
edge(a, l, 15).
path(a, m).
edge(a, m, 18).
path(a, n).
edge(a, n, 11).
path(a, o).
edge(a, o, 19).
node(b).
path(b, a).
edge(b, a, 5).
path(b, c).
edge(b, c, 3).
path(b, d).
edge(b, d, 6).
path(b, e).
edge(b, e, 15).
path(b, f).
edge(b, f, 6).
path(b, g).
edge(b, g, 7).
path(b, h).
edge(b, h, 5).
path(b, i).
edge(b, i, 3).
path(b, j).
edge(b, j, 19).
path(b, k).
edge(b, k, 11).
path(b, l).
edge(b, l, 8).
path(b, m).
edge(b, m, 13).
path(b, n).
edge(b, n, 6).
path(b, o).
edge(b, o, 12).
node(c).
path(c, a).
edge(c, a, 3).
path(c, b).
edge(c, b, 4).
path(c, d).
edge(c, d, 2).
path(c, e).
edge(c, e, 3).
path(c, f).
edge(c, f, 1).
path(c, g).
edge(c, g, 1).
path(c, h).
edge(c, h, 2).
path(c, i).
edge(c, i, 11).
path(c, j).
edge(c, j, 2).
path(c, k).
edge(c, k, 9).
path(c, l).
edge(c, l, 10).
path(c, m).
edge(c, m, 14).
path(c, n).
edge(c, n, 20).
path(c, o).
edge(c, o, 19).
node(d).
path(d, a).
edge(d, a, 17).
path(d, b).
edge(d, b, 3).
path(d, c).
edge(d, c, 17).
path(d, e).
edge(d, e, 13).
path(d, f).
edge(d, f, 19).
path(d, g).
edge(d, g, 20).
path(d, h).
edge(d, h, 12).
path(d, i).
edge(d, i, 18).
path(d, j).
edge(d, j, 9).
path(d, k).
edge(d, k, 11).
path(d, l).
edge(d, l, 20).
path(d, m).
edge(d, m, 16).
path(d, n).
edge(d, n, 18).
path(d, o).
edge(d, o, 19).
node(e).
path(e, a).
edge(e, a, 6).
path(e, b).
edge(e, b, 5).
path(e, c).
edge(e, c, 2).
path(e, d).
edge(e, d, 14).
path(e, f).
edge(e, f, 8).
path(e, g).
edge(e, g, 15).
path(e, h).
edge(e, h, 6).
path(e, i).
edge(e, i, 2).
path(e, j).
edge(e, j, 13).
path(e, k).
edge(e, k, 12).
path(e, l).
edge(e, l, 7).
path(e, m).
edge(e, m, 4).
path(e, n).
edge(e, n, 9).
path(e, o).
edge(e, o, 6).
node(f).
path(f, a).
edge(f, a, 6).
path(f, b).
edge(f, b, 6).
path(f, c).
edge(f, c, 14).
path(f, d).
edge(f, d, 6).
path(f, e).
edge(f, e, 9).
path(f, g).
edge(f, g, 14).
path(f, h).
edge(f, h, 13).
path(f, i).
edge(f, i, 19).
path(f, j).
edge(f, j, 12).
path(f, k).
edge(f, k, 1).
path(f, l).
edge(f, l, 1).
path(f, m).
edge(f, m, 1).
path(f, n).
edge(f, n, 17).
path(f, o).
edge(f, o, 11).
node(g).
path(g, a).
edge(g, a, 15).
path(g, b).
edge(g, b, 5).
path(g, c).
edge(g, c, 4).
path(g, d).
edge(g, d, 13).
path(g, e).
edge(g, e, 16).
path(g, f).
edge(g, f, 1).
path(g, h).
edge(g, h, 12).
path(g, i).
edge(g, i, 13).
path(g, j).
edge(g, j, 5).
path(g, k).
edge(g, k, 1).
path(g, l).
edge(g, l, 15).
path(g, m).
edge(g, m, 18).
path(g, n).
edge(g, n, 19).
path(g, o).
edge(g, o, 4).
node(h).
path(h, a).
edge(h, a, 6).
path(h, b).
edge(h, b, 13).
path(h, c).
edge(h, c, 2).
path(h, d).
edge(h, d, 5).
path(h, e).
edge(h, e, 10).
path(h, f).
edge(h, f, 6).
path(h, g).
edge(h, g, 18).
path(h, i).
edge(h, i, 3).
path(h, j).
edge(h, j, 12).
path(h, k).
edge(h, k, 15).
path(h, l).
edge(h, l, 7).
path(h, m).
edge(h, m, 17).
path(h, n).
edge(h, n, 19).
path(h, o).
edge(h, o, 1).
node(i).
path(i, a).
edge(i, a, 15).
path(i, b).
edge(i, b, 11).
path(i, c).
edge(i, c, 12).
path(i, d).
edge(i, d, 18).
path(i, e).
edge(i, e, 9).
path(i, f).
edge(i, f, 20).
path(i, g).
edge(i, g, 19).
path(i, h).
edge(i, h, 9).
path(i, j).
edge(i, j, 4).
path(i, k).
edge(i, k, 5).
path(i, l).
edge(i, l, 19).
path(i, m).
edge(i, m, 8).
path(i, n).
edge(i, n, 5).
path(i, o).
edge(i, o, 14).
node(j).
path(j, a).
edge(j, a, 1).
path(j, b).
edge(j, b, 4).
path(j, c).
edge(j, c, 19).
path(j, d).
edge(j, d, 7).
path(j, e).
edge(j, e, 20).
path(j, f).
edge(j, f, 11).
path(j, g).
edge(j, g, 5).
path(j, h).
edge(j, h, 11).
path(j, i).
edge(j, i, 9).
path(j, k).
edge(j, k, 15).
path(j, l).
edge(j, l, 8).
path(j, m).
edge(j, m, 12).
path(j, n).
edge(j, n, 4).
path(j, o).
edge(j, o, 19).
node(k).
path(k, a).
edge(k, a, 20).
path(k, b).
edge(k, b, 12).
path(k, c).
edge(k, c, 5).
path(k, d).
edge(k, d, 18).
path(k, e).
edge(k, e, 10).
path(k, f).
edge(k, f, 19).
path(k, g).
edge(k, g, 1).
path(k, h).
edge(k, h, 3).
path(k, i).
edge(k, i, 8).
path(k, j).
edge(k, j, 18).
path(k, l).
edge(k, l, 20).
path(k, m).
edge(k, m, 2).
path(k, n).
edge(k, n, 13).
path(k, o).
edge(k, o, 13).
node(l).
path(l, a).
edge(l, a, 5).
path(l, b).
edge(l, b, 12).
path(l, c).
edge(l, c, 9).
path(l, d).
edge(l, d, 2).
path(l, e).
edge(l, e, 10).
path(l, f).
edge(l, f, 3).
path(l, g).
edge(l, g, 10).
path(l, h).
edge(l, h, 18).
path(l, i).
edge(l, i, 10).
path(l, j).
edge(l, j, 18).
path(l, k).
edge(l, k, 1).
path(l, m).
edge(l, m, 6).
path(l, n).
edge(l, n, 8).
path(l, o).
edge(l, o, 20).
node(m).
path(m, a).
edge(m, a, 1).
path(m, b).
edge(m, b, 20).
path(m, c).
edge(m, c, 4).
path(m, d).
edge(m, d, 12).
path(m, e).
edge(m, e, 4).
path(m, f).
edge(m, f, 19).
path(m, g).
edge(m, g, 17).
path(m, h).
edge(m, h, 12).
path(m, i).
edge(m, i, 19).
path(m, j).
edge(m, j, 13).
path(m, k).
edge(m, k, 2).
path(m, l).
edge(m, l, 5).
path(m, n).
edge(m, n, 5).
path(m, o).
edge(m, o, 5).
node(n).
path(n, a).
edge(n, a, 2).
path(n, b).
edge(n, b, 1).
path(n, c).
edge(n, c, 16).
path(n, d).
edge(n, d, 2).
path(n, e).
edge(n, e, 15).
path(n, f).
edge(n, f, 20).
path(n, g).
edge(n, g, 12).
path(n, h).
edge(n, h, 6).
path(n, i).
edge(n, i, 5).
path(n, j).
edge(n, j, 9).
path(n, k).
edge(n, k, 4).
path(n, l).
edge(n, l, 19).
path(n, m).
edge(n, m, 9).
path(n, o).
edge(n, o, 13).
node(o).
path(o, a).
edge(o, a, 12).
path(o, b).
edge(o, b, 9).
path(o, c).
edge(o, c, 20).
path(o, d).
edge(o, d, 9).
path(o, e).
edge(o, e, 2).
path(o, f).
edge(o, f, 6).
path(o, g).
edge(o, g, 17).
path(o, h).
edge(o, h, 12).
path(o, i).
edge(o, i, 11).
path(o, j).
edge(o, j, 19).
path(o, k).
edge(o, k, 20).
path(o, l).
edge(o, l, 6).
path(o, m).
edge(o, m, 3).
path(o, n).
edge(o, n, 12).

17
Assignment2/A/data15.py Normal file
View File

@ -0,0 +1,17 @@
[
[11, 4, 4, 14, 12, 20, 1, 1, 14, 12, 15, 15, 18, 11, 19],
[5, 13, 3, 6, 15, 6, 7, 5, 3, 19, 11, 8, 13, 6, 12],
[3, 4, 10, 2, 3, 1, 1, 2, 11, 2, 9, 10, 14, 20, 19],
[17, 3, 17, 4, 13, 19, 20, 12, 18, 9, 11, 20, 16, 18, 19],
[6, 5, 2, 14, 20, 8, 15, 6, 2, 13, 12, 7, 4, 9, 6],
[6, 6, 14, 6, 9, 20, 14, 13, 19, 12, 1, 1, 1, 17, 11],
[15, 5, 4, 13, 16, 1, 6, 12, 13, 5, 1, 15, 18, 19, 4],
[6, 13, 2, 5, 10, 6, 18, 10, 3, 12, 15, 7, 17, 19, 1],
[15, 11, 12, 18, 9, 20, 19, 9, 8, 4, 5, 19, 8, 5, 14],
[1, 4, 19, 7, 20, 11, 5, 11, 9, 19, 15, 8, 12, 4, 19],
[20, 12, 5, 18, 10, 19, 1, 3, 8, 18, 13, 20, 2, 13, 13],
[5, 12, 9, 2, 10, 3, 10, 18, 10, 18, 1, 16, 6, 8, 20],
[1, 20, 4, 12, 4, 19, 17, 12, 19, 13, 2, 5, 2, 5, 5],
[2, 1, 16, 2, 15, 20, 12, 6, 5, 9, 4, 19, 9, 1, 13],
[12, 9, 20, 9, 2, 6, 17, 12, 11, 19, 20, 6, 3, 12, 18],
]

380
Assignment2/A/data20.P Normal file
View File

@ -0,0 +1,380 @@
edge(a, b, 8).
edge(a, c, 15).
edge(a, d, 7).
edge(a, e, 11).
edge(a, f, 17).
edge(a, g, 8).
edge(a, h, 3).
edge(a, i, 4).
edge(a, j, 11).
edge(a, k, 9).
edge(a, l, 6).
edge(a, m, 2).
edge(a, n, 7).
edge(a, o, 15).
edge(a, p, 6).
edge(a, q, 16).
edge(a, r, 5).
edge(a, s, 9).
edge(a, t, 14).
edge(b, a, 16).
edge(b, c, 13).
edge(b, d, 16).
edge(b, e, 15).
edge(b, f, 17).
edge(b, g, 12).
edge(b, h, 11).
edge(b, i, 7).
edge(b, j, 8).
edge(b, k, 13).
edge(b, l, 3).
edge(b, m, 7).
edge(b, n, 15).
edge(b, o, 9).
edge(b, p, 8).
edge(b, q, 16).
edge(b, r, 18).
edge(b, s, 7).
edge(b, t, 5).
edge(c, a, 16).
edge(c, b, 4).
edge(c, d, 9).
edge(c, e, 17).
edge(c, f, 11).
edge(c, g, 18).
edge(c, h, 2).
edge(c, i, 16).
edge(c, j, 13).
edge(c, k, 6).
edge(c, l, 5).
edge(c, m, 2).
edge(c, n, 7).
edge(c, o, 18).
edge(c, p, 16).
edge(c, q, 19).
edge(c, r, 14).
edge(c, s, 14).
edge(c, t, 9).
edge(d, a, 9).
edge(d, b, 9).
edge(d, c, 7).
edge(d, e, 16).
edge(d, f, 12).
edge(d, g, 3).
edge(d, h, 5).
edge(d, i, 16).
edge(d, j, 18).
edge(d, k, 10).
edge(d, l, 7).
edge(d, m, 6).
edge(d, n, 12).
edge(d, o, 4).
edge(d, p, 5).
edge(d, q, 14).
edge(d, r, 11).
edge(d, s, 5).
edge(d, t, 5).
edge(e, a, 5).
edge(e, b, 2).
edge(e, c, 16).
edge(e, d, 18).
edge(e, f, 15).
edge(e, g, 8).
edge(e, h, 10).
edge(e, i, 15).
edge(e, j, 18).
edge(e, k, 10).
edge(e, l, 7).
edge(e, m, 2).
edge(e, n, 1).
edge(e, o, 15).
edge(e, p, 17).
edge(e, q, 2).
edge(e, r, 15).
edge(e, s, 9).
edge(e, t, 6).
edge(f, a, 9).
edge(f, b, 7).
edge(f, c, 11).
edge(f, d, 10).
edge(f, e, 12).
edge(f, g, 10).
edge(f, h, 1).
edge(f, i, 5).
edge(f, j, 20).
edge(f, k, 19).
edge(f, l, 12).
edge(f, m, 13).
edge(f, n, 1).
edge(f, o, 19).
edge(f, p, 16).
edge(f, q, 17).
edge(f, r, 20).
edge(f, s, 16).
edge(f, t, 2).
edge(g, a, 15).
edge(g, b, 7).
edge(g, c, 3).
edge(g, d, 15).
edge(g, e, 20).
edge(g, f, 5).
edge(g, h, 4).
edge(g, i, 20).
edge(g, j, 13).
edge(g, k, 5).
edge(g, l, 11).
edge(g, m, 20).
edge(g, n, 16).
edge(g, o, 13).
edge(g, p, 4).
edge(g, q, 7).
edge(g, r, 11).
edge(g, s, 13).
edge(g, t, 17).
edge(h, a, 11).
edge(h, b, 16).
edge(h, c, 19).
edge(h, d, 15).
edge(h, e, 12).
edge(h, f, 12).
edge(h, g, 10).
edge(h, i, 1).
edge(h, j, 15).
edge(h, k, 17).
edge(h, l, 17).
edge(h, m, 18).
edge(h, n, 17).
edge(h, o, 9).
edge(h, p, 12).
edge(h, q, 9).
edge(h, r, 4).
edge(h, s, 17).
edge(h, t, 3).
edge(i, a, 2).
edge(i, b, 5).
edge(i, c, 16).
edge(i, d, 14).
edge(i, e, 5).
edge(i, f, 3).
edge(i, g, 16).
edge(i, h, 7).
edge(i, j, 2).
edge(i, k, 1).
edge(i, l, 3).
edge(i, m, 20).
edge(i, n, 16).
edge(i, o, 14).
edge(i, p, 9).
edge(i, q, 10).
edge(i, r, 18).
edge(i, s, 20).
edge(i, t, 8).
edge(j, a, 9).
edge(j, b, 4).
edge(j, c, 20).
edge(j, d, 2).
edge(j, e, 11).
edge(j, f, 19).
edge(j, g, 5).
edge(j, h, 3).
edge(j, i, 11).
edge(j, k, 13).
edge(j, l, 20).
edge(j, m, 17).
edge(j, n, 5).
edge(j, o, 12).
edge(j, p, 17).
edge(j, q, 17).
edge(j, r, 9).
edge(j, s, 5).
edge(j, t, 4).
edge(k, a, 5).
edge(k, b, 14).
edge(k, c, 7).
edge(k, d, 14).
edge(k, e, 3).
edge(k, f, 13).
edge(k, g, 1).
edge(k, h, 13).
edge(k, i, 17).
edge(k, j, 6).
edge(k, l, 18).
edge(k, m, 16).
edge(k, n, 15).
edge(k, o, 18).
edge(k, p, 19).
edge(k, q, 15).
edge(k, r, 12).
edge(k, s, 9).
edge(k, t, 4).
edge(l, a, 14).
edge(l, b, 2).
edge(l, c, 17).
edge(l, d, 8).
edge(l, e, 11).
edge(l, f, 16).
edge(l, g, 7).
edge(l, h, 12).
edge(l, i, 12).
edge(l, j, 6).
edge(l, k, 13).
edge(l, m, 6).
edge(l, n, 18).
edge(l, o, 3).
edge(l, p, 7).
edge(l, q, 3).
edge(l, r, 1).
edge(l, s, 7).
edge(l, t, 17).
edge(m, a, 8).
edge(m, b, 10).
edge(m, c, 8).
edge(m, d, 13).
edge(m, e, 15).
edge(m, f, 20).
edge(m, g, 2).
edge(m, h, 11).
edge(m, i, 9).
edge(m, j, 1).
edge(m, k, 4).
edge(m, l, 14).
edge(m, n, 19).
edge(m, o, 15).
edge(m, p, 13).
edge(m, q, 18).
edge(m, r, 16).
edge(m, s, 10).
edge(m, t, 2).
edge(n, a, 16).
edge(n, b, 2).
edge(n, c, 14).
edge(n, d, 3).
edge(n, e, 11).
edge(n, f, 17).
edge(n, g, 7).
edge(n, h, 6).
edge(n, i, 4).
edge(n, j, 2).
edge(n, k, 3).
edge(n, l, 8).
edge(n, m, 20).
edge(n, o, 7).
edge(n, p, 12).
edge(n, q, 1).
edge(n, r, 4).
edge(n, s, 20).
edge(n, t, 10).
edge(o, a, 5).
edge(o, b, 19).
edge(o, c, 10).
edge(o, d, 18).
edge(o, e, 6).
edge(o, f, 18).
edge(o, g, 2).
edge(o, h, 11).
edge(o, i, 6).
edge(o, j, 18).
edge(o, k, 11).
edge(o, l, 18).
edge(o, m, 13).
edge(o, n, 7).
edge(o, p, 15).
edge(o, q, 3).
edge(o, r, 10).
edge(o, s, 20).
edge(o, t, 7).
edge(p, a, 16).
edge(p, b, 19).
edge(p, c, 12).
edge(p, d, 19).
edge(p, e, 15).
edge(p, f, 12).
edge(p, g, 14).
edge(p, h, 8).
edge(p, i, 7).
edge(p, j, 11).
edge(p, k, 4).
edge(p, l, 13).
edge(p, m, 19).
edge(p, n, 12).
edge(p, o, 14).
edge(p, q, 3).
edge(p, r, 7).
edge(p, s, 8).
edge(p, t, 20).
edge(q, a, 4).
edge(q, b, 4).
edge(q, c, 15).
edge(q, d, 5).
edge(q, e, 16).
edge(q, f, 14).
edge(q, g, 18).
edge(q, h, 11).
edge(q, i, 18).
edge(q, j, 20).
edge(q, k, 19).
edge(q, l, 18).
edge(q, m, 18).
edge(q, n, 4).
edge(q, o, 3).
edge(q, p, 20).
edge(q, r, 18).
edge(q, s, 18).
edge(q, t, 1).
edge(r, a, 19).
edge(r, b, 6).
edge(r, c, 2).
edge(r, d, 15).
edge(r, e, 20).
edge(r, f, 3).
edge(r, g, 13).
edge(r, h, 7).
edge(r, i, 10).
edge(r, j, 17).
edge(r, k, 12).
edge(r, l, 11).
edge(r, m, 10).
edge(r, n, 19).
edge(r, o, 6).
edge(r, p, 2).
edge(r, q, 2).
edge(r, s, 15).
edge(r, t, 1).
edge(s, a, 16).
edge(s, b, 16).
edge(s, c, 3).
edge(s, d, 7).
edge(s, e, 6).
edge(s, f, 12).
edge(s, g, 6).
edge(s, h, 3).
edge(s, i, 2).
edge(s, j, 1).
edge(s, k, 11).
edge(s, l, 8).
edge(s, m, 13).
edge(s, n, 16).
edge(s, o, 14).
edge(s, p, 5).
edge(s, q, 20).
edge(s, r, 20).
edge(s, t, 3).
edge(t, a, 3).
edge(t, b, 14).
edge(t, c, 13).
edge(t, d, 20).
edge(t, e, 20).
edge(t, f, 2).
edge(t, g, 7).
edge(t, h, 14).
edge(t, i, 2).
edge(t, j, 6).
edge(t, k, 2).
edge(t, l, 19).
edge(t, m, 20).
edge(t, n, 20).
edge(t, o, 14).
edge(t, p, 7).
edge(t, q, 7).
edge(t, r, 5).
edge(t, s, 15).

400
Assignment2/A/data20.dat Normal file
View File

@ -0,0 +1,400 @@
let dist[1][1] := 8;
let dist[1][2] := 8;
let dist[1][3] := 15;
let dist[1][4] := 7;
let dist[1][5] := 11;
let dist[1][6] := 17;
let dist[1][7] := 8;
let dist[1][8] := 3;
let dist[1][9] := 4;
let dist[1][10] := 11;
let dist[1][11] := 9;
let dist[1][12] := 6;
let dist[1][13] := 2;
let dist[1][14] := 7;
let dist[1][15] := 15;
let dist[1][16] := 6;
let dist[1][17] := 16;
let dist[1][18] := 5;
let dist[1][19] := 9;
let dist[1][20] := 14;
let dist[2][1] := 16;
let dist[2][2] := 17;
let dist[2][3] := 13;
let dist[2][4] := 16;
let dist[2][5] := 15;
let dist[2][6] := 17;
let dist[2][7] := 12;
let dist[2][8] := 11;
let dist[2][9] := 7;
let dist[2][10] := 8;
let dist[2][11] := 13;
let dist[2][12] := 3;
let dist[2][13] := 7;
let dist[2][14] := 15;
let dist[2][15] := 9;
let dist[2][16] := 8;
let dist[2][17] := 16;
let dist[2][18] := 18;
let dist[2][19] := 7;
let dist[2][20] := 5;
let dist[3][1] := 16;
let dist[3][2] := 4;
let dist[3][3] := 1;
let dist[3][4] := 9;
let dist[3][5] := 17;
let dist[3][6] := 11;
let dist[3][7] := 18;
let dist[3][8] := 2;
let dist[3][9] := 16;
let dist[3][10] := 13;
let dist[3][11] := 6;
let dist[3][12] := 5;
let dist[3][13] := 2;
let dist[3][14] := 7;
let dist[3][15] := 18;
let dist[3][16] := 16;
let dist[3][17] := 19;
let dist[3][18] := 14;
let dist[3][19] := 14;
let dist[3][20] := 9;
let dist[4][1] := 9;
let dist[4][2] := 9;
let dist[4][3] := 7;
let dist[4][4] := 12;
let dist[4][5] := 16;
let dist[4][6] := 12;
let dist[4][7] := 3;
let dist[4][8] := 5;
let dist[4][9] := 16;
let dist[4][10] := 18;
let dist[4][11] := 10;
let dist[4][12] := 7;
let dist[4][13] := 6;
let dist[4][14] := 12;
let dist[4][15] := 4;
let dist[4][16] := 5;
let dist[4][17] := 14;
let dist[4][18] := 11;
let dist[4][19] := 5;
let dist[4][20] := 5;
let dist[5][1] := 5;
let dist[5][2] := 2;
let dist[5][3] := 16;
let dist[5][4] := 18;
let dist[5][5] := 15;
let dist[5][6] := 15;
let dist[5][7] := 8;
let dist[5][8] := 10;
let dist[5][9] := 15;
let dist[5][10] := 18;
let dist[5][11] := 10;
let dist[5][12] := 7;
let dist[5][13] := 2;
let dist[5][14] := 1;
let dist[5][15] := 15;
let dist[5][16] := 17;
let dist[5][17] := 2;
let dist[5][18] := 15;
let dist[5][19] := 9;
let dist[5][20] := 6;
let dist[6][1] := 9;
let dist[6][2] := 7;
let dist[6][3] := 11;
let dist[6][4] := 10;
let dist[6][5] := 12;
let dist[6][6] := 6;
let dist[6][7] := 10;
let dist[6][8] := 1;
let dist[6][9] := 5;
let dist[6][10] := 20;
let dist[6][11] := 19;
let dist[6][12] := 12;
let dist[6][13] := 13;
let dist[6][14] := 1;
let dist[6][15] := 19;
let dist[6][16] := 16;
let dist[6][17] := 17;
let dist[6][18] := 20;
let dist[6][19] := 16;
let dist[6][20] := 2;
let dist[7][1] := 15;
let dist[7][2] := 7;
let dist[7][3] := 3;
let dist[7][4] := 15;
let dist[7][5] := 20;
let dist[7][6] := 5;
let dist[7][7] := 10;
let dist[7][8] := 4;
let dist[7][9] := 20;
let dist[7][10] := 13;
let dist[7][11] := 5;
let dist[7][12] := 11;
let dist[7][13] := 20;
let dist[7][14] := 16;
let dist[7][15] := 13;
let dist[7][16] := 4;
let dist[7][17] := 7;
let dist[7][18] := 11;
let dist[7][19] := 13;
let dist[7][20] := 17;
let dist[8][1] := 11;
let dist[8][2] := 16;
let dist[8][3] := 19;
let dist[8][4] := 15;
let dist[8][5] := 12;
let dist[8][6] := 12;
let dist[8][7] := 10;
let dist[8][8] := 9;
let dist[8][9] := 1;
let dist[8][10] := 15;
let dist[8][11] := 17;
let dist[8][12] := 17;
let dist[8][13] := 18;
let dist[8][14] := 17;
let dist[8][15] := 9;
let dist[8][16] := 12;
let dist[8][17] := 9;
let dist[8][18] := 4;
let dist[8][19] := 17;
let dist[8][20] := 3;
let dist[9][1] := 2;
let dist[9][2] := 5;
let dist[9][3] := 16;
let dist[9][4] := 14;
let dist[9][5] := 5;
let dist[9][6] := 3;
let dist[9][7] := 16;
let dist[9][8] := 7;
let dist[9][9] := 3;
let dist[9][10] := 2;
let dist[9][11] := 1;
let dist[9][12] := 3;
let dist[9][13] := 20;
let dist[9][14] := 16;
let dist[9][15] := 14;
let dist[9][16] := 9;
let dist[9][17] := 10;
let dist[9][18] := 18;
let dist[9][19] := 20;
let dist[9][20] := 8;
let dist[10][1] := 9;
let dist[10][2] := 4;
let dist[10][3] := 20;
let dist[10][4] := 2;
let dist[10][5] := 11;
let dist[10][6] := 19;
let dist[10][7] := 5;
let dist[10][8] := 3;
let dist[10][9] := 11;
let dist[10][10] := 2;
let dist[10][11] := 13;
let dist[10][12] := 20;
let dist[10][13] := 17;
let dist[10][14] := 5;
let dist[10][15] := 12;
let dist[10][16] := 17;
let dist[10][17] := 17;
let dist[10][18] := 9;
let dist[10][19] := 5;
let dist[10][20] := 4;
let dist[11][1] := 5;
let dist[11][2] := 14;
let dist[11][3] := 7;
let dist[11][4] := 14;
let dist[11][5] := 3;
let dist[11][6] := 13;
let dist[11][7] := 1;
let dist[11][8] := 13;
let dist[11][9] := 17;
let dist[11][10] := 6;
let dist[11][11] := 18;
let dist[11][12] := 18;
let dist[11][13] := 16;
let dist[11][14] := 15;
let dist[11][15] := 18;
let dist[11][16] := 19;
let dist[11][17] := 15;
let dist[11][18] := 12;
let dist[11][19] := 9;
let dist[11][20] := 4;
let dist[12][1] := 14;
let dist[12][2] := 2;
let dist[12][3] := 17;
let dist[12][4] := 8;
let dist[12][5] := 11;
let dist[12][6] := 16;
let dist[12][7] := 7;
let dist[12][8] := 12;
let dist[12][9] := 12;
let dist[12][10] := 6;
let dist[12][11] := 13;
let dist[12][12] := 12;
let dist[12][13] := 6;
let dist[12][14] := 18;
let dist[12][15] := 3;
let dist[12][16] := 7;
let dist[12][17] := 3;
let dist[12][18] := 1;
let dist[12][19] := 7;
let dist[12][20] := 17;
let dist[13][1] := 8;
let dist[13][2] := 10;
let dist[13][3] := 8;
let dist[13][4] := 13;
let dist[13][5] := 15;
let dist[13][6] := 20;
let dist[13][7] := 2;
let dist[13][8] := 11;
let dist[13][9] := 9;
let dist[13][10] := 1;
let dist[13][11] := 4;
let dist[13][12] := 14;
let dist[13][13] := 1;
let dist[13][14] := 19;
let dist[13][15] := 15;
let dist[13][16] := 13;
let dist[13][17] := 18;
let dist[13][18] := 16;
let dist[13][19] := 10;
let dist[13][20] := 2;
let dist[14][1] := 16;
let dist[14][2] := 2;
let dist[14][3] := 14;
let dist[14][4] := 3;
let dist[14][5] := 11;
let dist[14][6] := 17;
let dist[14][7] := 7;
let dist[14][8] := 6;
let dist[14][9] := 4;
let dist[14][10] := 2;
let dist[14][11] := 3;
let dist[14][12] := 8;
let dist[14][13] := 20;
let dist[14][14] := 8;
let dist[14][15] := 7;
let dist[14][16] := 12;
let dist[14][17] := 1;
let dist[14][18] := 4;
let dist[14][19] := 20;
let dist[14][20] := 10;
let dist[15][1] := 5;
let dist[15][2] := 19;
let dist[15][3] := 10;
let dist[15][4] := 18;
let dist[15][5] := 6;
let dist[15][6] := 18;
let dist[15][7] := 2;
let dist[15][8] := 11;
let dist[15][9] := 6;
let dist[15][10] := 18;
let dist[15][11] := 11;
let dist[15][12] := 18;
let dist[15][13] := 13;
let dist[15][14] := 7;
let dist[15][15] := 18;
let dist[15][16] := 15;
let dist[15][17] := 3;
let dist[15][18] := 10;
let dist[15][19] := 20;
let dist[15][20] := 7;
let dist[16][1] := 16;
let dist[16][2] := 19;
let dist[16][3] := 12;
let dist[16][4] := 19;
let dist[16][5] := 15;
let dist[16][6] := 12;
let dist[16][7] := 14;
let dist[16][8] := 8;
let dist[16][9] := 7;
let dist[16][10] := 11;
let dist[16][11] := 4;
let dist[16][12] := 13;
let dist[16][13] := 19;
let dist[16][14] := 12;
let dist[16][15] := 14;
let dist[16][16] := 13;
let dist[16][17] := 3;
let dist[16][18] := 7;
let dist[16][19] := 8;
let dist[16][20] := 20;
let dist[17][1] := 4;
let dist[17][2] := 4;
let dist[17][3] := 15;
let dist[17][4] := 5;
let dist[17][5] := 16;
let dist[17][6] := 14;
let dist[17][7] := 18;
let dist[17][8] := 11;
let dist[17][9] := 18;
let dist[17][10] := 20;
let dist[17][11] := 19;
let dist[17][12] := 18;
let dist[17][13] := 18;
let dist[17][14] := 4;
let dist[17][15] := 3;
let dist[17][16] := 20;
let dist[17][17] := 5;
let dist[17][18] := 18;
let dist[17][19] := 18;
let dist[17][20] := 1;
let dist[18][1] := 19;
let dist[18][2] := 6;
let dist[18][3] := 2;
let dist[18][4] := 15;
let dist[18][5] := 20;
let dist[18][6] := 3;
let dist[18][7] := 13;
let dist[18][8] := 7;
let dist[18][9] := 10;
let dist[18][10] := 17;
let dist[18][11] := 12;
let dist[18][12] := 11;
let dist[18][13] := 10;
let dist[18][14] := 19;
let dist[18][15] := 6;
let dist[18][16] := 2;
let dist[18][17] := 2;
let dist[18][18] := 19;
let dist[18][19] := 15;
let dist[18][20] := 1;
let dist[19][1] := 16;
let dist[19][2] := 16;
let dist[19][3] := 3;
let dist[19][4] := 7;
let dist[19][5] := 6;
let dist[19][6] := 12;
let dist[19][7] := 6;
let dist[19][8] := 3;
let dist[19][9] := 2;
let dist[19][10] := 1;
let dist[19][11] := 11;
let dist[19][12] := 8;
let dist[19][13] := 13;
let dist[19][14] := 16;
let dist[19][15] := 14;
let dist[19][16] := 5;
let dist[19][17] := 20;
let dist[19][18] := 20;
let dist[19][19] := 10;
let dist[19][20] := 3;
let dist[20][1] := 3;
let dist[20][2] := 14;
let dist[20][3] := 13;
let dist[20][4] := 20;
let dist[20][5] := 20;
let dist[20][6] := 2;
let dist[20][7] := 7;
let dist[20][8] := 14;
let dist[20][9] := 2;
let dist[20][10] := 6;
let dist[20][11] := 2;
let dist[20][12] := 19;
let dist[20][13] := 20;
let dist[20][14] := 20;
let dist[20][15] := 14;
let dist[20][16] := 7;
let dist[20][17] := 7;
let dist[20][18] := 5;
let dist[20][19] := 15;
let dist[20][20] := 18;

780
Assignment2/A/data20.lp Normal file
View File

@ -0,0 +1,780 @@
node(a).
path(a, b).
edge(a, b, 8).
path(a, c).
edge(a, c, 15).
path(a, d).
edge(a, d, 7).
path(a, e).
edge(a, e, 11).
path(a, f).
edge(a, f, 17).
path(a, g).
edge(a, g, 8).
path(a, h).
edge(a, h, 3).
path(a, i).
edge(a, i, 4).
path(a, j).
edge(a, j, 11).
path(a, k).
edge(a, k, 9).
path(a, l).
edge(a, l, 6).
path(a, m).
edge(a, m, 2).
path(a, n).
edge(a, n, 7).
path(a, o).
edge(a, o, 15).
path(a, p).
edge(a, p, 6).
path(a, q).
edge(a, q, 16).
path(a, r).
edge(a, r, 5).
path(a, s).
edge(a, s, 9).
path(a, t).
edge(a, t, 14).
node(b).
path(b, a).
edge(b, a, 16).
path(b, c).
edge(b, c, 13).
path(b, d).
edge(b, d, 16).
path(b, e).
edge(b, e, 15).
path(b, f).
edge(b, f, 17).
path(b, g).
edge(b, g, 12).
path(b, h).
edge(b, h, 11).
path(b, i).
edge(b, i, 7).
path(b, j).
edge(b, j, 8).
path(b, k).
edge(b, k, 13).
path(b, l).
edge(b, l, 3).
path(b, m).
edge(b, m, 7).
path(b, n).
edge(b, n, 15).
path(b, o).
edge(b, o, 9).
path(b, p).
edge(b, p, 8).
path(b, q).
edge(b, q, 16).
path(b, r).
edge(b, r, 18).
path(b, s).
edge(b, s, 7).
path(b, t).
edge(b, t, 5).
node(c).
path(c, a).
edge(c, a, 16).
path(c, b).
edge(c, b, 4).
path(c, d).
edge(c, d, 9).
path(c, e).
edge(c, e, 17).
path(c, f).
edge(c, f, 11).
path(c, g).
edge(c, g, 18).
path(c, h).
edge(c, h, 2).
path(c, i).
edge(c, i, 16).
path(c, j).
edge(c, j, 13).
path(c, k).
edge(c, k, 6).
path(c, l).
edge(c, l, 5).
path(c, m).
edge(c, m, 2).
path(c, n).
edge(c, n, 7).
path(c, o).
edge(c, o, 18).
path(c, p).
edge(c, p, 16).
path(c, q).
edge(c, q, 19).
path(c, r).
edge(c, r, 14).
path(c, s).
edge(c, s, 14).
path(c, t).
edge(c, t, 9).
node(d).
path(d, a).
edge(d, a, 9).
path(d, b).
edge(d, b, 9).
path(d, c).
edge(d, c, 7).
path(d, e).
edge(d, e, 16).
path(d, f).
edge(d, f, 12).
path(d, g).
edge(d, g, 3).
path(d, h).
edge(d, h, 5).
path(d, i).
edge(d, i, 16).
path(d, j).
edge(d, j, 18).
path(d, k).
edge(d, k, 10).
path(d, l).
edge(d, l, 7).
path(d, m).
edge(d, m, 6).
path(d, n).
edge(d, n, 12).
path(d, o).
edge(d, o, 4).
path(d, p).
edge(d, p, 5).
path(d, q).
edge(d, q, 14).
path(d, r).
edge(d, r, 11).
path(d, s).
edge(d, s, 5).
path(d, t).
edge(d, t, 5).
node(e).
path(e, a).
edge(e, a, 5).
path(e, b).
edge(e, b, 2).
path(e, c).
edge(e, c, 16).
path(e, d).
edge(e, d, 18).
path(e, f).
edge(e, f, 15).
path(e, g).
edge(e, g, 8).
path(e, h).
edge(e, h, 10).
path(e, i).
edge(e, i, 15).
path(e, j).
edge(e, j, 18).
path(e, k).
edge(e, k, 10).
path(e, l).
edge(e, l, 7).
path(e, m).
edge(e, m, 2).
path(e, n).
edge(e, n, 1).
path(e, o).
edge(e, o, 15).
path(e, p).
edge(e, p, 17).
path(e, q).
edge(e, q, 2).
path(e, r).
edge(e, r, 15).
path(e, s).
edge(e, s, 9).
path(e, t).
edge(e, t, 6).
node(f).
path(f, a).
edge(f, a, 9).
path(f, b).
edge(f, b, 7).
path(f, c).
edge(f, c, 11).
path(f, d).
edge(f, d, 10).
path(f, e).
edge(f, e, 12).
path(f, g).
edge(f, g, 10).
path(f, h).
edge(f, h, 1).
path(f, i).
edge(f, i, 5).
path(f, j).
edge(f, j, 20).
path(f, k).
edge(f, k, 19).
path(f, l).
edge(f, l, 12).
path(f, m).
edge(f, m, 13).
path(f, n).
edge(f, n, 1).
path(f, o).
edge(f, o, 19).
path(f, p).
edge(f, p, 16).
path(f, q).
edge(f, q, 17).
path(f, r).
edge(f, r, 20).
path(f, s).
edge(f, s, 16).
path(f, t).
edge(f, t, 2).
node(g).
path(g, a).
edge(g, a, 15).
path(g, b).
edge(g, b, 7).
path(g, c).
edge(g, c, 3).
path(g, d).
edge(g, d, 15).
path(g, e).
edge(g, e, 20).
path(g, f).
edge(g, f, 5).
path(g, h).
edge(g, h, 4).
path(g, i).
edge(g, i, 20).
path(g, j).
edge(g, j, 13).
path(g, k).
edge(g, k, 5).
path(g, l).
edge(g, l, 11).
path(g, m).
edge(g, m, 20).
path(g, n).
edge(g, n, 16).
path(g, o).
edge(g, o, 13).
path(g, p).
edge(g, p, 4).
path(g, q).
edge(g, q, 7).
path(g, r).
edge(g, r, 11).
path(g, s).
edge(g, s, 13).
path(g, t).
edge(g, t, 17).
node(h).
path(h, a).
edge(h, a, 11).
path(h, b).
edge(h, b, 16).
path(h, c).
edge(h, c, 19).
path(h, d).
edge(h, d, 15).
path(h, e).
edge(h, e, 12).
path(h, f).
edge(h, f, 12).
path(h, g).
edge(h, g, 10).
path(h, i).
edge(h, i, 1).
path(h, j).
edge(h, j, 15).
path(h, k).
edge(h, k, 17).
path(h, l).
edge(h, l, 17).
path(h, m).
edge(h, m, 18).
path(h, n).
edge(h, n, 17).
path(h, o).
edge(h, o, 9).
path(h, p).
edge(h, p, 12).
path(h, q).
edge(h, q, 9).
path(h, r).
edge(h, r, 4).
path(h, s).
edge(h, s, 17).
path(h, t).
edge(h, t, 3).
node(i).
path(i, a).
edge(i, a, 2).
path(i, b).
edge(i, b, 5).
path(i, c).
edge(i, c, 16).
path(i, d).
edge(i, d, 14).
path(i, e).
edge(i, e, 5).
path(i, f).
edge(i, f, 3).
path(i, g).
edge(i, g, 16).
path(i, h).
edge(i, h, 7).
path(i, j).
edge(i, j, 2).
path(i, k).
edge(i, k, 1).
path(i, l).
edge(i, l, 3).
path(i, m).
edge(i, m, 20).
path(i, n).
edge(i, n, 16).
path(i, o).
edge(i, o, 14).
path(i, p).
edge(i, p, 9).
path(i, q).
edge(i, q, 10).
path(i, r).
edge(i, r, 18).
path(i, s).
edge(i, s, 20).
path(i, t).
edge(i, t, 8).
node(j).
path(j, a).
edge(j, a, 9).
path(j, b).
edge(j, b, 4).
path(j, c).
edge(j, c, 20).
path(j, d).
edge(j, d, 2).
path(j, e).
edge(j, e, 11).
path(j, f).
edge(j, f, 19).
path(j, g).
edge(j, g, 5).
path(j, h).
edge(j, h, 3).
path(j, i).
edge(j, i, 11).
path(j, k).
edge(j, k, 13).
path(j, l).
edge(j, l, 20).
path(j, m).
edge(j, m, 17).
path(j, n).
edge(j, n, 5).
path(j, o).
edge(j, o, 12).
path(j, p).
edge(j, p, 17).
path(j, q).
edge(j, q, 17).
path(j, r).
edge(j, r, 9).
path(j, s).
edge(j, s, 5).
path(j, t).
edge(j, t, 4).
node(k).
path(k, a).
edge(k, a, 5).
path(k, b).
edge(k, b, 14).
path(k, c).
edge(k, c, 7).
path(k, d).
edge(k, d, 14).
path(k, e).
edge(k, e, 3).
path(k, f).
edge(k, f, 13).
path(k, g).
edge(k, g, 1).
path(k, h).
edge(k, h, 13).
path(k, i).
edge(k, i, 17).
path(k, j).
edge(k, j, 6).
path(k, l).
edge(k, l, 18).
path(k, m).
edge(k, m, 16).
path(k, n).
edge(k, n, 15).
path(k, o).
edge(k, o, 18).
path(k, p).
edge(k, p, 19).
path(k, q).
edge(k, q, 15).
path(k, r).
edge(k, r, 12).
path(k, s).
edge(k, s, 9).
path(k, t).
edge(k, t, 4).
node(l).
path(l, a).
edge(l, a, 14).
path(l, b).
edge(l, b, 2).
path(l, c).
edge(l, c, 17).
path(l, d).
edge(l, d, 8).
path(l, e).
edge(l, e, 11).
path(l, f).
edge(l, f, 16).
path(l, g).
edge(l, g, 7).
path(l, h).
edge(l, h, 12).
path(l, i).
edge(l, i, 12).
path(l, j).
edge(l, j, 6).
path(l, k).
edge(l, k, 13).
path(l, m).
edge(l, m, 6).
path(l, n).
edge(l, n, 18).
path(l, o).
edge(l, o, 3).
path(l, p).
edge(l, p, 7).
path(l, q).
edge(l, q, 3).
path(l, r).
edge(l, r, 1).
path(l, s).
edge(l, s, 7).
path(l, t).
edge(l, t, 17).
node(m).
path(m, a).
edge(m, a, 8).
path(m, b).
edge(m, b, 10).
path(m, c).
edge(m, c, 8).
path(m, d).
edge(m, d, 13).
path(m, e).
edge(m, e, 15).
path(m, f).
edge(m, f, 20).
path(m, g).
edge(m, g, 2).
path(m, h).
edge(m, h, 11).
path(m, i).
edge(m, i, 9).
path(m, j).
edge(m, j, 1).
path(m, k).
edge(m, k, 4).
path(m, l).
edge(m, l, 14).
path(m, n).
edge(m, n, 19).
path(m, o).
edge(m, o, 15).
path(m, p).
edge(m, p, 13).
path(m, q).
edge(m, q, 18).
path(m, r).
edge(m, r, 16).
path(m, s).
edge(m, s, 10).
path(m, t).
edge(m, t, 2).
node(n).
path(n, a).
edge(n, a, 16).
path(n, b).
edge(n, b, 2).
path(n, c).
edge(n, c, 14).
path(n, d).
edge(n, d, 3).
path(n, e).
edge(n, e, 11).
path(n, f).
edge(n, f, 17).
path(n, g).
edge(n, g, 7).
path(n, h).
edge(n, h, 6).
path(n, i).
edge(n, i, 4).
path(n, j).
edge(n, j, 2).
path(n, k).
edge(n, k, 3).
path(n, l).
edge(n, l, 8).
path(n, m).
edge(n, m, 20).
path(n, o).
edge(n, o, 7).
path(n, p).
edge(n, p, 12).
path(n, q).
edge(n, q, 1).
path(n, r).
edge(n, r, 4).
path(n, s).
edge(n, s, 20).
path(n, t).
edge(n, t, 10).
node(o).
path(o, a).
edge(o, a, 5).
path(o, b).
edge(o, b, 19).
path(o, c).
edge(o, c, 10).
path(o, d).
edge(o, d, 18).
path(o, e).
edge(o, e, 6).
path(o, f).
edge(o, f, 18).
path(o, g).
edge(o, g, 2).
path(o, h).
edge(o, h, 11).
path(o, i).
edge(o, i, 6).
path(o, j).
edge(o, j, 18).
path(o, k).
edge(o, k, 11).
path(o, l).
edge(o, l, 18).
path(o, m).
edge(o, m, 13).
path(o, n).
edge(o, n, 7).
path(o, p).
edge(o, p, 15).
path(o, q).
edge(o, q, 3).
path(o, r).
edge(o, r, 10).
path(o, s).
edge(o, s, 20).
path(o, t).
edge(o, t, 7).
node(p).
path(p, a).
edge(p, a, 16).
path(p, b).
edge(p, b, 19).
path(p, c).
edge(p, c, 12).
path(p, d).
edge(p, d, 19).
path(p, e).
edge(p, e, 15).
path(p, f).
edge(p, f, 12).
path(p, g).
edge(p, g, 14).
path(p, h).
edge(p, h, 8).
path(p, i).
edge(p, i, 7).
path(p, j).
edge(p, j, 11).
path(p, k).
edge(p, k, 4).
path(p, l).
edge(p, l, 13).
path(p, m).
edge(p, m, 19).
path(p, n).
edge(p, n, 12).
path(p, o).
edge(p, o, 14).
path(p, q).
edge(p, q, 3).
path(p, r).
edge(p, r, 7).
path(p, s).
edge(p, s, 8).
path(p, t).
edge(p, t, 20).
node(q).
path(q, a).
edge(q, a, 4).
path(q, b).
edge(q, b, 4).
path(q, c).
edge(q, c, 15).
path(q, d).
edge(q, d, 5).
path(q, e).
edge(q, e, 16).
path(q, f).
edge(q, f, 14).
path(q, g).
edge(q, g, 18).
path(q, h).
edge(q, h, 11).
path(q, i).
edge(q, i, 18).
path(q, j).
edge(q, j, 20).
path(q, k).
edge(q, k, 19).
path(q, l).
edge(q, l, 18).
path(q, m).
edge(q, m, 18).
path(q, n).
edge(q, n, 4).
path(q, o).
edge(q, o, 3).
path(q, p).
edge(q, p, 20).
path(q, r).
edge(q, r, 18).
path(q, s).
edge(q, s, 18).
path(q, t).
edge(q, t, 1).
node(r).
path(r, a).
edge(r, a, 19).
path(r, b).
edge(r, b, 6).
path(r, c).
edge(r, c, 2).
path(r, d).
edge(r, d, 15).
path(r, e).
edge(r, e, 20).
path(r, f).
edge(r, f, 3).
path(r, g).
edge(r, g, 13).
path(r, h).
edge(r, h, 7).
path(r, i).
edge(r, i, 10).
path(r, j).
edge(r, j, 17).
path(r, k).
edge(r, k, 12).
path(r, l).
edge(r, l, 11).
path(r, m).
edge(r, m, 10).
path(r, n).
edge(r, n, 19).
path(r, o).
edge(r, o, 6).
path(r, p).
edge(r, p, 2).
path(r, q).
edge(r, q, 2).
path(r, s).
edge(r, s, 15).
path(r, t).
edge(r, t, 1).
node(s).
path(s, a).
edge(s, a, 16).
path(s, b).
edge(s, b, 16).
path(s, c).
edge(s, c, 3).
path(s, d).
edge(s, d, 7).
path(s, e).
edge(s, e, 6).
path(s, f).
edge(s, f, 12).
path(s, g).
edge(s, g, 6).
path(s, h).
edge(s, h, 3).
path(s, i).
edge(s, i, 2).
path(s, j).
edge(s, j, 1).
path(s, k).
edge(s, k, 11).
path(s, l).
edge(s, l, 8).
path(s, m).
edge(s, m, 13).
path(s, n).
edge(s, n, 16).
path(s, o).
edge(s, o, 14).
path(s, p).
edge(s, p, 5).
path(s, q).
edge(s, q, 20).
path(s, r).
edge(s, r, 20).
path(s, t).
edge(s, t, 3).
node(t).
path(t, a).
edge(t, a, 3).
path(t, b).
edge(t, b, 14).
path(t, c).
edge(t, c, 13).
path(t, d).
edge(t, d, 20).
path(t, e).
edge(t, e, 20).
path(t, f).
edge(t, f, 2).
path(t, g).
edge(t, g, 7).
path(t, h).
edge(t, h, 14).
path(t, i).
edge(t, i, 2).
path(t, j).
edge(t, j, 6).
path(t, k).
edge(t, k, 2).
path(t, l).
edge(t, l, 19).
path(t, m).
edge(t, m, 20).
path(t, n).
edge(t, n, 20).
path(t, o).
edge(t, o, 14).
path(t, p).
edge(t, p, 7).
path(t, q).
edge(t, q, 7).
path(t, r).
edge(t, r, 5).
path(t, s).
edge(t, s, 15).

22
Assignment2/A/data20.py Normal file
View File

@ -0,0 +1,22 @@
[
[8, 8, 15, 7, 11, 17, 8, 3, 4, 11, 9, 6, 2, 7, 15, 6, 16, 5, 9, 14],
[16, 17, 13, 16, 15, 17, 12, 11, 7, 8, 13, 3, 7, 15, 9, 8, 16, 18, 7, 5],
[16, 4, 1, 9, 17, 11, 18, 2, 16, 13, 6, 5, 2, 7, 18, 16, 19, 14, 14, 9],
[9, 9, 7, 12, 16, 12, 3, 5, 16, 18, 10, 7, 6, 12, 4, 5, 14, 11, 5, 5],
[5, 2, 16, 18, 15, 15, 8, 10, 15, 18, 10, 7, 2, 1, 15, 17, 2, 15, 9, 6],
[9, 7, 11, 10, 12, 6, 10, 1, 5, 20, 19, 12, 13, 1, 19, 16, 17, 20, 16, 2],
[15, 7, 3, 15, 20, 5, 10, 4, 20, 13, 5, 11, 20, 16, 13, 4, 7, 11, 13, 17],
[11, 16, 19, 15, 12, 12, 10, 9, 1, 15, 17, 17, 18, 17, 9, 12, 9, 4, 17, 3],
[2, 5, 16, 14, 5, 3, 16, 7, 3, 2, 1, 3, 20, 16, 14, 9, 10, 18, 20, 8],
[9, 4, 20, 2, 11, 19, 5, 3, 11, 2, 13, 20, 17, 5, 12, 17, 17, 9, 5, 4],
[5, 14, 7, 14, 3, 13, 1, 13, 17, 6, 18, 18, 16, 15, 18, 19, 15, 12, 9, 4],
[14, 2, 17, 8, 11, 16, 7, 12, 12, 6, 13, 12, 6, 18, 3, 7, 3, 1, 7, 17],
[8, 10, 8, 13, 15, 20, 2, 11, 9, 1, 4, 14, 1, 19, 15, 13, 18, 16, 10, 2],
[16, 2, 14, 3, 11, 17, 7, 6, 4, 2, 3, 8, 20, 8, 7, 12, 1, 4, 20, 10],
[5, 19, 10, 18, 6, 18, 2, 11, 6, 18, 11, 18, 13, 7, 18, 15, 3, 10, 20, 7],
[16, 19, 12, 19, 15, 12, 14, 8, 7, 11, 4, 13, 19, 12, 14, 13, 3, 7, 8, 20],
[4, 4, 15, 5, 16, 14, 18, 11, 18, 20, 19, 18, 18, 4, 3, 20, 5, 18, 18, 1],
[19, 6, 2, 15, 20, 3, 13, 7, 10, 17, 12, 11, 10, 19, 6, 2, 2, 19, 15, 1],
[16, 16, 3, 7, 6, 12, 6, 3, 2, 1, 11, 8, 13, 16, 14, 5, 20, 20, 10, 3],
[3, 14, 13, 20, 20, 2, 7, 14, 2, 6, 2, 19, 20, 20, 14, 7, 7, 5, 15, 18],
]

20
Assignment2/A/data5.P Normal file
View File

@ -0,0 +1,20 @@
edge(a, b, 10).
edge(a, c, 15).
edge(a, d, 2).
edge(a, e, 6).
edge(b, a, 12).
edge(b, c, 17).
edge(b, d, 5).
edge(b, e, 3).
edge(c, a, 9).
edge(c, b, 5).
edge(c, d, 16).
edge(c, e, 7).
edge(d, a, 7).
edge(d, b, 18).
edge(d, c, 19).
edge(d, e, 5).
edge(e, a, 17).
edge(e, b, 7).
edge(e, c, 15).
edge(e, d, 15).

25
Assignment2/A/data5.dat Normal file
View File

@ -0,0 +1,25 @@
let dist[1][1] := 5;
let dist[1][2] := 10;
let dist[1][3] := 15;
let dist[1][4] := 2;
let dist[1][5] := 6;
let dist[2][1] := 12;
let dist[2][2] := 2;
let dist[2][3] := 17;
let dist[2][4] := 5;
let dist[2][5] := 3;
let dist[3][1] := 9;
let dist[3][2] := 5;
let dist[3][3] := 13;
let dist[3][4] := 16;
let dist[3][5] := 7;
let dist[4][1] := 7;
let dist[4][2] := 18;
let dist[4][3] := 19;
let dist[4][4] := 1;
let dist[4][5] := 5;
let dist[5][1] := 17;
let dist[5][2] := 7;
let dist[5][3] := 15;
let dist[5][4] := 15;
let dist[5][5] := 6;

45
Assignment2/A/data5.lp Normal file
View File

@ -0,0 +1,45 @@
node(a).
path(a, b).
edge(a, b, 10).
path(a, c).
edge(a, c, 15).
path(a, d).
edge(a, d, 2).
path(a, e).
edge(a, e, 6).
node(b).
path(b, a).
edge(b, a, 12).
path(b, c).
edge(b, c, 17).
path(b, d).
edge(b, d, 5).
path(b, e).
edge(b, e, 3).
node(c).
path(c, a).
edge(c, a, 9).
path(c, b).
edge(c, b, 5).
path(c, d).
edge(c, d, 16).
path(c, e).
edge(c, e, 7).
node(d).
path(d, a).
edge(d, a, 7).
path(d, b).
edge(d, b, 18).
path(d, c).
edge(d, c, 19).
path(d, e).
edge(d, e, 5).
node(e).
path(e, a).
edge(e, a, 17).
path(e, b).
edge(e, b, 7).
path(e, c).
edge(e, c, 15).
path(e, d).
edge(e, d, 15).

7
Assignment2/A/data5.py Normal file
View File

@ -0,0 +1,7 @@
[
[5, 10, 15, 2, 6],
[12, 2, 17, 5, 3],
[9, 5, 13, 16, 7],
[7, 18, 19, 1, 5],
[17, 7, 15, 15, 6],
]

View File

@ -0,0 +1,27 @@
import random
import sys
if len(sys.argv) == 2: x = int(sys.argv[1])
else: x = 10
file1 = open("data" + str(x) + ".lp", "w")
file2 = open("data" + str(x) + ".py", "w")
file3 = open("data" + str(x) + ".dat", "w")
file4 = open("data" + str(x) + ".P", "w")
file2.write('[\n')
for i in range(x):
file1.write("node({}).\n".format(str(chr(ord('a') + i))))
file2.write('[')
for j in range(x):
k = random.randint(1,20)
if i != j:
file1.write("path({}, {}).\n".format(str(chr(ord('a') + i)), str(chr(ord('a') + j))))
file1.write("edge({}, {}, {}).\n".format(str(chr(ord('a') + i)), str(chr(ord('a') + j)), k))
file4.write("edge({}, {}, {}).\n".format(str(chr(ord('a') + i)), str(chr(ord('a') + j)), k))
file2.write(str(k))
file3.write("let dist[{}][{}] := {};\n".format(i+1, j+1,k))
if j != x - 1: file2.write(", ")
file2.write('],\n')
file2.write(']')
file1.close()
file2.close()
file3.close()
file4.close()

View File

@ -3,12 +3,7 @@ Prolog*/
/*This is the data set.*/
edge(a,b,2). edge(a,c,3). edge(a,d,1).
edge(b,d,2). edge(b,e,2). edge(b,f,4).
edge(c,a,3). edge(c,d,2). edge(c,e,2).
edge(d,a,1). edge(d,b,2).
edge(e,c,2). edge(e,d,2). edge(e,f,1).
edge(f,b,4). edge(f,c,3). edge(f,e,1).
:- include('data10.P').
len([], 0).
len([_|T], N):- len(T, X), N is X+1 .
@ -23,7 +18,7 @@ path(Start, Fin, CurrentLoc, Visited, Costn, Total) :-
path(Start, Fin, CurrentLoc, Visited, Costn, Total) :-
edge(Start, Fin, Distance), reverse([Fin|CurrentLoc], Visited), len(Visited, Q),
(Q\=7 -> Total is 100000; Total is Costn + Distance).
(Q\=11 -> Total is 100000; Total is Costn + Distance).
shortest_path(Path):-setof(Cost-Path, best_path(Path,Cost), Holder),pick(Holder,Path).

View File

@ -1,22 +1,14 @@
#include "data20.lp".
% % Generate
{ cycle(X,Y) : path(X,Y) } = 1 :- node(X).
{ cycle(X,Y) : path(X,Y) } = 1 :- node(Y).
% Define
reached(Y) :- cycle(a,Y).
reached(Y) :- cycle(X,Y), reached(X).
% Test
:- node(Y), not reached(Y).
% Display
#show cycle/2.
% Optimize
#minimize { C,X,Y : cycle(X,Y), edge(X,Y,C) }.
% Nodes
node(a;b;c;d;e;f).
% (Directed) Edges
path(a,(b;c;d)). path(b,(d;e;f)). path(c,(a;d;e)).
path(d,(a;b)). path(e,(c;d;f)). path(f,(b;c;e)).
% Edge Costs
edge(a,b,2). edge(a,c,3). edge(a,d,1).
edge(b,d,2). edge(b,e,2). edge(b,f,4).
edge(c,a,3). edge(c,d,2). edge(c,e,2).
edge(d,a,1). edge(d,b,2).
edge(e,c,2). edge(e,d,2). edge(e,f,1).
edge(f,b,4). edge(f,c,3). edge(f,e,1).
#minimize { C,X,Y : cycle(X,Y), edge(X,Y,C) }.

View File

@ -2,12 +2,48 @@
## Part A
### clingo
```shell
clingo tsp.lp
```
| size | ans | time |
| ---- | ------- | ----------------- |
| 5 | 38 | 0.001 |
| 10 | 48 | 0.050 |
| 15 | 29 | 0.351 |
| 20 | unknown | too long to solve |
time grows exponentialy.
### swi-prolog
| size | ans | time |
| ---- | ------- | ----------------- |
| 5 | 38 | very fast |
| 10 | 48 | 10+s |
| 15 | unknow | too long to solve |
| 20 | unknown | too long to solve |
I didn't find a way to calculate runtime in swi-prolog. But it is clearly to see that it is way slower than clingo.
### Google OR-Tools
| size | ans | time |
| ---- | --- | ---- |
### AMPL
| size | ans | time |
| ---- | --- | ---- |
## Part B
### clingo
```shell
clingo task.lp
```
| size | processors | deadline | result | time |
| ---- | ---------- | -------- |
| ---- | ---------- | -------- | ------- | ----------------- |
| 10 | 3 | 20 | yes | 0.031 |
| 20 | 6 | 30 | no | 4.498 |
| 20 | 8 | 30 | yes | 0.233 |
@ -20,8 +56,12 @@ With either too high or too low constrain, the runtime grows exponentially. If t
### Google OR-Tools
## Part C
### clingo
```shell
clingo cut.lp
```
| size | ans | time |
| ---- | --- | ------ |
| 5 | 5 | 0.678 |
@ -34,3 +74,5 @@ With either too high or too low constrain, the runtime grows exponentially. If t
One important factor of the runtime is the max number of cut to check. If we set max = 10 with size = 30, we get the time of 0.914. However, it is impossible to get the max size before running, I believe this time would be a great representation of the runtime of clingo.
### AMPL
| size | ans | time |
| ---- | --- | ---- |