Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/technical_docs/vqls.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Systems of linear equations arise naturally in many real-life applications in a
from qalcore.qiskit.vqls.vqls import VQLS, VQLSLog
from qiskit.circuit.library.n_local.real_amplitudes import RealAmplitudes
from qiskit_algorithms import optimizers as opt
from qiskit import Aer, BasicAer
from qiskit_aer import Aer, BasicAer
import numpy as np

from qiskit.quantum_info import Statevector
Expand Down
6 changes: 3 additions & 3 deletions tests/test_hadamard.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.

import numpy as np

from qiskit.test import QiskitTestCase
import unittest
import numpy as np

from qiskit.circuit.library import RealAmplitudes
from qiskit_algorithms import optimizers as opt
Expand All @@ -24,7 +24,7 @@
from vqls_prototype.hadamard_test.direct_hadamard_test import BatchDirectHadammardTest


class TestHadamard(QiskitTestCase):
class TestHadamard(unittest.TestCase):
def setUp(self):
super().setUp()

Expand Down
11 changes: 4 additions & 7 deletions tests/test_hybrid_qst_vqls.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,16 @@


import unittest
from qiskit.test import QiskitTestCase

import numpy as np

from qiskit import BasicAer
from qiskit.circuit.library import RealAmplitudes

from qiskit_algorithms.optimizers import COBYLA
from qiskit.primitives import Estimator, Sampler, BackendEstimator, BackendSampler
from qiskit.primitives import Estimator, Sampler
from vqls_prototype import Hybrid_QST_VQLS, VQLSLog


class TestHybridQSTVQLS(QiskitTestCase):
class TestHybridQSTVQLS(unittest.TestCase):
"""Test VQLS"""

def setUp(self):
Expand All @@ -36,12 +33,12 @@ def setUp(self):

self.estimators = (
Estimator(),
BackendEstimator(BasicAer.get_backend("qasm_simulator")),
# AerEstimator(),
)

self.samplers = (
Sampler(),
BackendSampler(BasicAer.get_backend("qasm_simulator")),
# AerSampler(),
)

self.log = VQLSLog([], [])
Expand Down
11 changes: 4 additions & 7 deletions tests/test_qst_vqls.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,16 @@


import unittest
from qiskit.test import QiskitTestCase

import numpy as np

from qiskit import BasicAer
from qiskit.circuit.library import RealAmplitudes

from qiskit_algorithms.optimizers import COBYLA
from qiskit.primitives import Estimator, Sampler, BackendEstimator, BackendSampler
from qiskit.primitives import Estimator, Sampler
from vqls_prototype import QST_VQLS, VQLSLog


class TestQSTVQLS(QiskitTestCase):
class TestQSTVQLS(unittest.TestCase):
"""Test VQLS"""

def setUp(self):
Expand All @@ -36,12 +33,12 @@ def setUp(self):

self.estimators = (
Estimator(),
BackendEstimator(BasicAer.get_backend("qasm_simulator")),
# AerEstimator(),
)

self.samplers = (
Sampler(),
BackendSampler(BasicAer.get_backend("qasm_simulator")),
# AerSampler(),
)

self.log = VQLSLog([], [])
Expand Down
7 changes: 4 additions & 3 deletions tests/test_tomography.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,18 @@
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.

import unittest
import numpy as np
from qiskit.test import QiskitTestCase

from qiskit import Aer

from qiskit_aer import Aer
from qiskit.circuit.library import RealAmplitudes
from qiskit.primitives import Sampler

from vqls_prototype.tomography import FullQST, SimulatorQST, HTreeQST, ShadowQST


class TestTomography(QiskitTestCase):
class TestTomography(unittest.TestCase):
def setUp(self):
super().setUp()

Expand Down
11 changes: 5 additions & 6 deletions tests/test_vqls.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,22 @@


import unittest
from qiskit.test import QiskitTestCase

import numpy as np

from qiskit import BasicAer, QuantumCircuit
from qiskit import QuantumCircuit
from qiskit.circuit.library import RealAmplitudes

from qiskit_algorithms.optimizers import ADAM
from qiskit.primitives import Estimator, Sampler, BackendEstimator, BackendSampler
from qiskit.primitives import Estimator, Sampler
from vqls_prototype import VQLS

# 8-11-2023
# Overlap Hadamard test do not work with BasicAer primitives anymore
# this test case is skipped for now


class TestVQLS(QiskitTestCase):
class TestVQLS(unittest.TestCase):
"""Test VQLS"""

def setUp(self):
Expand All @@ -44,12 +43,12 @@ def setUp(self):

self.estimators = (
Estimator(),
BackendEstimator(BasicAer.get_backend("qasm_simulator")),
# AerEstimator(),
)

self.samplers = (
Sampler(),
BackendSampler(BasicAer.get_backend("qasm_simulator")),
# AerSampler(),
)

def test_numpy_input(self):
Expand Down
6 changes: 2 additions & 4 deletions vqls_prototype/hadamard_test/hadamard_overlap_test.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
from typing import Optional, List, Union
from qiskit import QuantumCircuit, QuantumRegister, transpile
from typing import Optional, List
from qiskit import QuantumCircuit, QuantumRegister
from qiskit_algorithms.exceptions import AlgorithmError
from qiskit.opflow import TensoredOp
from qiskit.quantum_info import SparsePauliOp
import numpy as np
import numpy.typing as npt

Expand Down
6 changes: 3 additions & 3 deletions vqls_prototype/hadamard_test/hadamard_test.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
"""Hadammard test."""

from typing import Optional, List, Union
from qiskit import QuantumCircuit, QuantumRegister, transpile
from qiskit import QuantumCircuit
from qiskit_algorithms.exceptions import AlgorithmError
from qiskit.opflow import TensoredOp
from qiskit.quantum_info import Operator
from qiskit.quantum_info import SparsePauliOp
import numpy as np
import numpy.typing as npt
Expand Down Expand Up @@ -212,7 +212,7 @@ def _build_circuit(

return circuits

def _build_observable(self) -> List[TensoredOp]:
def _build_observable(self) -> List[Operator]:
"""Create the operator to measure |1> on the control qubit.

Returns:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
"""Methods to decompose a matrix into quantum circuits"""

from itertools import chain, combinations
from collections import namedtuple
from itertools import product
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
"""Methods to decompose a matrix into quantum circuits"""

import itertools
from dataclasses import dataclass
from collections import OrderedDict
Expand Down
4 changes: 2 additions & 2 deletions vqls_prototype/solver/base_solver.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from qiskit_algorithms.utils.validation import validate_min
from qiskit.circuit.library.n_local.real_amplitudes import RealAmplitudes
from qiskit_algorithms.optimizers import Minimizer, Optimizer
from qiskit.opflow.gradients import GradientBase
from qiskit_algorithms.gradients import BaseEstimatorGradient

from .variational_linear_solver import (
VariationalLinearSolver,
Expand Down Expand Up @@ -45,7 +45,7 @@ def __init__(
optimizer: Union[Optimizer, Minimizer],
sampler: Union[BaseSampler, None],
initial_point: Union[np.ndarray, None],
gradient: Union[GradientBase, Callable, None],
gradient: Union[BaseEstimatorGradient, Callable, None],
max_evals_grouped: int,
) -> None:
r"""
Expand Down
8 changes: 4 additions & 4 deletions vqls_prototype/solver/hybrid_qst_vqls.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
from typing import Optional, Union, List, Callable, Dict, Tuple
from qiskit_algorithms.optimizers import Minimizer, Optimizer
import numpy as np
from qiskit.opflow.gradients import GradientBase
from qiskit_algorithms.gradients import BaseEstimatorGradient
from qiskit.primitives import BaseEstimator, BaseSampler
from qiskit import Aer
from qiskit_aer import Aer
from qiskit import QuantumCircuit

from qiskit_algorithms.utils import validate_bounds
Expand Down Expand Up @@ -55,7 +55,7 @@ class Hybrid_QST_VQLS(BaseSolver):
from qalcore.qiskit.vqls.vqls import VQLS, VQLSLog
from qiskit.circuit.library.n_local.real_amplitudes import RealAmplitudes
from qiskit_algorithms import optimizers as opt
from qiskit import Aer, BasicAer
from qiskit_aer import Aer, BasicAer
import numpy as np

from qiskit.quantum_info import Statevector
Expand Down Expand Up @@ -122,7 +122,7 @@ def __init__(
optimizer: Union[Optimizer, Minimizer],
sampler: Union[BaseSampler, None],
initial_point: Optional[Union[np.ndarray, None]] = None,
gradient: Optional[Union[GradientBase, Callable, None]] = None,
gradient: Optional[Union[BaseEstimatorGradient, Callable, None]] = None,
max_evals_grouped: Optional[int] = 1,
options: Optional[Union[Dict, None]] = None,
) -> None:
Expand Down
8 changes: 4 additions & 4 deletions vqls_prototype/solver/qst_vqls.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@

import numpy as np
import sparse
from qiskit.opflow.gradients import GradientBase
from qiskit_algorithms.gradients import BaseEstimatorGradient
from qiskit.primitives import BaseEstimator, BaseSampler
from qiskit import Aer
from qiskit_aer import Aer
from qiskit import QuantumCircuit
from qiskit.quantum_info import SparsePauliOp
from qiskit_algorithms.utils import validate_bounds
Expand Down Expand Up @@ -52,7 +52,7 @@ class QST_VQLS(BaseSolver):
from qalcore.qiskit.vqls.vqls import VQLS, VQLSLog
from qiskit.circuit.library.n_local.real_amplitudes import RealAmplitudes
from qiskit_algorithms import optimizers as opt
from qiskit import Aer, BasicAer
from qiskit_aer import Aer, BasicAer
import numpy as np

from qiskit.quantum_info import Statevector
Expand Down Expand Up @@ -119,7 +119,7 @@ def __init__(
optimizer: Union[Optimizer, Minimizer],
sampler: Union[BaseSampler, None],
initial_point: Optional[Union[np.ndarray, None]] = None,
gradient: Optional[Union[GradientBase, Callable, None]] = None,
gradient: Optional[Union[BaseEstimatorGradient, Callable, None]] = None,
max_evals_grouped: Optional[int] = 1,
options: Optional[Union[Dict, None]] = None,
) -> None:
Expand Down
6 changes: 3 additions & 3 deletions vqls_prototype/solver/vqls.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
from qiskit_algorithms.utils import validate_bounds
from qiskit.quantum_info import Statevector
from qiskit_algorithms.optimizers import Minimizer, Optimizer
from qiskit.opflow.gradients import GradientBase
from qiskit_algorithms.gradients import BaseEstimatorGradient

from .variational_linear_solver import (
VariationalLinearSolverResult,
Expand Down Expand Up @@ -63,7 +63,7 @@ class VQLS(BaseSolver):
from qalcore.qiskit.vqls.vqls import VQLS, VQLSLog
from qiskit.circuit.library.n_local.real_amplitudes import RealAmplitudes
from qiskit_algorithms import optimizers as opt
from qiskit import Aer, BasicAer
from qiskit_aer import Aer, BasicAer
import numpy as np

from qiskit.quantum_info import Statevector
Expand Down Expand Up @@ -130,7 +130,7 @@ def __init__(
optimizer: Union[Optimizer, Minimizer],
sampler: Optional[Union[BaseSampler, None]] = None,
initial_point: Optional[Union[np.ndarray, None]] = None,
gradient: Optional[Union[GradientBase, Callable, None]] = None,
gradient: Optional[Union[BaseEstimatorGradient, Callable, None]] = None,
max_evals_grouped: Optional[int] = 1,
options: Optional[Union[Dict, None]] = None,
) -> None:
Expand Down