modules.applications.qml.generative_modeling.circuits.circuit_cardinality.CircuitCardinality
- class CircuitCardinality
Bases:
CircuitGenerativeThis class generates a library-agnostic gate sequence, i.e. a list containing information about the gates and the wires they act on. The circuit follows the implementation by Gili et al. https://arxiv.org/abs/2207.13645
- __init__()
Constructor method.
Methods
__init__()Constructor method.
generate_gate_sequence(input_data, config)Returns gate sequence of cardinality circuit architecture.
Gets the list of available options.
get_available_submodules(option)If the module has submodules depending on certain options, this method should adjust the submodule_options accordingly.
get_default_submodule(option)Returns the default submodule based on the provided option.
get_depending_parameters(option, config)If the module has parameters depending on certain options, this method should return the parameters for the given option.
Returns the configurable settings for this circuit.
Returns the required pip packages for this module.
get_submodule(option)Submodule is instantiated according to the information given in self.sub_options.
postprocess(input_data, config, **kwargs)Method that passes back information of the subsequent modules to the preceding modules.
preprocess(input_data, config, **kwargs)Library-agnostic implementation of the gate sequence, that will be mapped to backend such as Qiskit in the
- class Config
Bases:
TypedDictAttributes of a valid config.
depth: int
- clear() None. Remove all items from D.
- copy() a shallow copy of D
- fromkeys(value=None, /)
Create a new dictionary with keys from iterable and values set to value.
- get(key, default=None, /)
Return the value for key if key is in the dictionary, else default.
- items() a set-like object providing a view on D's items
- keys() a set-like object providing a view on D's keys
- pop(k[, d]) v, remove specified key and return the corresponding value.
If the key is not found, return the default if given; otherwise, raise a KeyError.
- popitem()
Remove and return a (key, value) pair as a 2-tuple.
Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.
- setdefault(key, default=None, /)
Insert key with a value of default if key is not in the dictionary.
Return the value for key if key is in the dictionary, else default.
- update([E, ]**F) None. Update D from mapping/iterable E and F.
If E is present and has a .keys() method, then does: for k in E.keys(): D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]
- values() an object providing a view on D's values
- generate_gate_sequence(input_data: dict, config: Config) dict
Returns gate sequence of cardinality circuit architecture.
- Parameters:
input_data -- Collection of information from the previous modules
config -- Config specifying the number of qubits of the circuit
- Returns:
Dictionary including the gate sequence of the Cardinality Circuit
- get_available_submodule_options() list
Gets the list of available options.
- Returns:
List of module options
- get_available_submodules(option: list) list
If the module has submodules depending on certain options, this method should adjust the submodule_options accordingly.
- Parameters:
option -- List of chosen options
- Returns:
List of available submodules
- get_default_submodule(option: str) LibraryQiskit | LibraryPennylane | PresetQiskitNoisyBackend | CustomQiskitNoisyBackend
Returns the default submodule based on the provided option.
- Parameters:
option -- The name of the submodule
- Returns:
Instance of the default submodule
- Raises:
NotImplemented -- If the provided option is not implemented
- get_depending_parameters(option: str, config: dict) dict
If the module has parameters depending on certain options, this method should return the parameters for the given option.
- Parameters:
option -- The chosen option
config -- Current config dictionary
- Returns:
The parameters for the given option
- get_parameter_options() dict
Returns the configurable settings for this circuit.
- Returns:
Dictionary with parameter options
return { "depth": { "values": [2, 4, 8, 16], "description": "What depth do you want?" } }
- static get_requirements() list
Returns the required pip packages for this module. Optionally, version requirements can be added.
- Returns:
List of dictionaries
- get_submodule(option: str) Core
Submodule is instantiated according to the information given in self.sub_options. If self.sub_options is None, get_default_submodule is called as a fallback.
- Parameters:
option -- String with the options
- Returns:
Instance of a module
- postprocess(input_data: dict, config: dict, **kwargs) tuple[dict, float]
Method that passes back information of the subsequent modules to the preceding modules.
- Parameters:
input_data -- Collected information of the benchmarking process
config -- Config specifying the number of qubits of the circuit
kwargs -- Optional keyword arguments
- Returns:
Same dictionary like input_data with architecture_name and execution time
- preprocess(input_data: dict, config: dict, **kwargs) tuple[dict, float]
- Library-agnostic implementation of the gate sequence, that will be mapped to backend such as Qiskit in the
subsequent module.
- Parameters:
input_data -- Collection of information from the previous modules
config -- Config specifying the number of qubits of the circuit
kwargs -- Optional keyword arguments
- Returns:
Dictionary including the dataset, the gate sequence needed for circuit construction, and the time it took generate the gate sequence.