Giter VIP home page Giter VIP logo

borg-explorer's Introduction

borg-explorer

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

Architecture

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:

  1. Solver run data are read (CSV).
  2. A mixture model is fit to the data (using EM).
  3. Using KL divergence scores from the mixture model, multidimensional scaling is used to project the problem instances (using R's MDS implementation.)
  4. The projection, similarity scores, and other data are written to JSON.
  5. The HTML, JavaScript, and other page files are generated.

Installation

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

Usage

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

License

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.

borg-explorer's People

Contributors

bsilverthorn avatar ceari avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.