Skip to content

Latest commit

 

History

History
75 lines (48 loc) · 4.93 KB

README.md

File metadata and controls

75 lines (48 loc) · 4.93 KB

Quanundrum - a platform to simulate thought experiments with quantum agents

We introduce a software package that allows users to design and run simulations of thought experiments in quantum theory. In particular, it covers cases where reasoning agents are modelled as quantum systems, such as Wigner's friend experiment. Users can customize the protocol of the experiment, the inner workings of agents (e.g. the quantum circuit that models their reasoning process), the abstract logical system used (which may or not allow agents to combine premises and make inferences about each other's reasoning), and the interpretation of quantum theory used by different agents (for example collapse, Copenhagen, many worlds or Bohmian mechanics). The software is written in a quantum programming language, ProjectQ, and as such the simulations of thought experiments can in principle run on quantum hardware.

Getting started

Our software platform is based on ProjectQ. To install it, please follow the instructions in Tutorials. To access Jupyter notebooks, follow guidelines at the Jupyter website.

Alternatively, you can clone this github repository to your local machine, navigate to within the quanundrum folder and call

pip install .

Documentation and examples

The project is structured as follows: users can customize the protocol of the experiment, the inner workings of agents (e.g. the quantum circuit that models their reasoning process), the abstract logical system used (which may or not allow agents to combine premises and make inferences about each other's reasoning), and the interpretation of quantum theory used by different agents (for example collapse, Copenhagen, many worlds or Bohmian mechanics). In the corresponding folders, we give examples of how one can program all of the mentioned above, and a PDF file with a technical explanation; the list of the examples is going to extend over time. Additionally, all protocols are accompanied by a Jupyter notebook, explaining every step in a simple fashion.

  1. Schematic software structure and motivation: quanundrum/software_structure

  2. Protocol examples:

  3. Consistency rules, logical reasoning:

  4. Interpretations:

Basic elements to run

To run the protocol, one needs to: - specify the interpretation, namely observe, forward_inference and backward_inference in your interpretation description file; - specify the logic employed by agents, namely the method their predictions are glued together in consistency; - describe the protocol by summing it out of elements (some of them call observe, forward_inference,backward_inference and consistency) of ProtocolStep class.

If your protocol is correct and meets the requirements elaborated on in Requirements class, it yields the prediction after a run.

For detailed instructions for how to assemble the protocol, please refer to the explanation provided in the Jupyter notebook simple example I.

Current state of development

We have currently implemented two interpretations, namely, Copenhagen and collapse, and one model of logical reasoning (classical modal logic). Additionally, we have three example protocols that one can run on their own.

In the future releases, we plan to extend this list by adding Bohmian mechanics and many-worlds interpretations, and weakening the logical reasoning structure.

Please cite

When using quanundrum for research projects, please cite this repository.

Authors

The first release of quanundrum was developed by Simon Mathis, Nuriya Nurgalieva, Lídia del Rio and Renato Renner at ETH Zürich.

License

quanundrum is licensed under the MIT License.