FlexQAOA Configuration
PenaltySetting ¶
PipelineParams ¶
Bases: BaseModel
Define the modular FlexQAOA Pipeline.
Attributes:
| Name | Type | Description |
|---|---|---|
penalty |
PenaltySetting
|
General penalty factor settings. |
inequality_to_equality |
InequalityToEqualityConfig
|
Configuration of the "inequality to equality" transformation. |
setpacking_as_onehot |
SetpackingAsOnehotConfig
|
Configuration of the "setpacking to onehot" transformation. |
xy_mixer |
XYMixerConfig
|
Configuration of the XY-mixers. |
indicator_function |
IndicatorFunctionConfig
|
Configuration of the indicator functions. |
sp_quadratic_penalty |
QuadraticPenaltyConfig
|
Configuration of the setpacking quadratic penalty function. |
quadratic_penalty |
QuadraticPenaltyConfig
|
Configuration of the general quadratic penalty function. |
indicator_function
class-attribute
instance-attribute
¶
indicator_function: IndicatorFunctionConfig = Field(
default_factory=IndicatorFunctionConfig
)
inequality_to_equality
class-attribute
instance-attribute
¶
inequality_to_equality: InequalityToEqualityConfig = Field(
default_factory=InequalityToEqualityConfig
)
penalty
class-attribute
instance-attribute
¶
penalty: PenaltySetting = Field(
default_factory=lambda: PenaltySetting(scaling=2.0)
)
quadratic_penalty
class-attribute
instance-attribute
¶
quadratic_penalty: QuadraticPenaltyConfig = Field(
default_factory=QuadraticPenaltyConfig
)
setpacking_as_onehot
class-attribute
instance-attribute
¶
setpacking_as_onehot: SetpackingAsOnehotConfig = Field(
default_factory=SetpackingAsOnehotConfig
)
sp_quadratic_penalty
class-attribute
instance-attribute
¶
sp_quadratic_penalty: QuadraticPenaltyConfig = Field(
default_factory=QuadraticPenaltyConfig
)
xy_mixer
class-attribute
instance-attribute
¶
xy_mixer: XYMixerConfig = Field(default_factory=XYMixerConfig)
IndicatorFunctionConfig ¶
Bases: BaseModel, _EnableMixin
Configuration for indicator functions to implement inequality constraints.
Attributes:
| Name | Type | Description |
|---|---|---|
penalty |
PenaltySetting
|
Custom penalty setting for indicator functions. |
method |
Literal['const', 'str']
|
Indicator function implementation method. Default:
|
enable |
bool
|
Toggle to enable or disable this method. Default: True. |
method
class-attribute
instance-attribute
¶
method: Literal["if", "const"] = Field(
default="const",
description="Method of indicator function implementation. Constant Penalty (const) or conditional application of cost function (if).",
)
penalty
class-attribute
instance-attribute
¶
penalty: PenaltySetting = Field(
default_factory=lambda: PenaltySetting(scaling=1),
description="Penalty setting for indicator functions.",
)
XYMixerConfig ¶
Bases: BaseModel, _EnableMixin
Configuration for XY-mixers to implement one-hot constraints.
Attributes:
| Name | Type | Description |
|---|---|---|
trotter |
int
|
Number of trotter steps for XY-mixer implementation. Default: 1. |
types |
list[Literal['even', 'odd', 'last']]
|
Mixer types in XY-ring-mixer. Default: |
enable |
bool
|
Toggle to enable or disable this method. Default: True. |
QuadraticPenaltyConfig ¶
Bases: BaseModel, _EnableMixin
Configuration for quadratic penalties.
Adds penalty terms to the objective. Adds slack variables for inequality constraints if neccessaray.
Attributes:
| Name | Type | Description |
|---|---|---|
penalty |
PenaltySetting
|
Custom penalty setting for quadratic penalty terms. |
enable |
bool
|
Toggle to enable or disable this method. Default: True. |
penalty
class-attribute
instance-attribute
¶
penalty: PenaltySetting = Field(
default_factory=lambda: PenaltySetting(scaling=2.0),
description="Penalty setting for quadratic penalties.",
)
SetpackingAsOnehotConfig ¶
InequalityToEqualityConfig ¶
CustomConfig ¶
Bases: BaseModel
Additional FlexQAOA circuit configuration.
Attributes:
| Name | Type | Description |
|---|---|---|
max_qubits |
PositiveInt | None
|
Maximum number of qubits allowed for the circuit. If |
minimize_qubits |
bool
|
Minimize the number of used qubits in the circuit if set to |
wstate |
Literal['log', 'bilinear', 'linear']
|
WState generation cricuit. Choice between:
Default: |
qft_synth |
Literal['line', 'full']
|
QFT synthesis method. Choice between:
Default: |
max_qubits
class-attribute
instance-attribute
¶
max_qubits: PositiveInt | None = Field(
default=None,
description="Maximum number of qubits allowed for the circuit. If `None`, no limit is applied.",
)
minimize_qubits
class-attribute
instance-attribute
¶
minimize_qubits: bool = Field(
default=False,
description="Minimize the number of used qubits in the circuit if set to `True`. Otherwise, minimize circuit depth.",
)
qft_synth
class-attribute
instance-attribute
¶
qft_synth: Literal["line", "full"] = Field(
default="full",
description="QFT synthesis method. Shorter depth (full) implementation requires all-to-all connectivity. Longer (line) implementation requires only linear connectivity.",
)
wstate
class-attribute
instance-attribute
¶
wstate: Literal["log", "bilinear", "linear"] = Field(
default="log",
description="WState generation cricuit. Choice between: Logarithmic-depth (log) binary tree circuit and linear or bilinear construction. bilinear places the start in the middle and linearly constructs the circuit outwards.",
)