sfc-aqua / quisp

Open source implementation of quantum internet simulation package
BSD 3-Clause "New" or "Revised" License
89 stars 36 forks source link

Integrate Message Exchange (Purification/Entanglement Swapping) into RuleSet and Runtime #504

Closed Naphann closed 1 year ago

Naphann commented 1 year ago

Summary of what has changed:

  1. Introduce new states for BSA to handle photons from only one side.
  2. A Rule now contains send_tag and receive_tag instead of shared_tag.
  3. Introduce new concepts of sequence_number
    • A sequence_number is a number assigned to each local half of Bell pairs in the order they are assigned to the Rules.
    • It is used to specify which Bell pair a message from other nodes is referring to
  4. Introduce 2 new clauses and actions:
    • PurificationCorrelationClause and PurificationCorrelation(Action)
    • SwappingCorrectionClause and SwappingCorrection(Action)
  5. introduce new instructions:
    • measurement and store result into specified bit-index of int
    • get/delete messages
    • get qubit by sequence_number
    • bitwise_and/or/xor
    • promote
  6. simulation tests for entanglement swapping

This PR closes #98 and closes #424

unfinished tasks

defer to later PR


This change is Reviewable

lmpawan10 commented 6 months ago

In the following pull request, inside QRSA/HardwareMonitor/HardwareMonitor.cc, at line 835 and 840 inside "else if (purification_type == 1031)" block, it seems that the purification protocol has to be DSDA and DSDA_INV respectively in place of DSSA and DSSA_INV. Can you check on it? @Naphann @zigen @res6idue If that is so, I will make changes to it accordingly in the next pull request.