quairkit.application.locc.locc

The source file of the LOCCNet class.

class quairkit.application.locc.locc.OneWayLOCCNet(party_info)

Network for general one-way LOCC (Local Operations and Classical Communication) protocol. TO BE RELEASED.

Parameters:
party_info : Dict[str, int | Dict[str, int]]

a dictionary containing the information of the parties involved in the LOCC protocol.

Note

Information of each party in party_info should be one of the following format: - {‘Alice’: 2} (Alice has 2 qubits) - {‘Alice’: {‘num_systems’: 2, ‘system_dim’: 3}} (Alice has 2 qutrits) - {‘Alice’: {‘num_systems’: 2, ‘system_dim’: [2, 3]}} (Alice has a qubit and a qutrit)

set_init_state(logical_indices, state=None)

Set the initial (Bell) state of the LOCC protocol.

Parameters:
logical_indices : List[Tuple[str, int]]

a list of logical indices of where this state is an input

state : State | None

the initial state of the LOCC protocol. Defaults to the (generalized) Bell state pair

set_locc(measure_indices, act_party, measure_basis=None)

Set a one-way LOCC protocol to the network.

Parameters:
measure_indices : List[Tuple[str, int]]

a list of logical indices to be measured

act_party : str

the party that performs the action w.r.t. the measurement result

measure_idx

the index of the system that measure_party will measure, defaults to be all systems in the party.

measure_op

the basis of the measurement. Defaults to the computational basis.

Note

This function is the last step before protocol execution, as it will also prepare the physical initial state and quantum circuit for this protocol.

forward()

Run the one-way LOCC protocol and return the final state.

Returns:

The final state of the LOCC protocol.

Return type:

State