This tool generates an experimental visualization of solver evaluation data, such as data obtained by SAT solver competitions, centered around an interactive two-dimensional projection of the space of problem instances. It is a component of the borg algorithm portfolio project:
http://nn.cs.utexas.edu/pages/research/borg/
Examples of its output can be found at:
http://nn.cs.utexas.edu/pages/research/borg/visualization.html
The borg-explorer tool reads evaluation data as input and generates a static directory tree, including HTML and JSON files, as output. The flow of this generation process is:
- Solver run data are read (CSV).
- A mixture model is fit to the data (using EM).
- Using KL divergence scores from the mixture model, multidimensional scaling is used to project the problem instances (using R's MDS implementation.)
- The projection, similarity scores, and other data are written to JSON.
- The HTML, JavaScript, and other page files are generated.
First, install borg
and cargo
in a virtualenv according to the borg
installation instructions.
The portfolio calibration step is unnecessary.
With the same virtualenv active, install the borg-explorer requirement(s):
$ pip install rpy2
(A recent version of R must be available.)
Then, from the borg-explorer source tree,
$ ./waf configure
$ ./waf build
$ ./waf install
Create a directory to which the site files will be written (these instructions
will assume ~/www/borg-explorer
). Then download d3.js from:
https://github.com/mbostock/d3/archives/master
Unpack the tarball in the new directory, and symlink the d3 directory as d3
.
Next, prepare inputs for visualization. An example set of inputs is available from the "download" link at:
http://nn.cs.utexas.edu/pages/research/borg-explorer/sat09/
Assuming that an input configuration has been prepared at
inputs/sat09/setup.json
, compute the dissimilarity scores and projection
coordinates by running:
$ python -m borg_explorer.tools.view_fit sat09_fit.pickle inputs/sat09/setup.json
Then generate the visualization from the computed projection into an arbitrary directory, e.g.:
$ python -m borg_explorer.tools.view_write ~/www/borg-explorer sat09_fit.pickle
This software package is provided under the non-copyleft open-source "MIT" license. The complete legal notice can be found in the included LICENSE file.