DensityMatrixSimulator
QuICT.simulation.density_matrix.DensityMatrixSimulator ¶
DensityMatrixSimulator(device: str = 'CPU', precision: str = 'double', accumulated_mode: bool = False, hidden_empty_qubits: bool = False, ignore_last_measure: bool = True)
The Density Matrix Simulator
Parameters:
-
device(str, default:'CPU') –The device type, one of [CPU, GPU]. Defaults to "CPU".
-
precision(str, default:'double') –The precision, one of [single, double]. Defaults to "double".
-
accumulated_mode(bool, default:False) –If True, calculated density matrix with Kraus Operators in NoiseGate. if True, p = \sum Ki p Ki^T.conj(). Default to be False.
-
hidden_empty_qubits(bool, default:False) –Whether ignore the empty qubits or not, default to False.
Source code in QuICT/simulation/density_matrix/density_matrix_simulator.py
apply_gates ¶
Simulating Circuit with BasicGates
where M is the unitary matrix of given quantum gates.
Parameters:
-
combined_gates(list) –The list of quantum gates.
Source code in QuICT/simulation/density_matrix/density_matrix_simulator.py
apply_kraus ¶
Applying the damping noise's Kraus Matrix.
Parameters:
-
kraus(BasicGate) –The Kraus Gate.
Source code in QuICT/simulation/density_matrix/density_matrix_simulator.py
apply_measure ¶
Simulating the MeasureGate.
Parameters:
-
index(int) –The index of measured qubit.
Source code in QuICT/simulation/density_matrix/density_matrix_simulator.py
apply_noise ¶
Simulating NoiseGate.
Where Kraus is the group of Kraus Matrix from the Noise Gate.
Parameters:
-
noise_gate(NoiseGate) –The NoiseGate
Source code in QuICT/simulation/density_matrix/density_matrix_simulator.py
initial_circuit ¶
Initial the qubits, quantum gates and state vector by given quantum circuit.
Source code in QuICT/simulation/density_matrix/density_matrix_simulator.py
run ¶
run(circuit: Circuit, quantum_state: ndarray = None, quantum_machine_model: Union[NoiseModel, VirtualQuantumMachine] = None, use_previous: bool = False) -> np.ndarray
Simulating the given circuit through density matrix simulator.
Parameters:
-
circuit(Circuit) –The quantum circuit.
-
density_matrix(ndarray) –The initial density matrix.
-
quantum_machine_model(NoiseModel, default:None) –The NoiseModel contains NoiseErrors. Defaults to None.
-
use_previous(bool, default:False) –Using the previous state vector. Defaults to False.
Returns:
-
ndarray–np.ndarray: the density matrix after simulating
Source code in QuICT/simulation/density_matrix/density_matrix_simulator.py
sample ¶
sample(shots: int = 1, target_qubits: list = None, extra_output: bool = False, seed: int = -1) -> dict
Sample the current circuit and return the sample result of measured, please call simulator.run() before.
Parameters:
-
shots(int, default:1) –The sample times.
-
target_qubits(list, default:None) –The List of target sample qubits.
-
extra_output(bool, default:False) –Output with extra info: measured qubits (list), and samples (list)
Returns:
-
list(dict) –The list of counts of measured result.