z-quantum-optimizers is a module with basic optimizers to be used in workflows with Orquestra – a platform for performing computations on quantum computers developed by Zapata Computing.
Currently this library includes the following optimizers:
It also supports the optimization of variational circuits.
In order to use z-quantum-optimizers in your workflow, you need to add it as an import in your Orquestra workflow:
imports:
- name: z-quantum-optimizers
type: git
parameters:
repository: "git@github.com:zapatacomputing/z-quantum-optimizers.git"
branch: "main"and then add it in the imports argument of your step:
- name: my-step
config:
runtime:
language: python3
imports: [z-quantum-optimizers]Once that is done you can:
- use any
z-quantum-optimizersfunction by specifying its name and path as follows:
- name: optimize-circuit
config:
runtime:
language: python3
imports: [z-quantum-optimizers]
parameters:
file: z-quantum-optimizers/steps/optimizers.py
function: optimize_variational_circuit- use tasks which import
zquantum.optimizersin the python code (see below).
Here's an example of how to use methods from z-quantum-optimizers in a python task:
from zquantum.optimizers import ScipyOptimizer
optimizer = ScipyOptimizer(method='L-BFGS-B')or use optimizer-specs parameter to make our code work with other backends too:
from zquantum.core.utils import create_object
optimizer_specs = {{inputs.parameters.optimizer-specs}}
optimizer = create_object(optimizer_specs)Even though it's intended to be used with Orquestra, z-quantum-optimizers can be also used as a standalone Python module.
This can be done by running pip install . from the src/ directory.
You can find the development guidelines in the z-quantum-core repository.
In order to run tests please run pytest . from the main directory.
In order for the tests related to the daemon optimizer to work you need to first specify FLASK_APP environmental variable:
export FLASK_APP=/path/to/z-quantum-optimizer/src/python/orquestra/optimizers/daemon-optimizer/proxy/rest.py.