Utilities for working with bqpjson data
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bqpjson
docs
tests
.gitignore
.travis.yml
CHANGELOG.md
LICENSE.md
README.rst
readthedocs.txt
setup.cfg
setup.py
tox.ini

README.rst

bqpjson

dev status:

Build Report Coverage Report Documentation Status

bqpjson is a minimalist python package for working with bqpjson data files, a json-based encoding of binary quadratic programs. A detailed description of the bqpjson data format is available here.

The package can be installed via:

pip install bqpjson

The bqpjson toolset includes:

  • bqpjson - python tools for the validation and transformation of bqpjson data (documentation)
  • bqpjson-schema.json - a JSON-Schema for bqpjson data files
  • spin2bool - a command line tool for converting a bqpjson data files between the spin and boolean variable spaces
  • bqp2qh - a command line tool for converting bqpjson data files into qubist compatible hamiltonians
  • bqp2qubo - a command line tool for converting bqpjson data into qubo data
  • bqp2mzn - a command line tool for converting bqpjson data into a minizinc model
  • bqp2hfs - a command line tool for converting bqpjson data into hfs data

An example of bqpjson data:

{
  "description":"a simple model",
  "id": 0,
  "linear_terms": [
    {"coeff":  1.3, "id": 2},
    {"coeff": -0.7, "id": 6}
  ],
  "metadata": {},
  "offset": 0.0,
  "quadratic_terms": [
    {"coeff": -0.2, "id_head": 4, "id_tail": 2},
    {"coeff":  1.5, "id_head": 6, "id_tail": 2}
  ],
  "scale": 1.0,
  "variable_domain": "spin",
  "variable_ids": [2,4,6],
  "version": "1.0.0"
}

License

bqpjson is developed at Los Alamos National Laboratory and is provided under a BSD-ish license with a "modifications must be indicated" clause. See the LICENSE.md file for the full text. This package is part of the Hybrid Quantum-Classical Computing suite, known internally as LA-CC-16-032.