QAOAType

class QAOAType

ベースクラス: Enum

Selects the QAOA circuit construction strategy.

Pass this as QAOA.Parameters.qaoa_type to control which implementation is used when building the QAOA ansatz.

Attributes

AUTO

Automatically choose the best implementation based on the problem structure.

AUTO_QUADRATIC

Like AUTO but restricts the objective to quadratic form.

ORIGINAL

Standard QAOA for unconstrained Ising problems.

ORIGINAL_QUADRATIC

Like ORIGINAL but restricts the objective to quadratic form.

NHOT

QAOA that preserves equal to constraints throughout the circuit, keeping the quantum state in the feasible subspace.

NHOT_QUADRATIC

Like NHOT but restricts the objective to quadratic form.

classmethod __contains__(value)

Return True if value is in cls.

value is in cls if: 1) value is a member of cls, or 2) value is the value of one of the cls's members. 3) value is a pseudo-member (flags)

classmethod __getitem__(name)

Return the member matching name.

classmethod __iter__()

Return members in definition order.

classmethod __len__()

Return the number of members (no aliases)

AUTO = (<class 'amplify_quantum.algo.qaoa.impls.qaoa_auto.AutoQAOAImpl'>, AcceptableDegrees({"objective": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.HighOrder, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "equality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "inequality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}}))

Automatically choose the best implementation based on the problem structure. Selects NHOT when the problem has disjoint equal to constraints, otherwise falls back to ORIGINAL.

AUTO_QUADRATIC = (<class 'amplify_quantum.algo.qaoa.impls.qaoa_auto.AutoQAOAImpl'>, AcceptableDegrees({"objective": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Quadratic, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "equality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "inequality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}}))

Like AUTO but restricts the objective to quadratic form.

NHOT = (<class 'amplify_quantum.algo.qaoa.impls.qaoa_n_hot.NHOTQAOAImpl'>, AcceptableDegrees({"objective": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.HighOrder, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "equality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "inequality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}}))

QAOA that preserves equal to constraints throughout the circuit, keeping the quantum state in the feasible subspace.

NHOT_QUADRATIC = (<class 'amplify_quantum.algo.qaoa.impls.qaoa_n_hot.NHOTQAOAImpl'>, AcceptableDegrees({"objective": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Quadratic, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "equality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "inequality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}}))

Like NHOT but restricts the objective to quadratic form.

ORIGINAL = (<class 'amplify_quantum.algo.qaoa.impls.qaoa_original.OriginalQAOAImpl'>, AcceptableDegrees({"objective": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.HighOrder, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "equality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "inequality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}}))

Standard QAOA for unconstrained Ising problems.

ORIGINAL_QUADRATIC = (<class 'amplify_quantum.algo.qaoa.impls.qaoa_original.OriginalQAOAImpl'>, AcceptableDegrees({"objective": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Quadratic, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "equality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "inequality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}}))

Like ORIGINAL but restricts the objective to quadratic form.

__members__ = mappingproxy({'AUTO': <QAOAType.AUTO: (<class 'amplify_quantum.algo.qaoa.impls.qaoa_auto.AutoQAOAImpl'>, AcceptableDegrees({"objective": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.HighOrder, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "equality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "inequality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}}))>, 'AUTO_QUADRATIC': <QAOAType.AUTO_QUADRATIC: (<class 'amplify_quantum.algo.qaoa.impls.qaoa_auto.AutoQAOAImpl'>, AcceptableDegrees({"objective": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Quadratic, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "equality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "inequality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}}))>, 'ORIGINAL': <QAOAType.ORIGINAL: (<class 'amplify_quantum.algo.qaoa.impls.qaoa_original.OriginalQAOAImpl'>, AcceptableDegrees({"objective": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.HighOrder, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "equality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "inequality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}}))>, 'ORIGINAL_QUADRATIC': <QAOAType.ORIGINAL_QUADRATIC: (<class 'amplify_quantum.algo.qaoa.impls.qaoa_original.OriginalQAOAImpl'>, AcceptableDegrees({"objective": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Quadratic, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "equality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "inequality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}}))>, 'NHOT': <QAOAType.NHOT: (<class 'amplify_quantum.algo.qaoa.impls.qaoa_n_hot.NHOTQAOAImpl'>, AcceptableDegrees({"objective": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.HighOrder, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "equality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "inequality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}}))>, 'NHOT_QUADRATIC': <QAOAType.NHOT_QUADRATIC: (<class 'amplify_quantum.algo.qaoa.impls.qaoa_n_hot.NHOTQAOAImpl'>, AcceptableDegrees({"objective": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Quadratic, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "equality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}, "inequality_constraints": {VariableType.Binary: Degree.Zero, VariableType.Ising: Degree.Zero, VariableType.Integer: Degree.Zero, VariableType.Real: Degree.Zero}}))>})
__name__ = 'QAOAType'
__qualname__ = 'QAOAType'