Simulator

class Simulator(d: int | None = None, config: Config | None = None, connector: BaseConnector | None = None)

Bases: Computer, CodeMixin

Base class for all simulators defined in Piquasso.

create_initial_state(d=None)

Creates an initial state with no instructions executed.

Note

This is not necessarily a vacuum state.

Returns:

The initial state of the simulation.

Return type:

State

validate(program: Program) None

Validates the specified program.

Raises:
  • InvalidInstruction – When invalid instructions are defined in the program.

  • InvalidSimulation – When the instructions are valid, but the simulator couldn’t execute the specified program.

Parameters:

program (Program) – The program to validate.

execute_instructions(instructions: List[Instruction], initial_state: State | None = None, shots: int | None = 1) Result

Executes the specified instruction list.

Parameters:
  • instructions (List[Instruction]) – The instructions to execute.

  • initial_state (State, optional) – A state to execute the instructions on. Defaults to the state created by create_initial_state().

  • shots (int, optional) – The number of times the program should be execute. If it is None, the simulator will execute the program once, returning the exact probability distribution instead of samples. Defaults to 1.

Raises:
  • InvalidParameter – When shots is not a positive integer or not None.

  • InvalidSimulation – When the number of modes cannot be inferred and d was not provided during simulator initialization.

Returns:

The result of the simulation containing the resulting state and samples if any measurement is specified in instructions.

Return type:

Result

execute(program: Program, shots: int | None = 1, initial_state: State | None = None) Result

Executes the specified program.

Parameters:
  • program (Program) – The program to execute.

  • initial_state (State, optional) – A state to execute the instructions on. Defaults to the state created by create_initial_state().

  • shots (int, optional) – The number of times the program should execute. If it is None, the simulator will execute the program once, returning the exact probability distribution instead of samples. Defaults to 1.

Raises:

InvalidParameter – When shots is not a positive integer or not None.

Returns:

The result of the simulation containing the resulting state and samples if any measurement is specified in program.

Return type:

Result