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: "[email protected]: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-optimizers
function 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.optimizers
in 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
.