:py:mod:`kosmos.simulator.dqc_simulator` ======================================== .. py:module:: kosmos.simulator.dqc_simulator Classes ------- .. py:class:: DQCSimulator(network: kosmos.topology.net.Network, seed: int = 1, assignment_strategy_cls: type[kosmos.dqc_scheduling.assignment_strategies.assignment_strategy.AssignmentStrategy] = GreedyAssignment, eg_protocol_cls: type[kosmos.protocols.eg_protocol.EGProtocol] = EGProtocol, eg_protocol_config: kosmos.protocols.config.protocol.EGProtocolConfig | None = None) Bases: :py:class:`kosmos.simulator.simulator.Simulator` Distributed Quantum Computing simulator. Executes quantum circuits in a distributed manner across multiple nodes. .. attribute:: quantum_manager Quantum register manager for handling entanglements, qubits and states cross the network. :type: QuantumRegisterManager .. attribute:: circuit_runner Qiskit Aer simulator for executing quantum circuits. :type: AerSimulatorRunner .. attribute:: assignment_strategy_cls Assignment strategy class. :type: type[AssignmentStrategy] .. attribute:: eg_protocol_cls Entanglement generation protocol class. :type: type[EGProtocol] .. attribute:: eg_protocol_config Config for entanglement generation protocol. :type: EGProtocolConfig .. attribute:: execution_scheduler Scheduler that determines the execution order of circuit partition and remote operations. :type: ExecutionScheduler | None .. attribute:: execution_results Dictionary containing execution metrics including timing, counts, and expectation values. :type: dict[str, Any] Initialize the DQC simulator. :param network: The quantum network topology. :type network: Network :param seed: Random seed for reproducibility. Defaults to 1. :type seed: int :param assignment_strategy_cls: Assignment strategy class. Defaults to GreedyAssignment. :type assignment_strategy_cls: type[AssignmentStrategy] :param eg_protocol_cls: EGProtocol class (or subclass) to use for entanglement generation. Defaults to EGProtocol. :type eg_protocol_cls: type[EGProtocol] :param eg_protocol_config: Configuration for EGProtocol. If None, a default EGProtocolConfig() is created. Defaults to None. :type eg_protocol_config: EGProtocolConfig | None | .. rubric:: Methods .. py:method:: load_circuit(circuit: qiskit.QuantumCircuit | str) -> None Partition and distribute a quantum circuit for distributed execution. :param circuit: Qiskit QuantumCircuit or QASM string. :type circuit: QuantumCircuit | str .. py:method:: schedule_protocols() -> None Schedule communication & circuit execution protocols. .. py:method:: run() -> dict[str, Any] Execute all scheduled events. :returns: Execution results including timing and measurements. :rtype: dict[str, Any] .. py:method:: measure_final_state() -> tuple[dict[str, int], numpy.ndarray] Measure the final quantum state after circuit partition finished. :returns: Raw measurement counts (bitstring -> count). :rtype: tuple[dict[str, int], np.ndarray]