This is a user interface generated by Claude.
The purpose is to analyze paths generated by our subnodes pathfinding encoding. When called with the following command:
$ clingo benchmark.lp pathfinding-subnodes.lp --const z=3 --outf=2 0 > results.json
the output might look something like this:
Example output file
{
"Solver": "clingo version 5.8.0",
"Input": [
"benchmark.lp","pathfinding-subnodes.lp"
],
"Call": [
{
"Start": 0.000,
"Witnesses": [
{
"Time": 2.968,
"Value": [
"global(228)", "path((11,22,w),90)", "path((11,21,w),91)", "path((11,20,w),92)", "path((11,19,n),93)", "path((10,19,w),94)", "path((10,18,w),95)", "path((10,17,n),96)", "path((9,17,n),97)", "path((8,17,n),98)", "path((7,17,n),99)", "path((6,17,n),100)", "path((5,17,w),101)", "path((5,16,w),102)", "path((5,15,w),103)", "path((5,14,w),104)", "path((5,13,w),105)", "path((5,12,w),106)", "path((5,11,w),107)", "path((5,10,w),108)", "path((5,9,w),109)", "path((5,8,w),110)", "path((5,7,w),111)", "path((5,6,w),112)", "path((5,5,w),113)", "length(23)"
]
},
{
"Time": 2.968,
"Value": [
"global(228)", "path((11,22,w),90)", "path((11,21,w),91)", "path((11,20,w),92)", "path((11,19,n),93)", "path((10,19,w),94)", "path((10,18,w),95)", "path((10,17,w),96)", "path((10,16,n),97)", "path((9,16,w),98)", "path((9,15,w),99)", "path((9,14,w),100)", "path((9,13,w),101)", "path((9,12,w),102)", "path((9,11,w),103)", "path((9,10,n),104)", "path((8,10,n),105)", "path((7,10,n),106)", "path((6,10,n),107)", "path((5,10,w),108)", "path((5,9,w),109)", "path((5,8,w),110)", "path((5,7,w),111)", "path((5,6,w),112)", "path((5,5,w),113)", "length(23)"
]
},
...
{
"Time": 3.014,
"Value": [
"global(228)", "path((11,22,w),90)", "path((11,21,w),91)", "path((11,20,w),92)", "path((11,19,n),93)", "path((10,19,w),94)", "path((10,18,w),95)", "path((10,17,w),96)", "path((10,16,w),97)", "path((10,15,w),98)", "path((10,14,w),99)", "path((10,13,w),100)", "path((10,12,w),101)", "path((10,11,w),102)", "path((10,10,w),103)", "path((10,9,w),104)", "path((10,8,w),105)", "path((10,7,w),106)", "path((10,6,w),107)", "path((10,5,w),108)", "path((10,4,w),109)", "path((10,3,w),110)", "path((10,2,w),111)", "path((10,1,w),112)", "path((10,0,n),113)", "path((9,0,n),114)", "path((8,0,n),115)", "path((7,0,n),116)", "path((6,0,n),117)", "path((5,0,e),118)", "path((5,1,e),119)", "path((5,2,s),120)", "path((6,2,e),121)", "path((6,3,n),122)", "path((5,3,e),123)", "path((5,4,n),124)", "path((4,4,e),125)", "path((4,5,e),126)", "path((4,6,s),127)", "path((5,6,e),128)", "path((5,7,s),129)", "path((6,7,e),130)", "path((6,8,n),131)", "path((5,8,e),132)", "path((5,9,e),133)", "path((5,10,e),134)", "path((5,11,e),135)", "path((5,12,e),136)", "path((5,13,e),137)", "path((5,14,e),138)", "path((5,15,e),139)", "path((5,16,e),140)", "path((5,17,s),141)", "path((6,17,s),142)", "path((7,17,s),143)", "path((8,17,s),144)", "path((9,17,s),145)", "path((10,17,e),146)", "path((10,18,e),147)", "path((10,19,s),148)", "path((11,19,e),149)", "path((11,20,n),150)", "path((10,20,e),151)", "path((10,21,n),152)", "path((9,21,e),153)", "path((9,22,e),154)", "path((9,23,s),155)", "path((10,23,e),156)", "path((10,24,s),157)", "path((11,24,e),158)", "path((11,25,n),159)", "path((10,25,e),160)", "path((10,26,e),161)", "path((10,27,n),162)", "path((9,27,n),163)", "path((8,27,n),164)", "path((7,27,n),165)", "path((6,27,n),166)", "path((5,27,w),167)", "path((5,26,w),168)", "path((5,25,w),169)", "path((5,24,w),170)", "path((5,23,w),171)", "path((5,22,w),172)", "path((5,21,w),173)", "path((5,20,w),174)", "path((5,19,w),175)", "path((5,18,w),176)", "path((5,17,w),177)", "path((5,16,w),178)", "path((5,15,w),179)", "path((5,14,w),180)", "path((5,13,w),181)", "path((5,12,w),182)", "path((5,11,w),183)", "path((5,10,w),184)", "path((5,9,w),185)", "path((5,8,s),186)", "path((6,8,w),187)", "path((6,7,n),188)", "path((5,7,w),189)", "path((5,6,w),190)", "path((5,5,w),191)", "length(101)"
]
}
],
"Stop": 3.016
}
],
"Result": "SATISFIABLE",
"Models": {
"Number": 246,
"More": "no"
},
"Calls": 1,
"Time": {
"Total": 3.016,
"Solve": 0.049,
"Model": 0.000,
"Unsat": 0.002,
"CPU": 2.987
}
}
The JSON file is parsed to determine and plot the paths uncovered by the solver.
Try out the visualizer by cloning the repository. It is purely HTML and requires no server to run. You can use the provided results and environment files to see it in action. The current version is fixed for environments of size 30 x 30, but will be adjusted in the future.
- Click
Browse JSON...and selectexample/results.json - Click
Browse Image...and selectexample/environment.png
Then you can select from all of the available models and see them plotted in real time. If you want, you can hold down CMD/CTRL to select multiple models from the list. Holding down SHIFT will select consecutive models. Click clear to clear your selection.