openfermioncirq.VariationalAnsatz

class openfermioncirq.VariationalAnsatz(qubits: Optional[Sequence[cirq.ops.raw_types.Qid]] = None)[source]

A variational ansatz.

A variational ansatz is a parameterized circuit. The VariationalAnsatz class stores parameters as instances of the Symbol class. A Symbol is simply a named object that can be used in a circuit and whose numerical value is determined at run time. The Symbols are stored in a dictionary whose keys are the names of the corresponding parameters. For instance, the Symbol corresponding to the parameter ‘theta_0’ would be obtained with the expression self.params[‘theta_0’].

params[source]

A dictionary storing the parameters by name. Key is the string name of a parameter and the corresponding value is a Symbol with the same name.

circuit

The ansatz circuit.

qubits

A list containing the qubits used by the ansatz circuit.

__init__(qubits: Optional[Sequence[cirq.ops.raw_types.Qid]] = None) → None[source]
Parameters:qubits – Qubits to be used by the ansatz circuit. If not specified, then qubits will automatically be generated by the _generate_qubits method.

Methods

__init__(qubits)
param qubits:Qubits to be used by the ansatz circuit. If not specified,
default_initial_params() Suggested initial parameter settings.
operations(qubits) Produce the operations of the ansatz circuit.
param_bounds() Optional bounds on the parameters.
param_resolver(param_values) Interprets parameters input as an array of real numbers.
param_scale_factors() Coefficients to scale parameters by during optimization.
params() The parameters of the ansatz.
qubit_permutation(qubits) The qubit permutation induced by the ansatz circuit.