diff --git a/asp/malfunctions_test.lp b/asp/malfunctions_test.lp new file mode 100644 index 0000000..4147ff9 --- /dev/null +++ b/asp/malfunctions_test.lp @@ -0,0 +1,17 @@ +% stupid scenario of all trains moving forward to see whether message passing and malfunction passing works +time(0..T) :- end(_,_,T). +agent(A) :- start(A,_,_,_). + +action(train(A), move_forward, T) :- time(T), agent(A). + +load(dummy). +save(never). +save(set) :- load(never). +save(the) :- load(set). +save(cat) :- load(the). +save(on) :- load(cat). +save(fire) :- load(on). +save(X) :- load(X). + +#show X : save(X), X!= dummy. +#show malfunction/3. \ No newline at end of file diff --git a/asp/params.py b/asp/params.py index 115d606..880325e 100644 --- a/asp/params.py +++ b/asp/params.py @@ -1,5 +1,5 @@ -#primary=['asp/graph_based/actions.lp','asp/graph_based/graph.lp','asp/graph_based/traverse.lp'] -#primary=['asp/action_based/actions.lp','asp/action_based/pathfinding.lp','asp/action_based/transitions.lp'] - -primary=['asp/test.lp'] -secondary=[] +primary=['asp/malfunctions_test.lp'] +# primary=['asp/ordered/0_input.lp','asp/ordered/1_path.lp','asp/ordered/2_conflicts.lp'] +#primary=['asp/test2.lp'] +# primary=['asp/test.lp'] +# secondary=[] diff --git a/envs/lp/malfunction_test.lp b/envs/lp/malfunction_test.lp new file mode 100644 index 0000000..229dcc1 --- /dev/null +++ b/envs/lp/malfunction_test.lp @@ -0,0 +1,1653 @@ +% clingo representation of a Flatland environment +% height: 40, width: 40, agents: 4 + +global(108). + +train(0). start(0,(26,27),47,n). end(0,(9,21),91). speed(0,1). + +train(1). start(1,(8,21),21,e). end(1,(26,28),65). speed(1,1). + +train(2). start(2,(26,27),7,s). end(2,(13,9),102). speed(2,1). + +train(3). start(3,(14,9),7,w). end(3,(26,28),102). speed(3,1). + +cell((0,0), 0). +cell((0,1), 0). +cell((0,2), 0). +cell((0,3), 0). +cell((0,4), 0). +cell((0,5), 0). +cell((0,6), 0). +cell((0,7), 0). +cell((0,8), 0). +cell((0,9), 0). +cell((0,10), 0). +cell((0,11), 0). +cell((0,12), 0). +cell((0,13), 0). +cell((0,14), 0). +cell((0,15), 0). +cell((0,16), 0). +cell((0,17), 0). +cell((0,18), 0). +cell((0,19), 0). +cell((0,20), 0). +cell((0,21), 0). +cell((0,22), 0). +cell((0,23), 0). +cell((0,24), 0). +cell((0,25), 0). +cell((0,26), 0). +cell((0,27), 0). +cell((0,28), 0). +cell((0,29), 0). +cell((0,30), 0). +cell((0,31), 0). +cell((0,32), 0). +cell((0,33), 0). +cell((0,34), 0). +cell((0,35), 0). +cell((0,36), 0). +cell((0,37), 0). +cell((0,38), 0). +cell((0,39), 0). + +cell((1,0), 0). +cell((1,1), 0). +cell((1,2), 0). +cell((1,3), 0). +cell((1,4), 0). +cell((1,5), 0). +cell((1,6), 0). +cell((1,7), 0). +cell((1,8), 0). +cell((1,9), 0). +cell((1,10), 0). +cell((1,11), 0). +cell((1,12), 0). +cell((1,13), 0). +cell((1,14), 0). +cell((1,15), 0). +cell((1,16), 0). +cell((1,17), 0). +cell((1,18), 0). +cell((1,19), 0). +cell((1,20), 0). +cell((1,21), 0). +cell((1,22), 0). +cell((1,23), 0). +cell((1,24), 0). +cell((1,25), 0). +cell((1,26), 0). +cell((1,27), 0). +cell((1,28), 0). +cell((1,29), 0). +cell((1,30), 0). +cell((1,31), 0). +cell((1,32), 0). +cell((1,33), 0). +cell((1,34), 0). +cell((1,35), 0). +cell((1,36), 0). +cell((1,37), 0). +cell((1,38), 0). +cell((1,39), 0). + +cell((2,0), 0). +cell((2,1), 0). +cell((2,2), 0). +cell((2,3), 0). +cell((2,4), 0). +cell((2,5), 0). +cell((2,6), 0). +cell((2,7), 0). +cell((2,8), 0). +cell((2,9), 0). +cell((2,10), 0). +cell((2,11), 0). +cell((2,12), 0). +cell((2,13), 0). +cell((2,14), 0). +cell((2,15), 0). +cell((2,16), 0). +cell((2,17), 0). +cell((2,18), 0). +cell((2,19), 0). +cell((2,20), 0). +cell((2,21), 0). +cell((2,22), 0). +cell((2,23), 0). +cell((2,24), 0). +cell((2,25), 0). +cell((2,26), 0). +cell((2,27), 0). +cell((2,28), 0). +cell((2,29), 0). +cell((2,30), 0). +cell((2,31), 0). +cell((2,32), 0). +cell((2,33), 0). +cell((2,34), 0). +cell((2,35), 0). +cell((2,36), 0). +cell((2,37), 0). +cell((2,38), 0). +cell((2,39), 0). + +cell((3,0), 0). +cell((3,1), 0). +cell((3,2), 0). +cell((3,3), 0). +cell((3,4), 0). +cell((3,5), 0). +cell((3,6), 0). +cell((3,7), 0). +cell((3,8), 0). +cell((3,9), 0). +cell((3,10), 0). +cell((3,11), 0). +cell((3,12), 0). +cell((3,13), 0). +cell((3,14), 0). +cell((3,15), 0). +cell((3,16), 0). +cell((3,17), 0). +cell((3,18), 0). +cell((3,19), 0). +cell((3,20), 0). +cell((3,21), 0). +cell((3,22), 0). +cell((3,23), 0). +cell((3,24), 0). +cell((3,25), 0). +cell((3,26), 0). +cell((3,27), 0). +cell((3,28), 0). +cell((3,29), 0). +cell((3,30), 0). +cell((3,31), 0). +cell((3,32), 0). +cell((3,33), 0). +cell((3,34), 0). +cell((3,35), 0). +cell((3,36), 0). +cell((3,37), 0). +cell((3,38), 0). +cell((3,39), 0). + +cell((4,0), 0). +cell((4,1), 0). +cell((4,2), 0). +cell((4,3), 0). +cell((4,4), 0). +cell((4,5), 0). +cell((4,6), 0). +cell((4,7), 0). +cell((4,8), 0). +cell((4,9), 0). +cell((4,10), 0). +cell((4,11), 0). +cell((4,12), 0). +cell((4,13), 0). +cell((4,14), 0). +cell((4,15), 0). +cell((4,16), 0). +cell((4,17), 0). +cell((4,18), 0). +cell((4,19), 0). +cell((4,20), 0). +cell((4,21), 0). +cell((4,22), 0). +cell((4,23), 0). +cell((4,24), 0). +cell((4,25), 0). +cell((4,26), 0). +cell((4,27), 0). +cell((4,28), 0). +cell((4,29), 0). +cell((4,30), 0). +cell((4,31), 0). +cell((4,32), 0). +cell((4,33), 0). +cell((4,34), 0). +cell((4,35), 0). +cell((4,36), 0). +cell((4,37), 0). +cell((4,38), 0). +cell((4,39), 0). + +cell((5,0), 0). +cell((5,1), 0). +cell((5,2), 0). +cell((5,3), 0). +cell((5,4), 0). +cell((5,5), 0). +cell((5,6), 0). +cell((5,7), 0). +cell((5,8), 0). +cell((5,9), 0). +cell((5,10), 0). +cell((5,11), 0). +cell((5,12), 0). +cell((5,13), 0). +cell((5,14), 0). +cell((5,15), 0). +cell((5,16), 0). +cell((5,17), 0). +cell((5,18), 0). +cell((5,19), 0). +cell((5,20), 0). +cell((5,21), 0). +cell((5,22), 0). +cell((5,23), 0). +cell((5,24), 0). +cell((5,25), 0). +cell((5,26), 0). +cell((5,27), 0). +cell((5,28), 0). +cell((5,29), 0). +cell((5,30), 0). +cell((5,31), 0). +cell((5,32), 0). +cell((5,33), 0). +cell((5,34), 0). +cell((5,35), 0). +cell((5,36), 0). +cell((5,37), 0). +cell((5,38), 0). +cell((5,39), 0). + +cell((6,0), 0). +cell((6,1), 0). +cell((6,2), 0). +cell((6,3), 0). +cell((6,4), 0). +cell((6,5), 0). +cell((6,6), 0). +cell((6,7), 0). +cell((6,8), 0). +cell((6,9), 0). +cell((6,10), 0). +cell((6,11), 0). +cell((6,12), 0). +cell((6,13), 0). +cell((6,14), 0). +cell((6,15), 0). +cell((6,16), 0). +cell((6,17), 0). +cell((6,18), 0). +cell((6,19), 0). +cell((6,20), 0). +cell((6,21), 0). +cell((6,22), 0). +cell((6,23), 0). +cell((6,24), 0). +cell((6,25), 0). +cell((6,26), 0). +cell((6,27), 0). +cell((6,28), 0). +cell((6,29), 0). +cell((6,30), 0). +cell((6,31), 0). +cell((6,32), 0). +cell((6,33), 0). +cell((6,34), 0). +cell((6,35), 0). +cell((6,36), 0). +cell((6,37), 0). +cell((6,38), 0). +cell((6,39), 0). + +cell((7,0), 0). +cell((7,1), 0). +cell((7,2), 0). +cell((7,3), 0). +cell((7,4), 0). +cell((7,5), 0). +cell((7,6), 0). +cell((7,7), 0). +cell((7,8), 0). +cell((7,9), 0). +cell((7,10), 0). +cell((7,11), 0). +cell((7,12), 0). +cell((7,13), 0). +cell((7,14), 0). +cell((7,15), 0). +cell((7,16), 0). +cell((7,17), 0). +cell((7,18), 0). +cell((7,19), 0). +cell((7,20), 0). +cell((7,21), 0). +cell((7,22), 0). +cell((7,23), 0). +cell((7,24), 0). +cell((7,25), 0). +cell((7,26), 0). +cell((7,27), 0). +cell((7,28), 0). +cell((7,29), 0). +cell((7,30), 0). +cell((7,31), 0). +cell((7,32), 0). +cell((7,33), 0). +cell((7,34), 0). +cell((7,35), 0). +cell((7,36), 0). +cell((7,37), 0). +cell((7,38), 0). +cell((7,39), 0). + +cell((8,0), 0). +cell((8,1), 0). +cell((8,2), 0). +cell((8,3), 0). +cell((8,4), 0). +cell((8,5), 0). +cell((8,6), 0). +cell((8,7), 0). +cell((8,8), 0). +cell((8,9), 0). +cell((8,10), 0). +cell((8,11), 0). +cell((8,12), 0). +cell((8,13), 0). +cell((8,14), 16386). +cell((8,15), 1025). +cell((8,16), 17411). +cell((8,17), 1025). +cell((8,18), 5633). +cell((8,19), 17411). +cell((8,20), 1025). +cell((8,21), 1025). +cell((8,22), 1025). +cell((8,23), 5633). +cell((8,24), 17411). +cell((8,25), 1025). +cell((8,26), 5633). +cell((8,27), 4608). +cell((8,28), 0). +cell((8,29), 0). +cell((8,30), 0). +cell((8,31), 0). +cell((8,32), 0). +cell((8,33), 0). +cell((8,34), 0). +cell((8,35), 0). +cell((8,36), 0). +cell((8,37), 0). +cell((8,38), 0). +cell((8,39), 0). + +cell((9,0), 0). +cell((9,1), 0). +cell((9,2), 0). +cell((9,3), 0). +cell((9,4), 0). +cell((9,5), 0). +cell((9,6), 0). +cell((9,7), 0). +cell((9,8), 0). +cell((9,9), 0). +cell((9,10), 0). +cell((9,11), 0). +cell((9,12), 0). +cell((9,13), 0). +cell((9,14), 32800). +cell((9,15), 16386). +cell((9,16), 34864). +cell((9,17), 0). +cell((9,18), 72). +cell((9,19), 3089). +cell((9,20), 1025). +cell((9,21), 1025). +cell((9,22), 1025). +cell((9,23), 1097). +cell((9,24), 2064). +cell((9,25), 0). +cell((9,26), 32800). +cell((9,27), 32800). +cell((9,28), 0). +cell((9,29), 0). +cell((9,30), 0). +cell((9,31), 0). +cell((9,32), 0). +cell((9,33), 0). +cell((9,34), 0). +cell((9,35), 0). +cell((9,36), 0). +cell((9,37), 0). +cell((9,38), 0). +cell((9,39), 0). + +cell((10,0), 0). +cell((10,1), 0). +cell((10,2), 0). +cell((10,3), 0). +cell((10,4), 0). +cell((10,5), 0). +cell((10,6), 0). +cell((10,7), 0). +cell((10,8), 0). +cell((10,9), 0). +cell((10,10), 0). +cell((10,11), 0). +cell((10,12), 0). +cell((10,13), 0). +cell((10,14), 32800). +cell((10,15), 32800). +cell((10,16), 32800). +cell((10,17), 0). +cell((10,18), 0). +cell((10,19), 0). +cell((10,20), 0). +cell((10,21), 0). +cell((10,22), 0). +cell((10,23), 0). +cell((10,24), 0). +cell((10,25), 0). +cell((10,26), 32800). +cell((10,27), 32800). +cell((10,28), 0). +cell((10,29), 0). +cell((10,30), 0). +cell((10,31), 0). +cell((10,32), 0). +cell((10,33), 0). +cell((10,34), 0). +cell((10,35), 0). +cell((10,36), 0). +cell((10,37), 0). +cell((10,38), 0). +cell((10,39), 0). + +cell((11,0), 0). +cell((11,1), 0). +cell((11,2), 0). +cell((11,3), 0). +cell((11,4), 0). +cell((11,5), 0). +cell((11,6), 0). +cell((11,7), 0). +cell((11,8), 0). +cell((11,9), 0). +cell((11,10), 0). +cell((11,11), 0). +cell((11,12), 0). +cell((11,13), 0). +cell((11,14), 32800). +cell((11,15), 32800). +cell((11,16), 32800). +cell((11,17), 0). +cell((11,18), 0). +cell((11,19), 0). +cell((11,20), 0). +cell((11,21), 0). +cell((11,22), 0). +cell((11,23), 0). +cell((11,24), 0). +cell((11,25), 0). +cell((11,26), 32800). +cell((11,27), 32800). +cell((11,28), 0). +cell((11,29), 0). +cell((11,30), 0). +cell((11,31), 0). +cell((11,32), 0). +cell((11,33), 0). +cell((11,34), 0). +cell((11,35), 0). +cell((11,36), 0). +cell((11,37), 0). +cell((11,38), 0). +cell((11,39), 0). + +cell((12,0), 0). +cell((12,1), 0). +cell((12,2), 0). +cell((12,3), 0). +cell((12,4), 0). +cell((12,5), 0). +cell((12,6), 0). +cell((12,7), 0). +cell((12,8), 16386). +cell((12,9), 1025). +cell((12,10), 4608). +cell((12,11), 0). +cell((12,12), 0). +cell((12,13), 0). +cell((12,14), 32800). +cell((12,15), 32800). +cell((12,16), 32800). +cell((12,17), 0). +cell((12,18), 0). +cell((12,19), 0). +cell((12,20), 0). +cell((12,21), 0). +cell((12,22), 0). +cell((12,23), 0). +cell((12,24), 0). +cell((12,25), 0). +cell((12,26), 32800). +cell((12,27), 32800). +cell((12,28), 0). +cell((12,29), 0). +cell((12,30), 0). +cell((12,31), 0). +cell((12,32), 0). +cell((12,33), 0). +cell((12,34), 0). +cell((12,35), 0). +cell((12,36), 0). +cell((12,37), 0). +cell((12,38), 0). +cell((12,39), 0). + +cell((13,0), 0). +cell((13,1), 0). +cell((13,2), 0). +cell((13,3), 0). +cell((13,4), 16386). +cell((13,5), 1025). +cell((13,6), 5633). +cell((13,7), 17411). +cell((13,8), 3089). +cell((13,9), 1025). +cell((13,10), 1097). +cell((13,11), 5633). +cell((13,12), 17411). +cell((13,13), 1025). +cell((13,14), 3089). +cell((13,15), 33825). +cell((13,16), 2064). +cell((13,17), 0). +cell((13,18), 0). +cell((13,19), 0). +cell((13,20), 0). +cell((13,21), 0). +cell((13,22), 0). +cell((13,23), 0). +cell((13,24), 0). +cell((13,25), 0). +cell((13,26), 32800). +cell((13,27), 32800). +cell((13,28), 0). +cell((13,29), 0). +cell((13,30), 0). +cell((13,31), 0). +cell((13,32), 0). +cell((13,33), 0). +cell((13,34), 0). +cell((13,35), 0). +cell((13,36), 0). +cell((13,37), 0). +cell((13,38), 0). +cell((13,39), 0). + +cell((14,0), 0). +cell((14,1), 0). +cell((14,2), 0). +cell((14,3), 0). +cell((14,4), 49186). +cell((14,5), 1025). +cell((14,6), 1097). +cell((14,7), 3089). +cell((14,8), 5633). +cell((14,9), 1025). +cell((14,10), 17411). +cell((14,11), 1097). +cell((14,12), 3089). +cell((14,13), 1025). +cell((14,14), 1025). +cell((14,15), 2064). +cell((14,16), 0). +cell((14,17), 0). +cell((14,18), 0). +cell((14,19), 0). +cell((14,20), 0). +cell((14,21), 0). +cell((14,22), 0). +cell((14,23), 0). +cell((14,24), 0). +cell((14,25), 0). +cell((14,26), 32800). +cell((14,27), 32800). +cell((14,28), 0). +cell((14,29), 0). +cell((14,30), 0). +cell((14,31), 0). +cell((14,32), 0). +cell((14,33), 0). +cell((14,34), 0). +cell((14,35), 0). +cell((14,36), 0). +cell((14,37), 0). +cell((14,38), 0). +cell((14,39), 0). + +cell((15,0), 0). +cell((15,1), 0). +cell((15,2), 0). +cell((15,3), 0). +cell((15,4), 32800). +cell((15,5), 0). +cell((15,6), 0). +cell((15,7), 0). +cell((15,8), 72). +cell((15,9), 1025). +cell((15,10), 2064). +cell((15,11), 0). +cell((15,12), 0). +cell((15,13), 0). +cell((15,14), 0). +cell((15,15), 0). +cell((15,16), 0). +cell((15,17), 0). +cell((15,18), 0). +cell((15,19), 0). +cell((15,20), 0). +cell((15,21), 0). +cell((15,22), 0). +cell((15,23), 0). +cell((15,24), 0). +cell((15,25), 0). +cell((15,26), 32800). +cell((15,27), 32800). +cell((15,28), 0). +cell((15,29), 0). +cell((15,30), 0). +cell((15,31), 0). +cell((15,32), 0). +cell((15,33), 0). +cell((15,34), 0). +cell((15,35), 0). +cell((15,36), 0). +cell((15,37), 0). +cell((15,38), 0). +cell((15,39), 0). + +cell((16,0), 0). +cell((16,1), 0). +cell((16,2), 0). +cell((16,3), 0). +cell((16,4), 32800). +cell((16,5), 0). +cell((16,6), 0). +cell((16,7), 0). +cell((16,8), 0). +cell((16,9), 0). +cell((16,10), 0). +cell((16,11), 0). +cell((16,12), 0). +cell((16,13), 0). +cell((16,14), 0). +cell((16,15), 0). +cell((16,16), 0). +cell((16,17), 0). +cell((16,18), 0). +cell((16,19), 0). +cell((16,20), 0). +cell((16,21), 0). +cell((16,22), 0). +cell((16,23), 0). +cell((16,24), 0). +cell((16,25), 0). +cell((16,26), 32800). +cell((16,27), 32800). +cell((16,28), 0). +cell((16,29), 0). +cell((16,30), 0). +cell((16,31), 0). +cell((16,32), 0). +cell((16,33), 0). +cell((16,34), 0). +cell((16,35), 0). +cell((16,36), 0). +cell((16,37), 0). +cell((16,38), 0). +cell((16,39), 0). + +cell((17,0), 0). +cell((17,1), 0). +cell((17,2), 0). +cell((17,3), 0). +cell((17,4), 32800). +cell((17,5), 0). +cell((17,6), 0). +cell((17,7), 0). +cell((17,8), 0). +cell((17,9), 0). +cell((17,10), 0). +cell((17,11), 0). +cell((17,12), 0). +cell((17,13), 0). +cell((17,14), 0). +cell((17,15), 0). +cell((17,16), 0). +cell((17,17), 0). +cell((17,18), 0). +cell((17,19), 0). +cell((17,20), 0). +cell((17,21), 0). +cell((17,22), 0). +cell((17,23), 0). +cell((17,24), 0). +cell((17,25), 0). +cell((17,26), 32800). +cell((17,27), 32800). +cell((17,28), 0). +cell((17,29), 0). +cell((17,30), 0). +cell((17,31), 0). +cell((17,32), 0). +cell((17,33), 0). +cell((17,34), 0). +cell((17,35), 0). +cell((17,36), 0). +cell((17,37), 0). +cell((17,38), 0). +cell((17,39), 0). + +cell((18,0), 0). +cell((18,1), 0). +cell((18,2), 0). +cell((18,3), 0). +cell((18,4), 32872). +cell((18,5), 5633). +cell((18,6), 4608). +cell((18,7), 0). +cell((18,8), 0). +cell((18,9), 0). +cell((18,10), 0). +cell((18,11), 0). +cell((18,12), 0). +cell((18,13), 0). +cell((18,14), 0). +cell((18,15), 0). +cell((18,16), 0). +cell((18,17), 0). +cell((18,18), 0). +cell((18,19), 0). +cell((18,20), 0). +cell((18,21), 0). +cell((18,22), 0). +cell((18,23), 0). +cell((18,24), 0). +cell((18,25), 0). +cell((18,26), 32800). +cell((18,27), 32800). +cell((18,28), 0). +cell((18,29), 0). +cell((18,30), 0). +cell((18,31), 0). +cell((18,32), 0). +cell((18,33), 0). +cell((18,34), 0). +cell((18,35), 0). +cell((18,36), 0). +cell((18,37), 0). +cell((18,38), 0). +cell((18,39), 0). + +cell((19,0), 0). +cell((19,1), 0). +cell((19,2), 0). +cell((19,3), 0). +cell((19,4), 32800). +cell((19,5), 32800). +cell((19,6), 32800). +cell((19,7), 0). +cell((19,8), 0). +cell((19,9), 0). +cell((19,10), 0). +cell((19,11), 0). +cell((19,12), 0). +cell((19,13), 0). +cell((19,14), 0). +cell((19,15), 0). +cell((19,16), 0). +cell((19,17), 0). +cell((19,18), 0). +cell((19,19), 0). +cell((19,20), 0). +cell((19,21), 0). +cell((19,22), 0). +cell((19,23), 0). +cell((19,24), 0). +cell((19,25), 0). +cell((19,26), 32800). +cell((19,27), 32800). +cell((19,28), 0). +cell((19,29), 0). +cell((19,30), 0). +cell((19,31), 0). +cell((19,32), 0). +cell((19,33), 0). +cell((19,34), 0). +cell((19,35), 0). +cell((19,36), 0). +cell((19,37), 0). +cell((19,38), 0). +cell((19,39), 0). + +cell((20,0), 0). +cell((20,1), 0). +cell((20,2), 0). +cell((20,3), 0). +cell((20,4), 32800). +cell((20,5), 32800). +cell((20,6), 32800). +cell((20,7), 0). +cell((20,8), 0). +cell((20,9), 0). +cell((20,10), 0). +cell((20,11), 0). +cell((20,12), 0). +cell((20,13), 0). +cell((20,14), 0). +cell((20,15), 0). +cell((20,16), 0). +cell((20,17), 0). +cell((20,18), 0). +cell((20,19), 0). +cell((20,20), 0). +cell((20,21), 0). +cell((20,22), 0). +cell((20,23), 0). +cell((20,24), 0). +cell((20,25), 0). +cell((20,26), 32800). +cell((20,27), 32800). +cell((20,28), 0). +cell((20,29), 0). +cell((20,30), 0). +cell((20,31), 0). +cell((20,32), 0). +cell((20,33), 0). +cell((20,34), 0). +cell((20,35), 0). +cell((20,36), 0). +cell((20,37), 0). +cell((20,38), 0). +cell((20,39), 0). + +cell((21,0), 0). +cell((21,1), 0). +cell((21,2), 0). +cell((21,3), 0). +cell((21,4), 32800). +cell((21,5), 32800). +cell((21,6), 32800). +cell((21,7), 0). +cell((21,8), 0). +cell((21,9), 0). +cell((21,10), 0). +cell((21,11), 0). +cell((21,12), 0). +cell((21,13), 0). +cell((21,14), 0). +cell((21,15), 0). +cell((21,16), 0). +cell((21,17), 0). +cell((21,18), 0). +cell((21,19), 0). +cell((21,20), 0). +cell((21,21), 0). +cell((21,22), 0). +cell((21,23), 0). +cell((21,24), 0). +cell((21,25), 0). +cell((21,26), 72). +cell((21,27), 37408). +cell((21,28), 0). +cell((21,29), 0). +cell((21,30), 0). +cell((21,31), 0). +cell((21,32), 0). +cell((21,33), 0). +cell((21,34), 0). +cell((21,35), 0). +cell((21,36), 0). +cell((21,37), 0). +cell((21,38), 0). +cell((21,39), 0). + +cell((22,0), 0). +cell((22,1), 0). +cell((22,2), 0). +cell((22,3), 0). +cell((22,4), 32800). +cell((22,5), 32800). +cell((22,6), 32800). +cell((22,7), 0). +cell((22,8), 0). +cell((22,9), 0). +cell((22,10), 0). +cell((22,11), 0). +cell((22,12), 0). +cell((22,13), 0). +cell((22,14), 0). +cell((22,15), 0). +cell((22,16), 0). +cell((22,17), 0). +cell((22,18), 0). +cell((22,19), 0). +cell((22,20), 0). +cell((22,21), 0). +cell((22,22), 0). +cell((22,23), 0). +cell((22,24), 0). +cell((22,25), 0). +cell((22,26), 0). +cell((22,27), 32800). +cell((22,28), 0). +cell((22,29), 0). +cell((22,30), 0). +cell((22,31), 0). +cell((22,32), 0). +cell((22,33), 0). +cell((22,34), 0). +cell((22,35), 0). +cell((22,36), 0). +cell((22,37), 0). +cell((22,38), 0). +cell((22,39), 0). + +cell((23,0), 0). +cell((23,1), 0). +cell((23,2), 0). +cell((23,3), 0). +cell((23,4), 32800). +cell((23,5), 32800). +cell((23,6), 32800). +cell((23,7), 0). +cell((23,8), 0). +cell((23,9), 0). +cell((23,10), 0). +cell((23,11), 0). +cell((23,12), 0). +cell((23,13), 0). +cell((23,14), 0). +cell((23,15), 0). +cell((23,16), 0). +cell((23,17), 0). +cell((23,18), 0). +cell((23,19), 0). +cell((23,20), 0). +cell((23,21), 0). +cell((23,22), 0). +cell((23,23), 0). +cell((23,24), 0). +cell((23,25), 0). +cell((23,26), 0). +cell((23,27), 32872). +cell((23,28), 4608). +cell((23,29), 0). +cell((23,30), 0). +cell((23,31), 0). +cell((23,32), 0). +cell((23,33), 0). +cell((23,34), 0). +cell((23,35), 0). +cell((23,36), 0). +cell((23,37), 0). +cell((23,38), 0). +cell((23,39), 0). + +cell((24,0), 0). +cell((24,1), 0). +cell((24,2), 0). +cell((24,3), 0). +cell((24,4), 32800). +cell((24,5), 32800). +cell((24,6), 32800). +cell((24,7), 0). +cell((24,8), 0). +cell((24,9), 0). +cell((24,10), 0). +cell((24,11), 0). +cell((24,12), 0). +cell((24,13), 0). +cell((24,14), 0). +cell((24,15), 0). +cell((24,16), 0). +cell((24,17), 0). +cell((24,18), 0). +cell((24,19), 0). +cell((24,20), 0). +cell((24,21), 0). +cell((24,22), 0). +cell((24,23), 0). +cell((24,24), 0). +cell((24,25), 0). +cell((24,26), 0). +cell((24,27), 49186). +cell((24,28), 34864). +cell((24,29), 0). +cell((24,30), 0). +cell((24,31), 0). +cell((24,32), 0). +cell((24,33), 0). +cell((24,34), 0). +cell((24,35), 0). +cell((24,36), 0). +cell((24,37), 0). +cell((24,38), 0). +cell((24,39), 0). + +cell((25,0), 0). +cell((25,1), 0). +cell((25,2), 0). +cell((25,3), 0). +cell((25,4), 32800). +cell((25,5), 32800). +cell((25,6), 32800). +cell((25,7), 0). +cell((25,8), 0). +cell((25,9), 0). +cell((25,10), 0). +cell((25,11), 0). +cell((25,12), 0). +cell((25,13), 0). +cell((25,14), 0). +cell((25,15), 0). +cell((25,16), 0). +cell((25,17), 0). +cell((25,18), 0). +cell((25,19), 0). +cell((25,20), 0). +cell((25,21), 0). +cell((25,22), 0). +cell((25,23), 0). +cell((25,24), 0). +cell((25,25), 0). +cell((25,26), 0). +cell((25,27), 32800). +cell((25,28), 32800). +cell((25,29), 0). +cell((25,30), 0). +cell((25,31), 0). +cell((25,32), 0). +cell((25,33), 0). +cell((25,34), 0). +cell((25,35), 0). +cell((25,36), 0). +cell((25,37), 0). +cell((25,38), 0). +cell((25,39), 0). + +cell((26,0), 0). +cell((26,1), 0). +cell((26,2), 0). +cell((26,3), 0). +cell((26,4), 32800). +cell((26,5), 32800). +cell((26,6), 32800). +cell((26,7), 0). +cell((26,8), 0). +cell((26,9), 0). +cell((26,10), 0). +cell((26,11), 0). +cell((26,12), 0). +cell((26,13), 0). +cell((26,14), 0). +cell((26,15), 0). +cell((26,16), 0). +cell((26,17), 0). +cell((26,18), 0). +cell((26,19), 0). +cell((26,20), 0). +cell((26,21), 0). +cell((26,22), 0). +cell((26,23), 0). +cell((26,24), 0). +cell((26,25), 0). +cell((26,26), 0). +cell((26,27), 32800). +cell((26,28), 32800). +cell((26,29), 0). +cell((26,30), 0). +cell((26,31), 0). +cell((26,32), 0). +cell((26,33), 0). +cell((26,34), 0). +cell((26,35), 0). +cell((26,36), 0). +cell((26,37), 0). +cell((26,38), 0). +cell((26,39), 0). + +cell((27,0), 0). +cell((27,1), 0). +cell((27,2), 0). +cell((27,3), 0). +cell((27,4), 32800). +cell((27,5), 32800). +cell((27,6), 32800). +cell((27,7), 0). +cell((27,8), 0). +cell((27,9), 0). +cell((27,10), 0). +cell((27,11), 0). +cell((27,12), 0). +cell((27,13), 0). +cell((27,14), 0). +cell((27,15), 0). +cell((27,16), 0). +cell((27,17), 0). +cell((27,18), 0). +cell((27,19), 0). +cell((27,20), 0). +cell((27,21), 0). +cell((27,22), 0). +cell((27,23), 0). +cell((27,24), 0). +cell((27,25), 0). +cell((27,26), 0). +cell((27,27), 32800). +cell((27,28), 32800). +cell((27,29), 0). +cell((27,30), 0). +cell((27,31), 0). +cell((27,32), 0). +cell((27,33), 0). +cell((27,34), 0). +cell((27,35), 0). +cell((27,36), 0). +cell((27,37), 0). +cell((27,38), 0). +cell((27,39), 0). + +cell((28,0), 0). +cell((28,1), 0). +cell((28,2), 0). +cell((28,3), 0). +cell((28,4), 72). +cell((28,5), 37408). +cell((28,6), 49186). +cell((28,7), 1025). +cell((28,8), 1025). +cell((28,9), 1025). +cell((28,10), 4608). +cell((28,11), 0). +cell((28,12), 0). +cell((28,13), 0). +cell((28,14), 0). +cell((28,15), 0). +cell((28,16), 0). +cell((28,17), 0). +cell((28,18), 0). +cell((28,19), 0). +cell((28,20), 0). +cell((28,21), 0). +cell((28,22), 0). +cell((28,23), 0). +cell((28,24), 0). +cell((28,25), 0). +cell((28,26), 0). +cell((28,27), 32872). +cell((28,28), 37408). +cell((28,29), 0). +cell((28,30), 0). +cell((28,31), 0). +cell((28,32), 0). +cell((28,33), 0). +cell((28,34), 0). +cell((28,35), 0). +cell((28,36), 0). +cell((28,37), 0). +cell((28,38), 0). +cell((28,39), 0). + +cell((29,0), 0). +cell((29,1), 0). +cell((29,2), 0). +cell((29,3), 0). +cell((29,4), 0). +cell((29,5), 32800). +cell((29,6), 32800). +cell((29,7), 0). +cell((29,8), 0). +cell((29,9), 0). +cell((29,10), 32800). +cell((29,11), 0). +cell((29,12), 0). +cell((29,13), 0). +cell((29,14), 0). +cell((29,15), 0). +cell((29,16), 0). +cell((29,17), 0). +cell((29,18), 0). +cell((29,19), 0). +cell((29,20), 0). +cell((29,21), 0). +cell((29,22), 0). +cell((29,23), 0). +cell((29,24), 0). +cell((29,25), 0). +cell((29,26), 0). +cell((29,27), 49186). +cell((29,28), 2064). +cell((29,29), 0). +cell((29,30), 0). +cell((29,31), 0). +cell((29,32), 0). +cell((29,33), 0). +cell((29,34), 0). +cell((29,35), 0). +cell((29,36), 0). +cell((29,37), 0). +cell((29,38), 0). +cell((29,39), 0). + +cell((30,0), 0). +cell((30,1), 0). +cell((30,2), 0). +cell((30,3), 0). +cell((30,4), 0). +cell((30,5), 32872). +cell((30,6), 37408). +cell((30,7), 0). +cell((30,8), 0). +cell((30,9), 0). +cell((30,10), 32800). +cell((30,11), 0). +cell((30,12), 0). +cell((30,13), 0). +cell((30,14), 0). +cell((30,15), 0). +cell((30,16), 0). +cell((30,17), 0). +cell((30,18), 0). +cell((30,19), 0). +cell((30,20), 0). +cell((30,21), 0). +cell((30,22), 0). +cell((30,23), 0). +cell((30,24), 0). +cell((30,25), 0). +cell((30,26), 0). +cell((30,27), 32800). +cell((30,28), 0). +cell((30,29), 0). +cell((30,30), 0). +cell((30,31), 0). +cell((30,32), 0). +cell((30,33), 0). +cell((30,34), 0). +cell((30,35), 0). +cell((30,36), 0). +cell((30,37), 0). +cell((30,38), 0). +cell((30,39), 0). + +cell((31,0), 0). +cell((31,1), 0). +cell((31,2), 0). +cell((31,3), 0). +cell((31,4), 0). +cell((31,5), 49186). +cell((31,6), 34864). +cell((31,7), 0). +cell((31,8), 0). +cell((31,9), 0). +cell((31,10), 72). +cell((31,11), 1025). +cell((31,12), 1025). +cell((31,13), 1025). +cell((31,14), 1025). +cell((31,15), 1025). +cell((31,16), 1025). +cell((31,17), 1025). +cell((31,18), 1025). +cell((31,19), 1025). +cell((31,20), 1025). +cell((31,21), 1025). +cell((31,22), 1025). +cell((31,23), 1025). +cell((31,24), 1025). +cell((31,25), 1025). +cell((31,26), 1025). +cell((31,27), 34864). +cell((31,28), 0). +cell((31,29), 0). +cell((31,30), 0). +cell((31,31), 0). +cell((31,32), 0). +cell((31,33), 0). +cell((31,34), 0). +cell((31,35), 0). +cell((31,36), 0). +cell((31,37), 0). +cell((31,38), 0). +cell((31,39), 0). + +cell((32,0), 0). +cell((32,1), 0). +cell((32,2), 0). +cell((32,3), 0). +cell((32,4), 16386). +cell((32,5), 34864). +cell((32,6), 32872). +cell((32,7), 4608). +cell((32,8), 0). +cell((32,9), 0). +cell((32,10), 0). +cell((32,11), 0). +cell((32,12), 0). +cell((32,13), 0). +cell((32,14), 0). +cell((32,15), 0). +cell((32,16), 0). +cell((32,17), 0). +cell((32,18), 0). +cell((32,19), 0). +cell((32,20), 0). +cell((32,21), 0). +cell((32,22), 0). +cell((32,23), 0). +cell((32,24), 0). +cell((32,25), 0). +cell((32,26), 16386). +cell((32,27), 34864). +cell((32,28), 0). +cell((32,29), 0). +cell((32,30), 0). +cell((32,31), 0). +cell((32,32), 0). +cell((32,33), 0). +cell((32,34), 0). +cell((32,35), 0). +cell((32,36), 0). +cell((32,37), 0). +cell((32,38), 0). +cell((32,39), 0). + +cell((33,0), 0). +cell((33,1), 0). +cell((33,2), 0). +cell((33,3), 0). +cell((33,4), 32800). +cell((33,5), 32800). +cell((33,6), 32800). +cell((33,7), 32800). +cell((33,8), 0). +cell((33,9), 0). +cell((33,10), 0). +cell((33,11), 0). +cell((33,12), 0). +cell((33,13), 0). +cell((33,14), 0). +cell((33,15), 0). +cell((33,16), 0). +cell((33,17), 0). +cell((33,18), 0). +cell((33,19), 0). +cell((33,20), 0). +cell((33,21), 0). +cell((33,22), 0). +cell((33,23), 0). +cell((33,24), 0). +cell((33,25), 0). +cell((33,26), 32800). +cell((33,27), 32800). +cell((33,28), 0). +cell((33,29), 0). +cell((33,30), 0). +cell((33,31), 0). +cell((33,32), 0). +cell((33,33), 0). +cell((33,34), 0). +cell((33,35), 0). +cell((33,36), 0). +cell((33,37), 0). +cell((33,38), 0). +cell((33,39), 0). + +cell((34,0), 0). +cell((34,1), 0). +cell((34,2), 0). +cell((34,3), 0). +cell((34,4), 72). +cell((34,5), 37408). +cell((34,6), 49186). +cell((34,7), 2064). +cell((34,8), 0). +cell((34,9), 0). +cell((34,10), 0). +cell((34,11), 0). +cell((34,12), 0). +cell((34,13), 0). +cell((34,14), 0). +cell((34,15), 0). +cell((34,16), 0). +cell((34,17), 0). +cell((34,18), 0). +cell((34,19), 0). +cell((34,20), 0). +cell((34,21), 0). +cell((34,22), 0). +cell((34,23), 0). +cell((34,24), 0). +cell((34,25), 0). +cell((34,26), 32800). +cell((34,27), 32800). +cell((34,28), 0). +cell((34,29), 0). +cell((34,30), 0). +cell((34,31), 0). +cell((34,32), 0). +cell((34,33), 0). +cell((34,34), 0). +cell((34,35), 0). +cell((34,36), 0). +cell((34,37), 0). +cell((34,38), 0). +cell((34,39), 0). + +cell((35,0), 0). +cell((35,1), 0). +cell((35,2), 0). +cell((35,3), 0). +cell((35,4), 0). +cell((35,5), 32872). +cell((35,6), 37408). +cell((35,7), 0). +cell((35,8), 0). +cell((35,9), 0). +cell((35,10), 0). +cell((35,11), 0). +cell((35,12), 0). +cell((35,13), 0). +cell((35,14), 0). +cell((35,15), 0). +cell((35,16), 0). +cell((35,17), 0). +cell((35,18), 0). +cell((35,19), 0). +cell((35,20), 0). +cell((35,21), 0). +cell((35,22), 0). +cell((35,23), 0). +cell((35,24), 0). +cell((35,25), 0). +cell((35,26), 32800). +cell((35,27), 32800). +cell((35,28), 0). +cell((35,29), 0). +cell((35,30), 0). +cell((35,31), 0). +cell((35,32), 0). +cell((35,33), 0). +cell((35,34), 0). +cell((35,35), 0). +cell((35,36), 0). +cell((35,37), 0). +cell((35,38), 0). +cell((35,39), 0). + +cell((36,0), 0). +cell((36,1), 0). +cell((36,2), 0). +cell((36,3), 0). +cell((36,4), 0). +cell((36,5), 49186). +cell((36,6), 34864). +cell((36,7), 0). +cell((36,8), 0). +cell((36,9), 0). +cell((36,10), 0). +cell((36,11), 0). +cell((36,12), 0). +cell((36,13), 0). +cell((36,14), 0). +cell((36,15), 0). +cell((36,16), 0). +cell((36,17), 0). +cell((36,18), 0). +cell((36,19), 0). +cell((36,20), 0). +cell((36,21), 0). +cell((36,22), 0). +cell((36,23), 0). +cell((36,24), 0). +cell((36,25), 0). +cell((36,26), 32800). +cell((36,27), 32800). +cell((36,28), 0). +cell((36,29), 0). +cell((36,30), 0). +cell((36,31), 0). +cell((36,32), 0). +cell((36,33), 0). +cell((36,34), 0). +cell((36,35), 0). +cell((36,36), 0). +cell((36,37), 0). +cell((36,38), 0). +cell((36,39), 0). + +cell((37,0), 0). +cell((37,1), 0). +cell((37,2), 0). +cell((37,3), 0). +cell((37,4), 0). +cell((37,5), 32800). +cell((37,6), 32800). +cell((37,7), 0). +cell((37,8), 0). +cell((37,9), 0). +cell((37,10), 16386). +cell((37,11), 1025). +cell((37,12), 1025). +cell((37,13), 1025). +cell((37,14), 1025). +cell((37,15), 1025). +cell((37,16), 1025). +cell((37,17), 1025). +cell((37,18), 1025). +cell((37,19), 1025). +cell((37,20), 1025). +cell((37,21), 1025). +cell((37,22), 1025). +cell((37,23), 1025). +cell((37,24), 1025). +cell((37,25), 1025). +cell((37,26), 2064). +cell((37,27), 32800). +cell((37,28), 0). +cell((37,29), 0). +cell((37,30), 0). +cell((37,31), 0). +cell((37,32), 0). +cell((37,33), 0). +cell((37,34), 0). +cell((37,35), 0). +cell((37,36), 0). +cell((37,37), 0). +cell((37,38), 0). +cell((37,39), 0). + +cell((38,0), 0). +cell((38,1), 0). +cell((38,2), 0). +cell((38,3), 0). +cell((38,4), 0). +cell((38,5), 72). +cell((38,6), 1097). +cell((38,7), 1025). +cell((38,8), 1025). +cell((38,9), 1025). +cell((38,10), 3089). +cell((38,11), 1025). +cell((38,12), 1025). +cell((38,13), 1025). +cell((38,14), 1025). +cell((38,15), 1025). +cell((38,16), 1025). +cell((38,17), 1025). +cell((38,18), 1025). +cell((38,19), 1025). +cell((38,20), 1025). +cell((38,21), 1025). +cell((38,22), 1025). +cell((38,23), 1025). +cell((38,24), 1025). +cell((38,25), 1025). +cell((38,26), 1025). +cell((38,27), 2064). +cell((38,28), 0). +cell((38,29), 0). +cell((38,30), 0). +cell((38,31), 0). +cell((38,32), 0). +cell((38,33), 0). +cell((38,34), 0). +cell((38,35), 0). +cell((38,36), 0). +cell((38,37), 0). +cell((38,38), 0). +cell((38,39), 0). + +cell((39,0), 0). +cell((39,1), 0). +cell((39,2), 0). +cell((39,3), 0). +cell((39,4), 0). +cell((39,5), 0). +cell((39,6), 0). +cell((39,7), 0). +cell((39,8), 0). +cell((39,9), 0). +cell((39,10), 0). +cell((39,11), 0). +cell((39,12), 0). +cell((39,13), 0). +cell((39,14), 0). +cell((39,15), 0). +cell((39,16), 0). +cell((39,17), 0). +cell((39,18), 0). +cell((39,19), 0). +cell((39,20), 0). +cell((39,21), 0). +cell((39,22), 0). +cell((39,23), 0). +cell((39,24), 0). +cell((39,25), 0). +cell((39,26), 0). +cell((39,27), 0). +cell((39,28), 0). +cell((39,29), 0). +cell((39,30), 0). +cell((39,31), 0). +cell((39,32), 0). +cell((39,33), 0). +cell((39,34), 0). +cell((39,35), 0). +cell((39,36), 0). +cell((39,37), 0). +cell((39,38), 0). +cell((39,39), 0). + diff --git a/envs/params.py b/envs/params.py index d52bf02..a6aefb2 100644 --- a/envs/params.py +++ b/envs/params.py @@ -10,13 +10,13 @@ remove_agents_at_target=True # speed -# speed_ratio_map={1 : 1} -speed_ratio_map= { - 1: 0.50, - 1/2: 0.00, - 1/3: 0.00, - 1/4: 0.50 - } +speed_ratio_map={1 : 1} +# speed_ratio_map= { +# 1: 0.50, +# 1/2: 0.00, +# 1/3: 0.00, +# 1/4: 0.50 +# } # malfunctions malfunction_rate=0/30 diff --git a/envs/pkl/malfunction_test.pkl b/envs/pkl/malfunction_test.pkl new file mode 100644 index 0000000..adfae6b Binary files /dev/null and b/envs/pkl/malfunction_test.pkl differ diff --git a/envs/png/malfunction_test.png b/envs/png/malfunction_test.png new file mode 100644 index 0000000..c9eb1b2 Binary files /dev/null and b/envs/png/malfunction_test.png differ diff --git a/modules/actionlist.py b/modules/actionlist.py index d769994..d75901a 100644 --- a/modules/actionlist.py +++ b/modules/actionlist.py @@ -28,6 +28,18 @@ def to_dicts(action_list): mapping = {"move_forward":RailEnvActions.MOVE_FORWARD, "move_right":RailEnvActions.MOVE_RIGHT, "move_left":RailEnvActions.MOVE_LEFT, "wait":RailEnvActions.STOP_MOVING} return(convert_actions_to_flatland(result)) +def build_context_from_save(models): + """ + given a model from clingo, build a list of saved atoms + """ + save_list = [] + for func in models[0]: # only the first model + func_name = func.name + if func_name == "save": + context = func.arguments[0] + save_list.append(f"load({context}).\n") + + return(save_list) def build_action_list(models): """ @@ -43,4 +55,5 @@ def build_action_list(models): action_list.append((agent_num,action,timestep.number)) sorted_list = sorted(action_list, key=lambda x: (x[2], x[0])) - return(to_dicts(sorted_list)) \ No newline at end of file + return(to_dicts(sorted_list)) + diff --git a/modules/api.py b/modules/api.py index 0021053..117c0f1 100644 --- a/modules/api.py +++ b/modules/api.py @@ -4,7 +4,7 @@ from clingo.symbol import Number from clingo.application import Application, clingo_main from modules.convert import convert_to_clingo -from modules.actionlist import build_action_list +from modules.actionlist import build_action_list, build_context_from_save class FlatlandPlan(Application): """ takes an environment and a set of primary encodings """ @@ -15,6 +15,7 @@ def __init__(self, env, actions): self.env = env self.actions = actions self.action_list = None + self.save_context = None def main(self, ctl, files): # add encodings @@ -28,7 +29,7 @@ def main(self, ctl, files): # add actions if self.actions is not None: - print(f".join(self.actions): {' '.join(self.actions)}") + # print(f".join(self.actions): {' '.join(self.actions)}") ctl.add('base', [], ' '.join(self.actions)) # ground the program @@ -44,6 +45,7 @@ def main(self, ctl, files): # capture output actions for renderer #return(build_action_list(models)) self.action_list = build_action_list(models) + self.save_context = build_context_from_save(models) # let's see later whether we even need this diff --git a/modules/convert.py b/modules/convert.py index 3ebdfe1..103bb3a 100644 --- a/modules/convert.py +++ b/modules/convert.py @@ -62,8 +62,8 @@ def convert_malfunctions_to_clingo(malfs, timestep) -> str: for m in malfs: train, duration = m[0], m[1] facts.append(f'malfunction({train},{duration},{timestep}).\n') - for t in range(timestep+1, timestep+1+m[1]): # remove: make sure this duration should be included (aka remove +1 or keep it?) - facts.append(f':- not action(train({train}),wait,{t}).\n') #remove: can this be a list of strings or should it be one long string? + # for t in range(timestep+1, timestep+1+m[1]): # remove: make sure this duration should be included (aka remove +1 or keep it?) + # facts.append(f':- not action(train({train}),wait,{t}).\n') #remove: can this be a list of strings or should it be one long string? return(facts) diff --git a/solve.py b/solve.py index 0224d98..5832792 100644 --- a/solve.py +++ b/solve.py @@ -8,7 +8,7 @@ # custom modules from asp import params -from modules.api import FlatlandPlan, FlatlandReplan +from modules.api import FlatlandPlan from modules.convert import convert_malfunctions_to_clingo, convert_formers_to_clingo, convert_futures_to_clingo # clingo @@ -65,28 +65,29 @@ def __init__(self,env,primary,secondary=None): else: self.secondary = secondary + self.save_context = None + def build_actions(self) -> list: """ create initial list of actions """ # pass env, primary app = FlatlandPlan(self.env, None) clingo_main(app, self.primary) + self.save_context = app.save_context return(app.action_list) def provide_context(self, actions, timestep, malfunctions) -> str: """ provide additional facts when updating list """ - # actions that have already been executed - # wait actions that are enforced because of malfunctions - # future actions that were previously planned - past = convert_formers_to_clingo(actions[:timestep]) - present = convert_malfunctions_to_clingo(malfunctions, timestep) - future = convert_futures_to_clingo(actions[timestep:]) - return(past + present + future) + # provides malfunction information as well as previously saved atoms + malfunction = convert_malfunctions_to_clingo(malfunctions, timestep) + saved = self.save_context + return (malfunction + saved) def update_actions(self, context) -> list: """ update list of actions following malfunction """ # pass env, secondary, context app = FlatlandPlan(self.env, context) - clingo_main(app, self.primary) + clingo_main(app, self.secondary) + self.save_context = app.save_context return(app.action_list) @@ -148,7 +149,10 @@ def main(): # create manager objects mal = MalfunctionManager(env.get_num_agents()) - sim = SimulationManager(env, params.primary, params.secondary) + if hasattr(params,"secondary") and params.secondary != []: + sim = SimulationManager(env, params.primary, params.secondary) + else: + sim = SimulationManager(env, params.primary, None) log = OutputLogManager() # envrionment rendering