diff --git a/.gitignore b/.gitignore index b6e9742a..097f75f2 100644 --- a/.gitignore +++ b/.gitignore @@ -105,6 +105,7 @@ celerybeat.pid .venv env/ venv/ +venv2/ ENV/ env.bak/ venv.bak/ @@ -131,3 +132,8 @@ _version_save.py .idea data output + +error*.json +.DS* + +pypitoken.txt \ No newline at end of file diff --git a/LICENSE b/LICENSE index 8aa26455..ab6a9956 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) [year] [fullname] +Copyright (c) 2022-2024 Artificial Scientist Lab Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/MANIFEST.in b/MANIFEST.in index 444cd647..3aa9bf2c 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1 +1 @@ -include theseus/configs/* +graft pytheus/graphs/* diff --git a/README.md b/README.md index 8074d729..eabc6759 100644 --- a/README.md +++ b/README.md @@ -1,72 +1,61 @@ -# Theseus -Theseus, a highly-efficient inverse-design algorithm for quantum optical experiments +# PyTheus +**PyTheus, a highly-efficient discovery framework for quantum optics experiments** -## Installation +[**Digital Discovery of 100 diverse Quantum Experiments with PyTheus**](https://quantum-journal.org/papers/q-2023-12-12-1204/) \ +*Carlos Ruiz-Gonzalez, Sören Arlt, Jan Petermann, Sharareh Sayyad, Tareq Jaouni, Ebrahim Karimi, Nora Tischler, Xuemei Gu, Mario Krenn* \ +Quantum **7**, 1204 (2023). -When published it will be possible to install via `pip install`. Untill then, install from source (after cloning the repository): +[**Emulating multiparticle emitters with pair-sources: digital discovery of a quantum optics building block**](https://iopscience.iop.org/article/10.1088/2058-9565/ad904f) \ +*Sören Arlt, Carlos Ruiz-Gonzalez, Mario Krenn* \ +Quantum Science and Technology **10** (1), 015042 (2025). -``` -python setup.py install -``` -## Running Theseus +## Installation -To list the included examples, type +The package can be installed with ``` -theseus list +pip install pytheusQ ``` +NOTE: do not use `pip install pytheus` (it will install a different package) + +## Running PyTheus To run one of the included examples, type e.g. ``` -theseus run --example ghz_346 +pytheus run --example ghz_346 ``` -To run your own input file, type +Output of optimization is saved to a directory called `output`. + +To list all examples, type ``` -theseus run PATH_TO_YOUR_INPUT_FILE +pytheus list ``` -Output of optimization is saved to a directory called `output`. Names of the subdirectorie are specified by the name -and content of the config file. - -To plot the graph corresponding to one result saved as a json file, execute +You can also run config json files by referring to them by their path. ``` -theseus plot PATH_TO_RESULT_FILE +pytheus run PATH_TO_YOUR_INPUT_FILE ``` +Names of the subdirectories in output are specified by the name and content of the config file. -To analyze a subdirectory corresponding to one run, type +## Analysing PyTheus results + +To plot the graph corresponding to one result saved as a json file, execute ``` -theseus analyze -d outputs/ghz_346/ghz_346 -``` -or just -``` -theseus analyze -``` -then an overview of all available folders that can be selected is given. -After that one can choose which run (if there exists different run-folders having different -summary files) one wants to analyze. When you have decided on a state, an overview plot is created -that shows the graph, the development of the loss function and various properties -that can be declared via ```-i```. With ```-pm``` a pdf can be created that shows all perfect matchings. -When one wants to set all weights to plus minus one one can choose the option ```-one```. -Everthing together: -``` -theseus analyze -d your/directory -one -pm -i 'norm' -i 'ent' -i 'k' +pytheus plot PATH_TO_RESULT_FILE ``` -```norm``` shows the normalization of the state, ```ent``` gives information about entanglement for -the different bipartitions and ```k``` gives information if there is a k-uniform state and which - bipartitions are maximally entangled (=1) or separable (=0). To get help, add the `--help` option to any command. For instance ``` -> theseus run --help +> pytheus run --help -Usage: theseus run [OPTIONS] FILENAME +Usage: pytheus run [OPTIONS] FILENAME Run an input file. @@ -75,78 +64,396 @@ Options: --help Show this message and exit. ``` -## Development +# Discovery for Diverse Experimental Resources -### Clone repository +Our package allows for the discovery of quantum experiments for a range of experimental goals, constraints and +resources. Experiments that can be produced include: -``` -git clone https://github.com/artificial-scientist-lab/Theseus.git -``` +* state creation (heralded or post-selected) +* quantum gates (heralded or post-selected) +* measurements of quantum states +* entanglement swapping +* (covered elsewhere: mixed state creation) -### Create virtual environment +Sources for photons in these experiments can be SPDC sources, deterministic single-photon sources or a mix of the two. -From the project root directory, submit +Detectors can be photon-number-resolving or not. -``` -python -m venv venv -``` +Each of these experiments can be described with a graph. The interpretation of nodes and edges varies with the kind of +experiment. -This will create a subfolder with your virtual environment. +### Rules for Loss Functions -To activate, type +With these varying interpretations (e.g. for single photon sources, input photons, entanglement swapping), different +constraints apply on what kind of graph can correspond to an experiment (Topological Rules). -``` -. venv/bin/activate -``` +With the different ways of performing the experiments (heralded/post-selected & number-resolving/non-number-resolving), +different events are selected out of all possibilities (post-selection rules). -Note the leading point! +#### Topological Rules -### Local development installation +All experiments that our package is applied to can be described by a graph. When describing state creation using SPDC +each edge can be interpreted as a pair-creation. In this case all edges of the complete graph can be considered +physically legitimate. When describing other experiments edges can be interpreted differently. Not every edge will be +physically meaningful. Consequentially there are constraints on which connections of the complete graph are used in the +optimization. -Submit +*(A) Single Photon Sources and Input Photons* -``` -python setup.py develop -``` +Deterministic single photon sources and input photons (such as in gates) are described as (input) vertices in a graph. +An edge connecting an input vertex to a detector describes a path in which a photon can travel from the input into the +detector. This interpretation stems from the [Klyshko picture](https://arxiv.org/pdf/1805.06484.pdf). From this a +constraint on the graph follows. Two input vertices can not be connected by an edge. It could not be interpreted +physically. -from the project root directory (where `setup.py` is located). -Any changes in the code will now automatically be reflected -in your local package installation. +*(B) Entanglement Swapping and Teleportation* +In entanglement swapping, photons are entangled that have not interacted before. If we want to design an entanglement +swapping experiment of two photons, the target is to discover a graph that produces an entangled state between the two +photons. However any edge between the corresponding vertices would translate into a common source crystal. A constraint +that ensures legitimate entanglement swapping is to remove any edge between the two parties -## Tests +#### Post-Selection Rules -### Run test suite +The rules for post-selecting coincidence events have been described in the +[Theseus paper](https://journals.aps.org/prx/abstract/10.1103/PhysRevX.11.031044). Here, post-selection projects the +space of possibilities containing arbitrary combinations of crystals firing into the space of possibilities where only +crystals fire for which all detectors at the end of the experiment click. In the graph picture these combinations +correspond to the perfect matchings. A state is produced with fidelity one in post-selection if all possibilities of +coincidence events contribute to that state. -#### Running all tests +Other experimental settings (such as heralding) and additional experimental resources (such as number-resolving +detectors) +perform a different kind of projection on the space of possibilities by selecting for different events. This different +selection is reflected in the fidelity of the state. The products of the edge weights belonging to each possibility +contribute to the norm of the fidelity. + +*(A) Heralding* + +Heralding is a less strict form of selecting events. Instead of putting a detector in every path and selecting for +coincidence, only a subset of the paths are detected _heralding_ an output state in the unmeasured paths. This selection +rule not only allows for possibilities where one photon is in every path (perfect matchings) but also for other +possibilities (edge covers) as long as they cover the heralding detectors. This can lead to cross-terms that are not +present when post-selecting for coincidence in all paths. Consequentially it is more difficult to find a graph with +fidelity one, also requiring more experimental resources. + +*(B) Single Photon Sources and Input Photons* + +When describing heralded experiments (above) one has to consider edge covers instead of perfect matchings in the graph +for possible events. These possibilities include one edge being included twice in an edge cover, corresponding to a +crystal firing twice in an experiment. For single photon sources and other deterministic input photons such +possibilities do not exist. Only edge covers that cover the input vertices exactly once are considered for the norm of +the fidelity. + +*(C) Photon Number-Resolving Detectors* + +Photon number-resolving detectors are a valuable resource that can restrict the space of possibilities more than a +regular detector. When one can be certain that exactly one photon, and not two, has entered a detector it reduces the +number of events that could have led to this outcome, eliminating cross terms. + +*(D) States in Fock Basis* + +... + +## Loss Functions For Target State Optimization + +As explained above, the loss function depend largely on the different experimental conditions. Independent of these +conditions they fall into two categories. + +* Fidelity +* Count Rate + +A Fidelity of one ensures that an experiment has no unwanted cross terms. Every possibility that is selected for +contributes directly to the target outcome. + +However, we have come to find that optimizing exclusively for fidelity in some cases can lead the optimization to scale +down the weights of the entire graph to minimize the contributions of crossterms. While the fidelity will be very close +to one in those cases the generally low edge weights would lead to very low count rates of successful events in actual +experiments. + +To find solutions with higher weights we have introduced the _simplified count rate_ as a loss function. + +# Config Examples + +This section gives examples for config files showcasing the features for different kinds of experiments that can +searched for. A complete list of the 100 config files in the PyTheus papers can be found [here](https://github.com/artificial-scientist-lab/PyTheus/tree/main/pytheus/graphs). -``` -python -m unittest discover tests -``` -#### Running only the fast tests +## Target State Optimization + +This is used when the in- and out-going states can be clearly defined by a state functions. For those, the loss +functions `cr` and `fid` are used. + +Below are some examples to give an idea of the scope. + +For further details, refer to the definition of the function `setup_for_target` in `main.py`. + +### Post-selected State creation + +Here is an example for a config file optimizing for a graph that creates a three particle four-dimensional GHZ state. + +```json +{ + "description": "Finding a setup for the creation of the three-particle four-dimensional GHZ state. It can be realized with three ancillary particles", + "foldername": "ghz_346", + "target_state": [ + "000", + "111", + "222", + "333" + ], + "num_anc": 3, + "loss_func": "cr", + "thresholds": [ + 0.25, + 0.1 + ], + "samples": 10, + "optimizer": "L-BFGS-B", + "ftol": 1e-06, + "edges_tried": 20, + "tries_per_edge": 5 +} + +``` + +General info is given by `description`. With `foldername` one can give a custom name for the subfolder where solutions +are saved. + +In the simple case of post-selected state creation with SPDC crystals, `target_state`, `num_anc` and `loss_func` are all +that are needed to define the objective of the optimization. + +`thresholds` is necessary to decide whether a topological optimization step has been successful. In this case, +when `1-countrate < 0.25` and `1-fidelity < 0.1`. + +### Post-Selected Quantum Gates + +For an example how topological constraints on the starting graph of the optimization are dealt with, consider the +example of a post-selected CNOT(2,3) quantum gate. + +```json +{ + "description": "Postselected CNOT between a qubit (control) and a qutrit (target). Two ancillary photons from SPDC.", + "foldername": "cnot_23", + "target_state": [ + "0000", + "0101", + "0202", + "1011", + "1112", + "1210" + ], + "in_nodes": [ + 0, + 1 + ], + "out_nodes": [ + 2, + 3 + ], + "num_anc": 2, + "loss_func": "cr", + "thresholds": [ + 0.3, + 0.1 + ], + "samples": 10, + "optimizer": "L-BFGS-B", + "ftol": 1e-06, + "edges_tried": 30, + "tries_per_edge": 5 +} +``` + +Here, `target_state` defines a logic table. It is defined through `in_nodes` and `out_nodes`, which entries belong to +incoming photons and which belong to outgoing photons. These definitions suffice to automatically put constraints on the +starting graph. + +### Heralded Quantum Gates with Single Photon Sources + +Two additional features are heralding and single photon sources. A simple example is a CNOT gate between two qubits +heralding on two ancillary detectors. + +```json +{ + "description": "Heralded CNOT gate between two qubits with two single photon sources. Similar has been done: https://journals.aps.org/prl/pdf/10.1103/PhysRevLett.126.140501 could this have a better success probability?", + "foldername": "cnot22sp", + "target_state": [ + "0000", + "0101", + "1011", + "1110" + ], + "num_anc": 2, + "in_nodes": [ + 0, + 1 + ], + "out_nodes": [ + 2, + 3 + ], + "single_emitters": [ + 4, + 5 + ], + "heralding_out": true, + "loss_func": "cr", + "thresholds": [ + 1, + 0.1 + ], + "samples": 10, + "optimizer": "L-BFGS-B", + "ftol": 1e-06, + "edges_tried": 30, + "tries_per_edge": 5 +} +``` + +Here, the two single photon sources given by `single_emitters` introduce further topological constraints on the starting +graph. As they have the role of ancillary photons in this case, we need to set `num_anc` accordingly. The graph +corresponding to this optimization will have a total of eight nodes. Two for incoming, two for outgoing, two for single +photon sources and two for ancillary detectors. + +If `num_anc` is larger than the sum of lengths of `in_nodes` and `single_emitters`, the necessary amount of particles is +created through SPDC. + +Additionaly `heralding_out` is set to `true` here. The photons corresponding to `out_nodes` will not be detected. + +### Measurement + +```json +{ + "description": "Measurement for three particle W state", + "foldername": "W_measurement", + "target_state": [ + "001", + "010", + "100" + ], + "in_nodes": [ + 0, + 1, + 2 + ], + "num_anc": 0, + "loss_func": "cr", + "samples": 10, + "optimizer": "L-BFGS-B", + "ftol": 1e-06, + "thresholds": [ + 0.3, + 0.1 + ], + "tries_per_edge": 5, + "edges_tried": 30 +} + +``` + +## Entanglement Optimization + +When `loss_func` is set to `"ent"`, no target state is set. Instead the optimizer maximizes the entanglement that can be +achieved by a graph with the local dimensions given by `dim`. + +```json +{ + "description": "Maximizing entanglement in k=2 bi-partitions for four qubits.", + "K": 2, + "dim": 2222, + "ftol": 1e-07, + "loss_func": "ent", + "min_edge": 4, + "num_pre": 5, + "optimizer": "SLSQP", + "imaginary": false, + "samples": 10, + "thresholds": [ + 0.000001 + ], + "tries_per_edge": 3, + "var_factor": 0 +} +``` + +## Optimizing for Arbitrary Functions of the Graph + +There is also the option to define an arbitrary loss function, which should be defined or imported in `lossfunctions.py` +. + +Here is an example for optimizing the assembly index of the graph. + +```json +{ + "foldername": "assembly", + "loss_func": "lff", + "lff_name": "top_n_assembly", + "dimensions": [ + 2, + 2, + 2, + 2 + ], + "num_vertices": 4, + "num_cols": 2, + "size_of_graph": 8, + "optimizer": "L-BFGS-B", + "ftol": 1e-06, + "samples": 1, + "thresholds": [ + 99999 + ], + "topopt": false, + "edges_tried": 30, + "tries_per_edge": 5, + "unicolor": false, + "imaginary": false, + "num_pre": 1, + "save_history": true +} +``` + +To use a custom defined loss function `loss_func` should be set to `"lff"` (loss from function). + +The name of the loss function is given as a string to `lff_name`. This function should be defined or imported +in `lossfunctions.py`. It should take a `Graph` object and a `cnfg` dictionary as arguments and return a real number. + + +# Development + +### Clone repository ``` -python -m unittest discover -s tests/fast +git clone https://github.com/artificial-scientist-lab/PyTheus.git ``` -### Test coverage +### Create virtual environment -Install `coverage`, if you have not yet done so: +From the project root directory, submit ``` -pip install coverage +python -m venv venv ``` -Then run coverage scan: +This will create a subfolder with your virtual environment. + +To activate, type ``` -coverage run --source=theseus -m unittest discover tests +. venv/bin/activate ``` -After that, create the coverage report: +Note the leading point! + +### Local development installation + +Submit ``` -coverage report -m +python setup.py develop ``` +from the project root directory (where `setup.py` is located). +Any changes in the code will now automatically be reflected +in your local package installation. diff --git a/configs/graveyard/cloning_bell_2d.json b/configs/graveyard/cloning_bell_2d.json deleted file mode 100644 index d4f1a334..00000000 --- a/configs/graveyard/cloning_bell_2d.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "bulk_thr": 0.01, - "edges_tried": 30, - "foldername": "cloning", - "ftol": 1e-06, - "loss_func": "cr", - "num_anc": 0, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "real": true, - "safe_hist": true, - "samples": 10, - "removed_connections": [[0,1]], - "target_state": [ - "000000", - "000011", - "001100", - "001111", - "110000", - "110011", - "111100", - "111111" - ], - "thresholds": [ - 0.3, - 0.05 - ], - "tries_per_edge": 5, - "unicolor": false -} diff --git a/configs/graveyard/cloning_bell_3d.json b/configs/graveyard/cloning_bell_3d.json deleted file mode 100644 index 0c451573..00000000 --- a/configs/graveyard/cloning_bell_3d.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "bulk_thr": 0.01, - "edges_tried": 30, - "foldername": "cloning_bell_3d", - "ftol": 1e-06, - "loss_func": "cr", - "num_anc": 0, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "real": true, - "safe_hist": true, - "samples": 10, - "removed_connections": [ - [ - 0, - 1 - ] - ], - "target_state": [ - "000000", - "000011", - "000022", - "001100", - "001111", - "001122", - "002200", - "002211", - "002222", - "110000", - "110011", - "110022", - "111100", - "111111", - "111122", - "112200", - "112211", - "112222", - "220000", - "220011", - "220022", - "221100", - "221111", - "221122", - "222200", - "222211", - "222222" - ], - "thresholds": [ - 0.3, - 0.05 - ], - "tries_per_edge": 5, - "unicolor": false -} diff --git a/configs/graveyard/cloning_ghz.json b/configs/graveyard/cloning_ghz.json deleted file mode 100644 index 2ffb70db..00000000 --- a/configs/graveyard/cloning_ghz.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "bulk_thr": 0.01, - "edges_tried": 30, - "foldername": "cloning_ghz", - "ftol": 1e-06, - "loss_func": "cr", - "num_anc": 1, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "real": true, - "safe_hist": true, - "samples": 10, - "removed_connections": [ - [ - 0, - 1 - ], - [ - 0, - 2 - ], - [ - 1, - 2 - ] - ], - "target_state": [ - "000000000", - "000000111", - "000111000", - "000111111", - "111000000", - "111000111", - "111111000", - "111111111" - ], - "thresholds": [ - 0.3, - 0.05 - ], - "tries_per_edge": 5, - "unicolor": false -} diff --git a/configs/graveyard/cloning_qubit.json b/configs/graveyard/cloning_qubit.json deleted file mode 100644 index 4e3abdd9..00000000 --- a/configs/graveyard/cloning_qubit.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "bulk_thr": 0.01, - "edges_tried": 30, - "foldername": "cloning", - "ftol": 1e-06, - "loss_func": "cr", - "num_anc": 1, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "real": true, - "safe_hist": true, - "samples": 10, - "removed_connections": [], - "target_state": [ - "000", - "001", - "010", - "011", - "100", - "101", - "110", - "111" - ], - "thresholds": [ - 0.3, - 0.05 - ], - "tries_per_edge": 5, - "unicolor": false -} diff --git a/configs/graveyard/heraldedW.json b/configs/graveyard/heraldedW.json deleted file mode 100644 index 82c1e5de..00000000 --- a/configs/graveyard/heraldedW.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "bulk_thr": 0, - "edges_tried": 20, - "foldername": "heraldedW_", - "ftol": 1e-06, - "loss_func": "hcr", - "num_anc": 7, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "safe_hist": true, - "samples": 1000, - "target_state": [ - "001", - "010", - "100" - ], - "out_nodes": [ - 0, - 1, - 2 - ], - "removed_connections": [ - [ - 0, - 1 - ], - [ - 0, - 2 - ], - [ - 1, - 2 - ] - ], - "thresholds": [ - 0.5, - 0.1 - ], - "tries_per_edge": 10, - "unicolor": false -} \ No newline at end of file diff --git a/configs/to_be_confirmed/ES4d_sp.json b/configs/to_be_confirmed/ES4d_sp.json deleted file mode 100644 index a81e9a8d..00000000 --- a/configs/to_be_confirmed/ES4d_sp.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "description": "Entanglement swapping between two 4d particles with single photon sources", - "bulk_thr": 0, - "edges_tried": 30, - "foldername": "ES4d_sp", - "ftol": 1e-09, - "loss_func": "cr", - "num_anc": 14, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "real": true, - "safe_hist": true, - "samples": 10, - "target_state": [ - "00", - "11", - "22", - "33" - ], - "single_emitters": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "removed_connections": [[0,1],[0,2],[0,3],[0,4],[0,5],[1,6],[1,7],[1,8],[1,9]], - "thresholds": [ - 0.3, - 0.1 - ], - "tries_per_edge": 5, - "unicolor": false -} diff --git a/configs/to_be_confirmed/assembly.json b/configs/to_be_confirmed/assembly.json deleted file mode 100644 index 640dc158..00000000 --- a/configs/to_be_confirmed/assembly.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "foldername": "assembly", - "loss_func": "lff", - "lff_name": "top_n_assembly", - "dimensions": [ - 2, - 2, - 2, - 2 - ], - "num_vertices": 4, - "num_cols": 2, - "size_of_graph": 8, - "optimizer": "L-BFGS-B", - "ftol": 1e-06, - "samples": 1, - "thresholds": [ - 99999 - ], - "topopt": false, - "edges_tried": 30, - "tries_per_edge": 5, - "unicolor": false, - "imaginary": false, - "num_pre": 1, - "save_history": true -} diff --git a/configs/to_be_confirmed/cnot33_0.json b/configs/to_be_confirmed/cnot33_0.json deleted file mode 100644 index df17b011..00000000 --- a/configs/to_be_confirmed/cnot33_0.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "description": "Heralded CNOT(3,3) gate, where target photon starts in mode 0. ancillary particles from SPDC.", - "bulk_thr": 0.01, - "edges_tried": 30, - "foldername": "cnot33_0", - "ftol": 1e-08, - "loss_func": "cr", - "num_anc": 3, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "safe_hist": true, - "samples": 10, - "target_state": [ - "0000", - "1011", - "2022" - ], - "in_nodes": [ - 0, - 1 - ], - "out_nodes": [ - 2, - 3 - ], - "single_emitters": [ - 4, - 5, - 6 - ], - "thresholds": [ - 1, - 0.1 - ], - "heralding_out": true, - "novac": true, - "tries_per_edge": 5 -} diff --git a/configs/to_be_confirmed/cnot_24_post_sp.json b/configs/to_be_confirmed/cnot_24_post_sp.json deleted file mode 100644 index d255f3e4..00000000 --- a/configs/to_be_confirmed/cnot_24_post_sp.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "description": "Postselected CNOT between a qubit (control) and a photon of dimensionality four (target). Single Photon sources.", - "edges_tried": 30, - "foldername": "cnot_24_post_sp", - "ftol": 1e-08, - "loss_func": "cr", - "num_anc": 2, - "optimizer": "L-BFGS-B", - "safe_hist": true, - "samples": 10, - "target_state": [ - "0000", - "0101", - "0202", - "0303", - "1011", - "1112", - "1213", - "1310" - ], - "in_nodes": [ - 0, - 1 - ], - "out_nodes": [ - 2, - 3 - ], - "single_photon_sources": [ - 4, - 5, - 6 - ], - "thresholds": [ - 0.3, - 0.1 - ], - "tries_per_edge": 5 -} diff --git a/configs/to_be_confirmed/heralded_ghz_sp.json b/configs/to_be_confirmed/heralded_ghz_sp.json deleted file mode 100644 index 5cb585c6..00000000 --- a/configs/to_be_confirmed/heralded_ghz_sp.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "description": "this works for number resolving detectors in the the heralding nodes https://arxiv.org/pdf/quant-ph/0702044.pdf", - "bulk_thr": 0, - "edges_tried": 30, - "foldername": "heralded_ghz_sp", - "ftol": 1e-09, - "loss_func": "crnew", - "num_anc": 3, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "safe_hist": true, - "samples": 10, - "target_state": [ - "000", - "111" - ], - "out_nodes": [ - 0, - 1, - 2 - ], - "single_emitters": [ - 3, - 4, - 5, - 6, - 7, - 8 - ], - "heralding_out": true, - "number_resolving": true, - "brutal_covers": true, - "thresholds": [ - 0.5, - 0.1 - ], - "tries_per_edge": 5 -} diff --git a/configs/to_be_confirmed/noon_2_2_anc0.json b/configs/to_be_confirmed/noon_2_2_anc0.json deleted file mode 100644 index 19c70ad3..00000000 --- a/configs/to_be_confirmed/noon_2_2_anc0.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "description": "NOON states in Fock basis, with no ancillas.", - "bulk_thr": 0.1, - "edges_tried": 20, - "foldername": "noon_2_2_anc0", - "ftol": 1e-05, - "loss_func": "fockfid", - "num_anc": 0, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "safe_hist": true, - "samples": 10, - "target_state": [[0,2],[2,0]], - "amplitudes": [1.0,1.0], - "thresholds": [0.000001,0.2], - "tries_per_edge": 1, - "unicolor": false, - "loops":true - } - - \ No newline at end of file diff --git a/configs/to_be_confirmed/noon_2_3_anc3.json b/configs/to_be_confirmed/noon_2_3_anc3.json deleted file mode 100644 index 67090a4c..00000000 --- a/configs/to_be_confirmed/noon_2_3_anc3.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "description": "NOON states in Fock basis.", - "bulk_thr": 0.1, - "edges_tried": 20, - "foldername": "noon_2_3_anc3", - "ftol": 1e-05, - "loss_func": "fockfid", - "num_anc": 3, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "safe_hist": true, - "samples": 30, - "target_state": [[0,3],[3,0]], - "amplitudes": [1.0,1.0], - "thresholds": [0.000001,0.1], - "tries_per_edge": 1, - "unicolor": false, - "loops":true - } - - \ No newline at end of file diff --git a/configs/to_be_confirmed/noon_2_4_anc4.json b/configs/to_be_confirmed/noon_2_4_anc4.json deleted file mode 100644 index 9f41c3c4..00000000 --- a/configs/to_be_confirmed/noon_2_4_anc4.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "description": "NOON states in Fock basis.", - "bulk_thr": 0.1, - "edges_tried": 20, - "foldername": "noon_2_4_anc4", - "ftol": 1e-05, - "loss_func": "fockfid", - "num_anc": 4, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "safe_hist": true, - "samples": 30, - "target_state": [[0,4],[4,0]], - "amplitudes": [1.0,1.0], - "thresholds": [0.000001,0.1], - "tries_per_edge": 1, - "unicolor": false, - "loops":true - } - - \ No newline at end of file diff --git a/configs/to_be_confirmed/toffoli_0.json b/configs/to_be_confirmed/toffoli_0.json deleted file mode 100644 index 2aae6009..00000000 --- a/configs/to_be_confirmed/toffoli_0.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "description": "Heralded Toffoli gate where incoming target qubit is zero. Two ancillary photons.", - "edges_tried": 30, - "foldername": "toffoli_0", - "ftol": 1e-05, - "loss_func": "cr", - "num_anc": 2, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "safe_hist": true, - "samples": 10, - "target_state": [ - "000000", - "010010", - "100100", - "110111" - ], - "in_nodes": [ - 0, - 1, - 2 - ], - "out_nodes": [ - 3, - 4, - 5 - ], - "heralding_out": true, - "thresholds": [ - 0.3, - 0.1 - ], - "tries_per_edge": 5, - "unicolor": false -} \ No newline at end of file diff --git a/debug.py b/debug.py index 75239dd3..1f854300 100644 --- a/debug.py +++ b/debug.py @@ -1,5 +1,5 @@ from click.testing import CliRunner -from theseus.cli import run +from pytheus.cli import run from pathlib import Path import os @@ -12,7 +12,7 @@ runner = CliRunner() path = Path(__file__).parent os.chdir(path) - input_file = path / 'configs' / 'to_be_confirmed' / 'heraldedW.json' + input_file = path / 'error7.json' logging.info(input_file) result = runner.invoke(run, [str(input_file)], catch_exceptions=False) print(result.output) \ No newline at end of file diff --git a/docs/Makefile b/docs/Makefile deleted file mode 100644 index d4bb2cbb..00000000 --- a/docs/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# Minimal makefile for Sphinx documentation -# - -# You can set these variables from the command line, and also -# from the environment for the first two. -SPHINXOPTS ?= -SPHINXBUILD ?= sphinx-build -SOURCEDIR = . -BUILDDIR = _build - -# Put it first so that "make" without argument is like "make help". -help: - @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - -.PHONY: help Makefile - -# Catch-all target: route all unknown targets to Sphinx using the new -# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -%: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index 6fa37e87..00000000 --- a/docs/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# How to work with the Sphinx docs - -## Install sphinx and dependencies - -In `./docs` do - -``` -pip install -r requirements -``` - -## Build documentation - -``` -make html -``` - -## Inspect generated docs - -Open in browser: - -``` -docs/_build/html/index.html -``` - diff --git a/docs/api.rst b/docs/api.rst deleted file mode 100644 index f0bd868b..00000000 --- a/docs/api.rst +++ /dev/null @@ -1,11 +0,0 @@ -API -=== - -Module `main` -------------- - -.. automodule:: theseus.main - :members: - - - diff --git a/docs/conf.py b/docs/conf.py deleted file mode 100644 index 182bbd4c..00000000 --- a/docs/conf.py +++ /dev/null @@ -1,27 +0,0 @@ -# Configuration file for the Sphinx documentation builder. -# -# For the full list of built-in configuration values, see the documentation: -# https://www.sphinx-doc.org/en/master/usage/configuration.html - -# -- Project information ----------------------------------------------------- -# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information - -project = 'theseus' -copyright = '2022, Artificial Scientist Lab' -author = 'Artificial Scientist Lab' - -# -- General configuration --------------------------------------------------- -# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration - -extensions = ['sphinx_rtd_theme', 'sphinx.ext.napoleon', 'sphinx.ext.autodoc'] - -templates_path = ['_templates'] -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] - - - -# -- Options for HTML output ------------------------------------------------- -# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output - -html_theme = 'sphinx_rtd_theme' -html_static_path = ['_static'] diff --git a/docs/develop.rst b/docs/develop.rst deleted file mode 100644 index ae43dae4..00000000 --- a/docs/develop.rst +++ /dev/null @@ -1,4 +0,0 @@ -Development -=========== - -Bla bla bla diff --git a/docs/index.rst b/docs/index.rst deleted file mode 100644 index 830690ed..00000000 --- a/docs/index.rst +++ /dev/null @@ -1,24 +0,0 @@ -.. theseus documentation master file, created by - sphinx-quickstart on Fri Jul 29 14:35:07 2022. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Theseus -======= - -A highly-efficient inverse-design algorithm for quantum optical experiments. - -.. toctree:: - :maxdepth: 2 - :caption: Contents: - - usage - develop - api - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` diff --git a/docs/make.bat b/docs/make.bat deleted file mode 100644 index 32bb2452..00000000 --- a/docs/make.bat +++ /dev/null @@ -1,35 +0,0 @@ -@ECHO OFF - -pushd %~dp0 - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set SOURCEDIR=. -set BUILDDIR=_build - -%SPHINXBUILD% >NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.https://www.sphinx-doc.org/ - exit /b 1 -) - -if "%1" == "" goto help - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% - -:end -popd diff --git a/docs/requirements.txt b/docs/requirements.txt deleted file mode 100644 index 483a4e96..00000000 --- a/docs/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -sphinx_rtd_theme diff --git a/docs/usage.rst b/docs/usage.rst deleted file mode 100644 index b7cc8b51..00000000 --- a/docs/usage.rst +++ /dev/null @@ -1,17 +0,0 @@ -Usage -===== - -Bla bla bla - -.. code-block:: - theseus run --example ghz_346 - -Some subsection ---------------- - -Bla bla bla - -.. math:: - \partial_\mu F^{\mu\nu} = j^\nu - -Bla bla bla diff --git a/pytheus/__init__.py b/pytheus/__init__.py new file mode 100644 index 00000000..3fd380a7 --- /dev/null +++ b/pytheus/__init__.py @@ -0,0 +1 @@ +__version__ = '1.2.6' \ No newline at end of file diff --git a/theseus/analyzer.py b/pytheus/analyzer.py similarity index 99% rename from theseus/analyzer.py rename to pytheus/analyzer.py index 3f52ca19..bc44637d 100644 --- a/theseus/analyzer.py +++ b/pytheus/analyzer.py @@ -7,15 +7,15 @@ import os from cmath import polar -from theseus.fancy_classes import State, Graph +from pytheus.fancy_classes import State, Graph from pathlib import Path import json import matplotlib.pyplot as plt import numpy as np -import theseus.graphplot as gp -import theseus.help_functions as hf +import pytheus.graphplot as gp +import pytheus.help_functions as hf from scipy.linalg import logm -from theseus.theseus import ptrace +from pytheus.theseus import ptrace def convert_graph_keys_in_tuple(graph: dict) -> dict: diff --git a/theseus/cli.py b/pytheus/cli.py similarity index 79% rename from theseus/cli.py rename to pytheus/cli.py index c69724ac..5586ba30 100644 --- a/theseus/cli.py +++ b/pytheus/cli.py @@ -20,10 +20,10 @@ import click import pkg_resources -import theseus -from theseus.main import run_main -from theseus.analyzer import get_analyse -from theseus.graphplot import plotFromFile +import pytheus +from pytheus.main import run_main +from pytheus.analyzer import get_analyse +from pytheus.graphplot import plotFromFile @click.group() @@ -43,28 +43,29 @@ def run(filename, example): click.echo('ERROR:' + str(e)) sys.exit(1) + @cli.command() @click.argument('filename') @click.option('--pdf', default="", help='save output to pdf') def plot(filename, pdf): """Plot a solution file.""" try: - plotFromFile(filename, outfile = pdf) + plotFromFile(filename, outfile=pdf) except IOError as e: click.echo('ERROR:' + str(e)) sys.exit(1) @cli.command() -@click.option('-d', '--which-directory',default = None, +@click.option('-d', '--which-directory', default=None, help='choose folder to analyze') -@click.option('-one', '--all-weights-plus-minus-one', is_flag=True, +@click.option('-one', '--all-weights-plus-minus-one', is_flag=True, show_default=True, help='map all weights to plus minus one') @click.option('-pm', '--create-perfect-machting-pdf', is_flag=True, show_default=True, help='bool if create pdf with all pms') -@click.option('-i', '--which-infos', default = ['norm', 'ent', 'k'], +@click.option('-i', '--which-infos', default=['norm', 'ent', 'k'], multiple=True, show_default=True, help='list of which infos appear in info plot') @@ -75,7 +76,7 @@ def analyze(which_directory, all_weights_plus_minus_one, get_analyse(which_directory, all_weights_plus_minus_one=all_weights_plus_minus_one, create_perfect_machting_pdf=create_perfect_machting_pdf, - which_infos= which_infos) + which_infos=which_infos) except IOError as e: click.echo('ERROR:' + str(e)) sys.exit(1) @@ -84,7 +85,10 @@ def analyze(which_directory, all_weights_plus_minus_one, @cli.command() def list(): """List all included examples.""" - configs_dir = pkg_resources.resource_filename(theseus.__name__, 'configs') - files = sorted(os.listdir(configs_dir)) - for file in files: - click.echo(file.replace('.json', '')) + configs_dir = pkg_resources.resource_filename(pytheus.__name__, 'graphs') + walk = os.walk(configs_dir) + for root, dirs, files in walk: + for file in files: + if file.startswith('config'): + click.echo( + print(os.path.basename(root))) diff --git a/theseus/custom_loss/__init__.py b/pytheus/custom_loss/__init__.py similarity index 100% rename from theseus/custom_loss/__init__.py rename to pytheus/custom_loss/__init__.py diff --git a/theseus/custom_loss/assembly_index.py b/pytheus/custom_loss/assembly_index.py similarity index 99% rename from theseus/custom_loss/assembly_index.py rename to pytheus/custom_loss/assembly_index.py index 08639472..9d5e9996 100644 --- a/theseus/custom_loss/assembly_index.py +++ b/pytheus/custom_loss/assembly_index.py @@ -5,8 +5,8 @@ from random import shuffle import numpy as np from scipy import optimize -import theseus.fancy_classes as fc -import theseus.theseus as th +import pytheus.fancy_classes as fc +import pytheus.theseus as th def flatten(l): diff --git a/theseus/fancy_classes.py b/pytheus/fancy_classes.py similarity index 60% rename from theseus/fancy_classes.py rename to pytheus/fancy_classes.py index d60e9c7e..05b3a2b9 100644 --- a/theseus/fancy_classes.py +++ b/pytheus/fancy_classes.py @@ -1,13 +1,22 @@ +import itertools import numpy as np -import theseus.theseus as th +import pytheus.theseus as th +# from pytheus.graphplot import graphPlot from copy import deepcopy + +import logging + +log = logging.getLogger(__name__) + # + -DEFAULT_NORM = 'Not stored yet. You have to run getNorm().' -DEFAULT_STATE = 'Not stored yet. You have to run getState().' WRONG_IMAGINARY = 'The property `imaginary` is NOT defined correctly.' +def propertyDefined(property_name): + return f'The property `{property_name}` has been defined and stored.' + + def invalidInput(input_name): return f'Introduce a valid input `{input_name}`.' @@ -28,27 +37,26 @@ def defaultValues(length, imaginary): class Graph(): # should this be an overpowered dictionary? NOPE def __init__(self, edges, # list/tuple of edges, dictionary with weights, 'full' or 'empty' - dimensions=[], - weights=[], # list of values or tuples encoding imaginary values - imaginary=False, # 'cartesian' or 'polar' - norm=False, # For the sake of perfomance, compute - state=False, # norm and state only when needed. + dimensions = None, + weights = [], # list of values or tuples encoding imaginary values + imaginary = False, # Alternatively:'cartesian' or 'polar' + order = 0, # order of the graph terms, if 0 we compute perfect matchings + loops = False ): - self.dimensions = dimensions self.imaginary = imaginary - self.full = True if edges == 'full' else False + self.order = order # The next line may redefine previous properties - self.graph = self.graphStarter(edges, weights) # MAIN PROPERTY - # This may not be elegant, but it works - self.state_catalog = None - if self.state_catalog == None: self.getStateCatalog() - self.norm = DEFAULT_NORM - if norm: self.getNorm() - self.state = DEFAULT_STATE - if state: self.getState() + self.complete_graph_edges = None + self.graph = self.graphStarter(edges, weights, loops, dimensions) # MAIN PROPERTY + # The following properties are long to compute and not always needed. + # We set them as None, defining them only when they are called (without the _) + self._state_catalog = None + self._state_catalog_tensor = None + self._state = None + self._norm = None # Long, cumbersome, and very necessary function. - def graphStarter(self, edges, weights): + def graphStarter(self, edges, weights, loops, dimensions): ''' To facilitate the use of the library, this function transforms different kinds of graph inputs into a suitable Graph instance, redefining the properties if needed. @@ -56,16 +64,19 @@ def graphStarter(self, edges, weights): Once the edges and weights are correct, it returns an property graph. ''' if edges == 'full': # If True, dimensions must be defined. - if len(self.dimensions) == 0: + if dimensions is None: raise ValueError('Introduce the dimensions to get a fully connected graph') else: - edges = th.buildAllEdges(self.dimensions) + self.complete_graph_edges = th.buildAllEdges(dimensions,loops=loops) + edges = self.complete_graph_edges.copy() if len(weights) == 0: weights = defaultValues(len(edges), self.imaginary) else: raise ValueError('The input `full` does not allow to specify the weights.') # If the introduced edges are a list/tuple, they may include the weights elif type(edges) in [list, tuple]: + if len(edges) == 0: + raise ValueError("No edges in the graph corresponding to the experimental setup, there is nothing to optimize. If the graph was generated automatically from a config file, check the specifications (not enough nodes introduced or too many removed_connections)") edge_shape = np.shape(edges) if edge_shape[1] == 4: pass # seems legit @@ -106,19 +117,31 @@ def graphStarter(self, edges, weights): if self.imaginary == 'cartesian': weights = [val[0] + 1j * val[1] for val in weights] elif self.imaginary == 'polar': - weights = [tuple(val) for val in weights] + weights = [list(val) for val in weights] else: raise ValueError(invalidInput('imaginary')) else: raise ValueError('Introduce valid weights.') else: raise ValueError('Introduce valid weights.') - - if len(self.dimensions) == 0: - self.dimensions = th.graphDimensions(edges) # a nice function should be defined here # Once edges and weights are properly defined, we return a graph return {ed: val for ed, val in zip(edges, weights)} + def __abs__(self): + return_weights = len(self.graph) * [0] + if self.is_weighted: + if self.imaginary in [False, 'cartesian']: + for idx, vv in enumerate(self.graph.values()): + return_weights[idx] = abs(vv) + elif self.imaginary == 'polar': + for idx, vv in enumerate(self.graph.values()): + return_weights[idx] = abs(vv[0]) + else: + raise ValueError(WRONG_IMAGINARY) + return return_weights + else: + ValueError('emtpy weights') + def __repr__(self): ''' What you see when using print() or calling the instance. @@ -138,7 +161,7 @@ def __setitem__(self, edge, weight): if isinstance(edge, (tuple, list)) and len(edge) == 4: if isinstance(weight, (int, float, complex)): if self.imaginary == 'polar': - self.graph[tuple(edge)] = (abs(weight), np.angle(weight)) + self.graph[tuple(edge)] = [abs(weight), np.angle(weight)] print('Weight stored in polar notation.') else: self.graph[tuple(edge)] = weight @@ -146,7 +169,7 @@ def __setitem__(self, edge, weight): self.imaginary = 'cartesian' elif isinstance(weight, (tuple, list)) and len(weight) == 2: if self.imaginary == 'polar': - self.graph[edge] = tuple(weight) + self.graph[edge] = list(weight) else: self.graph[edge] = weight[0] * np.exp(1j * weight[1]) self.imaginary = 'cartesian' @@ -166,87 +189,181 @@ def __round__(self, ndigits=0): self[edge] = round(self[edge].real, ndigits) + 1j * round(self[edge].imag, ndigits) elif self.imaginary == 'polar': for edge in self.edges: - self[edge] = (round(self[edge][0], ndigits), self[edge][1]) + self[edge] = [round(self[edge][0], ndigits), self[edge][1]] else: raise ValueError(WRONG_IMAGINARY) return self - - # this should be __del__ but then you would have to do: del self.graph[] etc - def remove(self, edge, update=True): - del self.graph[edge] - if update: - remove_ket_list = [] - for ket, pm_list in self.state_catalog.items(): - if ((edge[0], edge[2]) and (edge[1], edge[3])) in ket: - self.state_catalog[ket] = [pm for pm in pm_list if edge not in pm] - if len(self.state_catalog[ket]) == 0: - remove_ket_list.append(ket) - for ket in remove_ket_list: - del self.state_catalog[ket] - # if update: - # if self.norm != DEFAULT_NORM: self.getNorm() - # if self.state != DEFAULT_STATE: self.getState() - - def purge(self, threshold=1e-4, update=True): + + def __imul__(self, constant): + self.rescale(constant) + return self + + def __matmul__(self, other): ''' - It removes all edges whose weights, in absolute value, are below `threshold`. + Braket operation, the inner product between the stored state. + It can be used with @. ''' - remove_edges = [] - if self.imaginary == 'polar': - for edge, weight in self.graph.items(): - if abs(weight[0]) < threshold: - remove_edges.append(edge) - else: - for edge, weight in self.graph.items(): - if abs(weight) < threshold: - remove_edges.append(edge) - for edge in remove_edges: - del self.graph[edge] - if update: - remove_ket_list = [] - for ket, pm_list in self.state_catalog.items(): - for edge in remove_edges: - if ((edge[0], edge[2]) and (edge[1], edge[3])) in ket: - self.state_catalog[ket] = [pm for pm in pm_list if edge not in pm] - for ket, pm_list in self.state_catalog.items(): - if len(pm_list) == 0: - remove_ket_list.append(ket) - for ket in remove_ket_list: - del self.state_catalog[ket] + return self.state @ other # DEFINE GET, SET AND DEL ITEM - + + # imaginary could be redefined as one of these properties @property def edges(self): return list(self.graph.keys()) + + @property + def full(self): + total_edges = 0 + # there may be an equation to handle this + for link in itertools.combinations(self.dimensions,r=2): + total_edges += link[0] * link[1] + return total_edges == len(self) + + @property + def str_edges(self): + if self.imaginary == False: + return [th.edgeWeight(edge) for edge in self.edges] + else: + return (['r_{}_{}_{}_{}'.format(*edge) for edge in self.edges] + + ['th_{}_{}_{}_{}'.format(*edge) for edge in self.edges]) @property def weights(self): return list(self.graph.values()) + + @property + def creators(self): + ''' + List of all creators operators used in the graph. + ''' + return th.creatorList(self.edges) @property def num_nodes(self): - return len(self.dimensions) + return int(1 + np.max(np.array(self.edges)[:,:2])) + + @property + def dimensions(self): + return th.graphDimensions(self.edges) @property def perfect_matchings(self): return sum(self.state_catalog.values(), []) + + @property + def kets(self): + return self.state.kets @property def is_weighted(self): - if all(isinstance(val, tuple) for val in self.weights): - return not all(isinstance(val, bool) for val in sum(self.weights, ())) + if all(isinstance(val, list) for val in self.weights): + return not all(isinstance(val, bool) for val in sum(self.weights, [])) elif all(isinstance(val, bool) for val in self.weights): return False elif all(isinstance(val, (int, float, complex)) for val in self.weights): return True else: raise ValueError('The weights are NOT defined correctly.') + + @property + def loops(self): + return any(edge[0]==edge[1] for edge in self.edges) + + @property + def state_catalog(self): + if self._state_catalog is None: + self.getStateCatalog() + # annoying #print(propertyDefined('state_catalog')) + return self._state_catalog # imaginary could be redefined as one of these properties + def getStateCatalog(self, order=None, full=False): + if order is None: order = self.order + if type(order) in [list,tuple]: + self._state_catalog = dict() + for integer in order: + if full: + self._state_catalog.update(th.allEdgeCovers(self.dimensions, + order=integer, loops=self.loops)) + else: + self._state_catalog.update(th.stateCatalog(th.findEdgeCovers(self.edges, + order=integer, loops=self.loops))) + elif order==0: + if full: + self._state_catalog = th.allPerfectMatchings(self.dimensions) + else: + self._state_catalog = th.stateCatalog(th.findPerfectMatchings(self.edges)) + else: + if full: + self._state_catalog = th.allEdgeCovers(self.dimensions, + order=order, loops=self.loops) + else: + self._state_catalog = th.stateCatalog(th.findEdgeCovers(self.edges, + order=order, loops=self.loops)) + if self._state_catalog_tensor is None: + self._state_catalog_tensor = {} + for ket, pm_list in self._state_catalog.items(): + self._state_catalog_tensor[ket] = [[self.complete_graph_edges.index(edge) for edge in pm] for pm in pm_list] + self._state_catalog_tensor = np.array(list(self._state_catalog_tensor.values())) + + @property + def state(self): + if self._state is None: + self.getState() + # annoying #print(propertyDefined('state')) + return self._state + + def getState(self, order=None, normalize=True): + if order is None: order = self.order + kets = list(self.state_catalog.keys()) + if self.is_weighted: + amplitudes = [] + conversion = self.imaginary == 'polar' + if conversion: + self.toCartesian() + if order == 0: + for kt in kets: + term = 0 + for subgraph in self.state_catalog[kt]: + term += np.prod([self.graph[edge] for edge in subgraph]) + amplitudes.append(term) + else: + for kt in kets: + term = 0 + for subgraph in self.state_catalog[kt]: + term += np.prod([self.graph[edge] for + edge in subgraph])/th.factorialProduct(subgraph) + amplitudes.append(term * (th.factorialProduct(kt)**.5)) + if conversion: + self.toPolar() + else: + amplitudes = [] + self._state = State(kets, amplitudes, self.imaginary,normalize=normalize) + + @property + def norm(self): + if self._norm is None: + self.getNorm() + # annoying #print(propertyDefined('norm')) + return self._norm + + # the employed norm function is simplified (only pm) and uses the new imaginary notation + def getNorm(self, hot=None): + if hot is None: hot = (self.order!=0) + self._norm = th.writeNorm(self.state_catalog, imaginary=self.imaginary, hot=hot) def copy(self): return deepcopy(self) + + # there may be a more clever way to do this + def fullUpdate(self, catalog=True, state=True, norm=True): + if (self._state_catalog is not None) and catalog: + self.getStateCatalog() + if (self._state is not None) and state: + self.getState() + if (self._norm is not None) and norm: + self.getNorm() def addEdge(self, edge, weight=None, update=True): if len(edge) == 4 and all(isinstance(val, int) for val in edge): @@ -273,59 +390,54 @@ def addEdge(self, edge, weight=None, update=True): self.state_catalog[ket] = sorted(self.state_catalog[ket]) # if self.norm != DEFAULT_NORM: self.getNorm() # if self.state != DEFAULT_STATE: self.getState() + + # this should be __del__ but then you would have to do: del self.graph[] etc + def remove(self, edge, update=True): + del self.graph[edge] + if update: + for ket, pm_list in list(self.state_catalog.items()): + if ((edge[0], edge[2]) in ket) and ((edge[1], edge[3]) in ket): + self.state_catalog[ket] = [pm for pm in pm_list if edge not in pm] + if len(self.state_catalog[ket]) == 0: + del self.state_catalog[ket] + + def purge(self, threshold=1e-4, update=True): + ''' + It removes all edges whose weights, in absolute value, are below `threshold`. + It also erase the contributions of the purged edges from the state_catalog. + ''' + remove_edges = [] + if self.imaginary == 'polar': + for edge, weight in self.graph.items(): + if abs(weight[0]) < threshold: + remove_edges.append(edge) + else: + for edge, weight in self.graph.items(): + if abs(weight) < threshold: + remove_edges.append(edge) + for edge in remove_edges: + del self.graph[edge] + if update: + remove_ket_list = [] + for ket, pm_list in self.state_catalog.items(): + for edge in remove_edges: + if ((edge[0], edge[2]) and (edge[1], edge[3])) in ket: + self.state_catalog[ket] = [pm for pm in pm_list if edge not in pm] + for ket, pm_list in self.state_catalog.items(): + if len(pm_list) == 0: + remove_ket_list.append(ket) + for ket in remove_ket_list: + del self.state_catalog[ket] # This could be also a property, but then we cannot introduce arguments def node_degrees(self, ascending=False): # ''' Degree of each node of the graph. ''' - return th.nodeDegrees(self.edges, rising=ascending) - - def getStateCatalog(self): - if self.full: - self.state_catalog = th.allPerfectMatchings(self.dimensions) - else: - self.state_catalog = th.stateCatalog(th.findPerfectMatchings(self.edges)) - - # the employed norm function is simplified (only pm) and uses the new imaginary notation - def getNorm(self): - self.norm = th.writeNorm(self.state_catalog, imaginary=self.imaginary) - - def getState(self): - kets = list(self.state_catalog.keys()) - if self.is_weighted: - amplitudes = [] - conversion = self.imaginary == 'polar' - if conversion: - self.toCartesian() - for kt in kets: - term = 0 - for pm in self.state_catalog[kt]: - term += np.prod([self.graph[edge] for edge in pm]) - amplitudes.append(term) - if conversion: - self.toPolar() - else: - amplitudes = [] - self.state = State(kets, amplitudes, self.imaginary) + return th.nodeDegrees(self.edges, increasing=ascending) # This could also be defined as __abs__, but what do you give back? The dictionary? - def __abs__(self): - return_weights = len(self.graph) * [0] - if self.is_weighted: - if self.imaginary in [False, 'cartesian']: - for idx, vv in enumerate(self.graph.values()): - return_weights[idx] = abs(vv) - elif self.imaginary == 'polar': - for idx, vv in enumerate(self.graph.values()): - return_weights[idx] = abs(vv[0]) - else: - raise ValueError(WRONG_IMAGINARY) - return return_weights - else: - ValueError('emtpy weights') - def absolute(self): if self.is_weighted: if self.imaginary in [False, 'cartesian']: @@ -347,8 +459,7 @@ def toCartesian(self): return None if self.is_weighted: if self.imaginary == False: - for kk, vv in self.graph.items(): - self.graph[kk] = (vv, 0) + pass # Nothing to do here elif self.imaginary == 'polar': for kk, vv in self.graph.items(): self.graph[kk] = vv[0] * np.exp(1j * vv[1]) @@ -366,15 +477,15 @@ def toPolar(self): if self.is_weighted: if self.imaginary == False: for kk, vv in self.graph.items(): - self.graph[kk] = (vv, 0) + self.graph[kk] = [vv, 0] elif self.imaginary == 'cartesian': for kk, vv in self.graph.items(): - self.graph[kk] = (abs(vv), np.angle(vv)) + self.graph[kk] = [abs(vv), np.angle(vv)] else: raise ValueError('The propery `imaginary` is NOT defined correctly.') else: for kk, vv in self.graph.items(): - self.graph[kk] = (True, False) + self.graph[kk] = [True, False] self.imaginary = 'polar' def rescale(self, constant): @@ -399,8 +510,8 @@ def minimum(self, *args): n_th_smallest = args[0] # takes nth given else: n_th_smallest = slice(*args) - - if self.imaginary in [False,'cartesian']: + + if self.imaginary in [False, 'cartesian']: idx = np.argsort(abs(np.array(self.weights))) elif self.imaginary == 'polar': idx = np.argsort(abs(np.array([rr[0] for rr in self.weights]))) @@ -411,7 +522,7 @@ def minimum(self, *args): lenght_graph = len(self.graph) max_given_n = max(args) raise ValueError( - f'Given n_th is to large (n starts 0): {max_given_n+1=} > {lenght_graph=}') + f'Given n_th is to large (n starts 0): {max_given_n+1} >= {lenght_graph}') if type(delind) is np.int64: # makes sure that we can iterate by return return self.edges[delind] @@ -426,6 +537,134 @@ def clamp(self, maximum=1, minimum=None): # , rescale=False): self.graph[edge] = max(minimum, min(weight, maximum)) else: raise ValueError('Introduce a positive maximum.') + + def flipNode(self, node): + for edge in self.graph: + if node in edge[:2]: + self[edge] *= -1 + + def permuteNodes(self, nodeA, nodeB, update=True): + assert isinstance(nodeA, int) and isinstance(nodeB, int) + old_edges = [] + new_edges_dict = dict() + for edge in list(self.edges): + if not ((nodeA in edge[:2]) or (nodeB in edge[:2])): + pass # nothing to do here + else: + old_edges.append(edge) + if(nodeA in edge[:2]) and (nodeB in edge[:2]): + new_edge = edge[:2] + edge[3:1:-1] + else: # this could be more compact, but now it's readable + if edge[0] in [nodeA, nodeB]: + change = 0 + keep = 1 + else: + change = 1 + keep = 0 + if nodeA == edge[change]: + new_node = nodeB + else: + new_node = nodeA + new_edge = sorted([(new_node, edge[change+2]), + (edge[keep], edge[keep+2])]) + new_edge = (new_edge[0][0],new_edge[1][0], + new_edge[0][1],new_edge[1][1]) + new_edges_dict[new_edge] = self.graph[edge] + for edge in old_edges: + del self.graph[edge] + self.graph.update(new_edges_dict) + if update: + self.fullUpdate() + + def switchColors(self, node, colorA, colorB, update=True): + assert isinstance(node, int) + assert isinstance(colorA, int) + assert isinstance(colorB, int) + assert colorA != colorB + old_edges = [] + new_edges_dict = dict() + for edge in list(self.edges): + if node in edge[:2]: + if edge[0] == edge[1]: # loop case + first = edge[2] in [colorA, colorB] + second = edge[3] in [colorA, colorB] + if first or second: + old_edges.append(edge) + new_edge = list(edge) + if first: + new_edge[2] = colorB if edge[2]==colorA else colorA + if second: + new_edge[3] = colorB if edge[3]==colorA else colorA + new_edges_dict[tuple(new_edge)] = self.graph[edge] + else: + pass # neither colorA nor colorB are on this loop + else: + idx = (edge[:2]).index(node) + if edge[2 + idx] in [colorA, colorB]: + old_edges.append(edge) + new_edge = list(edge) + new_edge[2 + idx] = colorB if colorA == edge[2 + idx] else colorA + new_edges_dict[tuple(new_edge)] = self.graph[edge] + else: + pass # neither colorA nor colorB are on this edge + for edge in old_edges: + del self.graph[edge] + self.graph.update(new_edges_dict) + if update: + self.fullUpdate() + + def addNode(self, dimension=1, linked2=None, position=-1, update=True): + ''' + New node, with final position which is connected, by default, with all the others. + + The position could be especified in a future, but not yet. + ''' + if linked2 is None: + linked2 = list(range(self.num_nodes)) + else: + linked2 = sorted(linked2) + assert max(linked2) < self.num_nodes + new_node = self.num_nodes + for node in linked2: + for dim_combo in itertools.product(range(self.dimensions[node]),range(dimension)): + self.addEdge((node,new_node)+dim_combo,update=False) + if position== -1: + pass # the node is at the end + else: + assert position < new_node + for node in range(new_node,position,-1): + self.permuteNodes(node-1, node, update=False) + if update: + self.fullUpdate() + + def removeNode(self, node, update=True): + # old_edges = [] + new_edges_dict = dict() + for edge in list(self.edges): + if node in edge[:2]: + del self.graph[edge] + else: + first = edge[0] > node + second = edge[1] > node + if first or second: + new_edge = (edge[0]-first, edge[1]-second, edge[2], edge[3]) + new_edges_dict[new_edge] = self.graph[edge] + del self.graph[edge] + # for edge in old_edges: + # del self.graph[edge] + self.graph.update(new_edges_dict) + if update: + self.fullUpdate() + + # This leads to circular imports, the plotting tools may require changes + # def plot(self, scaled_weights=False, show=False, max_thickness=10, + # weight_product=False, ax_fig=(), add_title='',show_value_for_each_edge=False, + # fontsize=30, zorder=11, markersize=25, number_nodes=True, filename='',figsize=10): + # graphPlot(self.graph, scaled_weights=scaled_weights, show=show, + # max_thickness=max_thickness, weight_product=weight_product, ax_fig=ax_fig, + # add_title=add_title, show_value_for_each_edge=show_value_for_each_edge, + # fontsize=fontsize, zorder=zorder, markersize=markersize, + # number_nodes=number_nodes, filename=filename, figsize=figsize) # # The State class @@ -436,7 +675,7 @@ def __init__(self, kets, amplitudes=[], # list of values or tuples encoding imaginary values imaginary=False, # 'cartesian' or 'polar' - normalize=False, + normalize=True, ): self.imaginary = imaginary @@ -448,23 +687,18 @@ def stateStarter(self, kets, amplitudes): Function to initiate a State instance with different inputs. This version is not so flexible with the input format as the analogous from Graph. ''' + # Verification of appropiate kets if type(kets) == dict: amplitudes = [kets[key] for key in sorted(kets.keys())] kets = sorted(kets.keys()) - # Here, introducing the amplitudes after the kets in a list/tuple doesn't work - elif type(kets) in [list, tuple]: - pass # seems legit - else: - raise ValueError(invalidInput('kets')) - - # Verification of appropiate kets - kets_shape = np.shape(kets) - if all(isinstance(kt, str) for kt in kets): + elif all(isinstance(kt, str) for kt in kets): kets = [tuple((ii, int(dim)) for ii, dim in enumerate(kt)) for kt in kets] - elif kets_shape[2] == 2: - pass # The third component must have 2 dimensions: (node, dim) + elif all(len(node)==2 for node in sum(kets,())): + # this verifies the kets are properly stored as list (or tuple) of tuples + # with the creator operators stored as (node, dim) + pass else: - raise ValueError('Introduce valid input `kets`.') + raise ValueError(invalidInput('kets')) # Verification and setting of appropiate amplitudes if len(amplitudes) == 0: # The default option True behaves (mostly) as 1 @@ -481,7 +715,7 @@ def stateStarter(self, kets, amplitudes): if self.imaginary == 'cartesian': amplitudes = [val[0] + 1j * val[1] for val in amplitudes] elif self.imaginary == 'polar': - amplitudes = [tuple([val[0], val[1]]) for val in amplitudes] + amplitudes = [[val[0], val[1]] for val in amplitudes] else: raise ValueError(invalidInput('imaginary')) else: @@ -521,7 +755,7 @@ def __setitem__(self, ket, amplitude): if isinstance(amplitude, (int, float, complex)): if self.imaginary == 'polar': - self.state[tuple(ket)] = (abs(amplitude), np.angle(amplitude)) + self.state[tuple(ket)] = [abs(amplitude), np.angle(amplitude)] print('Amplitude stored in polar notation.') else: self.state[tuple(ket)] = amplitude @@ -529,7 +763,7 @@ def __setitem__(self, ket, amplitude): self.imaginary = 'cartesian' elif isinstance(amplitude, (tuple, list)) and len(amplitude) == 2: if self.imaginary == 'polar': - self.state[ket] = tuple(amplitude) + self.state[ket] = list(amplitude) else: self.state[ket] = amplitude[0] * np.exp(1j * amplitude[1]) self.imaginary = 'cartesian' @@ -537,6 +771,48 @@ def __setitem__(self, ket, amplitude): else: raise ValueError(invalidInput('amplitude')) + def __add__(self, other): + conversion_a = self.imaginary == 'polar' + if conversion_a: + self.toCartesian() + conversion_b = other.imaginary == 'polar' + if conversion_b: + other.toCartesian() + new_state = {ket:0 for ket in set(self.kets + other.kets)} + for ket in new_state: + try: + new_state[ket] += self.state[ket] + other.state[ket] + except KeyError: + try: + new_state[ket] += self.state[ket] + except KeyError: + new_state[ket] += other.state[ket] + if conversion_a: + self.toPolar() + if conversion_b: + other.toPolar() + return State(new_state,normalize=False) + + def __iadd__(self, other): + conversion_a = self.imaginary == 'polar' + if conversion_a: + self.toCartesian() + conversion_b = other.imaginary == 'polar' + if conversion_b: + other.toCartesian() + + for ket in other.state: + try: + self.state[ket] += other.state[ket] + except KeyError: + self.state[ket] = other.state[ket] + + if conversion_a: + self.toPolar() + if conversion_b: + other.toPolar() + return self + def __matmul__(self, other): ''' Braket operation, the inner product between state. @@ -565,6 +841,10 @@ def __matmul__(self, other): other.toPolar() # turning into array the second term is redundant, but somehow faster return np.conjugate(amplitudes_a) @ np.array(amplitudes_b) + + def __imul__(self, constant): + self.rescale(constant) + return self # The method __round__ for the class State is almost the same, could it be reformat? def __round__(self, ndigits=0): @@ -576,7 +856,7 @@ def __round__(self, ndigits=0): self[ket] = round(self[ket].real, ndigits) + 1j * round(self[ket].imag, ndigits) elif self.imaginary == 'polar': for ket in self.kets: - self[ket] = (round(self[ket][0], ndigits), self[ket][1]) + self[ket] = [round(self[ket][0], ndigits), self[ket][1]] else: raise ValueError(WRONG_IMAGINARY) return self @@ -611,14 +891,18 @@ def norm(self): @property def is_weighted(self): - if all(isinstance(val, tuple) for val in self.amplitudes): - return not all(isinstance(val, bool) for val in sum(self.amplitudes, ())) + if all(isinstance(val, list) for val in self.amplitudes): + return not all(isinstance(val, bool) for val in sum(self.amplitudes, [])) elif all(isinstance(val, bool) for val in self.amplitudes): return False elif all(isinstance(val, (int, float, complex)) for val in self.amplitudes): return True else: raise ValueError('The amplitudes are NOT defined correctly.') + + @property + def dimensions(self): + return th.stateDimensions(self.kets) # imaginary could be redefined as one of these properties @@ -647,8 +931,7 @@ def toCartesian(self): return None if self.is_weighted: if self.imaginary == False: - for kk, vv in self.state.items(): - self.state[kk] = (vv, 0) + pass elif self.imaginary == 'polar': for kk, vv in self.state.items(): self.state[kk] = vv[0] * np.exp(1j * vv[1]) @@ -666,15 +949,15 @@ def toPolar(self): if self.is_weighted: if self.imaginary == False: for kk, vv in self.state.items(): - self.state[kk] = (vv, 0) + self.state[kk] = [vv, 0] elif self.imaginary == 'cartesian': for kk, vv in self.state.items(): - self.state[kk] = (abs(vv), np.angle(vv)) + self.state[kk] = [abs(vv), np.angle(vv)] else: raise ValueError('The propery `imaginary` is NOT defined correctly.') else: for kk, vv in self.state.items(): - self.state[kk] = (True, False) + self.state[kk] = [True, False] self.imaginary = 'polar' def rescale(self, constant): @@ -696,7 +979,7 @@ def clamp(self, maximum=1, minimum=None): # , rescale=False): raise ValueError('Introduce a positive maximum.') def normalize(self): - self.rescale(constant=1 / self.norm) + self.rescale(constant = 1 / self.norm) def targetEquation(self, state_catalog=None, imaginary=None): if imaginary is None: diff --git a/pytheus/graphplot.py b/pytheus/graphplot.py new file mode 100644 index 00000000..4326a3d9 --- /dev/null +++ b/pytheus/graphplot.py @@ -0,0 +1,1142 @@ +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.collections as collections +import pytheus.theseus as th +import matplotlib.patheffects as pe +import json, os +import pytheus.leiwand + +import pytheus +from pytheus.fancy_classes import Graph +from matplotlib.patches import Rectangle, Wedge, Circle +import matplotlib +matplotlib.rcParams['figure.dpi']=300 +from matplotlib.markers import MarkerStyle +from collections import Counter +from collections.abc import Iterable +from ast import literal_eval +from collections import OrderedDict +import itertools, random, string + +colors = ['dodgerblue', 'firebrick', 'limegreen', 'darkorange', 'purple', 'yellow', 'cyan'] +Paths = list(string.ascii_lowercase) + +# # Graph plotting tools + +def drawEdge(edge, verts, ind, mult, ax, scale_max=None, max_thickness=10, + show_val=False, fs=15, markersize=25): + colors = ['dodgerblue', 'firebrick', 'limegreen', 'darkorange', 'purple', 'yellow', 'cyan'] + col1 = colors[int(edge[2])] + col2 = colors[int(edge[3])] + + vert1 = np.array(verts[int(edge[0])]) + vert2 = np.array(verts[int(edge[1])]) + if not np.array_equal(vert1, vert2): + diff = vert1 - vert2 + rect = [diff[1], -diff[0]] + rect /= np.linalg.norm(rect) + hp = (vert1 + vert2) / 2 + (2 * ind - mult + 1) * 0.05 * rect + else: + hp = vert1 * 1.2 + + if scale_max is None: + lw = max_thickness + + else: + lw = np.max([abs(max_thickness * edge[4]) / scale_max, 0.5]) + + try: + transparency = 0.2 + abs(edge[4]) * 0.8 + transparency = min(transparency, 1) + except IndexError: + transparency = 1 + except TypeError: + transparency = 1 + + ax.plot([vert1[0], hp[0]], [vert1[1], hp[1]], color=col1, linewidth=lw, alpha=transparency) + ax.plot([hp[0], vert2[0]], [hp[1], vert2[1]], col2, linewidth=lw, alpha=transparency) +# if show_val: +# if transparency > 0.5 and col1 == "blue": +# font_col = 'white' +# else: +# font_col = 'black' +# latex_weight = '${}$'.format(anal.num_in_str(edge[4])) +# if latex_weight == '$$': +# latex_weight = str(edge[4]) +# ax.text(np.mean([0.9 * vert1[0], hp[0]]), np.mean([0.9 * vert1[1], hp[1]]), +# latex_weight, +# bbox={'facecolor': col1, 'alpha': transparency, 'edgecolor': col2, 'pad': 1}, c=font_col, +# ha='center', va='center', rotation=0, fontweight='heavy', fontsize=fs) + try: + if edge[4] < 0: + ax.plot(hp[0], hp[1], marker="d", markersize=markersize, markeredgewidth="3", markeredgecolor="black", + color="white") + except: + pass + + +def graphPlot(graph, scaled_weights=False, show=True, max_thickness=10, + weight_product=False, ax_fig=(), add_title='', + show_value_for_each_edge=False, fontsize=30, zorder=11, + markersize=25, number_nodes=True, filename='',figsize=10): + ''' + Introducing a list/tuple of edges or a dictionary {edge:weight}, + this function plots the corresponding graph. + + Parameters + ---------- + graph : list, tuple or dictionary + List/tuple of all colored edges: [(node1, node2, color1, color2), ...] + or dictionary with weights: {(node1, node2, color1, color2):weight1, ...} + + TODO + ''' + if type(graph) != dict: + graph = {edge:1 for edge in graph} + edge_list = list(graph.keys()) + weight_list = list(graph.values()) + edge_list = list(graph.keys()) + weight_list = list(graph.values()) + + edge_dict = th.edgeBleach(edge_list) + + num_vertices = len(np.unique(np.array(edge_list)[:, :2])) + + angles = np.linspace(0, 2 * np.pi * (num_vertices - 1) / num_vertices, num_vertices) + + rad = 0.9 + vertcoords = [] + for angle in angles: + x = rad * np.cos(angle) + y = rad * np.sin(angle) + vertcoords.append(tuple([x, y])) + + vertnums = list(range(num_vertices)) + verts = dict(zip(vertnums, vertcoords)) + + if scaled_weights: + try: # I think this doesn't work anymore + scale_max = np.max(np.abs(np.array(edge_list)[:, 4])) + except: + scale_max = None + else: + scale_max = None + + if len(ax_fig) == 0: + fig, ax = plt.subplots(figsize=(figsize,)*2) + else: + fig, ax = ax_fig + + for uc_edge in edge_dict.keys(): + mult = len(edge_dict[uc_edge]) + for ii, coloring in enumerate(edge_dict[uc_edge]): + drawEdge(uc_edge + coloring + tuple([graph[tuple(uc_edge + coloring)]]), verts, ii, mult, ax, + scale_max=scale_max, max_thickness=max_thickness, + show_val=show_value_for_each_edge, fs=0.8 * fontsize, markersize=markersize) + + circ = [] + if number_nodes: + node_labels = verts.keys() + else: + node_labels = list(map(chr, range(97, 123))) + for vert, coords in zip(node_labels, verts.values()): + circ.append(plt.Circle(coords, 0.1, alpha=0.5)) + ax.text(coords[0], coords[1], str(vert), zorder=zorder, + ha='center', va='center', size=fontsize) + + circ = collections.PatchCollection(circ, zorder=zorder - 1) + circ.set(facecolor='lightgrey', edgecolor='dimgray', linewidth=3) + ax.add_collection(circ) + + ax.set_xlim([-1.1, 1.1]) + ax.set_ylim([-1.1, 1.1]) + ax.axis('off') + # if weight_product: + # total_weight = np.product(weight_list) + # wp = '${}$'.format(anal.num_in_str(total_weight)) + # if wp == '$$': + # wp = str(total_weight) + # ax.set_title(wp + str(add_title), fontsize=fontsize) + if add_title != '' and weight_product is False: + ax.set_title(str(add_title), fontsize=fontsize) + + if show: + plt.show() + plt.pause(0.01) + else: + pass + if filename: + fig.savefig(filename + ".pdf") + + return fig + + +def leiwandPlot(graph, name='graph'): + data = [] + edge_dict = th.edgeBleach(graph.edges) + for uc_edge in edge_dict.keys(): + mult = len(edge_dict[uc_edge]) + loop = (uc_edge[0] == uc_edge[1]) + for ii, coloring in enumerate(edge_dict[uc_edge]): + edge = tuple(uc_edge + coloring) + weight = graph[edge] + if loop: + loose = 10 + 5 * ii + data.append([weight, str(edge[0]), edge[2], str(edge[1]), edge[3], loose]) + else: + bend = -22.5 + (ii + 0.5) * 45 / mult + data.append([weight, str(edge[0]), edge[2], str(edge[1]), edge[3], bend]) + pytheus.leiwand.leiwand(data, name) + + +def leiwandPlotBulk(graph, cnfg, root, name = 'graph'): + # if graph is imaginary, just take absolute value as weight for now + if graph.imaginary: + graph.absolute() + data = [] + edge_dict = th.edgeBleach(graph.edges) + for uc_edge in edge_dict.keys(): + mult = len(edge_dict[uc_edge]) + loop = (uc_edge[0] == uc_edge[1]) + for ii, coloring in enumerate(edge_dict[uc_edge]): + edge = tuple(uc_edge + coloring) + weight = graph[edge] + if loop: + loose = 10 + 5 * ii + data.append([weight, str(edge[0]), edge[2], str(edge[1]), edge[3], loose]) + else: + bend = -22.5 + (ii + 0.5) * 45 / mult + data.append([weight, str(edge[0]), edge[2], str(edge[1]), edge[3], bend]) + pytheus.leiwand.leiwandBulk(data, cnfg, root=root, name=name) + + +def plotFromFile(filename, number_nodes=True, outfile=""): + if not os.path.exists(filename) or os.path.isdir(filename): + raise IOError(f'File does not exist: {filename}') + with open(filename) as input_file: + sol_dict = json.load(input_file) + graph = Graph(sol_dict['graph']) + ancillas = [ii for ii, dim in enumerate(graph.dimensions) if dim==1] + print('WARNING: single photons are presented as ancillas. Single photon sources and other types of nodes are not available.') + graphPlotNew(graph.graph, type_photons=[ancillas,[],[]])#, scaled_weights=True, number_nodes=number_nodes, filename=outfile) + # graphPlot(sol_dict['graph'], scaled_weights=True, number_nodes=number_nodes, filename=outfile) + +# # Experiment plotting tools + +def transparency(W): + try: + transparency = 0.2 + abs(W) * 0.8 + transparency = min(transparency, 1) + except IndexError: + transparency = 1 + except TypeError: + transparency = 1 + return transparency + +def PosOfVertices (num_nodes, side_length): + vertices = [] + for nv in range(num_nodes): + angle = 2 * nv * np.pi / num_nodes + x = side_length * np.cos(angle) + y = side_length * np.sin(angle) + vertices.append((x, y)) + return(vertices) + +def correct(tpl): + corrected_item = [] + for i, num in enumerate(tpl): + if 9 < num < 100: + num = num % 10 + 10 + corrected_item.append(num) + return tuple(corrected_item) + +def convert_bools_to_ints(input_list): + converted_list = [int(item) if isinstance(item, bool) else item for item in input_list] + return converted_list + +def convert_to_fancy_graph(graph): + if isinstance(graph, list) or isinstance(graph, dict): + fancy_graph = Graph(graph) + return fancy_graph + elif isinstance(graph, pytheus.fancy_classes.Graph): + return graph + else: + raise ValueError("Input should be a list or dictionary or fancy graph") + +def calculate_b(nb, x): + b = (np.array(range(nb))-0.5*(nb-1)) * x / (np.max(np.arange(1, nb+1))-0.5*(nb-1)) + return b + +def openfile(filename): + if not os.path.exists(filename) or os.path.isdir(filename): + raise IOError(f'File does not exist: {filename}') + with open(filename) as input_file: + file_dict = json.load(input_file) + return file_dict + +def plot_diamond(ax ,center_x, center_y, diamond_width, diamond_height, zorder ): + + diamond_x = [center_x, center_x + diamond_width / 2, center_x, center_x - diamond_width / 2, center_x] + diamond_y = [center_y + diamond_height / 2, center_y, center_y - diamond_height / 2,\ + center_y, center_y + diamond_height / 2] + ax.plot(diamond_x, diamond_y, color='black', zorder = zorder+1) + ax.fill(diamond_x, diamond_y, color='w', zorder = zorder) + +def plot_triangle(ax ,center, side_length, zorder, linewidth): + center_x = center[0] + center_y = center[1] + x = [center_x - side_length/2, center_x + side_length/2, center_x] + y = [center_y - (3**0.5)*side_length/6, center_y - (3**0.5)*side_length/6, center_y + (2*(3**0.5)*side_length)/6] + ax.plot(x + [x[0]], y + [y[0]], zorder = zorder+1, lw =linewidth, color ='k' ) + plt.fill(x, y, color='w', zorder = zorder) + +def Plot_Vertices(ax, num_nodes, side_length, type_photons = None, font_size =12, linewidth=2): + r = side_length/10 + vertices = PosOfVertices(num_nodes, side_length) + if type_photons is None: + for i, vertex in enumerate(vertices): + ax.add_patch(Circle(vertex, radius= r, facecolor='w',\ + edgecolor='black', zorder = 10, linewidth=linewidth)) + ax.text(vertex[0], vertex[1], str(i), ha='center', \ + va='center', fontsize=font_size,zorder = 12 ) + + elif isinstance(type_photons, tuple) or isinstance(type_photons, list): + if len(type_photons)==3: + ancilla, single_emitters, in_nodes = type_photons + for ii, vertex in enumerate(vertices): + if ii in ancilla: + if ii in single_emitters: + plot_triangle(ax, vertex ,2.5*r, 10, linewidth=linewidth ) + else: + x =vertex[0]-r + y = vertex[1]-r + ax.add_patch(Rectangle((x,y),2*r, 2*r,fc = 'w', \ + ec = 'k',zorder = 10, linewidth=linewidth)) + elif ii in single_emitters or ii in in_nodes: + plot_triangle(ax, vertex ,2.5*r, 10, linewidth=linewidth ) + else: + ax.add_patch(Circle(vertex, radius= r, facecolor='w',\ + edgecolor='black', zorder = 10, linewidth=linewidth)) + ax.text(vertex[0], vertex[1], str(ii), ha='center', \ + va='center', fontsize=font_size,zorder = 12 ) + else: + raise ValueError("The type_photons is not valid.") + +def Plot_Edges(ax, V1, V2, colors, side_length, max_len, max_thickness = 5,\ + min_thickness = 2, thickness=10, de = 5 ): + line_width = max(min(thickness/ max_len, max_thickness), min_thickness) + r =side_length/6#12 + if V1 == V2: + w =colors[0][1] + x = V1[0] + side_length / 10 if V1[0] > 0 else V1[0] - side_length / 10 + y = V1[1] + side_length / 10 if V1[1] > 0 else V1[1] - side_length / 10 + x1 = x + r if V1[0] > 0 else x-r + y1 = y+r if V1[1] > 0 else y-r + ax.add_patch(Circle((x,y), radius=r, facecolor='w', edgecolor=colors[0][0][0],\ + zorder = 7,linewidth=line_width,alpha = transparency(w) )) + if w< 0: + plot_diamond(ax, x1, y1, r/2, r, zorder = 10 ) + else: + h = (V1[0] + V2[0]) / 2 + k = (V1[1] + V2[1]) / 2 + theta = np.arctan2(V1[1] - V2[1], V1[0]-V2[0]) + a = np.sqrt((V1[0]-V2[0]) ** 2 + (V1[1] - V2[1]) ** 2) / 2 + nb = len(colors) + b = calculate_b(nb, side_length/de ) + t1 = np.linspace(0, np.pi / 2, 1000) + t2 = np.linspace(np.pi, np.pi / 2, 1000) + for ed in range(len(b)): + xi = h + a * np.cos(theta) * np.cos(t1) - b[ed] * np.sin(theta) * np.sin(t1) + yi = k + a * np.sin(theta) * np.cos(t1) + b[ed] * np.cos(theta) * np.sin(t1) + xj = h + a * np.cos(theta) * np.cos(t2) - b[ed] * np.sin(theta) * np.sin(t2) + yj = k + a * np.sin(theta) * np.cos(t2) + b[ed] * np.cos(theta) * np.sin(t2) + w = colors[ed][1] + ax.plot(xi, yi, color=colors[ed][0][0], linewidth=line_width, alpha = transparency(w), zorder = 9 ) + ax.plot(xj, yj, color= colors[ed][0][1], linewidth=line_width, alpha = transparency(w), zorder = 9 ) + if w< 0: + plot_diamond(ax, xi[-1],yi[-1], r/2, r, zorder = 9 ) + +def Type_Photons(config_file_name, sol_file_name): + sol_file = openfile(sol_file_name) + config_file = openfile(config_file_name) + graph = sol_file['graph'] + edge_list = list(graph.keys()) + for ii in range (len(edge_list)): + edge_list[ii] = literal_eval(edge_list[ii]) + num_vertices = len(np.unique(np.array(edge_list)[:, :2])) + vertex_list = np.arange(0, num_vertices, 1).tolist() + if 'num_anc' in config_file: + num_anc = config_file['num_anc'] + if num_anc ==0: + ancilla = [] + else: + ancilla = vertex_list[-num_anc:] + else : + ancilla = [] + + if 'single_emitters' in config_file: + single_emitters = config_file['single_emitters'] + else: + single_emitters = [] + + if 'in_nodes' in config_file: + in_nodes = config_file['in_nodes'] + else: + in_nodes = [] + return ancilla, single_emitters, in_nodes + +#plot path and optical elements +def Plot_BS(ax, X, Y, width, height, color): + ax.add_patch(Rectangle((X, Y), width, height,fc = 'lavender', \ + ec = 'navy', angle = 45, zorder =18)) + d0 = np.sqrt(width**2+height**2)/4 + ax.plot([X+d0, X-d0],[Y+d0, Y+3*d0 ],zorder = 20 , color = color) + ax.plot([X-d0, X+d0],[Y+d0, Y+3*d0 ],zorder = 20 , color = color) + ax.vlines(X, ymin = Y, ymax =Y+4*d0, colors ='navy',zorder = 19 ) + +def Plot_PBS(ax, X, Y, width,height, color1, color2 ): + ax.add_patch(Rectangle((X, Y), width, height,fc = 'thistle', \ + ec = 'indigo', angle = 45, zorder =18) ) + d0 = np.sqrt(width**2+ height**2)/4 + ax.plot([X+d0, X-d0],[Y+d0, Y+3*d0 ],zorder = 20 , color = color1) + ax.plot([X-d0, X],[Y+d0, Y+2*d0 ],zorder = 20 , color = color2) + ax.plot([X, X-d0],[Y+2*d0, Y+3*d0 ],zorder = 20 , color = color2,linestyle =':') + ax.vlines(X, ymin = Y, ymax =Y+4*d0, colors ='indigo',zorder = 19 ) + +def Plot_SPDC(ax, X, Y, width, height, color1, color2, W ): + alpha = transparency(W) + ax.add_patch(Rectangle((X, Y), width/2, height, fc = color1, ec = 'none',alpha= alpha)) + ax.add_patch(Rectangle((X+width/2,Y), width/2, height, fc = color2, ec ='none' , alpha=alpha)) + ax.add_patch(Rectangle((X, Y),width, height, fc = \ + 'none', ec ='black',zorder = 10 )) + d0 = width/10 + d1 = Y+height + ax.vlines(X+d0, ymin = d1, ymax = d1+height, colors = color1) + ax.vlines(X+width-d0, ymin = d1, ymax = d1+height, colors = color2) + +def Plot_Absorber(ax , X , Y, width, height) : + ax.add_patch(Rectangle((X, Y), width, height,fc = 'k', ec = 'r',zorder=10, joinstyle= 'bevel', lw =2)) + +def Plot_Hline(ax , XMIN, XMAX, Y , color): + ax.hlines(Y, xmin=XMIN, xmax=XMAX, colors=color, zorder = 9) + +def Plot_Vline(ax , YMIN, YMAX, X , color ): + ax.vlines(X, ymin=YMIN, ymax=YMAX, colors=color\ + ,zorder = 8 ) + +def Plot_Connection_Line(ax,X,Y): + t=np.linspace(0,1,20) + ax.plot(X[0]+(3*t**2-2*t**3)*(X[1]-X[0]),Y[0]+t*(Y[1]-Y[0]), + color='k',zorder = 8) + +def Plot_Detector(ax , X, Y, leng, step, radius ): + pos = Pos_Element(X,step,leng) + for ii in range(len(pos)): + ax.add_patch(Wedge((pos[ii], Y), radius,0, 180,fc = 'k', ec = 'k', zorder = 10)) + ax.add_patch(Rectangle((pos[ii]-1.2*radius, Y-radius/2), 2.4*radius, radius/2, fc = 'k', ec = 'k', zorder = 12)) + Plot_Connection_Line(ax, [pos[ii], pos[ii]-radius], [Y+radius,Y+2.5*radius] ) + +def Plot_Crystal (ax, X, Y, color, width, height, W): #for path identity + ax.add_patch(Rectangle((X, Y), width, height,fc = 'none', ec ='black' ,zorder=6)) + row = len(color) + column = 2 + y_crystal = Pos_Element(Y,height/row,row) + x_crystal = Pos_Element(X,width/column, column) + if len (y_crystal) == 1: + height1 = height + else: + height1 = y_crystal[1]-y_crystal[0] + width1 = x_crystal[1]-x_crystal[0] + for y in range(len(y_crystal)): + posy = y_crystal[y] + ax.hlines(posy, xmin=X ,xmax=X+width, colors='k', zorder = 6) + for x in range(len(x_crystal)): + posx= x_crystal[x] + colors = color[y][x] + ax.add_patch(Rectangle((posx, posy), width1, height1,\ + fc = colors, ec ='none', zorder=5, alpha =transparency(W[y]))) + +def Plot_Sorter(ax , X, Y, leng, step, width, height, color): + pos = Pos_Element(X,step,leng) + xmin = min(pos) + xmax = max(pos) + Plot_Hline(ax , xmin, xmax+width, Y+ height/10 , 'k') + Plot_Hline(ax , xmin, xmax+width, Y+9*height/10 , 'k') + Plot_Hline(ax , xmin, xmax+width, Y+height/2, 'k') + for p in range(len(pos)): + ax.add_patch(Circle((pos[p]+ width/2, Y+height/2), width/2,fc = color[p], ec = 'k', zorder = 15)) + ax.add_patch(Rectangle((pos[p], Y), width, height,fc = 'lightgray', ec = 'k', zorder = 12)) + +def Plot_Multi_Color_Line(ax, X, Y, height, color, leng, radius): + step = height/float(leng) + y = Pos_Element(Y,step,leng) + Plot_Detector(ax , X, y[-1]+radius/2, 1, 1, radius ) + loc = generate_N_grams (y, ngram = 2) + for pp in range(len(loc)): + Plot_Vline(ax , loc[pp][0],loc[pp][1], X, color[pp] ) + +def Write_Label(ax, X, Y, text, fontsize ): + ax.text(X,Y, s= text, fontsize = fontsize) + +def get_num_label(labels): + num_to_label = dict((num, label) for num, label in enumerate(labels)) + return num_to_label + +def encoded_label(nums,labels ):# for transform num to alphabet + encoded_labels =[labels[num] for num in nums] + return encoded_labels + +def grouper(n, iterable): + args = [iter(iterable)] * n + return list(zip(*args)) + +def Combine(x): + y = (list(itertools.combinations(x,2))) + return y + +def Pos_Element(low,step,leng): + Pos = [] + if leng == 0: + Pos = Pos + elif leng>0: + up = step*float(leng)+low + for i in range(leng): + Pos.append(low) + low = low + step + return Pos + +def list_duplicates_of(seq,item): + start_at = -1 + locs = [] + while True: + try: + loc = seq.index(item,start_at+1) + except ValueError: + break + else: + locs.append(loc) + start_at = loc + return locs + +def DuplicateList(lst): + uniqueList = [] + duplicateList = [] + for i in lst: + if i not in uniqueList: + uniqueList.append(i) + elif i not in duplicateList: + duplicateList.append(i) + pos_list = [] + for jj in duplicateList: + x = list_duplicates_of(lst,jj) + pos_list.append([jj, x]) + return( pos_list) + +def REMOVE_BS(lst1 , lst2 ): + lst3 = [] + lst1 = list(itertools.permutations(lst1, 2)) + for ii in lst2: + for jj in lst1: + if ii == jj: + lst3.append(ii) + lst2 = [x for x in lst2 if x not in lst3] + return lst2 + +def flatten(X): + if isinstance(X, Iterable): + return [A for I in X for A in flatten(I)] + else: + return [X] + +def LengDuplicate(lst): + result = dict((i, lst.count(i)) for i in lst) + x = result.values() + count = 0 + for item in x: + if item>1: + count += item + return(count) + +def gen_list_of_lists(original_list, new_structure): + assert len(original_list) == sum(new_structure) + list_of_lists = [[original_list[i + sum(new_structure[:j])] for i in range(new_structure[j])] \ + for j in range(len(new_structure))] + return list_of_lists + +def uniqueList(lst): + uniqueList = [] + for i in lst: + if i not in uniqueList: + uniqueList.append(i) + pos_list = [] + for jj in uniqueList: + x = list_duplicates_of(lst,jj) + pos_list.append([jj, x]) + return( pos_list) + +def generate_N_grams (position,ngram = 1): + positions=[pos for pos in position] + grams=zip(*[positions[i:] for i in range(0,ngram)]) + return list(grams) + +#index 0 :path, 1: color +def GetGraphColorEdge(graph, index, PC): + GraphED = [grouper(2,i)[index] for i in graph.edges] + GraphEC = [encoded_label(ED,get_num_label(PC))for ED in GraphED ] + return GraphEC + +def Pos0fpath(lst, x): + Pospath = [] + d0 = x/10 + for pos in lst: + x1 = pos+d0 + x2 = pos+x-d0 + Pospath.extend([x1, x2]) + return(Pospath) + +def get_index_color(colors,lst_col): + num_to_color = dict((num, color) for num, color in enumerate(colors)) + color_to_num = {color: num for num, color in num_to_color.items()} + index_col = encoded_label(lst_col,color_to_num ) + return index_col + +def find_index_duplicate(lists, item): + index = [] + for idx in range(len(lists)): + for ele in lists[idx]: + if ele == item : + index.append(idx) + return index + +def union(lst): + for i in range(len(lst)): + for j in range(i+1,len(lst)): + for k in lst[j]: + if k[0] not in list(itertools.chain(*lst[i]))\ + and k[1] not in list(itertools.chain(*lst[i])): + lst[i].append(k) + lst[j].remove(k) + lst = list(filter(None, lst)) + return (lst) + +def layer0fcrystal (crystal_lst, Numphoton): + res = th.findPerfectMatchings(crystal_lst) + ll = int(Numphoton/2) + layer0= [] + other_crystal = [] + while len(res)>0: + r = res[0] + layer0.append(r) + res = [[ele for j,ele in enumerate(sub) if ele not in r] for i,sub in enumerate(res)] + for item in res: + if 0=ll] + layer1 = [[ele for j,ele in enumerate(sub) if ele not in list(itertools.chain(*layer0))] + for i,sub in enumerate(other_crystal)] + flatten = [] + for nl in layer1: + for i in range(len(nl)-1, -1, -1): + if nl[i] not in flatten: + flatten.append(nl[i]) + else: + nl.pop(i) + layer1= sorted(union(sorted(list(filter(None, layer1)))),\ + key=lambda l: (len(l), l),reverse = True) + layer = layer0+layer1 + return( layer) + +def Get_Color_Weight_Crystals(gea, Numphoton, gcw, Layers): + colwei = uniqueList(gea) + for ii in range(len(colwei)): + x =colwei[ii][1] + for jj in range(len(x)): + x[jj]=gcw[x[jj]] + Remove_Duplicate = list(gea for gea,_ in itertools.groupby(gea)) + cw_spdc = [] + for ii in Layers : + cw = [Remove_Duplicate.index(list(jj)) for jj in ii] + cw_spdc.append(cw) + wc =[] + for ii in range(len(colwei)): + wc.append(colwei[ii][1]) + + for ii in range(len(cw_spdc)): + wcspdc = cw_spdc[ii] + for jj in range(len(wcspdc)): + wcspdc[jj] =wc[wcspdc[jj]] + return(cw_spdc) + +def PlotPathIdentity(graph, filename= "", width=0.1, figsize= (8, 8) , + fontsize = 16 , colors = colors , Paths= Paths): + + fig, ax = plt.subplots(ncols=1, nrows=1,figsize= figsize, facecolor='w') + + graph = convert_to_fancy_graph(graph) + GraphEdgesAlphabet = GetGraphColorEdge(graph, 0, Paths ) + count = 0 + for v in GraphEdgesAlphabet: + if v[0]==v[1]: + count +=1 + if count >0: + raise ValueError("The graph has self-loops") + + else: + + GraphEdgesColor = GetGraphColorEdge(graph, 1, colors ) + Graphweight = convert_bools_to_ints(graph.weights) + Dimension = len(np.unique(list(itertools.chain(*GraphEdgesColor)))) + Numphoton = len(np.unique(list(itertools.chain(*GraphEdgesAlphabet)))) + + Remove_Multiedge = list(tuple(GraphEdgesAlphabet) for GraphEdgesAlphabet + ,_ in itertools.groupby(GraphEdgesAlphabet)) + + height = width/2 + + + if len(th.findPerfectMatchings(Remove_Multiedge))==0: + + raise ValueError("It appears that there is no perfect matching in the graph.") + + else: + Layers1 = layer0fcrystal(Remove_Multiedge, Numphoton) + + NotInPM =[edges for edges in Remove_Multiedge if edges + not in list(itertools.chain(*Layers1))] + + if len( NotInPM) > 0: + Layers2 = union([NotInPM [i:i+1] for i in range(0, len(NotInPM ), 1)]) + Layers = Layers1 + Layers2 + else: + Layers = Layers1 + Layers = union( Layers) + + color_spdc = Get_Color_Weight_Crystals(GraphEdgesAlphabet, Numphoton, + GraphEdgesColor, Layers) + + w_spdc = Get_Color_Weight_Crystals(GraphEdgesAlphabet, Numphoton, Graphweight, Layers) + + Detector =list(itertools.chain(*Layers[0])) + PosxSpdc = [] + ys = [] + width = 0.1 + height = width/2 + for ii in range(len(Layers)): + numx = len(Layers[ii]) + ys.append(numx) + px = Pos_Element(0, 3/2*width , numx) + PosxSpdc.append(px) + + numy = len(PosxSpdc) + PY = Pos_Element(0, 2*height , numy) + PY.sort(reverse=True) + P0 = PosxSpdc[0] + PosySpdc= gen_list_of_lists(np.repeat(PY, ys).tolist(), ys) + + pospathx = [] + pospathy = [] + + for ii in range(len(PosxSpdc)): + x = Pos0fpath(PosxSpdc[ii], width) + pospathx.append(x) + for jj in range(len(PosxSpdc[ii])): + Plot_Crystal (ax, PosxSpdc[ii][jj], PosySpdc[ii][jj], color_spdc[ii][jj], width\ + , height, w_spdc[ii][jj]) + + y1 = PosySpdc[ii][jj]+height-height/10 + y2 =PosySpdc[ii][jj]+height/10 + pospathy.extend([[y1, y2]]) + Plot_Vline(ax , y1, y2 , x , 'k') + + YDR = max(PY)+2*height + XDR = Pos0fpath(P0, width) + for pos in range (len(XDR)): + Plot_Detector(ax , XDR[pos], YDR, 1,1, height/4 ) + Plot_Vline(ax , pospathy[0][0], YDR, XDR[pos], 'k' ) + Write_Label(ax, XDR[pos], YDR+width/4, Detector[pos] , fontsize ) + + lrs = [list(itertools.chain(*pp)) for pp in Layers] + ps = sorted(list(itertools.chain(*Layers[0]))) + duplicate0fps= [find_index_duplicate(lrs, pp) for pp in ps] + + virtual = [] + flr= pospathx[0] + for lst in range (len(duplicate0fps )): + for idx in range(duplicate0fps [lst][0], duplicate0fps [lst][-1]): + if idx not in duplicate0fps [lst]: + duplicate0fps[lst].append(idx) + Layers[idx].append(ps[lst]) + virtual.append(idx) + + connecty =[[PY[idx] for idx in sorted(duplicate0fps[lst])]\ + for lst in range(len(duplicate0fps))] + + connecty= [ grouper(2, sorted(Pos0fpath(lst, height ),\ + reverse = True)[1:-1]) for lst in connecty] + connecty= [y for y in connecty if y != []] + + + y = [PY[idx] for idx in sorted(virtual) ] + y = grouper(2, Pos0fpath(y, height )) + + + count = dict(Counter(sorted(virtual))) + ele = list(count.keys()) + num = list(count.values()) + + fl = pospathx[0] + x = [] + for ii in range(len(ele)): + leng = len(pospathx[ele[ii]]) + for i in range(num[ii]): + item = fl[i+leng] + x.append(item) + pospathx[ele[ii]].append(item) + Pathconnect = list(itertools.chain(*Layers)) + Pathconnect = list(itertools.chain(*Pathconnect)) + Connection_Line = DuplicateList(Pathconnect) + connect = flatten( pospathx) + + + for ii in range(len(Connection_Line)): + cl = Connection_Line[ii][1] + for jj in range(len(cl)): + cl[jj] = connect[cl[jj]] + + Connection_Line = dict(Connection_Line) + CL = dict(OrderedDict(sorted(Connection_Line.items()))) + + connectx =[generate_N_grams(lst, 2) for lst in list(CL.values())] + + for ii in range(len(connectx)): + for jj in range(len(connectx[ii])): + Plot_Connection_Line(ax,connectx[ii][jj],connecty[ii][jj]) + + for ii in range(len(x)): + Plot_Vline(ax , y[ii][0], y[ii][1], x[ii] ,'k' ) + ax.set_aspect( 1 ) + ax.axis('off') + experiment = fig.savefig(filename + ".pdf", bbox_inches='tight') + return experiment + + +def PlotBulkOpticsPathEncoding(graph, task = 'PathEncoding' , filename='', width =0.1\ + , figsize =(16, 16) , fontsize= 16 , colors= colors , Paths=Paths): + graph = convert_to_fancy_graph(graph) + GraphEdgesAlphabet = GetGraphColorEdge(graph, 0, Paths ) + GraphEdgesColor = GetGraphColorEdge(graph, 1, colors ) + Graphweight = convert_bools_to_ints(graph.weights) + Num0fCrystal = len(graph) + Dimension = len(np.unique(list(itertools.chain(*GraphEdgesColor)))) + Numphoton = len(np.unique(list(itertools.chain(*GraphEdgesAlphabet)))) + height =width/2 + PosX0fcrystal = Pos_Element(0, 3*width/2 , Num0fCrystal) + PosY0fcrystal = np.full(Num0fCrystal, 0) + + fig,ax=plt.subplots(ncols=1,nrows=1,figsize= figsize, facecolor='w') + + for num in range(len(graph)): + Plot_SPDC(ax, PosX0fcrystal[num], PosY0fcrystal[num],\ + width, height, GraphEdgesColor[num][0],\ + GraphEdgesColor[num][1], Graphweight[num]) + + PosX0fpath = Pos0fpath(PosX0fcrystal, width) + Y = 2*height + PosY0fpath = [ Y for pos in range(len(PosX0fpath))] + + AllPath= [] + for pp in range(len(graph)): + AllPath.extend([str(GraphEdgesAlphabet[pp][0])+str(pp)\ + ,str(GraphEdgesAlphabet[pp][1])+str(pp)]) + + AllColor = list(itertools.chain(*GraphEdgesColor)) + PossiblePath = Combine(AllPath) + PossibleColor= Combine(AllColor) + PossibleposX = Combine(PosX0fpath) + + + PosX_L = [] + PosX_IN_BS = [] + Path_L = [] + + + for ii in range(len(PossiblePath)): + path1 = PossiblePath[ii][0] + path2 = PossiblePath[ii][1] + color1 = PossibleColor[ii][0] + color2 = PossibleColor[ii][1] + posx1 = PossibleposX[ii][0] + posx2 = PossibleposX[ii][1] + + if path1[0]==path2[0] and color1== color2: + PosX_IN_BS.append(posx2) + PosX_L.extend([posx1,posx2] ) + Path_L.extend([path1, path2]) + + PosX_IN_BS = list(set(PosX_IN_BS )) + PosX_L = grouper(2, PosX_L) + Pos = REMOVE_BS(PosX_IN_BS, PosX_L ) + if len (Pos)>0: + P1 , P2 = list(zip(*Pos )) + GET_DUBL = DuplicateList(P1) + GET_DUBL2 = DuplicateList(P1) + PosX1 =[] + + for ii in range(len(GET_DUBL)): + x = GET_DUBL[ii][1] + for jj in x: + PosX1.append(((P1[jj], P2[jj]))) + + + PosX2 = [pos for pos in Pos if pos not in PosX1] + PosY0 = Pos_Element(Y, height/3 ,len(GET_DUBL)) + if (len(PosY0))>0: + PosY1 = Pos_Element(max(PosY0)+height/2,2.5*height , len(PosX1)) + if (len(PosX1))>0: + PosY2 = Pos_Element(max(PosY1)+4*height,1.5*height,len(PosX2)) + elif (len(PosX1))==0: + PosY2 = Pos_Element(Y+height, 2*height, len(PosX2)) + d0 = np.sqrt((width/2)**2+ height**2)/4 + for ii in range(len(PosX1)): + x = PosX1[ii][1] + y = PosY1[ii] + c = AllColor[PosX0fpath.index(x)] + Plot_BS(ax , x-d0 , y, width/2, height, c) + Plot_Vline(ax , Y, y+d0 ,x , c, ) + Plot_Vline(ax , y+3*d0, y+2.5*height, x-2*d0, c) + Plot_Absorber(ax , x-2*d0-height/4 , y+2.5*height, height/2, height/2) + + ynab1 = [] + xnab1 = [] + colnab1 = [] + pathnab1 = [] + + for ii in range(len(PosX2)): + x= PosX2[ii][1] + x1 =PosX2[ii][0] + y = PosY2[ii] + ynab1.append(y+3.5*height) + xnab1.append(x) + c = AllColor[PosX0fpath.index(x)] + p = AllPath[PosX0fpath.index(x)] + colnab1.append(c) + pathnab1.append(p) + Plot_BS(ax , x-d0 , y, width/2, height, c) + Plot_Vline(ax , Y, y+d0, x , c ) + Plot_Vline(ax , Y, y+d0, x1 , c,) + Plot_Hline(ax , x1, x-2*d0, y+d0 , c) + Plot_Vline(ax , y+3*d0, y+3.5*height, x, c,) + Plot_Vline(ax , y+3*d0, y+2.5*height, x-2*d0, c) + Plot_Absorber(ax , x-2*d0-height/4 ,y+2.5*height, height/2, height/2) + + PosX0 = [] + for ii in range(len(GET_DUBL)): + x = GET_DUBL[ii][1] + x1 = GET_DUBL[ii][0] + PosX0.append(x1) + for jj in range(len(x)): + x[jj] = P2[x[jj]] + ColX0 = [AllColor[PosX0fpath.index(pos)] for pos in PosX0fpath if pos in PosX0] + turn_leng = [len(GET_DUBL2[ii][1]) for ii in range(len(GET_DUBL2))] + + if len(turn_leng)>0: + PosY1 = gen_list_of_lists(PosY1, turn_leng) + + for ii in range(len(GET_DUBL)): + GET_DUBL2[ii][1] = PosY1[ii] + GET_DUBL2[ii][0]= PosY0[ii] + + for ii in range(len( PosX0)): + Plot_Vline(ax ,Y, PosY0[ii]+2*d0, PosX0[ii], ColX0[ii]) + xh1 = [] + yh1 = [] + xh2 = [] + yh2 = [] + col1 = [] + + for ii in range(len(GET_DUBL)): + x = GET_DUBL[ii] + y = GET_DUBL2[ii] + xh1.append(flatten(x)) + yh1.append(flatten(y)) + xh2.append(x[1]) + yh2.append(y[1]) + color = [AllColor[PosX0fpath.index(pos)] for pos in PosX0fpath if pos in x[1]] + col1.append(color) + + for ii in range(len(yh1)): + x = yh1[ii] + for jj in range(len(x)): + if jj ==0: + x[jj] = x[jj] + elif jj >0: + x[jj]=x[jj]+d0 + + for ii in range(len(xh1)): + for jj in range(len(xh1[ii])-1): + Plot_Hline(ax , xh1[ii][jj], xh2[ii][jj]-2*d0, yh1[ii][jj]+2*d0, col1[ii][jj]) + Plot_Vline(ax , yh1[ii][jj]+2*d0, yh2[ii][jj]+d0, xh2[ii][jj]-2*d0 ,col1[ii][jj] ) + + ynab2 = [] + xnab2 = [] + for ii in range(len(xh1)): + x = xh1[ii] + y = yh1[ii] + xnab2.append(x[-1]) + ynab2.append(y[-1]+3*height) + + for pos in range(len(ynab2)): + Plot_Vline(ax , ynab2[pos]-3*height+2*d0, ynab2[pos], xnab2[pos] ,ColX0[pos]) + + PosX_NAB = xnab1+ xnab2 + PosY_NAB = ynab1+ ynab2 + Path1nab = pathnab1 + Path2nab = [AllPath[PosX0fpath.index(pos)] for pos in PosX0fpath if pos in PosX0] + Path_NAB = Path1nab + Path2nab + colornab1 = colnab1 + colornab2 = ColX0 + Color_NAB = colornab1+colornab2 + PoSX_R = [pos for pos in PosX0fpath if pos not in P2+P1] + Color_R = [AllColor[PosX0fpath.index(pos)] for pos in PosX0fpath if pos in PoSX_R] + Path_R = [AllPath[PosX0fpath.index(pos)] for pos in PosX0fpath if pos in PoSX_R] + PosY_R = [max(PosY0fpath) for pos in range(len(PoSX_R))] + + PosX_Concat = PoSX_R + PosX_NAB + PosY_Concat = PosY_R+ PosY_NAB + Path_Concat = Path_R + Path_NAB + Color_Concat = Color_R + Color_NAB + + elif len(Pos) == 0: + PosX_Concat = PosX0fpath + PosY_Concat = PosY0fpath + Path_Concat = AllPath + Color_Concat = AllColor + + Path_alphabet = [] + Path_Number =[] + + for path in Path_Concat: + Path_alphabet.append(path[0]) + Path_Number.append(path[1]) + + counts = Counter(Path_alphabet) + single_path = [[PosX_Concat[Path_alphabet.index(item)],\ + PosY_Concat[Path_alphabet.index(item)],\ + Color_Concat[Path_alphabet.index(item)], + Path_Concat[Path_alphabet.index(item)]]\ + for item in Path_alphabet if counts[item] <= 1] + + for sp in range(len(single_path)): + Plot_Detector(ax , single_path[sp][0], \ + single_path[sp][1], 1, height/4,height/3) + Write_Label(ax, single_path[sp][0], single_path[sp][1]+height/2, single_path[sp][3][0], fontsize ) + + get_to_posX = sorted(DuplicateList(Path_alphabet)) + get_to_posY = sorted(DuplicateList(Path_alphabet)) + get_to_Color = sorted(DuplicateList(Path_alphabet)) + XtoD = sorted(DuplicateList(Path_alphabet)) + yy = max(PosY_Concat) + + try: + if len(get_to_posX ) > 0: + XD = Pos_Element(min(PosX_Concat)+height/3,(max(PosX_Concat)\ + -min(PosX_Concat)-1.75*height)/len(get_to_posX), len(get_to_posX)) + FF = [] + for ii in range(len(XtoD)): + Y = len(XtoD[ii][1]) + FF.append(Y) + YY = Pos_Element(yy,height/3,sum(FF)) + YtoD = gen_list_of_lists(YY, FF) + YD = Pos_Element(max(YY)+height,height,len(get_to_posX)) + + col_index = [] + for index in range(len(get_to_posX)): + X = get_to_posX[index][1] + Y = get_to_posY[index][1] + C = get_to_Color[index][1] + col_index.append(C) + x = XD[index] + y = YD[index] + XtoD[index][1] = Pos_Element(XD[index],height,len(XtoD[index][1])) + xd = XtoD[index][1] + yd = YtoD[index] + + for jj in range(len(X)): + X[jj]= PosX_Concat[X[jj]] + Y[jj]= PosY_Concat[Y[jj]] + C[jj]= Color_Concat[C[jj]] + Plot_Vline(ax ,Y[jj], yy, X[jj], C[jj] ) + Y[jj]= yy + Plot_Vline(ax , Y[jj], yd[jj], X[jj] , C[jj] ) + Plot_Vline(ax , y, yd[jj], xd[jj], C[jj] ) + Plot_Hline(ax , X[jj], xd[jj], yd[jj] , C[jj]) + + pathx_sort = [] + for col in range(len(col_index)): + x = XtoD[col][1] + col_index[col] = get_index_color(colors,col_index[col]) + min_index = col_index[col].index(min(col_index[col])) + pathx_sort.append(x[min_index ] ) + for px in range(len(get_to_posX)): + c = get_to_Color[px][1] + tt = get_to_Color[px][0] + if task == 'BulkOptics': + Plot_Sorter(ax , XD[px]-height/4 ,YD[px], len(get_to_posX[px][1]), height, height/2, height,c) + Plot_Multi_Color_Line(ax,pathx_sort[px], YD[px]+height, 2*height, c, len(c)+1, height/3) + Write_Label(ax, pathx_sort[px], YD[px]+3.5*height, tt, fontsize ) + elif task == 'PathEncoding': + Plot_Detector(ax , XD[px] ,YD[px], len(get_to_posX[px][1]), height, height/3) + Write_Label(ax, XD[px], YD[px]+height, tt, fontsize ) + except: + pass + ax.axis('off') + ax.set_aspect(1 ) + experiment = fig.savefig(filename + ".pdf", bbox_inches='tight') + return experiment + + +def graphPlotNew(graph, type_photons = None, DistanceOfVertices=0.1,filename='', + show=True,max_thickness = 5, min_thickness = 2, thickness=10, font_size =12, + linewidth= 2, de = 5, colors = colors,figsize=10): + + graph = convert_to_fancy_graph(graph) + GraphEdge = [grouper(2,i)[0] for i in list(sorted(graph.edges))] + GEC = [grouper(2,i)[1] for i in list(sorted(graph.edges))] + GraphEdgeColor =[encoded_label(ED,get_num_label(colors))for ED in GEC ] + Num_Vertices = len(np.unique(list(itertools.chain(*GraphEdge)))) + Graphweight = convert_bools_to_ints(graph.weights) + g = uniqueList(GraphEdge) + posv = PosOfVertices (Num_Vertices, DistanceOfVertices) + + + for n, eg in enumerate(g): + posxy = eg[0] + posxy= correct(posxy) + c = eg [1] + updated_posxy = tuple(posv[xy] for xy in posxy) + updated_color = [[GraphEdgeColor[cc],Graphweight[cc]] for cc in c] + g[n] = [updated_posxy, updated_color] + + fig, ax = plt.subplots(figsize=(figsize,)*2) + + Plot_Vertices(ax, Num_Vertices, DistanceOfVertices,type_photons, font_size = font_size,\ + linewidth=linewidth) + max_length = max(g, key=lambda x: len(x[1])) + max_len = len(max_length[1]) + for eg in g: + Plot_Edges(ax, eg[0][0], eg[0][1], eg[1], DistanceOfVertices, max_len = max_len,\ + max_thickness = max_thickness ,\ + min_thickness = min_thickness , thickness=thickness, de = de ) + ax.set_aspect(1 ) + ax.axis('off') + + if show: + plt.show() + plt.pause(0.01) + else: + pass + if filename: + fig =fig.savefig(filename + ".pdf", bbox_inches='tight') + return fig + +cols = ['#66c2a5', '#fc8d62', '#8da0cb'] diff --git a/theseus/graphplot.py b/pytheus/graphplot_lts.py similarity index 82% rename from theseus/graphplot.py rename to pytheus/graphplot_lts.py index ff1c8ced..10eacdb7 100644 --- a/theseus/graphplot.py +++ b/pytheus/graphplot_lts.py @@ -1,13 +1,13 @@ import matplotlib.pyplot as plt import numpy as np import matplotlib.collections as collections -import theseus.theseus as th -import theseus.analyzer as anal +import pytheus.theseus as th +import pytheus.analyzer as anal import matplotlib.patheffects as pe -from theseus.fancy_classes import Graph +from pytheus.fancy_classes import Graph import json import os -import theseus.leiwand +import pytheus.leiwand def drawEdge(edge, verts, ind, mult, ax, scale_max=None, max_thickness=10, @@ -144,7 +144,7 @@ def graphPlot(graph, scaled_weights=False, show=True, max_thickness=10, return fig -def leiwandPlot(graph,name='graph'): +def leiwandPlot(graph, name='graph'): data = [] edge_dict = th.edgeBleach(graph.edges) for uc_edge in edge_dict.keys(): @@ -154,15 +154,36 @@ def leiwandPlot(graph,name='graph'): edge = tuple(uc_edge + coloring) weight = graph[edge] if loop: - loose = 10 + 5*ii + loose = 10 + 5 * ii data.append([weight, str(edge[0]), edge[2], str(edge[1]), edge[3], loose]) else: bend = -22.5 + (ii + 0.5) * 45 / mult data.append([weight, str(edge[0]), edge[2], str(edge[1]), edge[3], bend]) - theseus.leiwand.leiwand(data,name) + pytheus.leiwand.leiwand(data, name) -def plotFromFile(filename, number_nodes=True, outfile = ""): +def leiwandPlotBulk(graph, cnfg, root, name = 'graph'): + # if graph is imaginary, just take absolute value as weight for now + if graph.imaginary: + graph.absolute() + data = [] + edge_dict = th.edgeBleach(graph.edges) + for uc_edge in edge_dict.keys(): + mult = len(edge_dict[uc_edge]) + loop = (uc_edge[0] == uc_edge[1]) + for ii, coloring in enumerate(edge_dict[uc_edge]): + edge = tuple(uc_edge + coloring) + weight = graph[edge] + if loop: + loose = 10 + 5 * ii + data.append([weight, str(edge[0]), edge[2], str(edge[1]), edge[3], loose]) + else: + bend = -22.5 + (ii + 0.5) * 45 / mult + data.append([weight, str(edge[0]), edge[2], str(edge[1]), edge[3], bend]) + pytheus.leiwand.leiwandBulk(data, cnfg, root=root, name=name) + + +def plotFromFile(filename, number_nodes=True, outfile=""): if not os.path.exists(filename) or os.path.isdir(filename): raise IOError(f'File does not exist: {filename}') with open(filename) as input_file: diff --git a/pytheus/graphs/.DS_Store b/pytheus/graphs/.DS_Store new file mode 100644 index 00000000..a8afd613 Binary files /dev/null and b/pytheus/graphs/.DS_Store differ diff --git a/pytheus/graphs/AssemblyIndex/.DS_Store b/pytheus/graphs/AssemblyIndex/.DS_Store new file mode 100644 index 00000000..850add54 Binary files /dev/null and b/pytheus/graphs/AssemblyIndex/.DS_Store differ diff --git a/pytheus/graphs/AssemblyIndex/assembly4/config_assembly4.json b/pytheus/graphs/AssemblyIndex/assembly4/config_assembly4.json new file mode 100644 index 00000000..8aabc20e --- /dev/null +++ b/pytheus/graphs/AssemblyIndex/assembly4/config_assembly4.json @@ -0,0 +1,29 @@ +{ + "description": "assembly index maximization for 4 qubits and 8 edges", + "foldername": "assembly_4", + "loss_func": "lff", + "lff_name": "top_n_assembly", + "dimensions": [ + 2, + 2, + 2, + 2 + ], + "num_vertices": 4, + "num_cols": 2, + "size_of_graph": 8, + "optimizer": "L-BFGS-B", + "ftol": 0.001, + "samples": 1, + "thresholds": [ + 99999 + ], + "topopt": false, + "edges_tried": 10, + "tries_per_edge": 5, + "unicolor": false, + "imaginary": false, + "num_pre": 1, + "save_history": true, + "bulk_thr": 0 +} \ No newline at end of file diff --git a/pytheus/graphs/AssemblyIndex/assembly4/plot_assembly4.json b/pytheus/graphs/AssemblyIndex/assembly4/plot_assembly4.json new file mode 100644 index 00000000..6d4d279f --- /dev/null +++ b/pytheus/graphs/AssemblyIndex/assembly4/plot_assembly4.json @@ -0,0 +1,12 @@ +{ + "graph": { + "(0, 1, 1, 1)": 1.0, + "(0, 2, 0, 1)": 1.0, + "(0, 3, 0, 0)": 1.0, + "(0, 3, 0, 1)": 1.0, + "(1, 2, 0, 1)": 1.0, + "(1, 3, 0, 0)": 1.0, + "(2, 3, 0, 0)": 1.0, + "(2, 3, 0, 1)": 1.0 + } +} diff --git a/pytheus/graphs/AssemblyIndex/assembly6/config_assembly6.json b/pytheus/graphs/AssemblyIndex/assembly6/config_assembly6.json new file mode 100644 index 00000000..43ba4079 --- /dev/null +++ b/pytheus/graphs/AssemblyIndex/assembly6/config_assembly6.json @@ -0,0 +1,31 @@ +{ + "description": "assembly index maximization for 6 qubits and 10 edges", + "foldername": "assembly", + "loss_func": "lff", + "lff_name": "assembly_index", + "dimensions": [ + 2, + 2, + 2, + 2, + 2, + 2 + ], + "num_vertices": 6, + "num_cols": 2, + "size_of_graph": 10, + "sample_size": 1, + "optimizer": "L-BFGS-B", + "ftol": 1e-06, + "samples": 1, + "thresholds": [ + 99999 + ], + "topopt": false, + "edges_tried": 30, + "tries_per_edge": 5, + "unicolor": false, + "imaginary": false, + "num_pre": 1, + "bulk_thr": 0 +} \ No newline at end of file diff --git a/pytheus/graphs/AssemblyIndex/assembly6/plot_assembly6.json b/pytheus/graphs/AssemblyIndex/assembly6/plot_assembly6.json new file mode 100644 index 00000000..e15bd21b --- /dev/null +++ b/pytheus/graphs/AssemblyIndex/assembly6/plot_assembly6.json @@ -0,0 +1,12 @@ +{ + "graph": {(0, 1, 0, 1): 1.0, + (0, 1, 1, 0): 1.0, + (0, 2, 1, 0): 1.0, + (1, 4, 1, 1): 1.0, + (1, 5, 0, 0): 1.0, + (2, 4, 0, 1): 1.0, + (2, 5, 1, 1): 1.0, + (3, 4, 0, 1): 1.0, + (3, 5, 1, 1): 1.0, + (4, 5, 1, 0): 1.0} +} \ No newline at end of file diff --git a/theseus/configs/2pES_3d.json b/pytheus/graphs/Communication/2pES_3d/config_2pES_3d.json similarity index 100% rename from theseus/configs/2pES_3d.json rename to pytheus/graphs/Communication/2pES_3d/config_2pES_3d.json diff --git a/pytheus/graphs/Communication/2pES_3d/graph_2pES_3d.aux b/pytheus/graphs/Communication/2pES_3d/graph_2pES_3d.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Communication/2pES_3d/graph_2pES_3d.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Communication/2pES_3d/graph_2pES_3d.pdf b/pytheus/graphs/Communication/2pES_3d/graph_2pES_3d.pdf new file mode 100644 index 00000000..b02f5451 Binary files /dev/null and b/pytheus/graphs/Communication/2pES_3d/graph_2pES_3d.pdf differ diff --git a/pytheus/graphs/Communication/2pES_3d/graph_2pES_3d.tex b/pytheus/graphs/Communication/2pES_3d/graph_2pES_3d.tex new file mode 100644 index 00000000..be37fc1b --- /dev/null +++ b/pytheus/graphs/Communication/2pES_3d/graph_2pES_3d.tex @@ -0,0 +1,62 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.4270509831248424,1.7633557568774194) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (0.9270509831248424,2.8531695488854605) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-0.927050983124842,2.853169548885461) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-2.427050983124842,1.7633557568774196) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}5}; +\node[vertex] (6) at (-2.4270509831248424,-1.7633557568774192) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (-0.9270509831248427,-2.8531695488854605) [rectangle] {\color{fontcolor}7}; +\node[vertex] (8) at (0.9270509831248417,-2.853169548885461) [rectangle] {\color{fontcolor}8}; +\node[vertex] (9) at (2.427050983124842,-1.7633557568774196) [rectangle] {\color{fontcolor}9}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (8); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (1) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (8); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (3) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (7) to (8); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/2pES_3d/clean-16-9-0.1000_0.0000.json b/pytheus/graphs/Communication/2pES_3d/original_2pES_3d_clean-16-9-0-0.1000_0.0000.json similarity index 100% rename from theseus/graphs/2pES_3d/clean-16-9-0.1000_0.0000.json rename to pytheus/graphs/Communication/2pES_3d/original_2pES_3d_clean-16-9-0-0.1000_0.0000.json diff --git a/pytheus/graphs/Communication/2pES_3d/plot_2pES_3d_clean-16-9-0.1000_0.0000.json b/pytheus/graphs/Communication/2pES_3d/plot_2pES_3d_clean-16-9-0.1000_0.0000.json new file mode 100644 index 00000000..e17ff072 --- /dev/null +++ b/pytheus/graphs/Communication/2pES_3d/plot_2pES_3d_clean-16-9-0.1000_0.0000.json @@ -0,0 +1,24 @@ +{ + "graph": { + "(0, 1, 1, 1)": 1.0, + "(0, 4, 2, 0)": 1.0, + "(0, 5, 0, 0)": 1.0, + "(1, 6, 0, 0)": 1.0, + "(1, 8, 1, 0)": 1.0, + "(1, 9, 2, 0)": 1.0, + "(2, 4, 0, 0)": 1.0, + "(2, 5, 2, 0)": 1.0, + "(2, 8, 1, 0)": 1.0, + "(3, 6, 2, 0)": 1.0, + "(3, 7, 1, 0)": 1.0, + "(3, 9, 0, 0)": 1.0, + "(4, 5, 0, 0)": 1.0, + "(6, 9, 0, 0)": 1.0, + "(0, 7, 1, 0)": 1.0, + "(7, 8, 0, 0)": 1.0 + }, + "loss": [ + 0.09999999999999998, + 0.0 + ] +} \ No newline at end of file diff --git a/theseus/configs/3pES.json b/pytheus/graphs/Communication/3pES/config_3pES.json similarity index 100% rename from theseus/configs/3pES.json rename to pytheus/graphs/Communication/3pES/config_3pES.json diff --git a/pytheus/graphs/Communication/3pES/graph_3pES.aux b/pytheus/graphs/Communication/3pES/graph_3pES.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Communication/3pES/graph_3pES.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Communication/3pES/graph_3pES.pdf b/pytheus/graphs/Communication/3pES/graph_3pES.pdf new file mode 100644 index 00000000..e889ec21 Binary files /dev/null and b/pytheus/graphs/Communication/3pES/graph_3pES.pdf differ diff --git a/pytheus/graphs/Communication/3pES/graph_3pES.tex b/pytheus/graphs/Communication/3pES/graph_3pES.tex new file mode 100644 index 00000000..36436be8 --- /dev/null +++ b/pytheus/graphs/Communication/3pES/graph_3pES.tex @@ -0,0 +1,64 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.4270509831248424,1.7633557568774194) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (0.9270509831248424,2.8531695488854605) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-0.927050983124842,2.853169548885461) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-2.427050983124842,1.7633557568774196) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}5}; +\node[vertex] (6) at (-2.4270509831248424,-1.7633557568774192) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (-0.9270509831248427,-2.8531695488854605) [rectangle] {\color{fontcolor}7}; +\node[vertex] (8) at (0.9270509831248417,-2.853169548885461) [rectangle] {\color{fontcolor}8}; +\node[vertex] (9) at (2.427050983124842,-1.7633557568774196) [rectangle] {\color{fontcolor}9}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (8); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (8); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (9); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (2) to (9); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (8); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (4) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (8); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (5) to (9); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (5) to (9); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/3pES/clean-18-16-0.1111_0.0000.json b/pytheus/graphs/Communication/3pES/plot_3pES_clean-18-16-0.1111_0.0000.json similarity index 100% rename from theseus/graphs/3pES/clean-18-16-0.1111_0.0000.json rename to pytheus/graphs/Communication/3pES/plot_3pES_clean-18-16-0.1111_0.0000.json diff --git a/theseus/configs/ES3d_sp.json b/pytheus/graphs/Communication/ES3d_sp/config_ES3d_sp.json similarity index 100% rename from theseus/configs/ES3d_sp.json rename to pytheus/graphs/Communication/ES3d_sp/config_ES3d_sp.json diff --git a/pytheus/graphs/Communication/ES3d_sp/graph_ES3d_sp.aux b/pytheus/graphs/Communication/ES3d_sp/graph_ES3d_sp.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Communication/ES3d_sp/graph_ES3d_sp.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Communication/ES3d_sp/graph_ES3d_sp.pdf b/pytheus/graphs/Communication/ES3d_sp/graph_ES3d_sp.pdf new file mode 100644 index 00000000..ca4fb9b1 Binary files /dev/null and b/pytheus/graphs/Communication/ES3d_sp/graph_ES3d_sp.pdf differ diff --git a/pytheus/graphs/Communication/ES3d_sp/graph_ES3d_sp.tex b/pytheus/graphs/Communication/ES3d_sp/graph_ES3d_sp.tex new file mode 100644 index 00000000..ac739c3d --- /dev/null +++ b/pytheus/graphs/Communication/ES3d_sp/graph_ES3d_sp.tex @@ -0,0 +1,66 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.598076211353316,1.4999999999999998) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (1.5000000000000004,2.598076211353316) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}2}; +\node[vertex] (3) at (1.8369701987210297e-16,3.0) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.4999999999999993,2.5980762113533165) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.598076211353316,1.4999999999999998) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}5}; +\node[vertex] (6) at (-3.0,3.6739403974420594e-16) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}6}; +\node[vertex] (7) at (-2.5980762113533165,-1.4999999999999993) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}7}; +\node[vertex] (8) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}8}; +\node[vertex] (9) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}9}; +\node[vertex] (10) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}10}; +\node[vertex] (11) at (2.598076211353315,-1.5000000000000013) [rectangle] {\color{fontcolor}11}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (8); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (10); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (11); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (8); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (11); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (8); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (11); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (8); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (11); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (7) to (10); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/ES3d_sp/clean-18-14-0.0769_0.0000.json b/pytheus/graphs/Communication/ES3d_sp/plot_ES3d_sp_clean-18-14-0.0769_0.0000.json similarity index 100% rename from theseus/graphs/ES3d_sp/clean-18-14-0.0769_0.0000.json rename to pytheus/graphs/Communication/ES3d_sp/plot_ES3d_sp_clean-18-14-0.0769_0.0000.json diff --git a/theseus/configs/ES_2-4-6.json b/pytheus/graphs/Communication/ES_246/config_ES_246.json similarity index 100% rename from theseus/configs/ES_2-4-6.json rename to pytheus/graphs/Communication/ES_246/config_ES_246.json diff --git a/pytheus/graphs/Communication/ES_246/graph_ES_246.aux b/pytheus/graphs/Communication/ES_246/graph_ES_246.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Communication/ES_246/graph_ES_246.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Communication/ES_246/graph_ES_246.pdf b/pytheus/graphs/Communication/ES_246/graph_ES_246.pdf new file mode 100644 index 00000000..0a9cfc08 Binary files /dev/null and b/pytheus/graphs/Communication/ES_246/graph_ES_246.pdf differ diff --git a/pytheus/graphs/Communication/ES_246/graph_ES_246.tex b/pytheus/graphs/Communication/ES_246/graph_ES_246.tex new file mode 100644 index 00000000..06bf892c --- /dev/null +++ b/pytheus/graphs/Communication/ES_246/graph_ES_246.tex @@ -0,0 +1,54 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [rectangle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=11.25, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col3}{col0}, bend right=11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col3}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/Communication/ES_246/original_clean-12-6-0.2000_0.0000.json b/pytheus/graphs/Communication/ES_246/original_clean-12-6-0.2000_0.0000.json new file mode 100644 index 00000000..e7aebf7d --- /dev/null +++ b/pytheus/graphs/Communication/ES_246/original_clean-12-6-0.2000_0.0000.json @@ -0,0 +1,127 @@ +{ + "graph": { + "(0, 3, 1, 0)": -1.0, + "(0, 4, 3, 0)": -1.0, + "(1, 2, 1, 0)": 1.0, + "(1, 4, 0, 0)": -1.0, + "(2, 3, 0, 0)": -1.0, + "(1, 4, 3, 0)": -0.9999999888977698, + "(0, 2, 2, 0)": -1.0, + "(0, 5, 0, 0)": -1.0, + "(1, 5, 3, 0)": -1.0, + "(0, 4, 0, 0)": 1.0, + "(4, 5, 0, 0)": 1.0, + "(1, 3, 2, 0)": 1.0 + }, + "loss": [ + 0.19999999999999996, + 0.0 + ], + "seed": 2999313442, + "history": [ + [ + 0.015385683745774426, + 5.525447219767443e-07 + ], + [ + 0.015385437424936588, + 3.969237145629023e-07 + ], + [ + 0.015391833899223273, + 6.284850437299205e-06 + ], + [ + 0.015392218151775716, + 6.771130461769026e-06 + ], + [ + 0.015391568380156762, + 6.2120657091657705e-06 + ], + [ + 0.015387134654037071, + 1.8163333647125413e-06 + ], + [ + 0.015384808080528556, + 1.9876470469526453e-07 + ], + [ + 0.015384742746177071, + 1.3137270438168258e-07 + ], + [ + 0.015384712413969548, + 1.0008521011961591e-07 + ], + [ + 0.01538461538461533, + 0.0 + ], + [ + 0.05357389060417117, + 0.0055421630611234285 + ], + [ + 0.055555555562126546, + 0.0034485834723543274 + ], + [ + 0.13923483383458868, + 0.03024189573696867 + ], + [ + 0.13568517492665522, + 0.037364173658093525 + ], + [ + 0.13568619914430868, + 0.037334899148548484 + ], + [ + 0.15222900753617552, + 0.04060895467206349 + ], + [ + 0.16666673345641914, + 0.0383713631607816 + ], + [ + 0.1944463545454287, + 0.00829498964628661 + ], + [ + 0.1944444960388596, + 0.008253614914737417 + ], + [ + 0.1944444827828562, + 0.0082542005132471 + ], + [ + 0.19444447067156034, + 0.008266359478596219 + ], + [ + 0.1944444490137388, + 0.00826039554569824 + ], + [ + 0.19444444565460628, + 0.008257488672046231 + ], + [ + 0.1944444449269087, + 0.00825607227907843 + ], + [ + 0.19444444448273313, + 0.008256071605849402 + ], + [ + 0.19999999999999996, + 0.0 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/Communication/ES_246/plot_clean-12-6-0.2000_0.0000.json b/pytheus/graphs/Communication/ES_246/plot_clean-12-6-0.2000_0.0000.json new file mode 100644 index 00000000..67a907d9 --- /dev/null +++ b/pytheus/graphs/Communication/ES_246/plot_clean-12-6-0.2000_0.0000.json @@ -0,0 +1,127 @@ +{ + "graph": { + "(0, 2, 2, 0)": 1.0, + "(0, 3, 1, 0)": 1.0, + "(0, 4, 0, 0)": 1.0, + "(0, 4, 3, 0)": -1.0, + "(0, 5, 0, 0)": -1.0, + "(1, 2, 1, 0)": 1.0, + "(1, 3, 2, 0)": 1.0, + "(1, 4, 0, 0)": 1.0, + "(1, 4, 3, 0)": 1.0, + "(1, 5, 3, 0)": 1.0, + "(2, 3, 0, 0)": -1.0, + "(4, 5, 0, 0)": 1.0 + }, + "loss": [ + 0.19999999999999996, + 0.0 + ], + "seed": 2999313442, + "history": [ + [ + 0.015385683745774426, + 5.525447219767443e-07 + ], + [ + 0.015385437424936588, + 3.969237145629023e-07 + ], + [ + 0.015391833899223273, + 6.284850437299205e-06 + ], + [ + 0.015392218151775716, + 6.771130461769026e-06 + ], + [ + 0.015391568380156762, + 6.2120657091657705e-06 + ], + [ + 0.015387134654037071, + 1.8163333647125413e-06 + ], + [ + 0.015384808080528556, + 1.9876470469526453e-07 + ], + [ + 0.015384742746177071, + 1.3137270438168258e-07 + ], + [ + 0.015384712413969548, + 1.0008521011961591e-07 + ], + [ + 0.01538461538461533, + 0.0 + ], + [ + 0.05357389060417117, + 0.0055421630611234285 + ], + [ + 0.055555555562126546, + 0.0034485834723543274 + ], + [ + 0.13923483383458868, + 0.03024189573696867 + ], + [ + 0.13568517492665522, + 0.037364173658093525 + ], + [ + 0.13568619914430868, + 0.037334899148548484 + ], + [ + 0.15222900753617552, + 0.04060895467206349 + ], + [ + 0.16666673345641914, + 0.0383713631607816 + ], + [ + 0.1944463545454287, + 0.00829498964628661 + ], + [ + 0.1944444960388596, + 0.008253614914737417 + ], + [ + 0.1944444827828562, + 0.0082542005132471 + ], + [ + 0.19444447067156034, + 0.008266359478596219 + ], + [ + 0.1944444490137388, + 0.00826039554569824 + ], + [ + 0.19444444565460628, + 0.008257488672046231 + ], + [ + 0.1944444449269087, + 0.00825607227907843 + ], + [ + 0.19444444448273313, + 0.008256071605849402 + ], + [ + 0.19999999999999996, + 0.0 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/CondensedMatter/.DS_Store b/pytheus/graphs/CondensedMatter/.DS_Store new file mode 100644 index 00000000..03f8d774 Binary files /dev/null and b/pytheus/graphs/CondensedMatter/.DS_Store differ diff --git a/theseus/configs/aklt3spin1.json b/pytheus/graphs/CondensedMatter/aklt3spin1/config_aklt3spin1.json similarity index 100% rename from theseus/configs/aklt3spin1.json rename to pytheus/graphs/CondensedMatter/aklt3spin1/config_aklt3spin1.json diff --git a/pytheus/graphs/CondensedMatter/aklt3spin1/graph_aklt3spin1.aux b/pytheus/graphs/CondensedMatter/aklt3spin1/graph_aklt3spin1.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/aklt3spin1/graph_aklt3spin1.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/aklt3spin1/graph_aklt3spin1.pdf b/pytheus/graphs/CondensedMatter/aklt3spin1/graph_aklt3spin1.pdf new file mode 100644 index 00000000..2190bc5b Binary files /dev/null and b/pytheus/graphs/CondensedMatter/aklt3spin1/graph_aklt3spin1.pdf differ diff --git a/pytheus/graphs/CondensedMatter/aklt3spin1/graph_aklt3spin1.tex b/pytheus/graphs/CondensedMatter/aklt3spin1/graph_aklt3spin1.tex new file mode 100644 index 00000000..cde0e7f1 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/aklt3spin1/graph_aklt3spin1.tex @@ -0,0 +1,49 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col1}{col2}, bend right=-11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col1}{col2}, bend right=11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col2}{col1}, bend right=-11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col2}{col1}, bend right=11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col2}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col1}{col2}, bend right=11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/CondensedMatter/aklt_3/clean-9-6-0.1429_0.0000.json b/pytheus/graphs/CondensedMatter/aklt3spin1/plot_aklt3spin1_clean-9-6-0.1429_0.0000.json similarity index 93% rename from theseus/graphs/CondensedMatter/aklt_3/clean-9-6-0.1429_0.0000.json rename to pytheus/graphs/CondensedMatter/aklt3spin1/plot_aklt3spin1_clean-9-6-0.1429_0.0000.json index 2a395431..f74943ae 100644 --- a/theseus/graphs/CondensedMatter/aklt_3/clean-9-6-0.1429_0.0000.json +++ b/pytheus/graphs/CondensedMatter/aklt3spin1/plot_aklt3spin1_clean-9-6-0.1429_0.0000.json @@ -1,15 +1,14 @@ { "graph": { - "(0, 4, 1, 0)": -1.0, - "(1, 3, 0, 0)": -1.0, - "(1, 5, 2, 0)": -1.0, - "(2, 4, 1, 0)": 1.0, - "(0, 3, 0, 0)": -1.0, - "(1, 4, 1, 0)": -1.0, - "(2, 5, 2, 0)": 1.0, - "(2, 3, 0, 0)": 1.0, - "(0, 5, 2, 0)": -1.0 - }, + "(0, 1, 2, 1)": -1.0, + "(0, 2, 2, 1)": 1.0, + "(1, 2, 1, 2)": 1.0, + "(1, 3, 0, 0)": 1.0, + "(0, 1, 1, 2)": 1.0, + "(0, 3, 0, 0)": 1.0, + "(2, 3, 0, 0)": 1.0, + "(1, 2, 2, 1)": -1.0, + "(0, 2, 1, 2)": -1.0}, "loss": [ 0.1428571428571429, 0.0 @@ -208,4 +207,4 @@ 0.0 ] ] -} \ No newline at end of file +} diff --git a/pytheus/graphs/CondensedMatter/aklt3spin2/config_aklt3spin2.json b/pytheus/graphs/CondensedMatter/aklt3spin2/config_aklt3spin2.json new file mode 100644 index 00000000..a385b7d2 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/aklt3spin2/config_aklt3spin2.json @@ -0,0 +1,22 @@ +{ + "description": "Creation of AKLT state of three particles with spin 2.", + "bulk_thr": 0.01, + "edges_tried": 20, + "foldername": "AKLT3spin2big", + "ftol": 1e-05, + "loss_func": "cr", + "num_anc": 5, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 10, + "target_state": ["024", "033", "042", "114", "123", "132", "141", "204", "213", "222", "231", "240", "303", "312", "321", "330", "402", "411", "420"], + "amplitudes": [0.19, -0.232, 0.19, -0.232, 0.095, 0.095, -0.232, 0.19, 0.095, -0.19, 0.095, 0.19, -0.232, 0.095, 0.095, -0.232, 0.19, -0.232, 0.19], + "thresholds": [ + 0.15, + 0.05 + ], + "tries_per_edge": 5, + "unicolor": false +} diff --git a/pytheus/graphs/CondensedMatter/aklt3spin2/graph_aklt3spin2.aux b/pytheus/graphs/CondensedMatter/aklt3spin2/graph_aklt3spin2.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/aklt3spin2/graph_aklt3spin2.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/aklt3spin2/graph_aklt3spin2.pdf b/pytheus/graphs/CondensedMatter/aklt3spin2/graph_aklt3spin2.pdf new file mode 100644 index 00000000..3b768a31 Binary files /dev/null and b/pytheus/graphs/CondensedMatter/aklt3spin2/graph_aklt3spin2.pdf differ diff --git a/pytheus/graphs/CondensedMatter/aklt3spin2/graph_aklt3spin2.tex b/pytheus/graphs/CondensedMatter/aklt3spin2/graph_aklt3spin2.tex new file mode 100644 index 00000000..6023433c --- /dev/null +++ b/pytheus/graphs/CondensedMatter/aklt3spin2/graph_aklt3spin2.tex @@ -0,0 +1,84 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [rectangle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [rectangle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col1}{col3}, bend right=-11.25, opacity=0.8532548252692428] (0) to (1); +\path[line width=4.0,bicolor={col3}{col1}, bend right=11.25, opacity=0.8452008347401965] (0) to (1); +\path[line width=4.0,bicolor_neg={col3}{col1}, bend right=-15.0, opacity=0.8641966167983285] (0) to (2); +\path[line width=4.0,bicolor={col2}{col2}, bend right=0.0, opacity=0.3] (0) to (2); +\path[line width=4.0,bicolor_neg={col1}{col3}, bend right=15.0, opacity=0.8641965192343892] (0) to (2); +\path[line width=4.0,bicolor={col3}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=-11.25, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor={col4}{col0}, bend right=11.25, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-15.0, opacity=0.6273191312102478] (0) to (7); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor={col3}{col0}, bend right=15.0, opacity=0.6197869108506701] (0) to (7); +\path[line width=4.0,bicolor={col1}{col3}, bend right=-11.25, opacity=0.8452007821911702] (1) to (2); +\path[line width=4.0,bicolor={col3}{col1}, bend right=11.25, opacity=0.8532548562312101] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=0.0, opacity=0.9946440148351104] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=0.9885522845460745] (1) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.9832218819459965] (1) to (5); +\path[line width=4.0,bicolor={col3}{col0}, bend right=-11.25, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor_neg={col0}{col4}, bend right=11.25, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=-15.0, opacity=0.5559405964476379] (1) to (7); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=15.0, opacity=0.5560880800681296] (1) to (7); +\path[line width=4.0,bicolor={col3}{col0}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=-11.25, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor={col4}{col0}, bend right=11.25, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-15.0, opacity=0.627318820768548] (2) to (7); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor={col3}{col0}, bend right=15.0, opacity=0.6197863429799808] (2) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.6585959085488023] (3) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.3670503832422182] (4) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=0.6522350258625733] (5) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/CondensedMatter/aklt3spin2/plot_aklt3spin2_rough-40-294-0.0960_0.0471.json b/pytheus/graphs/CondensedMatter/aklt3spin2/plot_aklt3spin2_rough-40-294-0.0960_0.0471.json new file mode 100644 index 00000000..18bbf55a --- /dev/null +++ b/pytheus/graphs/CondensedMatter/aklt3spin2/plot_aklt3spin2_rough-40-294-0.0960_0.0471.json @@ -0,0 +1,521 @@ +{ + "graph": { + "(0, 1, 1, 3)": 0.8532548252692428, + "(0, 1, 3, 1)": 0.8452008347401965, + "(0, 2, 1, 3)": -0.8641966167983285, + "(0, 2, 3, 1)": -0.8641965192343892, + "(0, 3, 3, 0)": 1.0, + "(0, 4, 0, 0)": -1.0, + "(0, 4, 1, 0)": 1.0, + "(0, 5, 1, 0)": -1.0, + "(0, 6, 3, 0)": -1.0, + "(0, 6, 4, 0)": 1.0, + "(0, 7, 2, 0)": -1.0, + "(1, 2, 1, 3)": 0.8452007821911702, + "(1, 2, 3, 1)": 0.8532548562312101, + "(1, 3, 3, 0)": -0.9946440148351104, + "(1, 4, 0, 0)": 1.0, + "(1, 4, 1, 0)": -0.9885522845460745, + "(1, 5, 1, 0)": 0.9832218819459965, + "(1, 6, 3, 0)": 1.0, + "(1, 6, 4, 0)": -1.0, + "(1, 7, 2, 0)": 1.0, + "(2, 3, 3, 0)": 1.0, + "(2, 4, 0, 0)": -1.0, + "(2, 4, 1, 0)": 1.0, + "(2, 5, 1, 0)": -1.0, + "(2, 6, 3, 0)": -1.0, + "(2, 6, 4, 0)": 1.0, + "(2, 7, 2, 0)": -1.0, + "(3, 4, 0, 0)": 1.0, + "(3, 5, 0, 0)": 1.0, + "(5, 6, 0, 0)": 1.0, + "(0, 2, 2, 2)": 0.27757000485003075, + "(4, 6, 0, 0)": 0.3670503832422182, + "(1, 7, 1, 0)": -0.5559405964476379, + "(1, 7, 3, 0)": -0.5560880800681296, + "(2, 7, 3, 0)": 0.6197863429799808, + "(0, 7, 3, 0)": 0.6197869108506701, + "(2, 7, 1, 0)": 0.627318820768548, + "(0, 7, 1, 0)": 0.6273191312102478, + "(5, 7, 0, 0)": -0.6522350258625733, + "(3, 7, 0, 0)": 0.6585959085488023}, + "loss": [ + 0.09603771796826843, + 0.04714516594369256 + ], + "history": [ + [ + 0.009409845801854999, + 0.0025030338467708635 + ], + [ + 0.005283176054530436, + 0.0010310729817449849 + ], + [ + 0.005280475830984899, + 0.0010276154350670197 + ], + [ + 0.00530710443755511, + 0.0010491277934674414 + ], + [ + 0.005299811888589745, + 0.001054859877839931 + ], + [ + 0.0052998653862792455, + 0.0010526845272657015 + ], + [ + 0.005288434353424187, + 0.0010345536470188765 + ], + [ + 0.005276258299767078, + 0.0010197953420592043 + ], + [ + 0.005267455497291795, + 0.001001361636909448 + ], + [ + 0.0052973037804260326, + 0.001027498550297934 + ], + [ + 0.005271403350402659, + 0.001003129953519255 + ], + [ + 0.005277970374609087, + 0.0010180030113587923 + ], + [ + 0.005290782226080815, + 0.001052652081551697 + ], + [ + 0.005362219822143244, + 0.0010953820553983862 + ], + [ + 0.005361052313066383, + 0.0010703869012210765 + ], + [ + 0.005398096148479414, + 0.0010281147003193825 + ], + [ + 0.0053884351404362985, + 0.0009941821076060453 + ], + [ + 0.005449092611220285, + 0.0009414896499696512 + ], + [ + 0.005543577059246574, + 0.0010408360870227673 + ], + [ + 0.005422130039116513, + 0.0009590823485062794 + ], + [ + 0.0055070064628196524, + 0.001035856817215297 + ], + [ + 0.005476748543401633, + 0.0009115598088851318 + ], + [ + 0.0056229560106617615, + 0.0011397755338206084 + ], + [ + 0.005689085808396999, + 0.0011723043680950118 + ], + [ + 0.00573823584247013, + 0.0012385872429306888 + ], + [ + 0.0056846614068915, + 0.0012954459335006163 + ], + [ + 0.005746596944643523, + 0.0013062437758560863 + ], + [ + 0.005805881142034064, + 0.001407154317087933 + ], + [ + 0.0060245376949504825, + 0.0015779014493308985 + ], + [ + 0.006251194876395805, + 0.0017655306778201485 + ], + [ + 0.006112622319269456, + 0.0016911228347050722 + ], + [ + 0.0061654576429012176, + 0.001633984713825809 + ], + [ + 0.006112865738607143, + 0.0016214522408440901 + ], + [ + 0.006231818302173675, + 0.001660572911940661 + ], + [ + 0.0063460398446940625, + 0.0018412610883336011 + ], + [ + 0.0065951992795357794, + 0.001983156914788009 + ], + [ + 0.006586820206948341, + 0.0019561863914320243 + ], + [ + 0.006544067047723812, + 0.0018959100372190063 + ], + [ + 0.006525326862532155, + 0.0018726536108206737 + ], + [ + 0.00684867536892253, + 0.00161472603175572 + ], + [ + 0.007087746123245031, + 0.001991340648627715 + ], + [ + 0.0071927531638087405, + 0.0021556695893598654 + ], + [ + 0.0074479358050688615, + 0.0024828686505850017 + ], + [ + 0.008228322076226924, + 0.003267232429440603 + ], + [ + 0.00893589066885736, + 0.003705757359994788 + ], + [ + 0.009294274727595697, + 0.004104643743384484 + ], + [ + 0.009672097093690324, + 0.0044779818661384585 + ], + [ + 0.009941192223890338, + 0.0047027042894228765 + ], + [ + 0.010067714315423415, + 0.004909778852515867 + ], + [ + 0.010198547944657688, + 0.005073214552649641 + ], + [ + 0.010554392174278338, + 0.00523603469664502 + ], + [ + 0.01082992766266111, + 0.005403465973922494 + ], + [ + 0.011236397309797086, + 0.00588933498328692 + ], + [ + 0.01161569383703398, + 0.006026092036329755 + ], + [ + 0.01244628373493084, + 0.0068496067608516675 + ], + [ + 0.012586327533988584, + 0.006685181882697067 + ], + [ + 0.013896674069855175, + 0.007980176838157771 + ], + [ + 0.014434289792103372, + 0.008285548937452925 + ], + [ + 0.016709854701792093, + 0.009723146897372303 + ], + [ + 0.020210126128688, + 0.013049708767972401 + ], + [ + 0.023055561272591785, + 0.014845206274457623 + ], + [ + 0.024323622885451757, + 0.0154022476851291 + ], + [ + 0.02579681031150105, + 0.016556401087188366 + ], + [ + 0.026484992290883413, + 0.01725888135125797 + ], + [ + 0.027007676992449103, + 0.01788228991513563 + ], + [ + 0.0270514919828988, + 0.017901644385618698 + ], + [ + 0.028078530005087643, + 0.01875174281019587 + ], + [ + 0.02849769215353881, + 0.019023399903170368 + ], + [ + 0.03002081911520793, + 0.01755674095430626 + ], + [ + 0.030082935281871004, + 0.017580142877576255 + ], + [ + 0.030105622144727895, + 0.017713031761657172 + ], + [ + 0.030982236392323892, + 0.017559026486125284 + ], + [ + 0.032244756871527724, + 0.016742700533399768 + ], + [ + 0.032700635685690926, + 0.016451454488610406 + ], + [ + 0.03280118275283761, + 0.016241850708268113 + ], + [ + 0.03304290300748125, + 0.016150733057085254 + ], + [ + 0.034857872749977314, + 0.01721543869031128 + ], + [ + 0.03517897919998647, + 0.01733440512020501 + ], + [ + 0.03850113228676999, + 0.019603450752355145 + ], + [ + 0.040088940327263956, + 0.020503989063513917 + ], + [ + 0.04149546768546131, + 0.02092145475756635 + ], + [ + 0.04153631442393735, + 0.02095517347048481 + ], + [ + 0.04313590769882869, + 0.022184839885568075 + ], + [ + 0.04412074570141267, + 0.02241672135575279 + ], + [ + 0.044835566364334056, + 0.022394658934350442 + ], + [ + 0.046029624001135416, + 0.023270113456087427 + ], + [ + 0.047565917102975086, + 0.023481421436298167 + ], + [ + 0.048789752621061666, + 0.023546979089702158 + ], + [ + 0.0499945343139081, + 0.024124409894144883 + ], + [ + 0.050392157432941675, + 0.024188950863214487 + ], + [ + 0.050845473374224626, + 0.024605428892978787 + ], + [ + 0.05267825913052682, + 0.02458335489430974 + ], + [ + 0.05370437738207723, + 0.024457248089039707 + ], + [ + 0.05501011158547131, + 0.02490373872019347 + ], + [ + 0.05930278572026437, + 0.026644566072328346 + ], + [ + 0.060780861397406794, + 0.02667628397440769 + ], + [ + 0.061914324843017066, + 0.027473257888109726 + ], + [ + 0.06285017969442508, + 0.028004408081152232 + ], + [ + 0.06362735152818899, + 0.02835798351470764 + ], + [ + 0.06417866320831356, + 0.028545973306865258 + ], + [ + 0.06597358088698158, + 0.029072745736125505 + ], + [ + 0.06597685162647948, + 0.029102910813387117 + ], + [ + 0.06609194196270096, + 0.028958150292257345 + ], + [ + 0.06712654222866665, + 0.029983077302045635 + ], + [ + 0.06863468246147353, + 0.03043189131478985 + ], + [ + 0.07167314772087652, + 0.03105853118754698 + ], + [ + 0.07241183795066464, + 0.03042507852999199 + ], + [ + 0.07600830084363153, + 0.03099778831016131 + ], + [ + 0.077671992050936, + 0.03170692327206348 + ], + [ + 0.07834311322439114, + 0.03237626374884006 + ], + [ + 0.08425857894004163, + 0.0381707889313867 + ], + [ + 0.09430390046410297, + 0.04858647633236102 + ], + [ + 0.0954272989984648, + 0.047759261448176105 + ], + [ + 0.09547788366614363, + 0.04739347395163629 + ], + [ + 0.09567425994728296, + 0.04720224329020828 + ], + [ + 0.09580130509746587, + 0.04710697104206363 + ], + [ + 0.09590885770267854, + 0.04709064890451131 + ], + [ + 0.09603771796826843, + 0.04714516594369256 + ] + ] +} diff --git a/pytheus/graphs/CondensedMatter/aklt4spin1/config_aklt4spin1.json b/pytheus/graphs/CondensedMatter/aklt4spin1/config_aklt4spin1.json new file mode 100644 index 00000000..5c018d2f --- /dev/null +++ b/pytheus/graphs/CondensedMatter/aklt4spin1/config_aklt4spin1.json @@ -0,0 +1,82 @@ +{ + "description": "Creation of AKLT state of four particles.", + "bulk_thr": 0.01, + "edges_tried": 20, + "foldername": "AKLT_4", + "ftol": 1e-05, + "loss_func": "cr", + "num_anc": 0, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 10, + "target_state": [ + "0112", + "0121", + "0202", + "0211", + "1012", + "1021", + "1102", + "1111", + "1120", + "1201", + "1210", + "2011", + "2020", + "2101", + "2110" + ], + "amplitudes": [ + -1, + 1, + 2, + -1, + 1, + -1, + -1, + 1, + -1, + -1, + 1, + -1, + 2, + 1, + -1 + ], + "thresholds": [ + 0.1, + 0.001 + ], + "tries_per_edge": 5, + "unicolor": false, + "topopt": true, + "seed": 1478769822, + "in_nodes": [], + "out_nodes": [ + 0, + 1, + 2, + 3 + ], + "single_emitters": [], + "removed_connections": [], + "heralding_out": false, + "number_resolving": false, + "brutal_covers": false, + "save_hist": true, + "dimensions": [ + 3, + 3, + 3, + 3 + ], + "verts": [ + 0, + 1, + 2, + 3 + ], + "anc_detectors": [] +} \ No newline at end of file diff --git a/pytheus/graphs/CondensedMatter/aklt4spin1/graph_aklt4spin1.aux b/pytheus/graphs/CondensedMatter/aklt4spin1/graph_aklt4spin1.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/aklt4spin1/graph_aklt4spin1.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/aklt4spin1/graph_aklt4spin1.pdf b/pytheus/graphs/CondensedMatter/aklt4spin1/graph_aklt4spin1.pdf new file mode 100644 index 00000000..f02f2a3f Binary files /dev/null and b/pytheus/graphs/CondensedMatter/aklt4spin1/graph_aklt4spin1.pdf differ diff --git a/pytheus/graphs/CondensedMatter/aklt4spin1/graph_aklt4spin1.tex b/pytheus/graphs/CondensedMatter/aklt4spin1/graph_aklt4spin1.tex new file mode 100644 index 00000000..f68a29f9 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/aklt4spin1/graph_aklt4spin1.tex @@ -0,0 +1,58 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [circle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col2}{col0}, bend right=-15.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=15.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col2}{col0}, bend right=-15.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=15.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col2}, bend right=-15.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=15.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col2}{col0}, bend right=-15.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=15.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col2}{col0}, bend right=-15.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=15.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col2}, bend right=-15.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=15.0, opacity=1.0] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(0).json b/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(0).json new file mode 100644 index 00000000..2c21721c --- /dev/null +++ b/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(0).json @@ -0,0 +1,28 @@ +{ + "graph": { + "(0, 1, 1, 1)": -1.0, + "(2, 3, 2, 0)": 1.0, + "(0, 1, 0, 2)": 1.0, + "(2, 3, 1, 1)": -1.0, + "(2, 3, 0, 2)": 1.0, + "(1, 3, 2, 0)": -1.0, + "(1, 3, 1, 1)": 1.0, + "(1, 3, 0, 2)": -1.0, + "(1, 2, 2, 0)": -1.0, + "(1, 2, 1, 1)": 1.0, + "(1, 2, 0, 2)": -1.0, + "(0, 3, 2, 0)": -1.0, + "(0, 3, 1, 1)": 1.0, + "(0, 3, 0, 2)": -1.0, + "(0, 2, 2, 0)": 1.0, + "(0, 2, 1, 1)": -1.0, + "(0, 1, 2, 0)": 1.0, + "(0, 2, 0, 2)": 1.0 + }, + "loss": [ + 0.045454545454545414, + 0.0 + ], + "seed": 634698859, + "history": [] +} \ No newline at end of file diff --git a/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(1).json b/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(1).json new file mode 100644 index 00000000..ad0ec0c6 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(1).json @@ -0,0 +1,28 @@ +{ + "graph": { + "(0, 1, 1, 1)": 1.0, + "(2, 3, 2, 0)": 1.0, + "(0, 1, 0, 2)": -1.0, + "(2, 3, 1, 1)": -1.0, + "(2, 3, 0, 2)": 1.0, + "(1, 3, 2, 0)": -1.0, + "(1, 3, 1, 1)": 1.0, + "(1, 3, 0, 2)": -1.0, + "(1, 2, 2, 0)": 1.0, + "(1, 2, 1, 1)": -1.0, + "(1, 2, 0, 2)": 1.0, + "(0, 3, 2, 0)": -1.0, + "(0, 3, 1, 1)": 1.0, + "(0, 3, 0, 2)": -1.0, + "(0, 2, 2, 0)": -1.0, + "(0, 2, 1, 1)": 1.0, + "(0, 1, 2, 0)": -1.0, + "(0, 2, 0, 2)": -1.0 + }, + "loss": [ + 0.045454545454545414, + 0.0 + ], + "seed": 2786975040, + "history": [] +} \ No newline at end of file diff --git a/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(2).json b/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(2).json new file mode 100644 index 00000000..5e6e9cf8 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(2).json @@ -0,0 +1,28 @@ +{ + "graph": { + "(0, 1, 1, 1)": 1.0, + "(2, 3, 2, 0)": -1.0, + "(0, 1, 0, 2)": -1.0, + "(2, 3, 1, 1)": 1.0, + "(2, 3, 0, 2)": -1.0, + "(1, 3, 2, 0)": 1.0, + "(1, 3, 1, 1)": -1.0, + "(1, 3, 0, 2)": 1.0, + "(1, 2, 2, 0)": -1.0, + "(1, 2, 1, 1)": 1.0, + "(1, 2, 0, 2)": -1.0, + "(0, 3, 2, 0)": -1.0, + "(0, 3, 1, 1)": 1.0, + "(0, 3, 0, 2)": -1.0, + "(0, 2, 2, 0)": -1.0, + "(0, 2, 1, 1)": 1.0, + "(0, 1, 2, 0)": -1.0, + "(0, 2, 0, 2)": -1.0 + }, + "loss": [ + 0.045454545454545414, + 0.0 + ], + "seed": 3972991084, + "history": [] +} \ No newline at end of file diff --git a/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(3).json b/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(3).json new file mode 100644 index 00000000..15dd5721 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(3).json @@ -0,0 +1,28 @@ +{ + "graph": { + "(0, 1, 1, 1)": 1.0, + "(2, 3, 2, 0)": -1.0, + "(0, 1, 0, 2)": -1.0, + "(2, 3, 1, 1)": 1.0, + "(2, 3, 0, 2)": -1.0, + "(1, 3, 2, 0)": -1.0, + "(1, 3, 1, 1)": 1.0, + "(1, 3, 0, 2)": -1.0, + "(1, 2, 2, 0)": -1.0, + "(1, 2, 1, 1)": 1.0, + "(1, 2, 0, 2)": -1.0, + "(0, 3, 2, 0)": -1.0, + "(0, 3, 1, 1)": 1.0, + "(0, 3, 0, 2)": -1.0, + "(0, 2, 2, 0)": 1.0, + "(0, 2, 1, 1)": -1.0, + "(0, 1, 2, 0)": -1.0, + "(0, 2, 0, 2)": 1.0 + }, + "loss": [ + 0.045454545454545414, + 0.0 + ], + "seed": 527070012, + "history": [] +} \ No newline at end of file diff --git a/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(4).json b/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(4).json new file mode 100644 index 00000000..277e28f0 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(4).json @@ -0,0 +1,28 @@ +{ + "graph": { + "(0, 1, 1, 1)": -1.0, + "(2, 3, 2, 0)": -1.0, + "(0, 1, 0, 2)": 1.0, + "(2, 3, 1, 1)": 1.0, + "(2, 3, 0, 2)": -1.0, + "(1, 3, 2, 0)": 1.0, + "(1, 3, 1, 1)": -1.0, + "(1, 3, 0, 2)": 1.0, + "(1, 2, 2, 0)": 1.0, + "(1, 2, 1, 1)": -1.0, + "(1, 2, 0, 2)": 1.0, + "(0, 3, 2, 0)": -1.0, + "(0, 3, 1, 1)": 1.0, + "(0, 3, 0, 2)": -1.0, + "(0, 2, 2, 0)": 1.0, + "(0, 2, 1, 1)": -1.0, + "(0, 1, 2, 0)": 1.0, + "(0, 2, 0, 2)": 1.0 + }, + "loss": [ + 0.045454545454545414, + 0.0 + ], + "seed": 2856524683, + "history": [] +} \ No newline at end of file diff --git a/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(5).json b/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(5).json new file mode 100644 index 00000000..cb9e2481 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(5).json @@ -0,0 +1,28 @@ +{ + "graph": { + "(0, 1, 1, 1)": -1.0, + "(2, 3, 2, 0)": 1.0, + "(0, 1, 0, 2)": 1.0, + "(2, 3, 1, 1)": -1.0, + "(2, 3, 0, 2)": 1.0, + "(1, 3, 2, 0)": 1.0, + "(1, 3, 1, 1)": -1.0, + "(1, 3, 0, 2)": 1.0, + "(1, 2, 2, 0)": -1.0, + "(1, 2, 1, 1)": 1.0, + "(1, 2, 0, 2)": -1.0, + "(0, 3, 2, 0)": -1.0, + "(0, 3, 1, 1)": 1.0, + "(0, 3, 0, 2)": -1.0, + "(0, 2, 2, 0)": -1.0, + "(0, 2, 1, 1)": 1.0, + "(0, 1, 2, 0)": 1.0, + "(0, 2, 0, 2)": -1.0 + }, + "loss": [ + 0.045454545454545414, + 0.0 + ], + "seed": 966269904, + "history": [] +} \ No newline at end of file diff --git a/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(6).json b/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(6).json new file mode 100644 index 00000000..d1e43362 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(6).json @@ -0,0 +1,28 @@ +{ + "graph": { + "(0, 1, 1, 1)": -1.0, + "(2, 3, 2, 0)": 1.0, + "(0, 1, 0, 2)": 1.0, + "(2, 3, 1, 1)": -1.0, + "(2, 3, 0, 2)": 1.0, + "(1, 3, 2, 0)": -1.0, + "(1, 3, 1, 1)": 1.0, + "(1, 3, 0, 2)": -1.0, + "(1, 2, 2, 0)": -1.0, + "(1, 2, 1, 1)": 1.0, + "(1, 2, 0, 2)": -1.0, + "(0, 3, 2, 0)": -1.0, + "(0, 3, 1, 1)": 1.0, + "(0, 3, 0, 2)": -1.0, + "(0, 2, 2, 0)": 1.0, + "(0, 2, 1, 1)": -1.0, + "(0, 1, 2, 0)": 1.0, + "(0, 2, 0, 2)": 1.0 + }, + "loss": [ + 0.045454545454545414, + 0.0 + ], + "seed": 784348791, + "history": [] +} \ No newline at end of file diff --git a/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(7).json b/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(7).json new file mode 100644 index 00000000..98ee6bfc --- /dev/null +++ b/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(7).json @@ -0,0 +1,28 @@ +{ + "graph": { + "(0, 1, 1, 1)": -1.0, + "(2, 3, 2, 0)": 1.0, + "(0, 1, 0, 2)": 1.0, + "(2, 3, 1, 1)": -1.0, + "(2, 3, 0, 2)": 1.0, + "(1, 3, 2, 0)": -1.0, + "(1, 3, 1, 1)": 1.0, + "(1, 3, 0, 2)": -1.0, + "(1, 2, 2, 0)": -1.0, + "(1, 2, 1, 1)": 1.0, + "(1, 2, 0, 2)": -1.0, + "(0, 3, 2, 0)": -1.0, + "(0, 3, 1, 1)": 1.0, + "(0, 3, 0, 2)": -1.0, + "(0, 2, 2, 0)": 1.0, + "(0, 2, 1, 1)": -1.0, + "(0, 1, 2, 0)": 1.0, + "(0, 2, 0, 2)": 1.0 + }, + "loss": [ + 0.045454545454545414, + 0.0 + ], + "seed": 2421888103, + "history": [] +} \ No newline at end of file diff --git a/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(8).json b/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(8).json new file mode 100644 index 00000000..ba76eaa6 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000(8).json @@ -0,0 +1,28 @@ +{ + "graph": { + "(0, 1, 1, 1)": 1.0, + "(2, 3, 2, 0)": 1.0, + "(0, 1, 0, 2)": -1.0, + "(2, 3, 1, 1)": -1.0, + "(2, 3, 0, 2)": 1.0, + "(1, 3, 2, 0)": -1.0, + "(1, 3, 1, 1)": 1.0, + "(1, 3, 0, 2)": -1.0, + "(1, 2, 2, 0)": -1.0, + "(1, 2, 1, 1)": 1.0, + "(1, 2, 0, 2)": -1.0, + "(0, 3, 2, 0)": 1.0, + "(0, 3, 1, 1)": -1.0, + "(0, 3, 0, 2)": 1.0, + "(0, 2, 2, 0)": -1.0, + "(0, 2, 1, 1)": 1.0, + "(0, 1, 2, 0)": -1.0, + "(0, 2, 0, 2)": -1.0 + }, + "loss": [ + 0.045454545454545414, + 0.0 + ], + "seed": 3005078072, + "history": [] +} \ No newline at end of file diff --git a/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000.json b/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000.json new file mode 100644 index 00000000..0fef768f --- /dev/null +++ b/pytheus/graphs/CondensedMatter/aklt4spin1/other_solutions/clean-18-27-0.0455_0.0000.json @@ -0,0 +1,28 @@ +{ + "graph": { + "(0, 1, 1, 1)": 1.0, + "(2, 3, 2, 0)": 1.0, + "(0, 1, 0, 2)": -1.0, + "(2, 3, 1, 1)": -1.0, + "(2, 3, 0, 2)": 1.0, + "(1, 3, 2, 0)": -1.0, + "(1, 3, 1, 1)": 1.0, + "(1, 3, 0, 2)": -1.0, + "(1, 2, 2, 0)": 1.0, + "(1, 2, 1, 1)": -1.0, + "(1, 2, 0, 2)": 1.0, + "(0, 3, 2, 0)": -1.0, + "(0, 3, 1, 1)": 1.0, + "(0, 3, 0, 2)": -1.0, + "(0, 2, 2, 0)": -1.0, + "(0, 2, 1, 1)": 1.0, + "(0, 1, 2, 0)": -1.0, + "(0, 2, 0, 2)": -1.0 + }, + "loss": [ + 0.045454545454545414, + 0.0 + ], + "seed": 1478769822, + "history": [] +} \ No newline at end of file diff --git a/pytheus/graphs/CondensedMatter/aklt4spin1/plot_aklt4spin1.json b/pytheus/graphs/CondensedMatter/aklt4spin1/plot_aklt4spin1.json new file mode 100644 index 00000000..ba76eaa6 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/aklt4spin1/plot_aklt4spin1.json @@ -0,0 +1,28 @@ +{ + "graph": { + "(0, 1, 1, 1)": 1.0, + "(2, 3, 2, 0)": 1.0, + "(0, 1, 0, 2)": -1.0, + "(2, 3, 1, 1)": -1.0, + "(2, 3, 0, 2)": 1.0, + "(1, 3, 2, 0)": -1.0, + "(1, 3, 1, 1)": 1.0, + "(1, 3, 0, 2)": -1.0, + "(1, 2, 2, 0)": -1.0, + "(1, 2, 1, 1)": 1.0, + "(1, 2, 0, 2)": -1.0, + "(0, 3, 2, 0)": 1.0, + "(0, 3, 1, 1)": -1.0, + "(0, 3, 0, 2)": 1.0, + "(0, 2, 2, 0)": -1.0, + "(0, 2, 1, 1)": 1.0, + "(0, 1, 2, 0)": -1.0, + "(0, 2, 0, 2)": -1.0 + }, + "loss": [ + 0.045454545454545414, + 0.0 + ], + "seed": 3005078072, + "history": [] +} \ No newline at end of file diff --git a/theseus/configs/dyck6.json b/pytheus/graphs/CondensedMatter/dyck6/config_dyck6.json similarity index 100% rename from theseus/configs/dyck6.json rename to pytheus/graphs/CondensedMatter/dyck6/config_dyck6.json diff --git a/pytheus/graphs/CondensedMatter/dyck6/graph_dyck6.aux b/pytheus/graphs/CondensedMatter/dyck6/graph_dyck6.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/dyck6/graph_dyck6.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/dyck6/graph_dyck6.pdf b/pytheus/graphs/CondensedMatter/dyck6/graph_dyck6.pdf new file mode 100644 index 00000000..ec9743e9 Binary files /dev/null and b/pytheus/graphs/CondensedMatter/dyck6/graph_dyck6.pdf differ diff --git a/pytheus/graphs/CondensedMatter/dyck6/graph_dyck6.tex b/pytheus/graphs/CondensedMatter/dyck6/graph_dyck6.tex new file mode 100644 index 00000000..7a2f5553 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/dyck6/graph_dyck6.tex @@ -0,0 +1,50 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [circle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (3) to (4); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/dyck6/clean-8-5-0.1667_0.0000.json b/pytheus/graphs/CondensedMatter/dyck6/plot_dyck6_clean-8-5-0.1667_0.0000.json similarity index 100% rename from theseus/graphs/dyck6/clean-8-5-0.1667_0.0000.json rename to pytheus/graphs/CondensedMatter/dyck6/plot_dyck6_clean-8-5-0.1667_0.0000.json diff --git a/theseus/configs/dyck8.json b/pytheus/graphs/CondensedMatter/dyck8/config_dyck8.json similarity index 100% rename from theseus/configs/dyck8.json rename to pytheus/graphs/CondensedMatter/dyck8/config_dyck8.json diff --git a/pytheus/graphs/CondensedMatter/dyck8/graph_dyck8.aux b/pytheus/graphs/CondensedMatter/dyck8/graph_dyck8.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/dyck8/graph_dyck8.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/dyck8/graph_dyck8.pdf b/pytheus/graphs/CondensedMatter/dyck8/graph_dyck8.pdf new file mode 100644 index 00000000..b4d201d6 Binary files /dev/null and b/pytheus/graphs/CondensedMatter/dyck8/graph_dyck8.pdf differ diff --git a/pytheus/graphs/CondensedMatter/dyck8/graph_dyck8.tex b/pytheus/graphs/CondensedMatter/dyck8/graph_dyck8.tex new file mode 100644 index 00000000..44104d99 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/dyck8/graph_dyck8.tex @@ -0,0 +1,58 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [circle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [circle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [circle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (3) to (7); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (6) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/dyck8/clean-14-14-0.0667_0.0000.json b/pytheus/graphs/CondensedMatter/dyck8/plot_dyck8_clean-14-14-0.0667_0.0000.json similarity index 62% rename from theseus/graphs/dyck8/clean-14-14-0.0667_0.0000.json rename to pytheus/graphs/CondensedMatter/dyck8/plot_dyck8_clean-14-14-0.0667_0.0000.json index 27d11389..a9450bbe 100644 --- a/theseus/graphs/dyck8/clean-14-14-0.0667_0.0000.json +++ b/pytheus/graphs/CondensedMatter/dyck8/plot_dyck8_clean-14-14-0.0667_0.0000.json @@ -3,20 +3,20 @@ "(0, 7, 0, 1)": 1.0, "(1, 2, 1, 0)": 1.0, "(2, 4, 0, 1)": 1.0, - "(3, 7, 1, 1)": -1.0, + "(3, 7, 1, 1)": 1.0, "(0, 1, 0, 0)": 1.0, - "(5, 6, 0, 1)": -1.0, + "(5, 6, 0, 1)": 1.0, "(6, 7, 1, 1)": 1.0, "(1, 2, 0, 1)": 1.0, - "(3, 4, 0, 1)": -1.0, - "(5, 6, 1, 0)": -1.0, + "(3, 4, 0, 1)": 1.0, + "(5, 6, 1, 0)": 1.0, "(0, 4, 0, 0)": 1.0, - "(4, 5, 0, 1)": -1.0, - "(2, 3, 0, 1)": -1.0, + "(4, 5, 0, 1)": 1.0, + "(2, 3, 0, 1)": 1.0, "(3, 5, 0, 1)": 1.0 - }, + }, "loss": [ 0.06666666666666665, 0.0 ] -} \ No newline at end of file +} diff --git a/theseus/configs/haldaneA_3.json b/pytheus/graphs/CondensedMatter/haldaneA_3/config_haldaneA_3.json similarity index 100% rename from theseus/configs/haldaneA_3.json rename to pytheus/graphs/CondensedMatter/haldaneA_3/config_haldaneA_3.json diff --git a/pytheus/graphs/CondensedMatter/haldaneA_3/graph_haldaneA_3.aux b/pytheus/graphs/CondensedMatter/haldaneA_3/graph_haldaneA_3.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/haldaneA_3/graph_haldaneA_3.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/haldaneA_3/graph_haldaneA_3.pdf b/pytheus/graphs/CondensedMatter/haldaneA_3/graph_haldaneA_3.pdf new file mode 100644 index 00000000..4204bcce Binary files /dev/null and b/pytheus/graphs/CondensedMatter/haldaneA_3/graph_haldaneA_3.pdf differ diff --git a/pytheus/graphs/CondensedMatter/haldaneA_3/graph_haldaneA_3.tex b/pytheus/graphs/CondensedMatter/haldaneA_3/graph_haldaneA_3.tex new file mode 100644 index 00000000..b3ad2cc4 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/haldaneA_3/graph_haldaneA_3.tex @@ -0,0 +1,71 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [rectangle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [rectangle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col1}{col3}, bend right=-16.875, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col2}{col2}, bend right=-5.625, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col3}{col1}, bend right=5.625, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col4}{col2}, bend right=16.875, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col3}, bend right=-15.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col2}{col2}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col3}{col1}, bend right=15.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col4}{col0}, bend right=0.0, opacity=0.9375829217787494] (0) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor={col1}{col3}, bend right=-15.0, opacity=0.5127682057040758] (1) to (2); +\path[line width=4.0,bicolor={col2}{col2}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col3}{col1}, bend right=15.0, opacity=0.5127680820143611] (1) to (2); +\path[line width=4.0,bicolor={col4}{col0}, bend right=0.0, opacity=0.6837293052282912] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.4236723531932779] (1) to (4); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor={col4}{col0}, bend right=0.0, opacity=0.6972493045735166] (2) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.43015604888155123] (2) to (4); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.5952470035081526] (4) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=0.5826964340245948] (4) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/CondensedMatter/haldaneA_27edges.json b/pytheus/graphs/CondensedMatter/haldaneA_3/original_haldaneA_27edges.json similarity index 96% rename from theseus/graphs/CondensedMatter/haldaneA_27edges.json rename to pytheus/graphs/CondensedMatter/haldaneA_3/original_haldaneA_27edges.json index dae74e5f..7496a0af 100644 --- a/theseus/graphs/CondensedMatter/haldaneA_27edges.json +++ b/pytheus/graphs/CondensedMatter/haldaneA_3/original_haldaneA_27edges.json @@ -4,28 +4,28 @@ "(0, 1, 2, 2)": 1.0, "(0, 1, 3, 1)": 1.0, "(0, 1, 4, 2)": 1.0, - "(0, 2, 1, 3)": -1.0, - "(0, 2, 2, 2)": -1.0, - "(0, 2, 3, 1)": -1.0, + "(0, 2, 1, 3)": 1.0, + "(0, 2, 2, 2)": 1.0, + "(0, 2, 3, 1)": 1.0, "(0, 3, 4, 0)": 0.9375829217787494, "(0, 4, 2, 0)": 1.0, "(0, 5, 2, 0)": 1.0, "(1, 2, 1, 3)": 0.5127682057040758, "(1, 2, 2, 2)": 1.0, "(1, 2, 3, 1)": 0.5127680820143611, - "(1, 3, 4, 0)": -0.6837293052282912, - "(1, 4, 2, 0)": -1.0, + "(1, 3, 4, 0)": 0.6837293052282912, + "(1, 4, 2, 0)": 1.0, "(1, 6, 2, 0)": 1.0, "(2, 4, 2, 0)": 1.0, - "(2, 6, 2, 0)": -1.0, - "(3, 7, 0, 0)": -1.0, + "(2, 6, 2, 0)": 1.0, + "(3, 7, 0, 0)": 1.0, "(4, 6, 0, 0)": 1.0, - "(4, 7, 0, 0)": -0.5952470035081526, + "(4, 7, 0, 0)": 0.5952470035081526, "(5, 6, 0, 0)": 1.0, - "(5, 7, 0, 0)": 0.5826964340245948, + "(5, 7, 0, 0)": -0.5826964340245948, "(2, 3, 4, 0)": 0.6972493045735166, - "(0, 6, 0, 0)": 1.0, - "(1, 7, 0, 0)": -0.4236723531932779, + "(0, 6, 0, 0)": -1.0, + "(1, 7, 0, 0)": 0.4236723531932779, "(2, 7, 0, 0)": 0.43015604888155123 }, "loss": [ @@ -526,4 +526,4 @@ 0.010004352475749934 ] ] -} \ No newline at end of file +} diff --git a/pytheus/graphs/CondensedMatter/haldaneA_3/plot_haldaneA_27edges.json b/pytheus/graphs/CondensedMatter/haldaneA_3/plot_haldaneA_27edges.json new file mode 100644 index 00000000..2a9eefab --- /dev/null +++ b/pytheus/graphs/CondensedMatter/haldaneA_3/plot_haldaneA_27edges.json @@ -0,0 +1,529 @@ +{ + "graph": { + "(0, 1, 1, 3)": 1.0, + "(0, 1, 2, 2)": 1.0, + "(0, 1, 3, 1)": 1.0, + "(0, 1, 4, 2)": 1.0, + "(0, 2, 1, 3)": 1.0, + "(0, 2, 2, 2)": 1.0, + "(0, 2, 3, 1)": 1.0, + "(0, 3, 4, 0)": 0.9375829217787494, + "(0, 5, 2, 0)": 1.0, + "(0, 6, 0, 0)": -1.0, + "(0, 7, 2, 0)": 1.0, + "(1, 2, 1, 3)": 0.5127682057040758, + "(1, 2, 2, 2)": 1.0, + "(1, 2, 3, 1)": 0.5127680820143611, + "(1, 3, 4, 0)": 0.6837293052282912, + "(1, 4, 0, 0)": 0.4236723531932779, + "(1, 5, 2, 0)": 1.0, + "(1, 6, 2, 0)": 1.0, + "(2, 3, 4, 0)": 0.6972493045735166, + "(2, 4, 0, 0)": 0.43015604888155123, + "(2, 5, 2, 0)": 1.0, + "(2, 6, 2, 0)": 1.0, + "(3, 4, 0, 0)": 1.0, + "(4, 5, 0, 0)": 0.5952470035081526, + "(4, 7, 0, 0)": -0.5826964340245948, + "(5, 6, 0, 0)": 1.0, + "(6, 7, 0, 0)": 1.0 + }, + "loss": [ + 0.032276297851499436, + 0.010004352475749934 + ], + "history": [ + [ + 0.0011496640714170336, + 0.0006786990463376608 + ], + [ + 0.001148891960238707, + 0.0006779298195769279 + ], + [ + 0.0011480859942719635, + 0.0006771864531912586 + ], + [ + 0.0011517944169795458, + 0.0006809927918709491 + ], + [ + 0.0011557210711198307, + 0.0006849602763217 + ], + [ + 0.0011524084070901885, + 0.0006816238237007388 + ], + [ + 0.001152586215857565, + 0.0006819354960084789 + ], + [ + 0.0011568194743275528, + 0.0006863172481627045 + ], + [ + 0.0011561572508942408, + 0.0006857780010042225 + ], + [ + 0.001165807222081705, + 0.0006977360874633742 + ], + [ + 0.0011717864881197748, + 0.0007030511156532748 + ], + [ + 0.0011695543826227839, + 0.0007013345254117676 + ], + [ + 0.0011773790749206592, + 0.0007095958962782811 + ], + [ + 0.0011778825411653537, + 0.00071041674147998 + ], + [ + 0.0011801265944604289, + 0.0007128262731902479 + ], + [ + 0.0011995684497511094, + 0.0007323219760392297 + ], + [ + 0.0012147590273325903, + 0.0007440207808852017 + ], + [ + 0.001262656049809907, + 0.0007929556760343237 + ], + [ + 0.0013455348947422063, + 0.0008761526969357503 + ], + [ + 0.0013879517044573797, + 0.0009183706401918457 + ], + [ + 0.0014357905588384678, + 0.0009658950101766317 + ], + [ + 0.001508230924667564, + 0.0010381030035865324 + ], + [ + 0.0015618761228864964, + 0.001091598476388178 + ], + [ + 0.0013692574865580287, + 0.0008785920141440862 + ], + [ + 0.0013473267964325686, + 0.0008581031829967278 + ], + [ + 0.0013660536946942248, + 0.0008733164005014782 + ], + [ + 0.001406920317845839, + 0.0009144428563143681 + ], + [ + 0.0014987202775834652, + 0.0010067102190833843 + ], + [ + 0.001361981379740529, + 0.0008667959784282031 + ], + [ + 0.0014053510341553999, + 0.0009107493807923861 + ], + [ + 0.0013153702801813605, + 0.0008353060275776425 + ], + [ + 0.001363617739985612, + 0.000883543150256072 + ], + [ + 0.0014105995938158422, + 0.0009305777476049659 + ], + [ + 0.0013539522463157372, + 0.0008813967362667485 + ], + [ + 0.0013420618628516845, + 0.0009117150507509386 + ], + [ + 0.0013090691770545337, + 0.0008801765433191777 + ], + [ + 0.001359117214529082, + 0.0009301436135585872 + ], + [ + 0.0014188839215324434, + 0.000989788974483874 + ], + [ + 0.0014976845434505615, + 0.0010687699721738664 + ], + [ + 0.0015805498545107266, + 0.0011533746157247338 + ], + [ + 0.001570327717065223, + 0.0011435443541465418 + ], + [ + 0.0016226535124276298, + 0.0011959021681722248 + ], + [ + 0.0016145711809151253, + 0.0011850119554893679 + ], + [ + 0.0017721848668957874, + 0.0013427805403849469 + ], + [ + 0.0014324347054192055, + 0.00097890394839939 + ], + [ + 0.0014333974903225633, + 0.0009802345740309582 + ], + [ + 0.001450819830419392, + 0.001002268883224522 + ], + [ + 0.0015612788619924212, + 0.0011128390827459533 + ], + [ + 0.0015228238902447178, + 0.0010720831801420694 + ], + [ + 0.0017293317356433802, + 0.0012769559718562862 + ], + [ + 0.0015515372455369159, + 0.0010484347069137367 + ], + [ + 0.0015632424049546456, + 0.0010599906110607682 + ], + [ + 0.0017828589961933483, + 0.0012800355278609343 + ], + [ + 0.0017654789511137858, + 0.0012629214883117523 + ], + [ + 0.0018227378071128397, + 0.0013122088237362828 + ], + [ + 0.0018724749390386375, + 0.0013637909516289737 + ], + [ + 0.0019809535879690143, + 0.0014630732824920667 + ], + [ + 0.0023195609768597025, + 0.0018019815947167839 + ], + [ + 0.0019456645888199509, + 0.001296516765594946 + ], + [ + 0.001975599497441083, + 0.0013238139817219885 + ], + [ + 0.002059582851824171, + 0.001399487607993466 + ], + [ + 0.0022101245017678295, + 0.0015508084649341614 + ], + [ + 0.002043054089304719, + 0.0013256515947079883 + ], + [ + 0.0020873529978455707, + 0.0013576474354081158 + ], + [ + 0.0021645172175233096, + 0.0014368216571651882 + ], + [ + 0.002170442512253179, + 0.001454693258633677 + ], + [ + 0.002402861106766796, + 0.001688048848617174 + ], + [ + 0.0025131892086167618, + 0.0017942732046609677 + ], + [ + 0.0027514053098256497, + 0.002015173132280612 + ], + [ + 0.0035176567349631815, + 0.0027493173719069786 + ], + [ + 0.003143249189775932, + 0.0021773266536748714 + ], + [ + 0.003109166923177309, + 0.0020970509330998643 + ], + [ + 0.003501499543766884, + 0.0024695976154083255 + ], + [ + 0.0045984271833333645, + 0.0035756041781166426 + ], + [ + 0.004485133395498053, + 0.0035481523802458614 + ], + [ + 0.004490301318158529, + 0.003547488377838026 + ], + [ + 0.004519026416336724, + 0.0035597129458969645 + ], + [ + 0.004510045345631597, + 0.0035487410970409528 + ], + [ + 0.004383136857600389, + 0.0031799231937376105 + ], + [ + 0.004360352372387077, + 0.003133234794284734 + ], + [ + 0.004457671571079902, + 0.0032510836941779253 + ], + [ + 0.0045852017445874305, + 0.003230819158385523 + ], + [ + 0.004639101657395783, + 0.0032512838813054667 + ], + [ + 0.004646205161247141, + 0.0032259955941271734 + ], + [ + 0.0055357814160519325, + 0.004151044019950034 + ], + [ + 0.005741600672777736, + 0.004361135684880613 + ], + [ + 0.005848852967008766, + 0.0044142562971197785 + ], + [ + 0.005909963694356479, + 0.004475192072121437 + ], + [ + 0.00588248204125863, + 0.004460456836306914 + ], + [ + 0.006008342115286336, + 0.004393034441193988 + ], + [ + 0.005871773747584963, + 0.004319301728488267 + ], + [ + 0.005864247605869677, + 0.0042932608231469604 + ], + [ + 0.005978714905623739, + 0.004395071431071762 + ], + [ + 0.006454893999781608, + 0.004785558790063704 + ], + [ + 0.006721501326591106, + 0.0049109873780875946 + ], + [ + 0.006356107944965772, + 0.004654917343242082 + ], + [ + 0.006356306594863859, + 0.004667125293811303 + ], + [ + 0.006708946590017639, + 0.004954293676357913 + ], + [ + 0.007595693650359392, + 0.005439787505128413 + ], + [ + 0.011997652969706674, + 0.009622207835337626 + ], + [ + 0.012165693332600869, + 0.009767595833464537 + ], + [ + 0.012451095129233591, + 0.009955273505152795 + ], + [ + 0.012564522026885516, + 0.010064759251613653 + ], + [ + 0.013066468136545661, + 0.010568462105982612 + ], + [ + 0.014268835462379337, + 0.011739963626175909 + ], + [ + 0.019474924130077564, + 0.016936985501609825 + ], + [ + 0.02042148371402841, + 0.017892510395044692 + ], + [ + 0.020419595225688925, + 0.01789002006832141 + ], + [ + 0.02044814792110916, + 0.01789188944826947 + ], + [ + 0.020510841581440453, + 0.0179596226178802 + ], + [ + 0.020429693511406333, + 0.017881003292643194 + ], + [ + 0.02587333414506454, + 0.023328122211269786 + ], + [ + 0.0314845766950379, + 0.028939309578656758 + ], + [ + 0.03667121739700829, + 0.034096274118339265 + ], + [ + 0.02715661923861934, + 0.012670561694746896 + ], + [ + 0.027155026926744763, + 0.012675549617623849 + ], + [ + 0.027149997281367688, + 0.012691633174794714 + ], + [ + 0.027443114228034804, + 0.013925518655727553 + ], + [ + 0.0300823703965849, + 0.013505114974581067 + ], + [ + 0.03086223313385339, + 0.014113587860926424 + ], + [ + 0.030454944181037447, + 0.011683032257127524 + ], + [ + 0.030631886460578017, + 0.011516482156246122 + ], + [ + 0.032276297851499436, + 0.010004352475749934 + ] + ] +} diff --git a/theseus/configs/haldaneB_3.json b/pytheus/graphs/CondensedMatter/haldaneB_3/config_haldaneB_3.json similarity index 100% rename from theseus/configs/haldaneB_3.json rename to pytheus/graphs/CondensedMatter/haldaneB_3/config_haldaneB_3.json diff --git a/pytheus/graphs/CondensedMatter/haldaneB_3/graph_haldaneB_3.aux b/pytheus/graphs/CondensedMatter/haldaneB_3/graph_haldaneB_3.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/haldaneB_3/graph_haldaneB_3.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/haldaneB_3/graph_haldaneB_3.pdf b/pytheus/graphs/CondensedMatter/haldaneB_3/graph_haldaneB_3.pdf new file mode 100644 index 00000000..24d13468 Binary files /dev/null and b/pytheus/graphs/CondensedMatter/haldaneB_3/graph_haldaneB_3.pdf differ diff --git a/pytheus/graphs/CondensedMatter/haldaneB_3/graph_haldaneB_3.tex b/pytheus/graphs/CondensedMatter/haldaneB_3/graph_haldaneB_3.tex new file mode 100644 index 00000000..8b246bb6 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/haldaneB_3/graph_haldaneB_3.tex @@ -0,0 +1,57 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-15.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor_neg={col2}{col2}, bend right=15.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-15.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col2}{col2}, bend right=15.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/CondensedMatter/haldaneB_3/clean-15-10-0.0435_0.0000.json b/pytheus/graphs/CondensedMatter/haldaneB_3/plot_haldaneB_3_clean-15-10-0.0435_0.0000.json similarity index 100% rename from theseus/graphs/CondensedMatter/haldaneB_3/clean-15-10-0.0435_0.0000.json rename to pytheus/graphs/CondensedMatter/haldaneB_3/plot_haldaneB_3_clean-15-10-0.0435_0.0000.json diff --git a/theseus/configs/haldaneC_3.json b/pytheus/graphs/CondensedMatter/haldaneC_3/config_haldaneC_3.json similarity index 100% rename from theseus/configs/haldaneC_3.json rename to pytheus/graphs/CondensedMatter/haldaneC_3/config_haldaneC_3.json diff --git a/pytheus/graphs/CondensedMatter/haldaneC_3/graph_haldaneC_3.aux b/pytheus/graphs/CondensedMatter/haldaneC_3/graph_haldaneC_3.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/haldaneC_3/graph_haldaneC_3.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/haldaneC_3/graph_haldaneC_3.pdf b/pytheus/graphs/CondensedMatter/haldaneC_3/graph_haldaneC_3.pdf new file mode 100644 index 00000000..fb8625ae Binary files /dev/null and b/pytheus/graphs/CondensedMatter/haldaneC_3/graph_haldaneC_3.pdf differ diff --git a/pytheus/graphs/CondensedMatter/haldaneC_3/graph_haldaneC_3.tex b/pytheus/graphs/CondensedMatter/haldaneC_3/graph_haldaneC_3.tex new file mode 100644 index 00000000..55f34e7e --- /dev/null +++ b/pytheus/graphs/CondensedMatter/haldaneC_3/graph_haldaneC_3.tex @@ -0,0 +1,57 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col1}, bend right=-15.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col2}{col2}, bend right=15.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-15.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col2}{col2}, bend right=15.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/CondensedMatter/haldaneC_3/clean-15-10-0.0435_0.0000.json b/pytheus/graphs/CondensedMatter/haldaneC_3/plot_haldaneC_3_clean-15-10-0.0435_0.0000.json similarity index 100% rename from theseus/graphs/CondensedMatter/haldaneC_3/clean-15-10-0.0435_0.0000.json rename to pytheus/graphs/CondensedMatter/haldaneC_3/plot_haldaneC_3_clean-15-10-0.0435_0.0000.json diff --git a/theseus/configs/maj_4.json b/pytheus/graphs/CondensedMatter/majumdar4/config_majumdar4.json similarity index 100% rename from theseus/configs/maj_4.json rename to pytheus/graphs/CondensedMatter/majumdar4/config_majumdar4.json diff --git a/pytheus/graphs/CondensedMatter/majumdar4/graph_majumdar4.aux b/pytheus/graphs/CondensedMatter/majumdar4/graph_majumdar4.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/majumdar4/graph_majumdar4.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/majumdar4/graph_majumdar4.pdf b/pytheus/graphs/CondensedMatter/majumdar4/graph_majumdar4.pdf new file mode 100644 index 00000000..03861c29 Binary files /dev/null and b/pytheus/graphs/CondensedMatter/majumdar4/graph_majumdar4.pdf differ diff --git a/pytheus/graphs/CondensedMatter/majumdar4/graph_majumdar4.tex b/pytheus/graphs/CondensedMatter/majumdar4/graph_majumdar4.tex new file mode 100644 index 00000000..74574165 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/majumdar4/graph_majumdar4.tex @@ -0,0 +1,48 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [circle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/CondensedMatter/maj_4/clean-9-8-0.0769_0.0000.json b/pytheus/graphs/CondensedMatter/majumdar4/plot_majumdar4_clean-9-8-0.0769_0.0000.json similarity index 91% rename from theseus/graphs/CondensedMatter/maj_4/clean-9-8-0.0769_0.0000.json rename to pytheus/graphs/CondensedMatter/majumdar4/plot_majumdar4_clean-9-8-0.0769_0.0000.json index 431f9c4b..3f768c24 100644 --- a/theseus/graphs/CondensedMatter/maj_4/clean-9-8-0.0769_0.0000.json +++ b/pytheus/graphs/CondensedMatter/majumdar4/plot_majumdar4_clean-9-8-0.0769_0.0000.json @@ -1,15 +1,13 @@ { "graph": { - "(0, 1, 0, 1)": 1.0, - "(0, 1, 1, 0)": -1.0, - "(0, 3, 0, 1)": 1.0, - "(0, 3, 1, 0)": -1.0, - "(1, 2, 0, 1)": -1.0, - "(1, 2, 1, 0)": 1.0, - "(2, 3, 0, 1)": 1.0, - "(2, 3, 1, 0)": -1.0, - "(4, 5, 0, 0)": 1.0 - }, + "(0, 1, 0, 1)": 1.0, + "(0, 1, 1, 0)": -1.0, + "(0, 3, 0, 1)": 1.0, + "(0, 3, 1, 0)": -1.0, + "(1, 2, 0, 1)": -1.0, + "(1, 2, 1, 0)": 1.0, + "(2, 3, 0, 1)": 1.0, + "(2, 3, 1, 0)": -1.0}, "loss": [ 0.07692307692307687, 0.0 @@ -140,4 +138,4 @@ 0.0 ] ] -} \ No newline at end of file +} diff --git a/theseus/configs/maj_6.json b/pytheus/graphs/CondensedMatter/majumdar6/config_majumdar6.json similarity index 100% rename from theseus/configs/maj_6.json rename to pytheus/graphs/CondensedMatter/majumdar6/config_majumdar6.json diff --git a/pytheus/graphs/CondensedMatter/majumdar6/graph_majumdar6.aux b/pytheus/graphs/CondensedMatter/majumdar6/graph_majumdar6.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/majumdar6/graph_majumdar6.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/majumdar6/graph_majumdar6.pdf b/pytheus/graphs/CondensedMatter/majumdar6/graph_majumdar6.pdf new file mode 100644 index 00000000..d4154cec Binary files /dev/null and b/pytheus/graphs/CondensedMatter/majumdar6/graph_majumdar6.pdf differ diff --git a/pytheus/graphs/CondensedMatter/majumdar6/graph_majumdar6.tex b/pytheus/graphs/CondensedMatter/majumdar6/graph_majumdar6.tex new file mode 100644 index 00000000..3aebf5e7 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/majumdar6/graph_majumdar6.tex @@ -0,0 +1,71 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [circle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [rectangle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-11.25, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-11.25, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (4) to (6); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (4) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/CondensedMatter/maj_6/clean-27-112-0.0204_0.0000.json b/pytheus/graphs/CondensedMatter/majumdar6/plot_majumdar6_clean-27-112-0.0204_0.0000.json similarity index 85% rename from theseus/graphs/CondensedMatter/maj_6/clean-27-112-0.0204_0.0000.json rename to pytheus/graphs/CondensedMatter/majumdar6/plot_majumdar6_clean-27-112-0.0204_0.0000.json index 101215ac..713e6da4 100644 --- a/theseus/graphs/CondensedMatter/maj_6/clean-27-112-0.0204_0.0000.json +++ b/pytheus/graphs/CondensedMatter/majumdar6/plot_majumdar6_clean-27-112-0.0204_0.0000.json @@ -1,32 +1,32 @@ { "graph": { - "(0, 1, 0, 1)": -1.0, - "(0, 1, 1, 0)": 1.0, - "(0, 3, 0, 1)": -0.9987727831832205, - "(0, 3, 1, 0)": 0.9997773845327542, - "(0, 4, 0, 1)": -1.0, - "(0, 4, 1, 1)": 0.9956214857149946, - "(0, 7, 1, 0)": 1.0, - "(1, 2, 0, 1)": -1.0, - "(1, 2, 1, 0)": 1.0, - "(1, 5, 0, 1)": -1.0, - "(1, 5, 1, 0)": 1.0, - "(1, 6, 0, 0)": -0.9924940415489583, - "(1, 6, 1, 0)": 1.0, - "(1, 7, 0, 0)": -1.0, - "(2, 3, 0, 1)": -1.0, - "(2, 3, 1, 0)": 1.0, - "(2, 6, 0, 0)": 1.0, - "(2, 6, 1, 0)": -1.0, - "(2, 7, 0, 0)": -1.0, - "(3, 5, 0, 1)": 1.0, - "(3, 5, 1, 0)": -1.0, - "(4, 6, 0, 0)": -1.0, - "(4, 6, 1, 0)": 1.0, - "(4, 7, 0, 0)": -1.0, - "(5, 6, 0, 0)": 1.0, - "(5, 6, 1, 0)": -1.0, - "(5, 7, 0, 0)": -1.0 + "(0, 1, 0, 1)": 1.0, + "(0, 1, 1, 0)": -1.0, + "(0, 3, 0, 1)": 1.0, + "(0, 3, 1, 0)": -1.0, + "(0, 4, 0, 1)": -1.0, + "(0, 4, 1, 1)": 1.0, + "(0, 7, 1, 0)": 1.0, + "(1, 2, 0, 1)": -1.0, + "(1, 2, 1, 0)": 1.0, + "(1, 5, 0, 1)": 1.0, + "(1, 5, 1, 0)": -1.0, + "(1, 6, 0, 0)": -1.0, + "(1, 6, 1, 0)": 1.0, + "(1, 7, 0, 0)": -1.0, + "(2, 3, 0, 1)": -1.0, + "(2, 3, 1, 0)": 1.0, + "(2, 6, 0, 0)": -1.0, + "(2, 6, 1, 0)": 1.0, + "(2, 7, 0, 0)": 1.0, + "(3, 5, 0, 1)": -1.0, + "(3, 5, 1, 0)": 1.0, + "(4, 6, 0, 0)": 1.0, + "(4, 6, 1, 0)": -1.0, + "(4, 7, 0, 0)": 1.0, + "(5, 6, 0, 0)": 1.0, + "(5, 6, 1, 0)": -1.0, + "(5, 7, 0, 0)": -1.0 }, "loss": [ 0.02039763252135318, @@ -254,4 +254,4 @@ 5.4256142984376865e-05 ] ] -} \ No newline at end of file +} diff --git a/theseus/configs/motzkin3.json b/pytheus/graphs/CondensedMatter/motzkin3/config_motzkin3.json similarity index 100% rename from theseus/configs/motzkin3.json rename to pytheus/graphs/CondensedMatter/motzkin3/config_motzkin3.json diff --git a/pytheus/graphs/CondensedMatter/motzkin3/graph_motzkin3.aux b/pytheus/graphs/CondensedMatter/motzkin3/graph_motzkin3.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/motzkin3/graph_motzkin3.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/motzkin3/graph_motzkin3.pdf b/pytheus/graphs/CondensedMatter/motzkin3/graph_motzkin3.pdf new file mode 100644 index 00000000..d0c26dcb Binary files /dev/null and b/pytheus/graphs/CondensedMatter/motzkin3/graph_motzkin3.pdf differ diff --git a/pytheus/graphs/CondensedMatter/motzkin3/graph_motzkin3.tex b/pytheus/graphs/CondensedMatter/motzkin3/graph_motzkin3.tex new file mode 100644 index 00000000..31c040d2 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/motzkin3/graph_motzkin3.tex @@ -0,0 +1,47 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col2}, bend right=11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/motzkin3/clean-7-4-0.2000_0.0000.json b/pytheus/graphs/CondensedMatter/motzkin3/plot_motzkin3_clean-7-4-0.2000_0.0000.json similarity index 93% rename from theseus/graphs/motzkin3/clean-7-4-0.2000_0.0000.json rename to pytheus/graphs/CondensedMatter/motzkin3/plot_motzkin3_clean-7-4-0.2000_0.0000.json index 44ae7232..8fbd78e7 100644 --- a/theseus/graphs/motzkin3/clean-7-4-0.2000_0.0000.json +++ b/pytheus/graphs/CondensedMatter/motzkin3/plot_motzkin3_clean-7-4-0.2000_0.0000.json @@ -1,11 +1,11 @@ { "graph": { - "(0, 2, 0, 0)": -1.0, - "(1, 2, 2, 0)": -1.0, + "(0, 2, 0, 0)": 1.0, + "(1, 2, 2, 0)": 1.0, "(2, 3, 2, 0)": 1.0, - "(0, 1, 0, 1)": -1.0, + "(0, 1, 0, 1)": 1.0, "(1, 3, 0, 0)": 1.0, - "(0, 2, 1, 2)": -1.0, + "(0, 2, 1, 2)": 1.0, "(0, 3, 1, 0)": 1.0 }, "loss": [ diff --git a/theseus/configs/motzkin4.json b/pytheus/graphs/CondensedMatter/motzkin4/config_motzkin4.json similarity index 100% rename from theseus/configs/motzkin4.json rename to pytheus/graphs/CondensedMatter/motzkin4/config_motzkin4.json diff --git a/pytheus/graphs/CondensedMatter/motzkin4/graph_motzkin4.aux b/pytheus/graphs/CondensedMatter/motzkin4/graph_motzkin4.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/motzkin4/graph_motzkin4.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/motzkin4/graph_motzkin4.pdf b/pytheus/graphs/CondensedMatter/motzkin4/graph_motzkin4.pdf new file mode 100644 index 00000000..1b3d3a6a Binary files /dev/null and b/pytheus/graphs/CondensedMatter/motzkin4/graph_motzkin4.pdf differ diff --git a/pytheus/graphs/CondensedMatter/motzkin4/graph_motzkin4.tex b/pytheus/graphs/CondensedMatter/motzkin4/graph_motzkin4.tex new file mode 100644 index 00000000..437e19cd --- /dev/null +++ b/pytheus/graphs/CondensedMatter/motzkin4/graph_motzkin4.tex @@ -0,0 +1,52 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [circle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col2}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col2}{col2}, bend right=11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col2}, bend right=-11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/motzkin4/clean-12-12-0.1111_0.0000.json b/pytheus/graphs/CondensedMatter/motzkin4/plot_motzkin4_clean-12-12-0.1111_0.0000.json similarity index 80% rename from theseus/graphs/motzkin4/clean-12-12-0.1111_0.0000.json rename to pytheus/graphs/CondensedMatter/motzkin4/plot_motzkin4_clean-12-12-0.1111_0.0000.json index 95085b82..41be1705 100644 --- a/theseus/graphs/motzkin4/clean-12-12-0.1111_0.0000.json +++ b/pytheus/graphs/CondensedMatter/motzkin4/plot_motzkin4_clean-12-12-0.1111_0.0000.json @@ -1,17 +1,17 @@ { "graph": { - "(0, 1, 1, 0)": -1.0, - "(0, 2, 1, 1)": -1.0, - "(0, 3, 1, 0)": 1.0, - "(1, 2, 2, 0)": 1.0, - "(1, 3, 2, 2)": -1.0, - "(2, 3, 2, 0)": -1.0, - "(0, 2, 0, 0)": -1.0, - "(1, 2, 0, 1)": -1.0, - "(2, 3, 0, 2)": -1.0, - "(0, 3, 0, 2)": -1.0, - "(0, 1, 0, 1)": -1.0, - "(1, 3, 0, 0)": -1.0 + "(0, 1, 1, 0)": 1.0, + "(0, 2, 1, 1)": 1.0, + "(0, 3, 1, 0)": -1.0, + "(1, 2, 2, 0)": -1.0, + "(1, 3, 2, 2)": 1.0, + "(2, 3, 2, 0)": 1.0, + "(0, 2, 0, 0)": 1.0, + "(1, 2, 0, 1)": 1.0, + "(2, 3, 0, 2)": 1.0, + "(0, 3, 0, 2)": 1.0, + "(0, 1, 0, 1)": 1.0, + "(1, 3, 0, 0)": 1.0 }, "loss": [ 0.11111111111111116, diff --git a/theseus/configs/nbody_3.json b/pytheus/graphs/CondensedMatter/nbody3/config_nbody3.json similarity index 100% rename from theseus/configs/nbody_3.json rename to pytheus/graphs/CondensedMatter/nbody3/config_nbody3.json diff --git a/pytheus/graphs/CondensedMatter/nbody3/graph_nbody3.aux b/pytheus/graphs/CondensedMatter/nbody3/graph_nbody3.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/nbody3/graph_nbody3.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/nbody3/graph_nbody3.pdf b/pytheus/graphs/CondensedMatter/nbody3/graph_nbody3.pdf new file mode 100644 index 00000000..5f7b5640 Binary files /dev/null and b/pytheus/graphs/CondensedMatter/nbody3/graph_nbody3.pdf differ diff --git a/pytheus/graphs/CondensedMatter/nbody3/graph_nbody3.tex b/pytheus/graphs/CondensedMatter/nbody3/graph_nbody3.tex new file mode 100644 index 00000000..a4abdc94 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/nbody3/graph_nbody3.tex @@ -0,0 +1,46 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-15.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=15.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/CondensedMatter/nbody3.json b/pytheus/graphs/CondensedMatter/nbody3/plot_nbody3.json similarity index 86% rename from theseus/graphs/CondensedMatter/nbody3.json rename to pytheus/graphs/CondensedMatter/nbody3/plot_nbody3.json index 3d37f68b..9393a471 100644 --- a/theseus/graphs/CondensedMatter/nbody3.json +++ b/pytheus/graphs/CondensedMatter/nbody3/plot_nbody3.json @@ -1,11 +1,11 @@ { "graph": { - "(0, 3, 0, 0)": -1.0, - "(1, 2, 0, 1)": 1.0, - "(2, 3, 0, 0)": 1.0, - "(1, 2, 0, 0)": 1.0, - "(0, 1, 1, 0)": -1.0, - "(1, 2, 1, 0)": 1.0 + "(0, 3, 0, 0)": 1.0, + "(1, 2, 0, 1)": 1.0, + "(2, 3, 0, 0)": 1.0, + "(1, 2, 0, 0)": 1.0, + "(0, 1, 1, 0)": 1.0, + "(1, 2, 1, 0)": 1.0 }, "loss": [ 0.19999999999999996, @@ -61,4 +61,4 @@ 0.0 ] ] -} \ No newline at end of file +} diff --git a/theseus/configs/nbody_4.json b/pytheus/graphs/CondensedMatter/nbody4/config_nbody4.json similarity index 100% rename from theseus/configs/nbody_4.json rename to pytheus/graphs/CondensedMatter/nbody4/config_nbody4.json diff --git a/pytheus/graphs/CondensedMatter/nbody4/graph_nbody4.aux b/pytheus/graphs/CondensedMatter/nbody4/graph_nbody4.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/nbody4/graph_nbody4.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/nbody4/graph_nbody4.pdf b/pytheus/graphs/CondensedMatter/nbody4/graph_nbody4.pdf new file mode 100644 index 00000000..a63863eb Binary files /dev/null and b/pytheus/graphs/CondensedMatter/nbody4/graph_nbody4.pdf differ diff --git a/pytheus/graphs/CondensedMatter/nbody4/graph_nbody4.tex b/pytheus/graphs/CondensedMatter/nbody4/graph_nbody4.tex new file mode 100644 index 00000000..b044bcd6 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/nbody4/graph_nbody4.tex @@ -0,0 +1,50 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [circle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-15.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=15.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=11.25, opacity=1.0] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/CondensedMatter/nbody4.json b/pytheus/graphs/CondensedMatter/nbody4/plot_nbody4.json similarity index 80% rename from theseus/graphs/CondensedMatter/nbody4.json rename to pytheus/graphs/CondensedMatter/nbody4/plot_nbody4.json index 56030f9b..b43edca2 100644 --- a/theseus/graphs/CondensedMatter/nbody4.json +++ b/pytheus/graphs/CondensedMatter/nbody4/plot_nbody4.json @@ -1,15 +1,15 @@ { "graph": { - "(0, 2, 0, 1)": -1.0, - "(0, 2, 1, 1)": -1.0, - "(0, 3, 0, 1)": 1.0, - "(1, 3, 0, 0)": -1.0, - "(2, 3, 0, 1)": -1.0, - "(0, 2, 1, 0)": -1.0, - "(1, 2, 0, 0)": 1.0, - "(0, 1, 0, 1)": -1.0, - "(2, 3, 0, 0)": -1.0, - "(0, 3, 0, 0)": 1.0 + "(0, 2, 0, 1)": 1.0, + "(0, 2, 1, 1)": 1.0, + "(0, 3, 0, 1)": 1.0, + "(1, 3, 0, 0)": 1.0, + "(2, 3, 0, 1)": 1.0, + "(0, 2, 1, 0)": 1.0, + "(1, 2, 0, 0)": 1.0, + "(0, 1, 0, 1)": 1.0, + "(2, 3, 0, 0)": 1.0, + "(0, 3, 0, 0)": 1.0 }, "loss": [ 0.125, @@ -69,4 +69,4 @@ 0.0 ] ] -} \ No newline at end of file +} diff --git a/theseus/configs/nbody_5.json b/pytheus/graphs/CondensedMatter/nbody5/config_nbody5.json similarity index 100% rename from theseus/configs/nbody_5.json rename to pytheus/graphs/CondensedMatter/nbody5/config_nbody5.json diff --git a/pytheus/graphs/CondensedMatter/nbody5/graph_nbody5.aux b/pytheus/graphs/CondensedMatter/nbody5/graph_nbody5.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/nbody5/graph_nbody5.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/nbody5/graph_nbody5.pdf b/pytheus/graphs/CondensedMatter/nbody5/graph_nbody5.pdf new file mode 100644 index 00000000..bd5c2656 Binary files /dev/null and b/pytheus/graphs/CondensedMatter/nbody5/graph_nbody5.pdf differ diff --git a/pytheus/graphs/CondensedMatter/nbody5/graph_nbody5.tex b/pytheus/graphs/CondensedMatter/nbody5/graph_nbody5.tex new file mode 100644 index 00000000..8cccfc42 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/nbody5/graph_nbody5.tex @@ -0,0 +1,55 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col0}{col1}, bend right=11.25, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/CondensedMatter/nbody5/plot_nbody5.json b/pytheus/graphs/CondensedMatter/nbody5/plot_nbody5.json new file mode 100644 index 00000000..b02a97f4 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/nbody5/plot_nbody5.json @@ -0,0 +1,21 @@ +{ + "graph": { + "(0, 4, 0, 0)": 1.0, + "(0, 5, 0, 0)": 1.0, + "(1, 2, 1, 0)": 1.0, + "(2, 3, 1, 0)": 1.0, + "(2, 4, 1, 0)": 1.0, + "(3, 4, 1, 0)": 1.0, + "(0, 1, 1, 0)": 1.0, + "(1, 2, 0, 0)": 1.0, + "(2, 4, 0, 0)": 1.0, + "(3, 5, 0, 0)": 1.0, + "(0, 4, 0, 1)": 1.0, + "(1, 5, 0, 0)": 1.0, + "(2, 5, 0, 0)": 1.0 + }, + "loss": 0.08333333333333337, + "secondary losses": [ + 0.0 + ] +} diff --git a/theseus/configs/nbody_6.json b/pytheus/graphs/CondensedMatter/nbody6/config_nbody6.json similarity index 100% rename from theseus/configs/nbody_6.json rename to pytheus/graphs/CondensedMatter/nbody6/config_nbody6.json diff --git a/pytheus/graphs/CondensedMatter/nbody6/graph_nbody6.aux b/pytheus/graphs/CondensedMatter/nbody6/graph_nbody6.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/nbody6/graph_nbody6.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/nbody6/graph_nbody6.pdf b/pytheus/graphs/CondensedMatter/nbody6/graph_nbody6.pdf new file mode 100644 index 00000000..0de2d317 Binary files /dev/null and b/pytheus/graphs/CondensedMatter/nbody6/graph_nbody6.pdf differ diff --git a/pytheus/graphs/CondensedMatter/nbody6/graph_nbody6.tex b/pytheus/graphs/CondensedMatter/nbody6/graph_nbody6.tex new file mode 100644 index 00000000..ecadfdab --- /dev/null +++ b/pytheus/graphs/CondensedMatter/nbody6/graph_nbody6.tex @@ -0,0 +1,58 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [circle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-15.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=15.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-15.0, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=0.0, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=15.0, opacity=1.0] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/CondensedMatter/nbody6.json b/pytheus/graphs/CondensedMatter/nbody6/plot_nbody6.json similarity index 88% rename from theseus/graphs/CondensedMatter/nbody6.json rename to pytheus/graphs/CondensedMatter/nbody6/plot_nbody6.json index 20945205..e595d5e9 100644 --- a/theseus/graphs/CondensedMatter/nbody6.json +++ b/pytheus/graphs/CondensedMatter/nbody6/plot_nbody6.json @@ -1,21 +1,21 @@ { - "graph": { - "(0, 1, 0, 0)": 1.0, - "(0, 1, 1, 0)": 1.0, - "(0, 3, 0, 0)": 1.0, - "(0, 3, 0, 1)": 1.0, - "(0, 4, 1, 0)": -1.0, - "(0, 5, 0, 0)": 1.0, - "(1, 2, 1, 0)": 1.0, - "(1, 5, 0, 1)": 0.9999990119015131, - "(2, 3, 0, 0)": 1.0, - "(2, 3, 0, 1)": 1.0, - "(2, 3, 1, 0)": 1.0, - "(2, 5, 0, 0)": 1.0, - "(3, 4, 1, 1)": -1.0, - "(4, 5, 0, 0)": 1.0, - "(4, 5, 0, 1)": 1.0, - "(4, 5, 1, 0)": 1.0 + "graph":{ + "(0, 1, 0, 0)": 1.0, + "(0, 1, 1, 0)": 1.0, + "(0, 3, 0, 0)": 1.0, + "(0, 3, 0, 1)": 1.0, + "(0, 4, 1, 0)": 1.0, + "(0, 5, 0, 0)": 1.0, + "(1, 2, 1, 0)": 1.0, + "(1, 5, 0, 1)": 1.0, + "(2, 3, 0, 0)": 1.0, + "(2, 3, 0, 1)": 1.0, + "(2, 3, 1, 0)": 1.0, + "(2, 5, 0, 0)": 1.0, + "(3, 4, 1, 1)": 1.0, + "(4, 5, 0, 0)": -1.0, + "(4, 5, 0, 1)": -1.0, + "(4, 5, 1, 0)": -1.0 }, "loss": [ 0.05263157894751458, @@ -191,4 +191,4 @@ 4.739514536389322e-08 ] ] -} \ No newline at end of file +} diff --git a/theseus/configs/oneDspinhalfwire.json b/pytheus/graphs/CondensedMatter/oneDspinhalfwire/config_oneDspinhalfwire.json similarity index 100% rename from theseus/configs/oneDspinhalfwire.json rename to pytheus/graphs/CondensedMatter/oneDspinhalfwire/config_oneDspinhalfwire.json diff --git a/pytheus/graphs/CondensedMatter/oneDspinhalfwire/graph_oneDspinhalfwire.aux b/pytheus/graphs/CondensedMatter/oneDspinhalfwire/graph_oneDspinhalfwire.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/oneDspinhalfwire/graph_oneDspinhalfwire.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/oneDspinhalfwire/graph_oneDspinhalfwire.pdf b/pytheus/graphs/CondensedMatter/oneDspinhalfwire/graph_oneDspinhalfwire.pdf new file mode 100644 index 00000000..9b6ba781 Binary files /dev/null and b/pytheus/graphs/CondensedMatter/oneDspinhalfwire/graph_oneDspinhalfwire.pdf differ diff --git a/pytheus/graphs/CondensedMatter/oneDspinhalfwire/graph_oneDspinhalfwire.tex b/pytheus/graphs/CondensedMatter/oneDspinhalfwire/graph_oneDspinhalfwire.tex new file mode 100644 index 00000000..c988e212 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/oneDspinhalfwire/graph_oneDspinhalfwire.tex @@ -0,0 +1,46 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-16.875, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-5.625, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=5.625, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=16.875, opacity=1.0] (1) to (2); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/CondensedMatter/oneDspinhalfwire/clean-6-8-0.1137_0.0029.json b/pytheus/graphs/CondensedMatter/oneDspinhalfwire/plot_oneDspinhalfwire_clean-6-8-0.1137_0.0029.json similarity index 100% rename from theseus/graphs/CondensedMatter/oneDspinhalfwire/clean-6-8-0.1137_0.0029.json rename to pytheus/graphs/CondensedMatter/oneDspinhalfwire/plot_oneDspinhalfwire_clean-6-8-0.1137_0.0029.json diff --git a/theseus/configs/oneDspinhalfwireREAL.json b/pytheus/graphs/CondensedMatter/oneDspinhalfwire4/config_oneDspinhalfwire4.json similarity index 100% rename from theseus/configs/oneDspinhalfwireREAL.json rename to pytheus/graphs/CondensedMatter/oneDspinhalfwire4/config_oneDspinhalfwire4.json diff --git a/pytheus/graphs/CondensedMatter/oneDspinhalfwire4/graph_oneDspinhalfwire4.aux b/pytheus/graphs/CondensedMatter/oneDspinhalfwire4/graph_oneDspinhalfwire4.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/oneDspinhalfwire4/graph_oneDspinhalfwire4.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/oneDspinhalfwire4/graph_oneDspinhalfwire4.pdf b/pytheus/graphs/CondensedMatter/oneDspinhalfwire4/graph_oneDspinhalfwire4.pdf new file mode 100644 index 00000000..60854055 Binary files /dev/null and b/pytheus/graphs/CondensedMatter/oneDspinhalfwire4/graph_oneDspinhalfwire4.pdf differ diff --git a/pytheus/graphs/CondensedMatter/oneDspinhalfwire4/graph_oneDspinhalfwire4.tex b/pytheus/graphs/CondensedMatter/oneDspinhalfwire4/graph_oneDspinhalfwire4.tex new file mode 100644 index 00000000..76a4e93f --- /dev/null +++ b/pytheus/graphs/CondensedMatter/oneDspinhalfwire4/graph_oneDspinhalfwire4.tex @@ -0,0 +1,55 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [circle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col1}, bend right=-15.0, opacity=0.7056014541695598] (0) to (1); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.7911365668649626] (0) to (1); +\path[line width=4.0,bicolor={col1}{col1}, bend right=15.0, opacity=0.9992995424818247] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-15.0, opacity=0.8326885930821386] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=15.0, opacity=0.7991809502929133] (0) to (2); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=0.9992290997806463] (0) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=0.8551857242001789] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-15.0, opacity=0.9987055897281827] (1) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=0.7042990808484234] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=15.0, opacity=0.8226766092580596] (1) to (2); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-11.25, opacity=0.8532757432072412] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=0.8879675328251263] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=0.8889726344328432] (2) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=0.9981046101869264] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/CondensedMatter/oneDspinhalfwire4_15edges.json b/pytheus/graphs/CondensedMatter/oneDspinhalfwire4/plot_oneDspinhalfwire4_15edges.json similarity index 75% rename from theseus/graphs/CondensedMatter/oneDspinhalfwire4_15edges.json rename to pytheus/graphs/CondensedMatter/oneDspinhalfwire4/plot_oneDspinhalfwire4_15edges.json index c5929575..a8e139f9 100644 --- a/theseus/graphs/CondensedMatter/oneDspinhalfwire4_15edges.json +++ b/pytheus/graphs/CondensedMatter/oneDspinhalfwire4/plot_oneDspinhalfwire4_15edges.json @@ -1,18 +1,18 @@ { "graph": { - "(0, 1, 1, 1)": -0.9992995424818247, - "(0, 2, 1, 0)": -1.0, - "(0, 3, 0, 0)": 0.9992290997806463, + "(0, 1, 1, 1)": 0.9992995424818247, + "(0, 2, 1, 0)": 1.0, + "(0, 3, 0, 0)": -0.9992290997806463, "(1, 2, 0, 0)": 0.9987055897281827, "(2, 3, 1, 1)": 0.9981046101869264, "(1, 2, 0, 1)": 0.7042990808484234, - "(0, 1, 0, 1)": -0.7056014541695598, - "(0, 1, 1, 0)": -0.7911365668649626, - "(0, 2, 1, 1)": -0.7991809502929133, + "(0, 1, 0, 1)": 0.7056014541695598, + "(0, 1, 1, 0)": 0.7911365668649626, + "(0, 2, 1, 1)": 0.7991809502929133, "(1, 2, 1, 0)": 0.8226766092580596, - "(0, 2, 0, 0)": -0.8326885930821386, + "(0, 2, 0, 0)": 0.8326885930821386, "(1, 3, 0, 1)": -0.8532757432072412, - "(0, 3, 1, 1)": -0.8551857242001789, + "(0, 3, 1, 1)": 0.8551857242001789, "(1, 3, 1, 0)": 0.8879675328251263, "(2, 3, 0, 0)": -0.8889726344328432 }, @@ -50,4 +50,4 @@ 0.1431126961241853 ] ] -} \ No newline at end of file +} diff --git a/theseus/configs/onsager_6.json b/pytheus/graphs/CondensedMatter/onsager6/config_onsager6.json similarity index 88% rename from theseus/configs/onsager_6.json rename to pytheus/graphs/CondensedMatter/onsager6/config_onsager6.json index 7b3e96ca..5375c632 100644 --- a/theseus/configs/onsager_6.json +++ b/pytheus/graphs/CondensedMatter/onsager6/config_onsager6.json @@ -2,9 +2,9 @@ "description": "Onsager scar of six particles.", "bulk_thr": 0.01, "edges_tried": 10, - "foldername": "onsager_cr", + "foldername": "onsager_fid", "ftol": 1e-05, - "loss_func": "cr", + "loss_func": "fid", "num_anc": 0, "num_pre": 1, "optimizer": "L-BFGS-B", @@ -24,9 +24,9 @@ 0.5, -0.5, 0.5, 0.5 ], "thresholds": [ - 0.1, - 0.01 + 0.01, + 0.1 ], "tries_per_edge": 5, "unicolor": false -} \ No newline at end of file +} diff --git a/pytheus/graphs/CondensedMatter/onsager6/graph_onsager6.aux b/pytheus/graphs/CondensedMatter/onsager6/graph_onsager6.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/onsager6/graph_onsager6.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/onsager6/graph_onsager6.pdf b/pytheus/graphs/CondensedMatter/onsager6/graph_onsager6.pdf new file mode 100644 index 00000000..3d7417eb Binary files /dev/null and b/pytheus/graphs/CondensedMatter/onsager6/graph_onsager6.pdf differ diff --git a/pytheus/graphs/CondensedMatter/onsager6/graph_onsager6.tex b/pytheus/graphs/CondensedMatter/onsager6/graph_onsager6.tex new file mode 100644 index 00000000..d9b725ab --- /dev/null +++ b/pytheus/graphs/CondensedMatter/onsager6/graph_onsager6.tex @@ -0,0 +1,59 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [circle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.8281730155823372] (0) to (1); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=0.8320315991839049] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.9942380269010292] (0) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.7048633937283115] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.7396757115626229] (0) to (5); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=0.7375388771522547] (0) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.8009434110858349] (1) to (2); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=0.7987070150052564] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.6800939556332962] (2) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=0.6901468352356731] (2) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.7046596948895453] (2) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.883248201509705] (3) to (4); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=0.8715958783846268] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.8915857429222812] (4) to (5); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=0.905461964630284] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/CondensedMatter/onsager6/plot_onsager6.json b/pytheus/graphs/CondensedMatter/onsager6/plot_onsager6.json new file mode 100644 index 00000000..b67a9767 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/onsager6/plot_onsager6.json @@ -0,0 +1,159 @@ +{ + "graph": { + "(0, 2, 0, 0)": 0.9942380269010292, + "(1, 4, 0, 0)": 1.0, + "(3, 4, 0, 0)": 0.883248201509705, + "(3, 4, 1, 1)": -0.8715958783846268, + "(3, 5, 0, 0)": -1.0, + "(4, 5, 0, 0)": 0.8915857429222812, + "(4, 5, 1, 1)": 0.905461964630284, + "(2, 3, 0, 0)": 0.6800939556332962, + "(2, 3, 1, 1)": 0.6901468352356731, + "(2, 5, 0, 0)": 0.7046596948895453, + "(0, 3, 0, 0)": 0.7048633937283115, + "(0, 5, 1, 1)": -0.7375388771522547, + "(0, 5, 0, 0)": 0.7396757115626229, + "(1, 2, 1, 1)": -0.7987070150052564, + "(1, 2, 0, 0)": 0.8009434110858349, + "(0, 1, 0, 0)": 0.8281730155823372, + "(0, 1, 1, 1)": 0.8320315991839049 + }, + "loss": [ + 1.586341838544225e-05, + 0.07221935664061341 + ], + "history": [ + [ + 6.814131404431212e-05, + 0.06262880276211291 + ], + [ + 6.582798374565879e-05, + 0.06269999222125744 + ], + [ + 6.386017860471327e-05, + 0.06277420184201155 + ], + [ + 6.205036213902115e-05, + 0.0628489988923513 + ], + [ + 6.055167868534994e-05, + 0.06292590852251101 + ], + [ + 5.904959552827105e-05, + 0.06300396686065102 + ], + [ + 5.766358105463443e-05, + 0.06307827175523717 + ], + [ + 5.6441782986582645e-05, + 0.06315451932895666 + ], + [ + 5.549621310463326e-05, + 0.0632284565404585 + ], + [ + 5.4066134768104845e-05, + 0.0633085685696636 + ], + [ + 5.345737288664498e-05, + 0.06338596028523191 + ], + [ + 5.506364764318317e-05, + 0.0634517480105593 + ], + [ + 5.351486243354575e-05, + 0.06350197610678554 + ], + [ + 5.27704997010936e-05, + 0.0635903962116221 + ], + [ + 5.3068145129286926e-05, + 0.06369149999312806 + ], + [ + 5.322736341095702e-05, + 0.06379323612213328 + ], + [ + 6.316515847704096e-05, + 0.06385851709663148 + ], + [ + 6.0480115969818726e-05, + 0.06387328700960115 + ], + [ + 6.19502854067866e-05, + 0.06396500531736171 + ], + [ + 6.834621510376504e-05, + 0.06408069916285808 + ], + [ + 6.603138355543159e-05, + 0.06418093961547078 + ], + [ + 7.444840754067261e-05, + 0.06429333223679934 + ], + [ + 6.356106051386146e-05, + 0.06483571012356115 + ], + [ + 5.448990150480615e-05, + 0.06489450054179391 + ], + [ + 4.1319997737931935e-05, + 0.06557838556721407 + ], + [ + 1.3882341062143588e-05, + 0.0708547265488434 + ], + [ + 1.2060775858024897e-05, + 0.07098337535594212 + ], + [ + 1.1551821072597335e-05, + 0.07104000933641719 + ], + [ + 1.0764224874892925e-05, + 0.0710845248519445 + ], + [ + 2.1823131086673442e-05, + 0.07217974971263386 + ], + [ + 1.984601769888794e-05, + 0.07213412473340253 + ], + [ + 1.874775838572873e-05, + 0.07218082732991615 + ], + [ + 1.586341838544225e-05, + 0.07221935664061341 + ] + ] +} diff --git a/pytheus/graphs/CondensedMatter/onsager8/config_onsager8.json b/pytheus/graphs/CondensedMatter/onsager8/config_onsager8.json new file mode 100644 index 00000000..0a41f21b --- /dev/null +++ b/pytheus/graphs/CondensedMatter/onsager8/config_onsager8.json @@ -0,0 +1,69 @@ +{ + "description": "Onsager scar of 8 particles.", + "bulk_thr": 0.01, + "edges_tried": 40, + "foldername": "onsager_fid", + "ftol": 1e-05, + "loss_func": "fid", + "num_anc": 0, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 30, + "target_state": [ +"00000000", +"00000011", +"00000110", +"00001100", +"00001111", +"00011000", +"00011011", +"00011110", +"00110000", +"00110011", +"00110110", +"00111100", +"00111111", +"01100000", +"01100011", +"01100110", +"01101100", +"01101111", +"01111000", +"01111011", +"01111110", +"10000001", +"10000111", +"10001101", +"10011001", +"10011111", +"10110001", +"10110111", +"10111101", +"11000000", +"11000011", +"11000110", +"11001100", +"11001111", +"11011000", +"11011011", +"11011110", +"11100001", +"11100111", +"11101101", +"11110000", +"11110011", +"11110110", +"11111001", +"11111100", +"11111111" + ], + "amplitudes": [1.0, 0.5, -0.5, 0.5, 0.25, -0.5, -0.25, 0.25, 0.5, 0.25, -0.25, 0.25, 0.125, -0.5, -0.25, 0.25, -0.25, -0.125, 0.25, 0.125, -0.125, -0.5, 0.25, -0.25, 0.25, -0.125, -0.25, 0.125, -0.125, 0.5, 0.25, -0.25, 0.25, 0.125, -0.25, -0.125, 0.125, 0.25, -0.125, 0.125, 0.25, 0.125, -0.125, -0.125, 0.125, 0.125], + "thresholds": [ + 0.001, + 0.1 + ], + "tries_per_edge": 4, + "unicolor": false +} \ No newline at end of file diff --git a/pytheus/graphs/CondensedMatter/onsager8/graph_onsager8.aux b/pytheus/graphs/CondensedMatter/onsager8/graph_onsager8.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/onsager8/graph_onsager8.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/onsager8/graph_onsager8.pdf b/pytheus/graphs/CondensedMatter/onsager8/graph_onsager8.pdf new file mode 100644 index 00000000..31cbe1a1 Binary files /dev/null and b/pytheus/graphs/CondensedMatter/onsager8/graph_onsager8.pdf differ diff --git a/pytheus/graphs/CondensedMatter/onsager8/graph_onsager8.tex b/pytheus/graphs/CondensedMatter/onsager8/graph_onsager8.tex new file mode 100644 index 00000000..66f7e66c --- /dev/null +++ b/pytheus/graphs/CondensedMatter/onsager8/graph_onsager8.tex @@ -0,0 +1,71 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [circle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [circle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [circle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.9929627456186501] (0) to (1); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=0.4965683412740041] (0) to (1); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=0.5897942894810142] (0) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=0.308922484880863] (0) to (4); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=0.7123259987341841] (0) to (7); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=0.8255746592079728] (1) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=0.6586838795815284] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.6836773046411102] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.694453364345303] (1) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.9823536497715826] (2) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=0.49120171596320017] (2) to (3); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=0.0, opacity=0.5116056847373537] (2) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=0.408783693489107] (3) to (4); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=0.3] (3) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.9614194793506172] (3) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=0.4107926266154857] (3) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.9334760392943663] (3) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=0.7848598045108426] (4) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.3] (4) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.9766075117523162] (4) to (7); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=0.3] (4) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.5821966232912573] (5) to (6); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=0.8049778731100583] (5) to (6); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=0.0, opacity=0.3] (5) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (6) to (7); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=0.7842155848449917] (6) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/CondensedMatter/onsager8/plot_onsager8.json b/pytheus/graphs/CondensedMatter/onsager8/plot_onsager8.json new file mode 100644 index 00000000..ecab1bcc --- /dev/null +++ b/pytheus/graphs/CondensedMatter/onsager8/plot_onsager8.json @@ -0,0 +1,234 @@ +{ + "graph": { + "(4, 5, 0, 0)": 1.0, + "(3, 4, 1, 1)": 0.16839961461414188, + "(5, 7, 0, 1)": -0.1922041497504983, + "(4, 7, 1, 1)": 0.27019335017356183, + "(4, 6, 1, 0)": 0.29154426942534645, + "(0, 4, 0, 1)": 0.308922484880863, + "(3, 4, 0, 0)": -0.408783693489107, + "(3, 6, 0, 0)": -0.4107926266154857, + "(2, 3, 1, 1)": 0.49120171596320017, + "(0, 1, 1, 1)": 0.4965683412740041, + "(2, 4, 0, 1)": -0.5116056847373537, + "(5, 6, 0, 0)": 0.5821966232912573, + "(0, 3, 0, 0)": -0.5897942894810142, + "(1, 3, 0, 1)": 0.6586838795815284, + "(1, 4, 0, 0)": 0.6836773046411102, + "(1, 6, 0, 0)": 0.694453364345303, + "(0, 7, 1, 1)": -0.7123259987341841, + "(6, 7, 1, 1)": 0.7842155848449917, + "(4, 5, 1, 1)": 0.7848598045108426, + "(5, 6, 1, 1)": -0.8049778731100583, + "(1, 2, 1, 1)": 0.8255746592079728, + "(3, 7, 1, 0)": 0.9334760392943663, + "(3, 5, 1, 0)": 0.9614194793506172, + "(4, 7, 0, 0)": 0.9766075117523162, + "(2, 3, 0, 0)": 0.9823536497715826, + "(0, 1, 0, 0)": 0.9929627456186501, + "(6, 7, 0, 0)": 1.0 + }, + "loss": [ + 0.00045877044481590357, + 0.07899012250678472 + ], + "seed": 2306723543, + "history": [ + [ + 0.00042945726155696473, + 0.024523970238676362 + ], + [ + 0.00042766167793806265, + 0.024521986301210608 + ], + [ + 0.00042612961782484415, + 0.024535809023544464 + ], + [ + 0.0004247914787234297, + 0.024536096831137 + ], + [ + 0.0004235637497540523, + 0.024545681944445952 + ], + [ + 0.00042261815435440386, + 0.024543872936558242 + ], + [ + 0.0004218105131240657, + 0.024555620376148335 + ], + [ + 0.0004210882290834883, + 0.02455646590713334 + ], + [ + 0.0004200203241587763, + 0.02456439485818429 + ], + [ + 0.0004204938848803019, + 0.024567498467457982 + ], + [ + 0.0004211282974465602, + 0.024574575514187735 + ], + [ + 0.00042214070967760975, + 0.02457867147634174 + ], + [ + 0.0004203984628550206, + 0.0245823430946025 + ], + [ + 0.0004202203868561849, + 0.024585262142530206 + ], + [ + 0.0004198259609149435, + 0.024589647041720175 + ], + [ + 0.0004231451584518764, + 0.024595949403803274 + ], + [ + 0.000424711542074907, + 0.024600831115429656 + ], + [ + 0.00042041586231678085, + 0.024599608529632833 + ], + [ + 0.0004225004767836049, + 0.024604108918544143 + ], + [ + 0.0004195369106865243, + 0.024604919855123808 + ], + [ + 0.00041829515501579095, + 0.0246071850140962 + ], + [ + 0.0004161077062185825, + 0.024608779810765036 + ], + [ + 0.0004151687107469826, + 0.02461132272584654 + ], + [ + 0.00041334644390433883, + 0.02461278894181851 + ], + [ + 0.00041371234384068867, + 0.024616633948796984 + ], + [ + 0.00041577863296116124, + 0.024622708744652333 + ], + [ + 0.00043188109269898245, + 0.024638077349251497 + ], + [ + 0.0004005589264454157, + 0.024666774365219912 + ], + [ + 0.00039988478830899066, + 0.024659653522809966 + ], + [ + 0.0003992502439292833, + 0.024665062455953235 + ], + [ + 0.0003991387790546197, + 0.02466620408023046 + ], + [ + 0.00040391862467126227, + 0.024858276914666577 + ], + [ + 0.0004067267242494621, + 0.02480193352330884 + ], + [ + 0.00044270935563872627, + 0.0250715970810389 + ], + [ + 0.00043664257244480087, + 0.02506611221006183 + ], + [ + 0.0004932461510316344, + 0.025072741700904788 + ], + [ + 0.0005499431434363711, + 0.026263331210923502 + ], + [ + 0.0005609516325191244, + 0.027623542851897387 + ], + [ + 0.0005498071375626967, + 0.05079842206585827 + ], + [ + 0.0005772194483582016, + 0.0506697099054052 + ], + [ + 0.0006255985645445827, + 0.05534125473935736 + ], + [ + 0.0006239040583865263, + 0.05539443739415806 + ], + [ + 0.0006585561829062225, + 0.06089819693652865 + ], + [ + 0.0006622401329996475, + 0.06148960694816985 + ], + [ + 0.0005461276856209007, + 0.06594307735440874 + ], + [ + 0.000517171101225844, + 0.06670752204987507 + ], + [ + 0.0006093184773722227, + 0.0692007076018506 + ], + [ + 0.00040579644911586943, + 0.07872717105869587 + ], + [ + 0.00045877044481590357, + 0.07899012250678472 + ] + ] +} diff --git a/pytheus/graphs/CondensedMatter/pxp6/config_PXPscar_6.json b/pytheus/graphs/CondensedMatter/pxp6/config_PXPscar_6.json new file mode 100644 index 00000000..a67dd2cb --- /dev/null +++ b/pytheus/graphs/CondensedMatter/pxp6/config_PXPscar_6.json @@ -0,0 +1,30 @@ +{ + "description": "PXP scar of six particles.", + "bulk_thr": 0.01, + "edges_tried": 40, + "foldername": "PXPfid", + "ftol": 1e-05, + "loss_func": "fid", + "num_anc": 0, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 30, + "target_state": ["000000", + "000010", + "010000", + "010100", + "100000", + "100100", + "101000", + "101010"], + "amplitudes": [1,-1, 1.4142135623730951, -2, + -1, 1.4142135623730951, -1, 1], + "thresholds": [ + 0.0001, + 0.04 + ], + "tries_per_edge": 3, + "unicolor": false +} diff --git a/pytheus/graphs/CondensedMatter/pxp6/graph_pxp6.aux b/pytheus/graphs/CondensedMatter/pxp6/graph_pxp6.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/pxp6/graph_pxp6.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/pxp6/graph_pxp6.pdf b/pytheus/graphs/CondensedMatter/pxp6/graph_pxp6.pdf new file mode 100644 index 00000000..fa2f9434 Binary files /dev/null and b/pytheus/graphs/CondensedMatter/pxp6/graph_pxp6.pdf differ diff --git a/pytheus/graphs/CondensedMatter/pxp6/graph_pxp6.tex b/pytheus/graphs/CondensedMatter/pxp6/graph_pxp6.tex new file mode 100644 index 00000000..218cf067 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/pxp6/graph_pxp6.tex @@ -0,0 +1,64 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [circle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=0.9863070634876397] (0) to (1); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=0.8018669032949718] (0) to (1); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=0.9797364622749531] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=0.9792950084474381] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.8545650315871547] (0) to (4); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.9141267777618477] (1) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=11.25, opacity=0.7294549841937226] (1) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=0.3802860078987956] (1) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=0.8731721037002488] (1) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=0.7949386755242707] (1) to (5); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=0.968898892276993] (2) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.9945143020115645] (2) to (4); +\path[line width=4.0,bicolor={col0}{col1}, bend right=11.25, opacity=0.4992693652782102] (2) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.49604743048193883] (2) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-15.0, opacity=0.9023831845635331] (3) to (4); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=0.8731746978002554] (3) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=15.0, opacity=0.7524371285272284] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=0.8680336948842001] (3) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=0.9375107089525447] (3) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.8215778310984985] (4) to (5); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=0.4855323286203291] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/CondensedMatter/pxp6/other_solutions/rough-22-45-0.0000_0.0379.json b/pytheus/graphs/CondensedMatter/pxp6/other_solutions/rough-22-45-0.0000_0.0379.json new file mode 100644 index 00000000..1bd1207d --- /dev/null +++ b/pytheus/graphs/CondensedMatter/pxp6/other_solutions/rough-22-45-0.0000_0.0379.json @@ -0,0 +1,145 @@ +{ + "graph": { + "(1, 4, 0, 1)": 0.3765833933792602, + "(4, 5, 1, 0)": -0.4808049944236634, + "(2, 5, 0, 0)": 0.49121771710744777, + "(2, 4, 0, 1)": 0.49440828187613495, + "(1, 3, 0, 1)": -0.7223527228437812, + "(3, 4, 1, 0)": -0.745111103958205, + "(1, 5, 0, 0)": -0.7871988391353397, + "(0, 1, 1, 0)": -0.7940596109486676, + "(4, 5, 0, 0)": 0.8135786253870877, + "(0, 4, 1, 0)": 0.8462446494849453, + "(3, 5, 0, 0)": 0.8595821765654418, + "(1, 4, 1, 0)": -0.8646705558071847, + "(3, 4, 0, 1)": -0.8646731246500107, + "(3, 4, 0, 0)": 0.8935972260692656, + "(1, 3, 0, 0)": -0.905226479013707, + "(3, 5, 1, 0)": -0.928382735030056, + "(2, 3, 0, 1)": -0.9594653106253083, + "(0, 2, 1, 1)": 0.9697602061095332, + "(0, 2, 0, 0)": -0.9701973617685185, + "(0, 1, 0, 1)": 0.9767039890170126, + "(2, 4, 0, 0)": 0.9848313186305574, + "(1, 2, 1, 1)": 0.9902636057003688 + }, + "loss": [ + 1.0585277724350917e-06, + 0.037943014667187525 + ], + "seed": 3816477201, + "history": [ + [ + 6.930822130968295e-05, + 0.035416860333578604 + ], + [ + 7.375462892000861e-05, + 0.035320816336750105 + ], + [ + 9.234478128694601e-05, + 0.03537619058719743 + ], + [ + 9.957380286418349e-05, + 0.034673735407897865 + ], + [ + 9.699691714071257e-05, + 0.0346844841525088 + ], + [ + 8.977554603573079e-05, + 0.03468474400545418 + ], + [ + 9.065357284454567e-05, + 0.034759657158834 + ], + [ + 8.961254931760809e-05, + 0.03464991113964078 + ], + [ + 8.476102997279078e-05, + 0.03452800324143046 + ], + [ + 6.361862005910268e-05, + 0.0331338422427222 + ], + [ + 7.856701574360248e-05, + 0.03371285974160976 + ], + [ + 9.81268940027924e-05, + 0.03361005303431319 + ], + [ + 7.91986271776457e-05, + 0.03397801225830133 + ], + [ + 6.96853123314245e-05, + 0.0339839556769288 + ], + [ + 5.9863857918895924e-05, + 0.0337469127763208 + ], + [ + 6.296299684382944e-05, + 0.03459464728110506 + ], + [ + 5.570381937647362e-05, + 0.03430865175247244 + ], + [ + 5.412677379323938e-05, + 0.03430607004198993 + ], + [ + 5.316653660913939e-05, + 0.034308236001172165 + ], + [ + 5.7059681169979726e-05, + 0.03343553017935785 + ], + [ + 2.009584546402987e-05, + 0.03506639812960999 + ], + [ + 1.8567620389098316e-05, + 0.035059780821413145 + ], + [ + 1.894501841814833e-05, + 0.03505914079173744 + ], + [ + 2.0432347889287605e-05, + 0.035048968713152995 + ], + [ + 2.0242882510346227e-05, + 0.03498930224429542 + ], + [ + 2.3796582978574676e-06, + 0.036175681722948605 + ], + [ + 1.9834357531944846e-06, + 0.037944802344499706 + ], + [ + 1.0585277724350917e-06, + 0.037943014667187525 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/CondensedMatter/pxp6/plot_pxp6_rough-22-45-0.0000_0.0379.json b/pytheus/graphs/CondensedMatter/pxp6/plot_pxp6_rough-22-45-0.0000_0.0379.json new file mode 100644 index 00000000..40b4670d --- /dev/null +++ b/pytheus/graphs/CondensedMatter/pxp6/plot_pxp6_rough-22-45-0.0000_0.0379.json @@ -0,0 +1,145 @@ +{ + "graph": { + "(1, 4, 0, 1)": 0.3802860078987956, + "(4, 5, 1, 0)": -0.4855323286203291, + "(2, 5, 0, 0)": 0.49604743048193883, + "(2, 4, 0, 1)": 0.4992693652782102, + "(1, 3, 0, 1)": 0.7294549841937226, + "(3, 4, 1, 0)": 0.7524371285272284, + "(1, 5, 0, 0)": -0.7949386755242707, + "(0, 1, 1, 0)": -0.8018669032949718, + "(4, 5, 0, 0)": 0.8215778310984985, + "(0, 4, 1, 0)": 0.8545650315871547, + "(3, 5, 0, 0)": -0.8680336948842001, + "(1, 4, 1, 0)": -0.8731721037002488, + "(3, 4, 0, 1)": 0.8731746978002554, + "(3, 4, 0, 0)": -0.9023831845635331, + "(1, 3, 0, 0)": 0.9141267777618477, + "(3, 5, 1, 0)": 0.9375107089525447, + "(2, 3, 0, 1)": 0.968898892276993, + "(0, 2, 1, 1)": 0.9792950084474381, + "(0, 2, 0, 0)": -0.9797364622749531, + "(0, 1, 0, 1)": 0.9863070634876397, + "(2, 4, 0, 0)": 0.9945143020115645, + "(1, 2, 1, 1)": 1.0 + }, + "loss": [ + 1.0585277724350917e-06, + 0.037943014667187525 + ], + "seed": 3816477201, + "history": [ + [ + 6.930822130968295e-05, + 0.035416860333578604 + ], + [ + 7.375462892000861e-05, + 0.035320816336750105 + ], + [ + 9.234478128694601e-05, + 0.03537619058719743 + ], + [ + 9.957380286418349e-05, + 0.034673735407897865 + ], + [ + 9.699691714071257e-05, + 0.0346844841525088 + ], + [ + 8.977554603573079e-05, + 0.03468474400545418 + ], + [ + 9.065357284454567e-05, + 0.034759657158834 + ], + [ + 8.961254931760809e-05, + 0.03464991113964078 + ], + [ + 8.476102997279078e-05, + 0.03452800324143046 + ], + [ + 6.361862005910268e-05, + 0.0331338422427222 + ], + [ + 7.856701574360248e-05, + 0.03371285974160976 + ], + [ + 9.81268940027924e-05, + 0.03361005303431319 + ], + [ + 7.91986271776457e-05, + 0.03397801225830133 + ], + [ + 6.96853123314245e-05, + 0.0339839556769288 + ], + [ + 5.9863857918895924e-05, + 0.0337469127763208 + ], + [ + 6.296299684382944e-05, + 0.03459464728110506 + ], + [ + 5.570381937647362e-05, + 0.03430865175247244 + ], + [ + 5.412677379323938e-05, + 0.03430607004198993 + ], + [ + 5.316653660913939e-05, + 0.034308236001172165 + ], + [ + 5.7059681169979726e-05, + 0.03343553017935785 + ], + [ + 2.009584546402987e-05, + 0.03506639812960999 + ], + [ + 1.8567620389098316e-05, + 0.035059780821413145 + ], + [ + 1.894501841814833e-05, + 0.03505914079173744 + ], + [ + 2.0432347889287605e-05, + 0.035048968713152995 + ], + [ + 2.0242882510346227e-05, + 0.03498930224429542 + ], + [ + 2.3796582978574676e-06, + 0.036175681722948605 + ], + [ + 1.9834357531944846e-06, + 0.037944802344499706 + ], + [ + 1.0585277724350917e-06, + 0.037943014667187525 + ] + ] +} diff --git a/pytheus/graphs/CondensedMatter/pxp8/config_PXP8.json b/pytheus/graphs/CondensedMatter/pxp8/config_PXP8.json new file mode 100644 index 00000000..c2d59acb --- /dev/null +++ b/pytheus/graphs/CondensedMatter/pxp8/config_PXP8.json @@ -0,0 +1,97 @@ +{ + "description": "PXP scar of eight particles.", + "bulk_thr": 0.01, + "edges_tried": 40, + "foldername": "PXPfid", + "ftol": 1e-05, + "loss_func": "fid", + "num_anc": 0, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 30, + "target_state": [ + "00000000", + "00000100", + "00001000", + "00001010", + "01000000", + "01000010", + "01010000", + "01010100", + "10000000", + "10000010", + "10010000", + "10010100", + "10100000", + "10100100", + "10101000", + "10101010" + ], + "amplitudes": [ + 1, + -1.4142135623730951, + 1, + -1, + -1.4142135623730951, + 1.4142135623730951, + -2.0, + 2.8284271247461903, + 1, + -1, + 1.4142135623730951, + -2.0, + -1, + 1.4142135623730951, + -1, + 1 + ], + "thresholds": [ + 0.0001, + 0.05 + ], + "tries_per_edge": 5, + "unicolor": false, + "topopt": true, + "seed": 2028549326, + "in_nodes": [], + "out_nodes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "single_emitters": [], + "removed_connections": [], + "heralding_out": false, + "number_resolving": false, + "brutal_covers": false, + "save_hist": true, + "dimensions": [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1 + ], + "verts": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "anc_detectors": [ + 7 + ] +} diff --git a/pytheus/graphs/CondensedMatter/pxp8/graph_pxp8.aux b/pytheus/graphs/CondensedMatter/pxp8/graph_pxp8.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/pxp8/graph_pxp8.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/pxp8/graph_pxp8.pdf b/pytheus/graphs/CondensedMatter/pxp8/graph_pxp8.pdf new file mode 100644 index 00000000..ef0afa4f Binary files /dev/null and b/pytheus/graphs/CondensedMatter/pxp8/graph_pxp8.pdf differ diff --git a/pytheus/graphs/CondensedMatter/pxp8/graph_pxp8.tex b/pytheus/graphs/CondensedMatter/pxp8/graph_pxp8.tex new file mode 100644 index 00000000..9974b789 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/pxp8/graph_pxp8.tex @@ -0,0 +1,66 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [circle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [circle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [rectangle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=0.707146631715177] (0) to (1); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=0.7167349886177145] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=0.7167349361297793] (0) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.6976629006831152] (1) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=0.8970568841682173] (1) to (4); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.9092788451854746] (2) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.7018704899421973] (3) to (5); +\path[line width=4.0,bicolor={col0}{col1}, bend right=11.25, opacity=0.7542994825458409] (3) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=0.8573851721355282] (3) to (6); +\path[line width=4.0,bicolor={col0}{col1}, bend right=11.25, opacity=0.8571853402906336] (3) to (6); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=0.0, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=0.9681765538385625] (4) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.9647641505061492] (4) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-15.0, opacity=0.9332447754595827] (5) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.9999631294935374] (5) to (6); +\path[line width=4.0,bicolor={col1}{col1}, bend right=15.0, opacity=0.8928856301040625] (5) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.9351126088037452] (5) to (7); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=0.7558312315590958] (5) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=0.8580100070155015] (6) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=0.8604214770488445] (6) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/CondensedMatter/pxp8/other_solutions/rough-22-60-0.0000_0.0348.json b/pytheus/graphs/CondensedMatter/pxp8/other_solutions/rough-22-60-0.0000_0.0348.json new file mode 100644 index 00000000..6f443c0a --- /dev/null +++ b/pytheus/graphs/CondensedMatter/pxp8/other_solutions/rough-22-60-0.0000_0.0348.json @@ -0,0 +1,241 @@ +{ + "graph": { + "(0, 1, 0, 1)": -1.0, + "(1, 3, 0, 0)": -0.6976629006831152, + "(3, 5, 0, 0)": 0.7018704899421973, + "(0, 1, 1, 0)": 0.707146631715177, + "(0, 2, 1, 1)": -0.7167349361297793, + "(0, 2, 0, 0)": 0.7167349886177145, + "(3, 5, 0, 1)": 0.7542994825458409, + "(5, 7, 1, 0)": 0.7558312315590958, + "(3, 6, 0, 1)": -0.8571853402906336, + "(3, 6, 0, 0)": 0.8573851721355282, + "(6, 7, 0, 0)": -0.8580100070155015, + "(6, 7, 1, 0)": 0.8604214770488445, + "(5, 6, 1, 1)": -0.8928856301040625, + "(1, 4, 0, 1)": -0.8970568841682173, + "(2, 4, 0, 0)": -0.9092788451854746, + "(5, 6, 0, 0)": 0.9332447754595827, + "(5, 7, 0, 0)": -0.9351126088037452, + "(4, 7, 0, 0)": -0.9647641505061492, + "(4, 6, 0, 0)": 0.9681765538385625, + "(5, 6, 1, 0)": -0.9999631294935374, + "(2, 3, 0, 1)": -1.0, + "(4, 5, 0, 1)": -1.0 + }, + "loss": [ + 3.251890287048198e-07, + 0.034805930609828284 + ], + "seed": 2927099828, + "history": [ + [ + 7.007288073102025e-05, + 0.023429994212236793 + ], + [ + 6.944139707665276e-05, + 0.023428091411899388 + ], + [ + 6.813305105801692e-05, + 0.023428421624750118 + ], + [ + 6.758246060578621e-05, + 0.023428848197485808 + ], + [ + 6.694359581271847e-05, + 0.02343005438769019 + ], + [ + 6.567015563163636e-05, + 0.023430360522815885 + ], + [ + 6.564110230700138e-05, + 0.023423733820552517 + ], + [ + 7.13174367763525e-05, + 0.023429609929703443 + ], + [ + 6.996470306885882e-05, + 0.023428771936040427 + ], + [ + 8.073271175412788e-05, + 0.023397162178934172 + ], + [ + 8.416499976326985e-05, + 0.023380520449408526 + ], + [ + 9.14923789413491e-05, + 0.0234059533033385 + ], + [ + 9.86393352530035e-05, + 0.02340343133952627 + ], + [ + 8.344655619307861e-05, + 0.023398262581104112 + ], + [ + 8.249458823572642e-05, + 0.023481213344358265 + ], + [ + 8.435444912746615e-05, + 0.02363869687076181 + ], + [ + 9.251226618534059e-05, + 0.023683686185170805 + ], + [ + 8.272763597472199e-05, + 0.04540995929284586 + ], + [ + 7.278918060660278e-05, + 0.04542741331646749 + ], + [ + 7.163679874233608e-05, + 0.04542126481317155 + ], + [ + 6.710747557792107e-05, + 0.045424607733254296 + ], + [ + 7.917708065852125e-05, + 0.045414761424059535 + ], + [ + 7.841052528689829e-05, + 0.045419106544512866 + ], + [ + 7.637941357663269e-05, + 0.045394999014359394 + ], + [ + 8.54392958050676e-05, + 0.045435879203040264 + ], + [ + 8.394533813660399e-05, + 0.045432244934435095 + ], + [ + 8.300341826283919e-05, + 0.045437865394103216 + ], + [ + 4.352479351932281e-05, + 0.043382778601238736 + ], + [ + 2.908103786491978e-05, + 0.043377679840278294 + ], + [ + 2.863968014543694e-05, + 0.04338492854901643 + ], + [ + 3.5180464639128495e-05, + 0.04339244489266303 + ], + [ + 7.821516137174189e-05, + 0.04343521048564247 + ], + [ + 6.979648274285655e-05, + 0.04350755100051518 + ], + [ + 2.1848370993504673e-06, + 0.02224297800132502 + ], + [ + 1.6666780549012827e-06, + 0.022244685415437893 + ], + [ + 1.3383510326647752e-06, + 0.02224084869942078 + ], + [ + 1.0323774569664934e-06, + 0.022232098195136385 + ], + [ + 3.676365307170304e-05, + 0.02216907640549126 + ], + [ + 3.1901526605704333e-05, + 0.022158536115889138 + ], + [ + 1.2794913282432319e-05, + 0.022210457844430764 + ], + [ + 5.603365100803614e-07, + 0.022259553933547505 + ], + [ + 8.940863987394465e-06, + 0.022378206030051473 + ], + [ + 1.0890894865833722e-05, + 0.024210055684469434 + ], + [ + 9.571582946565904e-06, + 0.024201767391158646 + ], + [ + 5.4718758080163354e-08, + 0.02351633883063242 + ], + [ + 3.403337123231154e-08, + 0.023517384305857925 + ], + [ + 1.2917522889122068e-06, + 0.03471699544432327 + ], + [ + 1.0052678558469808e-06, + 0.03478219521652337 + ], + [ + 6.836046823055497e-07, + 0.03479570723882264 + ], + [ + 5.120657506907378e-07, + 0.0348021836525112 + ], + [ + 4.032846634416387e-07, + 0.034805004721136124 + ], + [ + 3.251890287048198e-07, + 0.034805930609828284 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/CondensedMatter/pxp8/plot_pxp8_rough-22-60-0.0000_0.0348.json b/pytheus/graphs/CondensedMatter/pxp8/plot_pxp8_rough-22-60-0.0000_0.0348.json new file mode 100644 index 00000000..c77f3ee6 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/pxp8/plot_pxp8_rough-22-60-0.0000_0.0348.json @@ -0,0 +1,241 @@ +{ + "graph": { + "(0, 1, 0, 1)": 1.0, + "(1, 3, 0, 0)": 0.6976629006831152, + "(3, 5, 0, 0)": 0.7018704899421973, + "(0, 1, 1, 0)": -0.707146631715177, + "(0, 2, 1, 1)": 0.7167349361297793, + "(0, 2, 0, 0)": -0.7167349886177145, + "(3, 5, 0, 1)": 0.7542994825458409, + "(5, 7, 1, 0)": -0.7558312315590958, + "(3, 6, 0, 1)": 0.8571853402906336, + "(3, 6, 0, 0)": -0.8573851721355282, + "(6, 7, 0, 0)": -0.8580100070155015, + "(6, 7, 1, 0)": 0.8604214770488445, + "(5, 6, 1, 1)": 0.8928856301040625, + "(1, 4, 0, 1)": 0.8970568841682173, + "(2, 4, 0, 0)": 0.9092788451854746, + "(5, 6, 0, 0)": -0.9332447754595827, + "(5, 7, 0, 0)": 0.9351126088037452, + "(4, 7, 0, 0)": 0.9647641505061492, + "(4, 6, 0, 0)": -0.9681765538385625, + "(5, 6, 1, 0)": 0.9999631294935374, + "(2, 3, 0, 1)": 1.0, + "(4, 5, 0, 1)": -1.0 + }, + "loss": [ + 3.251890287048198e-07, + 0.034805930609828284 + ], + "seed": 2927099828, + "history": [ + [ + 7.007288073102025e-05, + 0.023429994212236793 + ], + [ + 6.944139707665276e-05, + 0.023428091411899388 + ], + [ + 6.813305105801692e-05, + 0.023428421624750118 + ], + [ + 6.758246060578621e-05, + 0.023428848197485808 + ], + [ + 6.694359581271847e-05, + 0.02343005438769019 + ], + [ + 6.567015563163636e-05, + 0.023430360522815885 + ], + [ + 6.564110230700138e-05, + 0.023423733820552517 + ], + [ + 7.13174367763525e-05, + 0.023429609929703443 + ], + [ + 6.996470306885882e-05, + 0.023428771936040427 + ], + [ + 8.073271175412788e-05, + 0.023397162178934172 + ], + [ + 8.416499976326985e-05, + 0.023380520449408526 + ], + [ + 9.14923789413491e-05, + 0.0234059533033385 + ], + [ + 9.86393352530035e-05, + 0.02340343133952627 + ], + [ + 8.344655619307861e-05, + 0.023398262581104112 + ], + [ + 8.249458823572642e-05, + 0.023481213344358265 + ], + [ + 8.435444912746615e-05, + 0.02363869687076181 + ], + [ + 9.251226618534059e-05, + 0.023683686185170805 + ], + [ + 8.272763597472199e-05, + 0.04540995929284586 + ], + [ + 7.278918060660278e-05, + 0.04542741331646749 + ], + [ + 7.163679874233608e-05, + 0.04542126481317155 + ], + [ + 6.710747557792107e-05, + 0.045424607733254296 + ], + [ + 7.917708065852125e-05, + 0.045414761424059535 + ], + [ + 7.841052528689829e-05, + 0.045419106544512866 + ], + [ + 7.637941357663269e-05, + 0.045394999014359394 + ], + [ + 8.54392958050676e-05, + 0.045435879203040264 + ], + [ + 8.394533813660399e-05, + 0.045432244934435095 + ], + [ + 8.300341826283919e-05, + 0.045437865394103216 + ], + [ + 4.352479351932281e-05, + 0.043382778601238736 + ], + [ + 2.908103786491978e-05, + 0.043377679840278294 + ], + [ + 2.863968014543694e-05, + 0.04338492854901643 + ], + [ + 3.5180464639128495e-05, + 0.04339244489266303 + ], + [ + 7.821516137174189e-05, + 0.04343521048564247 + ], + [ + 6.979648274285655e-05, + 0.04350755100051518 + ], + [ + 2.1848370993504673e-06, + 0.02224297800132502 + ], + [ + 1.6666780549012827e-06, + 0.022244685415437893 + ], + [ + 1.3383510326647752e-06, + 0.02224084869942078 + ], + [ + 1.0323774569664934e-06, + 0.022232098195136385 + ], + [ + 3.676365307170304e-05, + 0.02216907640549126 + ], + [ + 3.1901526605704333e-05, + 0.022158536115889138 + ], + [ + 1.2794913282432319e-05, + 0.022210457844430764 + ], + [ + 5.603365100803614e-07, + 0.022259553933547505 + ], + [ + 8.940863987394465e-06, + 0.022378206030051473 + ], + [ + 1.0890894865833722e-05, + 0.024210055684469434 + ], + [ + 9.571582946565904e-06, + 0.024201767391158646 + ], + [ + 5.4718758080163354e-08, + 0.02351633883063242 + ], + [ + 3.403337123231154e-08, + 0.023517384305857925 + ], + [ + 1.2917522889122068e-06, + 0.03471699544432327 + ], + [ + 1.0052678558469808e-06, + 0.03478219521652337 + ], + [ + 6.836046823055497e-07, + 0.03479570723882264 + ], + [ + 5.120657506907378e-07, + 0.0348021836525112 + ], + [ + 4.032846634416387e-07, + 0.034805004721136124 + ], + [ + 3.251890287048198e-07, + 0.034805930609828284 + ] + ] +} diff --git a/theseus/configs/fake_spinone_3.json b/pytheus/graphs/CondensedMatter/spin1/config_spin1.json similarity index 89% rename from theseus/configs/fake_spinone_3.json rename to pytheus/graphs/CondensedMatter/spin1/config_spin1.json index 4f6fe7dc..266928ad 100644 --- a/theseus/configs/fake_spinone_3.json +++ b/pytheus/graphs/CondensedMatter/spin1/config_spin1.json @@ -2,15 +2,15 @@ "description": "Condensed matter Spin One state with three particles", "bulk_thr": 0.01, "edges_tried": 10, - "foldername": "fake_spinone_3", + "foldername": "spinone_3", "ftol": 1e-05, "loss_func": "fid", - "num_anc": 3, + "num_anc": 1, "num_pre": 1, "optimizer": "L-BFGS-B", "imaginary": false, "safe_hist": true, - "samples": 100, + "samples": 10, "target_state": [ "012", "021", @@ -35,4 +35,4 @@ ], "tries_per_edge": 5, "unicolor": false -} \ No newline at end of file +} diff --git a/pytheus/graphs/CondensedMatter/spin1/graph_spin1.aux b/pytheus/graphs/CondensedMatter/spin1/graph_spin1.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/spin1/graph_spin1.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/spin1/graph_spin1.pdf b/pytheus/graphs/CondensedMatter/spin1/graph_spin1.pdf new file mode 100644 index 00000000..bd626935 Binary files /dev/null and b/pytheus/graphs/CondensedMatter/spin1/graph_spin1.pdf differ diff --git a/pytheus/graphs/CondensedMatter/spin1/graph_spin1.tex b/pytheus/graphs/CondensedMatter/spin1/graph_spin1.tex new file mode 100644 index 00000000..a14a6c36 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/spin1/graph_spin1.tex @@ -0,0 +1,51 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col2}, bend right=-15.0, opacity=0.3398050498539428] (0) to (1); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=15.0, opacity=0.679608610602662] (0) to (1); +\path[line width=4.0,bicolor_neg={col2}{col0}, bend right=-15.0, opacity=0.6919348630215897] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col2}{col0}, bend right=15.0, opacity=0.3459675606863743] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.7809981708163676] (0) to (3); +\path[line width=4.0,bicolor={col0}{col2}, bend right=-11.25, opacity=0.39560944664058717] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=0.7912188875866731] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.893128842665933] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.909330234020913] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/CondensedMatter/spin1_3particle_fake.json b/pytheus/graphs/CondensedMatter/spin1/plot_spin1.json similarity index 91% rename from theseus/graphs/CondensedMatter/spin1_3particle_fake.json rename to pytheus/graphs/CondensedMatter/spin1/plot_spin1.json index b52aa881..a7214065 100644 --- a/theseus/graphs/CondensedMatter/spin1_3particle_fake.json +++ b/pytheus/graphs/CondensedMatter/spin1/plot_spin1.json @@ -1,17 +1,16 @@ { "graph": { - "(0, 1, 1, 1)": -1.0, + "(0, 1, 1, 1)": 1.0, "(0, 2, 1, 1)": 1.0, - "(0, 1, 0, 2)": -0.3398050498539428, + "(0, 1, 0, 2)": 0.3398050498539428, "(0, 2, 2, 0)": 0.3459675606863743, - "(1, 2, 0, 2)": -0.39560944664058717, - "(0, 1, 2, 0)": 0.679608610602662, + "(1, 2, 0, 2)": 0.39560944664058717, + "(0, 1, 2, 0)": -0.679608610602662, "(0, 2, 0, 2)": -0.6919348630215897, - "(0, 5, 1, 0)": 0.7809981708163676, - "(1, 2, 2, 0)": 0.7912188875866731, - "(1, 5, 1, 0)": -0.893128842665933, - "(2, 5, 1, 0)": 0.909330234020913, - "(3, 4, 0, 0)": 0.9999997905350715 + "(0, 3, 1, 0)": 0.7809981708163676, + "(1, 2, 2, 0)": -0.7912188875866731, + "(1, 3, 1, 0)": 0.893128842665933, + "(2, 3, 1, 0)": 0.909330234020913 }, "loss": [ 5.07912600866689e-10, @@ -199,4 +198,4 @@ 0.1760271234949965 ] ] -} \ No newline at end of file +} diff --git a/pytheus/graphs/CondensedMatter/spin32letter/config_spin32letter.json b/pytheus/graphs/CondensedMatter/spin32letter/config_spin32letter.json new file mode 100644 index 00000000..3214fc50 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/spin32letter/config_spin32letter.json @@ -0,0 +1,62 @@ +{ + "description": "Finding a setup for the creation of the spin 3/2 letter state", + "bulk_thr": 0.01, + "edges_tried": 20, + "foldername": "spin32letter", + "ftol": 1e-06, + "loss_func": "cr", + "num_anc": 0, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 10, + "target_state": [ + "121212", + "120312", + "031212", + "121203", + "030312", + "031203", + "120303", + "030303", + "112212", + "112203", + "103212", + "012312", + "012303", + "003312", + "103203", + "003303", + "121122", + "031122", + "121032", + "120123", + "030123", + "031032", + "120033", + "030033", + "112122", + "012123", + "103122", + "112032", + "103032", + "003123", + "012033", + "003033", + "111222", + "110322", + "101232", + "011223", + "100332", + "010323", + "001233", + "000333" + ], + "thresholds": [ + 0.25, + 0.1 + ], + "tries_per_edge": 5, + "unicolor": false +} \ No newline at end of file diff --git a/pytheus/graphs/CondensedMatter/spin32letter/graph_spin32letter.aux b/pytheus/graphs/CondensedMatter/spin32letter/graph_spin32letter.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/spin32letter/graph_spin32letter.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/spin32letter/graph_spin32letter.pdf b/pytheus/graphs/CondensedMatter/spin32letter/graph_spin32letter.pdf new file mode 100644 index 00000000..0b08e0b4 Binary files /dev/null and b/pytheus/graphs/CondensedMatter/spin32letter/graph_spin32letter.pdf differ diff --git a/pytheus/graphs/CondensedMatter/spin32letter/graph_spin32letter.tex b/pytheus/graphs/CondensedMatter/spin32letter/graph_spin32letter.tex new file mode 100644 index 00000000..6021df2a --- /dev/null +++ b/pytheus/graphs/CondensedMatter/spin32letter/graph_spin32letter.tex @@ -0,0 +1,64 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [circle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col3}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col2}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col3}, bend right=-11.25, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col1}{col2}, bend right=11.25, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col0}{col3}, bend right=-16.875, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col2}, bend right=-5.625, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col2}{col1}, bend right=5.625, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col3}{col0}, bend right=16.875, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col3}{col2}, bend right=-11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col3}{col2}, bend right=11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col3}, bend right=-11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col1}{col2}, bend right=11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col3}{col2}, bend right=-11.25, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col3}{col2}, bend right=11.25, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col3}{col0}, bend right=-11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col2}{col1}, bend right=11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col3}{col0}, bend right=-11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor_neg={col2}{col1}, bend right=11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor_neg={col3}{col0}, bend right=-11.25, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor_neg={col2}{col1}, bend right=11.25, opacity=1.0] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/CondensedMatter/spin32letter/plot_spin32letter_clean-22-56-0.0244_0.0000.json b/pytheus/graphs/CondensedMatter/spin32letter/plot_spin32letter_clean-22-56-0.0244_0.0000.json new file mode 100644 index 00000000..1cd04091 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/spin32letter/plot_spin32letter_clean-22-56-0.0244_0.0000.json @@ -0,0 +1,30 @@ +{ + "graph": { + "(0, 2, 1, 0)": -1.0, + "(4, 5, 1, 2)": -1.0, + "(0, 2, 0, 1)": 1.0, + "(4, 5, 0, 3)": -1.0, + "(3, 4, 1, 2)": -1.0, + "(3, 4, 0, 3)": -1.0, + "(2, 3, 1, 2)": -1.0, + "(2, 3, 0, 3)": -1.0, + "(1, 5, 3, 2)": 1.0, + "(1, 5, 2, 3)": -1.0, + "(1, 4, 1, 2)": 1.0, + "(1, 4, 0, 3)": 1.0, + "(1, 3, 3, 2)": 1.0, + "(1, 3, 2, 3)": -1.0, + "(1, 2, 3, 0)": 1.0, + "(1, 2, 2, 1)": 1.0, + "(1, 2, 1, 2)": 1.0, + "(1, 2, 0, 3)": 1.0, + "(0, 5, 1, 2)": 1.0, + "(0, 5, 0, 3)": 1.0, + "(0, 3, 1, 2)": 1.0, + "(0, 3, 0, 3)": 1.0 + }, + "loss": [ + 0.024390243902439046, + 0.0 + ] +} \ No newline at end of file diff --git a/theseus/configs/spin3minus_3.json b/pytheus/graphs/CondensedMatter/spin3halfsMINUS/config_spin3halfsMINUS.json similarity index 97% rename from theseus/configs/spin3minus_3.json rename to pytheus/graphs/CondensedMatter/spin3halfsMINUS/config_spin3halfsMINUS.json index b95d05ee..d5576ddd 100644 --- a/theseus/configs/spin3minus_3.json +++ b/pytheus/graphs/CondensedMatter/spin3halfsMINUS/config_spin3halfsMINUS.json @@ -5,7 +5,7 @@ "foldername": "spin3minus_3", "ftol": 1e-05, "loss_func": "cr", - "num_anc": 3, + "num_anc": 1, "num_pre": 1, "optimizer": "L-BFGS-B", "imaginary": false, @@ -33,4 +33,4 @@ ], "tries_per_edge": 5, "unicolor": false -} \ No newline at end of file +} diff --git a/pytheus/graphs/CondensedMatter/spin3halfsMINUS/graph_spin3halfsMINUS.aux b/pytheus/graphs/CondensedMatter/spin3halfsMINUS/graph_spin3halfsMINUS.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/spin3halfsMINUS/graph_spin3halfsMINUS.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/spin3halfsMINUS/graph_spin3halfsMINUS.pdf b/pytheus/graphs/CondensedMatter/spin3halfsMINUS/graph_spin3halfsMINUS.pdf new file mode 100644 index 00000000..54758eab Binary files /dev/null and b/pytheus/graphs/CondensedMatter/spin3halfsMINUS/graph_spin3halfsMINUS.pdf differ diff --git a/pytheus/graphs/CondensedMatter/spin3halfsMINUS/graph_spin3halfsMINUS.tex b/pytheus/graphs/CondensedMatter/spin3halfsMINUS/graph_spin3halfsMINUS.tex new file mode 100644 index 00000000..2679e4a7 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/spin3halfsMINUS/graph_spin3halfsMINUS.tex @@ -0,0 +1,52 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col1}{col3}, bend right=-11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col3}{col0}, bend right=-11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col3}{col0}, bend right=11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col3}{col0}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col3}{col1}, bend right=11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/CondensedMatter/spin3minus_3/clean-13-12-0.1429_0.0000.json b/pytheus/graphs/CondensedMatter/spin3halfsMINUS/other_solutions/spin3minus_3_clean-13-12-0.1429_0.0000.json similarity index 100% rename from theseus/graphs/CondensedMatter/spin3minus_3/clean-13-12-0.1429_0.0000.json rename to pytheus/graphs/CondensedMatter/spin3halfsMINUS/other_solutions/spin3minus_3_clean-13-12-0.1429_0.0000.json diff --git a/pytheus/graphs/CondensedMatter/spin3halfsMINUS/plot_spin3halfsMINUS.json b/pytheus/graphs/CondensedMatter/spin3halfsMINUS/plot_spin3halfsMINUS.json new file mode 100644 index 00000000..bb5cf860 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/spin3halfsMINUS/plot_spin3halfsMINUS.json @@ -0,0 +1,258 @@ +{ + "graph": { + "(0, 1, 1, 3)": 1.0, + "(0, 1, 3, 0)": -1.0, + "(0, 2, 0, 3)": -1.0, + "(0, 2, 3, 0)": 1.0, + "(0, 3, 0, 0)": 1.0, + "(0, 3, 1, 0)": -1.0, + "(1, 2, 0, 3)": -1.0, + "(1, 2, 3, 1)": 1.0, + "(1, 3, 0, 0)": -1.0, + "(1, 3, 1, 0)": 1.0, + "(2, 3, 0, 0)": -1.0, + "(2, 3, 1, 0)": 1.0 + }, + "loss": [ + 0.1428571428571429, + 0.0 + ], + "history": [ + [ + 0.0102636926192472, + 0.0001340377051459729 + ], + [ + 0.010262775741230912, + 0.00013181021230268541 + ], + [ + 0.01026207043062577, + 0.00013008729612784542 + ], + [ + 0.01026148764771384, + 0.0001286712997927708 + ], + [ + 0.010262259869190382, + 0.00012871570931360932 + ], + [ + 0.010263037115998852, + 0.00012884945452806829 + ], + [ + 0.010268021253287851, + 0.0001324198764275364 + ], + [ + 0.010269589051019157, + 0.00013396393203102264 + ], + [ + 0.010267737362046336, + 0.00013201049890065875 + ], + [ + 0.010273352752246612, + 0.0001376924911952182 + ], + [ + 0.010283250763682972, + 0.0001474980258102665 + ], + [ + 0.010296480453409473, + 0.00016040085258439696 + ], + [ + 0.010377067396680872, + 0.0002422382900885145 + ], + [ + 0.010371359743018616, + 0.00023609954007686174 + ], + [ + 0.01036548520192615, + 0.00022986234489863477 + ], + [ + 0.010361692822038582, + 0.00019355956472089098 + ], + [ + 0.010323971704057189, + 0.00010235293155047565 + ], + [ + 0.010359101113026403, + 7.012865421862635e-05 + ], + [ + 0.010353515244033051, + 4.608446813303413e-05 + ], + [ + 0.01035317171280592, + 4.4812549370165655e-05 + ], + [ + 0.010342228615430327, + 3.364029243313471e-05 + ], + [ + 0.010331200839162613, + 2.2381580738528584e-05 + ], + [ + 0.01032898860416187, + 2.01230184554424e-05 + ], + [ + 0.010328932307868133, + 2.0065543237635097e-05 + ], + [ + 0.010328861356561858, + 1.9993106110338665e-05 + ], + [ + 0.010328797291296543, + 1.9927699227428874e-05 + ], + [ + 0.010309285273956137, + 7.068430285528393e-09 + ], + [ + 0.01030966301240932, + 3.5842359902282794e-07 + ], + [ + 0.010309590148024572, + 2.83845424831064e-07 + ], + [ + 0.010309566335878095, + 2.5949449355966436e-07 + ], + [ + 0.010309417023423695, + 1.0711920317429957e-07 + ], + [ + 0.010309643744476182, + 3.730459812167908e-07 + ], + [ + 0.010310077817723085, + 8.162095153085858e-07 + ], + [ + 0.010309951433851383, + 6.871789347551172e-07 + ], + [ + 0.01030960374587131, + 3.322097322788764e-07 + ], + [ + 0.010309647915361708, + 3.773042127619419e-07 + ], + [ + 0.010309554003959498, + 2.8142613361925584e-07 + ], + [ + 0.010309483874902603, + 2.0982844550765378e-07 + ], + [ + 0.010309507353677638, + 2.3379890923269642e-07 + ], + [ + 0.02520248349317422, + 0.00444148035373626 + ], + [ + 0.026110524276071856, + 0.0066895086104149515 + ], + [ + 0.026227668580408592, + 0.007276024240290835 + ], + [ + 0.029858012650814336, + 0.0031309017762007896 + ], + [ + 0.03486212526218224, + 0.003928566621611451 + ], + [ + 0.037039643152575574, + 0.002873506628422673 + ], + [ + 0.03926907500409993, + 0.0007686171211973569 + ], + [ + 0.039690353609247886, + 0.00045453637536074787 + ], + [ + 0.039855354795415465, + 0.00014387800031101516 + ], + [ + 0.040000011943754465, + 1.2959803008527615e-08 + ], + [ + 0.0400002142415391, + 2.3246694569323267e-07 + ], + [ + 0.040000038683325134, + 4.19740939783253e-08 + ], + [ + 0.0400000047581085, + 5.162878125020143e-09 + ], + [ + 0.040000000000000036, + 0.0 + ], + [ + 0.10000195261726397, + 0.03588765078354905 + ], + [ + 0.11111114475505846, + 0.03030564944490688 + ], + [ + 0.11111113144776619, + 0.030305166997879773 + ], + [ + 0.12963012262755758, + 0.015481850107362916 + ], + [ + 0.13333487701867097, + 0.011730240634713618 + ], + [ + 0.14102564394169204, + 0.0024505954849578515 + ] + ] +} diff --git a/theseus/configs/spin3plus_3.json b/pytheus/graphs/CondensedMatter/spin3halfsPLUS/config_spin3halfsPLUS.json similarity index 97% rename from theseus/configs/spin3plus_3.json rename to pytheus/graphs/CondensedMatter/spin3halfsPLUS/config_spin3halfsPLUS.json index 0c785f9b..82efc84a 100644 --- a/theseus/configs/spin3plus_3.json +++ b/pytheus/graphs/CondensedMatter/spin3halfsPLUS/config_spin3halfsPLUS.json @@ -5,7 +5,7 @@ "foldername": "spin3plus_3", "ftol": 1e-05, "loss_func": "cr", - "num_anc": 3, + "num_anc": 1, "num_pre": 1, "optimizer": "L-BFGS-B", "imaginary": false, @@ -33,4 +33,4 @@ ], "tries_per_edge": 5, "unicolor": false -} \ No newline at end of file +} diff --git a/pytheus/graphs/CondensedMatter/spin3halfsPLUS/graph_spin3halfsPLUS.aux b/pytheus/graphs/CondensedMatter/spin3halfsPLUS/graph_spin3halfsPLUS.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/spin3halfsPLUS/graph_spin3halfsPLUS.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/spin3halfsPLUS/graph_spin3halfsPLUS.pdf b/pytheus/graphs/CondensedMatter/spin3halfsPLUS/graph_spin3halfsPLUS.pdf new file mode 100644 index 00000000..1b79ef1c Binary files /dev/null and b/pytheus/graphs/CondensedMatter/spin3halfsPLUS/graph_spin3halfsPLUS.pdf differ diff --git a/pytheus/graphs/CondensedMatter/spin3halfsPLUS/graph_spin3halfsPLUS.tex b/pytheus/graphs/CondensedMatter/spin3halfsPLUS/graph_spin3halfsPLUS.tex new file mode 100644 index 00000000..1c198a4d --- /dev/null +++ b/pytheus/graphs/CondensedMatter/spin3halfsPLUS/graph_spin3halfsPLUS.tex @@ -0,0 +1,52 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col1}{col2}, bend right=-11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col2}{col0}, bend right=-11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col2}{col0}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col2}{col1}, bend right=11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/CondensedMatter/spin3plus_3/clean-14-12-0.1429_0.0000.json b/pytheus/graphs/CondensedMatter/spin3halfsPLUS/other_solutions/clean-14-12-0.1429_0.0000.json similarity index 100% rename from theseus/graphs/CondensedMatter/spin3plus_3/clean-14-12-0.1429_0.0000.json rename to pytheus/graphs/CondensedMatter/spin3halfsPLUS/other_solutions/clean-14-12-0.1429_0.0000.json diff --git a/pytheus/graphs/CondensedMatter/spin3halfsPLUS/plot_spin3halfsPLUS.json b/pytheus/graphs/CondensedMatter/spin3halfsPLUS/plot_spin3halfsPLUS.json new file mode 100644 index 00000000..1faec92c --- /dev/null +++ b/pytheus/graphs/CondensedMatter/spin3halfsPLUS/plot_spin3halfsPLUS.json @@ -0,0 +1,190 @@ +{ + "graph": { + "(0, 1, 1, 2)": 1.0, + "(0, 1, 2, 0)": -1.0, + "(0, 2, 0, 2)": -1.0, + "(0, 2, 2, 0)": 1.0, + "(0, 3, 0, 0)": 1.0, + "(0, 3, 1, 0)": -1.0, + "(1, 2, 0, 2)": -1.0, + "(1, 2, 2, 1)": 1.0, + "(1, 3, 0, 0)": -1.0, + "(1, 3, 1, 0)": 1.0, + "(2, 3, 0, 0)": -1.0, + "(2, 3, 1, 0)": 1.0 + }, + "loss": [ + 0.14285720173363758, + 8.013745023127683e-08 + ], + "history": [ + [ + 0.004713276646056808, + 3.486406307573464e-05 + ], + [ + 0.004711680604701285, + 2.653713438083294e-05 + ], + [ + 0.004659148654220124, + 1.4076164649212686e-05 + ], + [ + 0.004716879812708741, + 7.060640696421316e-05 + ], + [ + 0.004734683570024822, + 5.8101660650899944e-05 + ], + [ + 0.0047130596962198235, + 4.4882210301966374e-05 + ], + [ + 0.004702488716687325, + 1.4048175041248001e-05 + ], + [ + 0.004619745436425848, + 8.352695881508332e-06 + ], + [ + 0.004636108058105215, + 2.5530578480426058e-05 + ], + [ + 0.0046287621482331565, + 1.1441920147348128e-05 + ], + [ + 0.004608347636181009, + 6.97344385236498e-07 + ], + [ + 0.004651762136884563, + 6.310508298690287e-06 + ], + [ + 0.004652563266204224, + 8.345462164771611e-06 + ], + [ + 0.004648208530571463, + 5.630329892980512e-06 + ], + [ + 0.00460827142501552, + 5.714487771868448e-10 + ], + [ + 0.004608294930875889, + 2.220446049250313e-16 + ], + [ + 0.017738894185655774, + 0.0006565600005551397 + ], + [ + 0.017557712978384266, + 0.0007831528099032647 + ], + [ + 0.0179507211603831, + 0.00023526717626132232 + ], + [ + 0.018020458307962284, + 0.0001969298818680354 + ], + [ + 0.018151996327075204, + 3.306364791355598e-05 + ], + [ + 0.018181898702393395, + 8.353043201569932e-08 + ], + [ + 0.03427906060356334, + 0.001405058597649389 + ], + [ + 0.03469082349834496, + 0.001084423385204758 + ], + [ + 0.03486368511367954, + 0.0009364666872191396 + ], + [ + 0.034938598670603005, + 0.0008664150561198403 + ], + [ + 0.036471031051860114, + 0.001523947182511698 + ], + [ + 0.03936943848382213, + 0.0017410927372221163 + ], + [ + 0.0386625585826188, + 0.0012845145076963993 + ], + [ + 0.03921590293731303, + 0.000810900118308755 + ], + [ + 0.03921594222710667, + 0.0008337988922947348 + ], + [ + 0.0400000671337335, + 7.284476266633533e-08 + ], + [ + 0.06735732487519708, + 0.008938290283512562 + ], + [ + 0.08503727418907348, + 0.019110693117612265 + ], + [ + 0.09785749789975462, + 0.030002274361886072 + ], + [ + 0.1030815457957952, + 0.023259854427423732 + ], + [ + 0.10998636617562174, + 0.01873657500330661 + ], + [ + 0.11564965230753343, + 0.021608320252230584 + ], + [ + 0.13335074563881566, + 0.011497567292979904 + ], + [ + 0.14102875985830698, + 0.002379342398494133 + ], + [ + 0.14201507934478275, + 0.0011869757435324368 + ], + [ + 0.14285736902962987, + 3.078458715721766e-07 + ] + ] +} diff --git a/theseus/configs/wAF1_3_rough.json b/pytheus/graphs/CondensedMatter/wAF1_3/config_wAF1_3_wAF1_3_rough.json similarity index 100% rename from theseus/configs/wAF1_3_rough.json rename to pytheus/graphs/CondensedMatter/wAF1_3/config_wAF1_3_wAF1_3_rough.json diff --git a/pytheus/graphs/CondensedMatter/wAF1_3/graph_wAF1_3.aux b/pytheus/graphs/CondensedMatter/wAF1_3/graph_wAF1_3.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/wAF1_3/graph_wAF1_3.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/wAF1_3/graph_wAF1_3.pdf b/pytheus/graphs/CondensedMatter/wAF1_3/graph_wAF1_3.pdf new file mode 100644 index 00000000..ae056add Binary files /dev/null and b/pytheus/graphs/CondensedMatter/wAF1_3/graph_wAF1_3.pdf differ diff --git a/pytheus/graphs/CondensedMatter/wAF1_3/graph_wAF1_3.tex b/pytheus/graphs/CondensedMatter/wAF1_3/graph_wAF1_3.tex new file mode 100644 index 00000000..077943d4 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/wAF1_3/graph_wAF1_3.tex @@ -0,0 +1,54 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col2}{col2}, bend right=-15.0, opacity=0.3] (0) to (1); +\path[line width=4.0,bicolor={col3}{col1}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col4}{col0}, bend right=15.0, opacity=0.3] (0) to (1); +\path[line width=4.0,bicolor={col2}{col4}, bend right=-15.0, opacity=0.7631957838957595] (0) to (2); +\path[line width=4.0,bicolor={col3}{col3}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col4}{col2}, bend right=15.0, opacity=0.7631958791316491] (0) to (2); +\path[line width=4.0,bicolor={col3}{col0}, bend right=0.0, opacity=0.872351820107287] (0) to (4); +\path[line width=4.0,bicolor_neg={col4}{col0}, bend right=-11.25, opacity=0.3] (1) to (2); +\path[line width=4.0,bicolor_neg={col2}{col2}, bend right=11.25, opacity=0.3255905920261047] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=0.3] (1) to (4); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=0.0, opacity=0.950644060783829] (2) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.9114195235294568] (3) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/CondensedMatter/wAF1_3/rough-12-8-0.0000_0.4445.json b/pytheus/graphs/CondensedMatter/wAF1_3/plot_wAF1_3_rough-12-8-0.0000_0.4445.json similarity index 100% rename from theseus/graphs/CondensedMatter/wAF1_3/rough-12-8-0.0000_0.4445.json rename to pytheus/graphs/CondensedMatter/wAF1_3/plot_wAF1_3_rough-12-8-0.0000_0.4445.json diff --git a/theseus/configs/wAF2_3_rough.json b/pytheus/graphs/CondensedMatter/wAF2_3/config_wAF2_3_wAF2_3_rough.json similarity index 100% rename from theseus/configs/wAF2_3_rough.json rename to pytheus/graphs/CondensedMatter/wAF2_3/config_wAF2_3_wAF2_3_rough.json diff --git a/pytheus/graphs/CondensedMatter/wAF2_3/graph_wAF2_3.aux b/pytheus/graphs/CondensedMatter/wAF2_3/graph_wAF2_3.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/wAF2_3/graph_wAF2_3.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/wAF2_3/graph_wAF2_3.pdf b/pytheus/graphs/CondensedMatter/wAF2_3/graph_wAF2_3.pdf new file mode 100644 index 00000000..6d0a54ae Binary files /dev/null and b/pytheus/graphs/CondensedMatter/wAF2_3/graph_wAF2_3.pdf differ diff --git a/pytheus/graphs/CondensedMatter/wAF2_3/graph_wAF2_3.tex b/pytheus/graphs/CondensedMatter/wAF2_3/graph_wAF2_3.tex new file mode 100644 index 00000000..58227184 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/wAF2_3/graph_wAF2_3.tex @@ -0,0 +1,53 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col4}{col0}, bend right=-11.25, opacity=0.3] (0) to (1); +\path[line width=4.0,bicolor_neg={col2}{col2}, bend right=11.25, opacity=0.5242788002322031] (0) to (1); +\path[line width=4.0,bicolor={col0}{col2}, bend right=-15.0, opacity=0.3] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col2}{col0}, bend right=15.0, opacity=0.3] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.30116510522326556] (0) to (3); +\path[line width=4.0,bicolor_neg={col2}{col2}, bend right=-11.25, opacity=0.8300986946795763] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col4}, bend right=11.25, opacity=0.3] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.4768505999434571] (2) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.8676437294006845] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/CondensedMatter/wAF2_3/rough-11-7-0.0000_0.5330.json b/pytheus/graphs/CondensedMatter/wAF2_3/plot_wAF2_3_rough-11-7-0.0000_0.5330.json similarity index 100% rename from theseus/graphs/CondensedMatter/wAF2_3/rough-11-7-0.0000_0.5330.json rename to pytheus/graphs/CondensedMatter/wAF2_3/plot_wAF2_3_rough-11-7-0.0000_0.5330.json diff --git a/theseus/configs/wAF3_3.json b/pytheus/graphs/CondensedMatter/wAF3_3/config_wAF3_3.json similarity index 100% rename from theseus/configs/wAF3_3.json rename to pytheus/graphs/CondensedMatter/wAF3_3/config_wAF3_3.json diff --git a/pytheus/graphs/CondensedMatter/wAF3_3/graph_wAF3_3.aux b/pytheus/graphs/CondensedMatter/wAF3_3/graph_wAF3_3.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/wAF3_3/graph_wAF3_3.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/wAF3_3/graph_wAF3_3.pdf b/pytheus/graphs/CondensedMatter/wAF3_3/graph_wAF3_3.pdf new file mode 100644 index 00000000..29d5f698 Binary files /dev/null and b/pytheus/graphs/CondensedMatter/wAF3_3/graph_wAF3_3.pdf differ diff --git a/pytheus/graphs/CondensedMatter/wAF3_3/graph_wAF3_3.tex b/pytheus/graphs/CondensedMatter/wAF3_3/graph_wAF3_3.tex new file mode 100644 index 00000000..0f3bc5f3 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/wAF3_3/graph_wAF3_3.tex @@ -0,0 +1,62 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col4}{col2}, bend right=-15.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col3}{col3}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col2}{col4}, bend right=15.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col4}{col2}, bend right=-11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor_neg={col2}{col4}, bend right=11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col3}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col3}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col2}{col4}, bend right=-15.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col3}{col3}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col4}{col2}, bend right=15.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col3}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col3}{col0}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/CondensedMatter/wAF3_3/clean-20-30-0.0050_0.0000.json b/pytheus/graphs/CondensedMatter/wAF3_3/plot_wAF3_3_clean-20-30-0.0050_0.0000.json similarity index 100% rename from theseus/graphs/CondensedMatter/wAF3_3/clean-20-30-0.0050_0.0000.json rename to pytheus/graphs/CondensedMatter/wAF3_3/plot_wAF3_3_clean-20-30-0.0050_0.0000.json diff --git a/theseus/configs/wAF4_3.json b/pytheus/graphs/CondensedMatter/wAF4_3/config_wAF4_3.json similarity index 100% rename from theseus/configs/wAF4_3.json rename to pytheus/graphs/CondensedMatter/wAF4_3/config_wAF4_3.json diff --git a/pytheus/graphs/CondensedMatter/wAF4_3/graph_wAF4_3.aux b/pytheus/graphs/CondensedMatter/wAF4_3/graph_wAF4_3.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/wAF4_3/graph_wAF4_3.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/wAF4_3/graph_wAF4_3.pdf b/pytheus/graphs/CondensedMatter/wAF4_3/graph_wAF4_3.pdf new file mode 100644 index 00000000..8472e8e6 Binary files /dev/null and b/pytheus/graphs/CondensedMatter/wAF4_3/graph_wAF4_3.pdf differ diff --git a/pytheus/graphs/CondensedMatter/wAF4_3/graph_wAF4_3.tex b/pytheus/graphs/CondensedMatter/wAF4_3/graph_wAF4_3.tex new file mode 100644 index 00000000..f7cfebdd --- /dev/null +++ b/pytheus/graphs/CondensedMatter/wAF4_3/graph_wAF4_3.tex @@ -0,0 +1,57 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col2}, bend right=-11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col2}, bend right=-15.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col2}{col0}, bend right=15.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col0}{col2}, bend right=-15.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col2}{col0}, bend right=15.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/CondensedMatter/wAF4_3/clean-15-10-0.0435_0.0000.json b/pytheus/graphs/CondensedMatter/wAF4_3/plot_wAF4_3_clean-15-10-0.0435_0.0000.json similarity index 93% rename from theseus/graphs/CondensedMatter/wAF4_3/clean-15-10-0.0435_0.0000.json rename to pytheus/graphs/CondensedMatter/wAF4_3/plot_wAF4_3_clean-15-10-0.0435_0.0000.json index c4d68f51..59d8cdc5 100644 --- a/theseus/graphs/CondensedMatter/wAF4_3/clean-15-10-0.0435_0.0000.json +++ b/pytheus/graphs/CondensedMatter/wAF4_3/plot_wAF4_3_clean-15-10-0.0435_0.0000.json @@ -4,17 +4,17 @@ "(0, 2, 1, 1)": 1.0, "(0, 2, 2, 0)": 1.0, "(0, 3, 1, 0)": 1.0, - "(0, 5, 1, 0)": 1.0, - "(1, 2, 0, 2)": -1.0, - "(1, 2, 1, 1)": -1.0, - "(1, 2, 2, 0)": -1.0, - "(1, 3, 1, 0)": -1.0, - "(1, 5, 1, 0)": -1.0, - "(2, 4, 1, 0)": 1.0, + "(0, 4, 1, 0)": 1.0, + "(1, 2, 0, 2)": 1.0, + "(1, 2, 1, 1)": 1.0, + "(1, 2, 2, 0)": 1.0, + "(1, 3, 1, 0)": 1.0, + "(1, 4, 1, 0)": 1.0, "(2, 5, 1, 0)": 1.0, - "(3, 4, 0, 0)": 1.0, - "(0, 1, 0, 2)": -1.0, - "(0, 1, 2, 0)": -1.0 + "(2, 4, 1, 0)": 1.0, + "(3, 5, 0, 0)": 1.0, + "(0, 1, 0, 2)": 1.0, + "(0, 1, 2, 0)": 1.0 }, "loss": [ 0.04347826086956519, diff --git a/pytheus/graphs/CondensedMatter/wAF_NOsym/config_wAF_NOsym.json b/pytheus/graphs/CondensedMatter/wAF_NOsym/config_wAF_NOsym.json new file mode 100644 index 00000000..c956e72d --- /dev/null +++ b/pytheus/graphs/CondensedMatter/wAF_NOsym/config_wAF_NOsym.json @@ -0,0 +1,38 @@ +{ + "description": "Condensed matter state weak antiferromagnetic 1 of three particles", + "bulk_thr": 0.01, + "edges_tried": 10, + "foldername": "wAF1_3", + "ftol": 1e-05, + "loss_func": "fid", + "num_anc": 1, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 100, + "target_state": [ + "214", + "223", + "304", + "313", + "322", + "403", + "412" + ], + "amplitudes": [ + 0.25, + 0.5, + 0.125, + 2, + 0.5, + 0.125, + 0.25 + ], + "thresholds": [ + 0.05, + 1 + ], + "tries_per_edge": 5, + "unicolor": false +} diff --git a/pytheus/graphs/CondensedMatter/wAF_NOsym/graph_wAF_NOsym.aux b/pytheus/graphs/CondensedMatter/wAF_NOsym/graph_wAF_NOsym.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/wAF_NOsym/graph_wAF_NOsym.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/wAF_NOsym/graph_wAF_NOsym.pdf b/pytheus/graphs/CondensedMatter/wAF_NOsym/graph_wAF_NOsym.pdf new file mode 100644 index 00000000..e02a6f78 Binary files /dev/null and b/pytheus/graphs/CondensedMatter/wAF_NOsym/graph_wAF_NOsym.pdf differ diff --git a/pytheus/graphs/CondensedMatter/wAF_NOsym/graph_wAF_NOsym.tex b/pytheus/graphs/CondensedMatter/wAF_NOsym/graph_wAF_NOsym.tex new file mode 100644 index 00000000..dce427a6 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/wAF_NOsym/graph_wAF_NOsym.tex @@ -0,0 +1,50 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col4}, bend right=-11.25, opacity=0.3] (0) to (1); +\path[line width=4.0,bicolor={col2}{col2}, bend right=11.25, opacity=0.5242788002322031] (0) to (1); +\path[line width=4.0,bicolor={col0}{col2}, bend right=-15.0, opacity=0.3] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col2}{col0}, bend right=15.0, opacity=0.3] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.30116510522326556] (0) to (3); +\path[line width=4.0,bicolor={col2}{col2}, bend right=-11.25, opacity=0.8300986946795763] (1) to (2); +\path[line width=4.0,bicolor={col4}{col0}, bend right=11.25, opacity=0.3] (1) to (2); +\path[line width=4.0,bicolor={col3}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.4768505999434571] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/CondensedMatter/wAF_NOsym/plot_wAF_NOsym.json b/pytheus/graphs/CondensedMatter/wAF_NOsym/plot_wAF_NOsym.json new file mode 100644 index 00000000..4ae0602d --- /dev/null +++ b/pytheus/graphs/CondensedMatter/wAF_NOsym/plot_wAF_NOsym.json @@ -0,0 +1,336 @@ +{ + "graph": { + "(1, 3, 3, 0)": 1.0, + "(0, 2, 2, 0)": 0.1250021523692456, + "(0, 2, 0, 2)": 0.12500215434120682, + "(0, 1, 0, 4)": 0.13106968624801008, + "(1, 2, 4, 0)": 0.20758272252903287, + "(0, 3, 1, 0)": 0.30116510522326556, + "(2, 3, 1, 0)": 0.4768505999434571, + "(0, 1, 2, 2)": 0.5242788002322031, + "(1, 2, 2, 2)": 0.8300986946795763, + "(0, 2, 1, 1)": 1.0 + }, + "loss": [ + 2.827840039909546e-08, + 0.44452402165569727 + ], + "history": [ + [ + 0.00017769755975216572, + 0.05691637740497657 + ], + [ + 0.00017679762387923237, + 0.056981301201907364 + ], + [ + 0.00017653136980311235, + 0.056916055673195354 + ], + [ + 0.0001747950573282031, + 0.05696354497493317 + ], + [ + 0.00017889595707187844, + 0.056991581212678444 + ], + [ + 0.00017892637182992388, + 0.05700116501781405 + ], + [ + 0.00021184735966572887, + 0.05709759258772795 + ], + [ + 0.00020350688561643349, + 0.05708044011827984 + ], + [ + 0.00021331331634388828, + 0.05721144398018485 + ], + [ + 0.000219657607768875, + 0.05714364339539835 + ], + [ + 0.0002099187676487535, + 0.05721808194408773 + ], + [ + 0.0002198112949397535, + 0.05721965447254562 + ], + [ + 0.00021798674337991653, + 0.057281373252807244 + ], + [ + 0.0002357550665385011, + 0.057244391519740256 + ], + [ + 0.00023801044505233904, + 0.05633953297606742 + ], + [ + 0.0002597560773880403, + 0.05639657918183627 + ], + [ + 0.0002507775644053911, + 0.05646310136810684 + ], + [ + 0.00027004830794008505, + 0.05648882473390415 + ], + [ + 0.00029138801232275746, + 0.05538694750363171 + ], + [ + 0.00029291370912976067, + 0.055410385965386943 + ], + [ + 0.0002891260540175411, + 0.054936094550811165 + ], + [ + 0.000331818659522809, + 0.054184853275922595 + ], + [ + 0.00034902432303618447, + 0.05419800634020566 + ], + [ + 0.0003327677436214538, + 0.05525427698807872 + ], + [ + 0.0003418733099129767, + 0.05530075665722822 + ], + [ + 0.0002534835104132105, + 0.05593412196335812 + ], + [ + 0.00025221409403697326, + 0.0559295050238362 + ], + [ + 0.00025543285181983677, + 0.05593810544575506 + ], + [ + 0.00013785243174646578, + 0.05576579804440995 + ], + [ + 0.00015177528817156283, + 0.05622371118150815 + ], + [ + 0.00016482191192901396, + 0.05564933457872956 + ], + [ + 0.00013838027885626492, + 0.05690138107982745 + ], + [ + 0.00013686727274941912, + 0.056882390243296554 + ], + [ + 0.00015438811480539272, + 0.05693305847652175 + ], + [ + 0.00015495318395741808, + 0.05682926456820181 + ], + [ + 0.00016185196036633265, + 0.05729103233072186 + ], + [ + 0.0001629819319334258, + 0.057193550545765914 + ], + [ + 0.00035818337223192387, + 0.0573098934623274 + ], + [ + 0.00016310607606917493, + 0.048113792887164775 + ], + [ + 0.00013080120436215203, + 0.0478743779688795 + ], + [ + 0.0001283851855016227, + 0.047856902729734196 + ], + [ + 9.641449406172509e-05, + 0.04793872946205224 + ], + [ + 9.298810413316261e-05, + 0.04871442759016209 + ], + [ + 9.210397283221372e-05, + 0.048696320161601414 + ], + [ + 7.785231930701464e-05, + 0.04875760850061406 + ], + [ + 7.700912682306882e-05, + 0.048740353740071574 + ], + [ + 0.0002700588606023846, + 0.04804488050718225 + ], + [ + 8.181053110678516e-05, + 0.04454295144477549 + ], + [ + 8.720167720033256e-05, + 0.04454195464879651 + ], + [ + 0.0001244404563580659, + 0.03989896119568204 + ], + [ + 4.0213553926582435e-05, + 0.03980173038262069 + ], + [ + 2.492365019723941e-05, + 0.039725711849301626 + ], + [ + 4.536031599156054e-05, + 0.03694043523889878 + ], + [ + 3.3127966879376025e-05, + 0.0371141359090249 + ], + [ + 1.3409058165603227e-05, + 0.03612424320532259 + ], + [ + 1.2989317316636217e-05, + 0.03612624774756912 + ], + [ + 1.2663454342698444e-05, + 0.03612194486293596 + ], + [ + 1.0689718171641438e-05, + 0.036264865963278825 + ], + [ + 5.413139994581151e-06, + 0.06299282087031255 + ], + [ + 5.072902355296449e-06, + 0.06298521242129751 + ], + [ + 6.881227363253473e-06, + 0.06293174999113826 + ], + [ + 1.356782263040035e-05, + 0.07105653201692963 + ], + [ + 6.898590850901165e-06, + 0.08675452937739558 + ], + [ + 7.002298111458138e-06, + 0.08673278282496266 + ], + [ + 9.363093388503607e-06, + 0.08719645283080613 + ], + [ + 1.8593255649568263e-06, + 0.09161965010608053 + ], + [ + 8.138509737243282e-07, + 0.09161632025220068 + ], + [ + 1.9635529047157263e-07, + 0.09458565312774392 + ], + [ + 1.1173666036867758e-07, + 0.09458864079025142 + ], + [ + 3.1605521464417308e-06, + 0.08878225153291452 + ], + [ + 1.972284244144973e-06, + 0.08916110975565572 + ], + [ + 1.0694517558196281e-06, + 0.08915252967790122 + ], + [ + 6.310467530745711e-07, + 0.08915028195589603 + ], + [ + 5.700601730662669e-07, + 0.0934439834765195 + ], + [ + 4.5541658277858943e-07, + 0.09345062488560785 + ], + [ + 3.6627834743008236e-07, + 0.09345621639598622 + ], + [ + 1.4363625178148709e-08, + 0.2010002608244159 + ], + [ + 4.054420688071048e-09, + 0.20099866631393914 + ], + [ + 2.827840039909546e-08, + 0.44452402165569727 + ] + ] +} diff --git a/theseus/configs/spinhalf_4.json b/pytheus/graphs/CondensedMatter/wAF_sym/config_wAF_sym.json similarity index 61% rename from theseus/configs/spinhalf_4.json rename to pytheus/graphs/CondensedMatter/wAF_sym/config_wAF_sym.json index 3bfbf648..d886e8a3 100644 --- a/theseus/configs/spinhalf_4.json +++ b/pytheus/graphs/CondensedMatter/wAF_sym/config_wAF_sym.json @@ -1,32 +1,30 @@ { - "description": "Condensed matter state spinhalf of four particles.", + "description": "Condensed matter state weak antiferromagnetic 4 of three particles", "bulk_thr": 0.01, "edges_tried": 10, - "foldername": "spinhalf_4", + "foldername": "wAF4_3", "ftol": 1e-05, "loss_func": "cr", - "num_anc": 2, + "num_anc": 3, "num_pre": 1, "optimizer": "L-BFGS-B", "imaginary": false, "safe_hist": true, "samples": 100, "target_state": [ - "0000", - "0011", - "0101", - "0110", - "1001", - "1010", - "1100", - "1111" + "012", + "021", + "102", + "111", + "120", + "201", + "210" ], "amplitudes": [ 0.5, 0.5, 0.5, - 0.5, - 0.5, + 2, 0.5, 0.5, 0.5 diff --git a/pytheus/graphs/CondensedMatter/wAF_sym/graph_wAF_sym.aux b/pytheus/graphs/CondensedMatter/wAF_sym/graph_wAF_sym.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/wAF_sym/graph_wAF_sym.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/CondensedMatter/wAF_sym/graph_wAF_sym.pdf b/pytheus/graphs/CondensedMatter/wAF_sym/graph_wAF_sym.pdf new file mode 100644 index 00000000..6b3f6b4d Binary files /dev/null and b/pytheus/graphs/CondensedMatter/wAF_sym/graph_wAF_sym.pdf differ diff --git a/pytheus/graphs/CondensedMatter/wAF_sym/graph_wAF_sym.tex b/pytheus/graphs/CondensedMatter/wAF_sym/graph_wAF_sym.tex new file mode 100644 index 00000000..f7cfebdd --- /dev/null +++ b/pytheus/graphs/CondensedMatter/wAF_sym/graph_wAF_sym.tex @@ -0,0 +1,57 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col2}, bend right=-11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col2}, bend right=-15.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col2}{col0}, bend right=15.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col0}{col2}, bend right=-15.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col2}{col0}, bend right=15.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/CondensedMatter/wAF_sym/plot_wAF_sym.json b/pytheus/graphs/CondensedMatter/wAF_sym/plot_wAF_sym.json new file mode 100644 index 00000000..59d8cdc5 --- /dev/null +++ b/pytheus/graphs/CondensedMatter/wAF_sym/plot_wAF_sym.json @@ -0,0 +1,189 @@ +{ + "graph": { + "(0, 2, 0, 2)": 1.0, + "(0, 2, 1, 1)": 1.0, + "(0, 2, 2, 0)": 1.0, + "(0, 3, 1, 0)": 1.0, + "(0, 4, 1, 0)": 1.0, + "(1, 2, 0, 2)": 1.0, + "(1, 2, 1, 1)": 1.0, + "(1, 2, 2, 0)": 1.0, + "(1, 3, 1, 0)": 1.0, + "(1, 4, 1, 0)": 1.0, + "(2, 5, 1, 0)": 1.0, + "(2, 4, 1, 0)": 1.0, + "(3, 5, 0, 0)": 1.0, + "(0, 1, 0, 2)": 1.0, + "(0, 1, 2, 0)": 1.0 + }, + "loss": [ + 0.04347826086956519, + 0.0 + ], + "history": [ + [ + 0.0032414288432296434, + 1.5115266929544013e-05 + ], + [ + 0.0032616606166017137, + 3.4854870709200014e-05 + ], + [ + 0.0032372307352991347, + 1.592983725018371e-05 + ], + [ + 0.003292930142153816, + 7.20778444468495e-05 + ], + [ + 0.0032852440263919647, + 5.7619100461647754e-05 + ], + [ + 0.0033106760487550124, + 7.725038804584639e-05 + ], + [ + 0.003286703803518587, + 6.108617920808079e-05 + ], + [ + 0.0032911870770225837, + 6.763570523049545e-05 + ], + [ + 0.003253456535435073, + 2.937621901710763e-05 + ], + [ + 0.003247115895366526, + 2.2528365277829643e-05 + ], + [ + 0.0032415075387630665, + 1.193439661095752e-05 + ], + [ + 0.0032574679476237156, + 2.427582690367469e-05 + ], + [ + 0.0032883549058462247, + 1.6096743492344245e-05 + ], + [ + 0.0033284860266630245, + 5.2965154554662774e-05 + ], + [ + 0.0032854060782621097, + 4.944806277884517e-05 + ], + [ + 0.003268731392758073, + 4.794478351644038e-05 + ], + [ + 0.0036692228850462305, + 0.0002717762488916309 + ], + [ + 0.004344769650052038, + 0.0002548785632261463 + ], + [ + 0.004453120137965727, + 0.00025256918756844104 + ], + [ + 0.004794239226524444, + 0.00048583768333332333 + ], + [ + 0.004935251049061007, + 0.0002909169746183604 + ], + [ + 0.0049954806280102515, + 0.0003386300826873079 + ], + [ + 0.005039592388269565, + 0.00024099653049680647 + ], + [ + 0.004924015128412673, + 0.0001036478357114845 + ], + [ + 0.004937577022490647, + 0.0001002807565690933 + ], + [ + 0.004939218988884053, + 0.00010050008946804745 + ], + [ + 0.005215676484149778, + 9.953619632141475e-05 + ], + [ + 0.005026098936879553, + 2.533621984768253e-06 + ], + [ + 0.005026489733340189, + 1.3779188253737473e-06 + ], + [ + 0.005025250126678427, + 1.2575927432756373e-07 + ], + [ + 0.005025148831686255, + 2.3438516683071953e-08 + ], + [ + 0.005025125628653426, + 5.179190409876355e-13 + ], + [ + 0.005025125628140947, + 3.3306690738754696e-16 + ], + [ + 0.005025172050878268, + 4.6892838279077864e-08 + ], + [ + 0.005025125963428412, + 3.386829705576133e-10 + ], + [ + 0.005025125737270653, + 1.1023504331575396e-10 + ], + [ + 0.005025125628140725, + 0.0 + ], + [ + 0.010909103426496425, + 0.0003202900068033365 + ], + [ + 0.011235955056179803, + 0.0 + ], + [ + 0.03896103958218522, + 0.004366851477393796 + ], + [ + 0.04347826086956519, + 0.0 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/.DS_Store b/pytheus/graphs/FockStates/.DS_Store new file mode 100644 index 00000000..cbf270c9 Binary files /dev/null and b/pytheus/graphs/FockStates/.DS_Store differ diff --git a/pytheus/graphs/FockStates/cube/config_cube.json b/pytheus/graphs/FockStates/cube/config_cube.json new file mode 100644 index 00000000..c239e4d8 --- /dev/null +++ b/pytheus/graphs/FockStates/cube/config_cube.json @@ -0,0 +1,51 @@ +{ + "description": "Cube state in Fock basis.", + "bulk_thr": 0.01, + "edges_tried": 20, + "foldername": "noon_2_8_anc6_cube_cr", + "ftol": 1e-05, + "loss_func": "fockcr", + "num_anc": 6, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 10, + "target_state": [ + [ + 8, + 0 + ], + [ + 4, + 4 + ], + [ + 0, + 8 + ] + ], + "amplitudes": [ + 0.45643546458763845, + 0.7637626158259733, + 0.45643546458763845 + ], + "thresholds": [ + 0.1, + 0.001 + ], + "tries_per_edge": 3, + "unicolor": false, + "loops": true, + "topopt": true, + "dimensions": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/cube/graph_cube.aux b/pytheus/graphs/FockStates/cube/graph_cube.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/FockStates/cube/graph_cube.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/FockStates/cube/graph_cube.pdf b/pytheus/graphs/FockStates/cube/graph_cube.pdf new file mode 100644 index 00000000..a9e774e2 Binary files /dev/null and b/pytheus/graphs/FockStates/cube/graph_cube.pdf differ diff --git a/pytheus/graphs/FockStates/cube/graph_cube.tex b/pytheus/graphs/FockStates/cube/graph_cube.tex new file mode 100644 index 00000000..d1f55e18 --- /dev/null +++ b/pytheus/graphs/FockStates/cube/graph_cube.tex @@ -0,0 +1,59 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle,dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [circle,dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [rectangle] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [rectangle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [rectangle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col0}{col0}, looseness=10,right,out=30.0,in=-30.0, opacity=0.3] (0) to (0); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.7350340337346698] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=0.9992978667733337] (0) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, looseness=10,right,out=75.0,in=15.0, opacity=1.0] (1) to (1); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=0.48077868422418196] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.7527430382812058] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.7559264053968922] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.639411891778119] (2) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=0.713792469931331] (4) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.5157797773418163] (5) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/FockStates/cube/other_solutions/rough-15-3-0.0035_0.0000(0).json b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-3-0.0035_0.0000(0).json new file mode 100644 index 00000000..e7dd01e3 --- /dev/null +++ b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-3-0.0035_0.0000(0).json @@ -0,0 +1,109 @@ +{ + "graph": { + "(0, 3, 0, 0)": 1.0, + "(1, 1, 0, 0)": 1.0, + "(0, 0, 0, 0)": 0.27012062136175646, + "(1, 3, 0, 0)": 0.48596428224313765, + "(2, 6, 0, 0)": -0.6458038550300802, + "(0, 1, 0, 0)": 0.7330299223172504, + "(1, 6, 0, 0)": -0.7625225651231001, + "(0, 5, 0, 0)": -0.7774530835465334, + "(4, 5, 0, 0)": -0.8138174390148756, + "(3, 5, 0, 0)": -0.8148392996669656, + "(1, 7, 0, 0)": 0.907166850937948, + "(0, 6, 0, 0)": 0.9995825144355263, + "(0, 2, 0, 0)": -1.0, + "(5, 7, 0, 0)": 1.0, + "(0, 4, 0, 0)": -1.0 + }, + "loss": [ + 0.0035038993533940133, + 3.2284977009577887e-05 + ], + "history": [ + [ + 0.0017786708390467032, + 1.124875260349878e-05 + ], + [ + 0.0018589284270491557, + 4.5660026696148215e-05 + ], + [ + 0.002010533996905539, + 4.948927416847937e-05 + ], + [ + 0.0020812515916638352, + 4.4355746206425906e-05 + ], + [ + 0.00227282507673221, + 7.16406803729086e-05 + ], + [ + 0.0017024165141811265, + 6.044096013246847e-05 + ], + [ + 0.0015588971771537397, + 5.1992545714973915e-05 + ], + [ + 0.0017289028979767807, + 7.813212184792917e-06 + ], + [ + 0.0021510643077332636, + 2.2632936007904725e-05 + ], + [ + 0.0020458322214105262, + 0.00018643517063243742 + ], + [ + 0.0018251041457337802, + 2.9572123899757052e-05 + ], + [ + 0.0015894659316780801, + 8.539818992447934e-05 + ], + [ + 0.0015575667674185834, + 5.1403507172476104e-05 + ], + [ + 0.004635844854760651, + 0.00017517390988663895 + ], + [ + 0.00463408001229515, + 0.0001770530147912064 + ], + [ + 0.0035378892050830224, + 0.0001233846838464281 + ], + [ + 0.003604156568124961, + 0.00016104330678878842 + ], + [ + 0.0035073546618573648, + 3.641866879366962e-05 + ], + [ + 0.003505950922977452, + 3.259573604597055e-05 + ], + [ + 0.003504892043607488, + 3.471373133512312e-05 + ], + [ + 0.0035038993533940133, + 3.2284977009577887e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/cube/other_solutions/rough-15-3-0.0035_0.0000.json b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-3-0.0035_0.0000.json new file mode 100644 index 00000000..c68ab8cf --- /dev/null +++ b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-3-0.0035_0.0000.json @@ -0,0 +1,109 @@ +{ + "graph": { + "(1, 2, 0, 0)": 1.0, + "(1, 6, 0, 0)": -1.0, + "(3, 4, 0, 0)": 1.0, + "(1, 1, 0, 0)": 0.26973612783449646, + "(0, 2, 0, 0)": 0.4875579516412578, + "(6, 7, 0, 0)": -0.645158990454616, + "(0, 1, 0, 0)": 0.7334744772572577, + "(0, 7, 0, 0)": -0.7616275956265134, + "(1, 4, 0, 0)": 0.8237127191380318, + "(4, 5, 0, 0)": 0.853347579052042, + "(2, 4, 0, 0)": 0.8560801412022505, + "(0, 3, 0, 0)": -0.8563009573290823, + "(1, 5, 0, 0)": -1.0, + "(0, 0, 0, 0)": 1.0, + "(1, 7, 0, 0)": 1.0 + }, + "loss": [ + 0.0035388918519587698, + 4.00958757893477e-05 + ], + "history": [ + [ + 0.007258517804934805, + 0.0003067103611863464 + ], + [ + 0.003993577080206978, + 0.0004897474957086256 + ], + [ + 0.0034712940671342007, + 0.00012539611986983612 + ], + [ + 0.003364200222371605, + 4.0480709952439575e-05 + ], + [ + 0.0030080734619267746, + 2.7219759452634662e-05 + ], + [ + 0.0029569122331107867, + 2.5011188821255637e-05 + ], + [ + 0.0029541437770289614, + 2.0516490901401063e-05 + ], + [ + 0.0018864507019192844, + 0.00028129455902781153 + ], + [ + 0.0018842309118304312, + 3.678020190711617e-05 + ], + [ + 0.0018666773465000341, + 1.4173080690849105e-05 + ], + [ + 0.0018610609631104502, + 1.608385013618374e-05 + ], + [ + 0.002262492912361802, + 2.6329672004443694e-05 + ], + [ + 0.0020547184645324235, + 6.0669191149553825e-05 + ], + [ + 0.0029939778832163144, + 0.00010155841300607538 + ], + [ + 0.003046103068329531, + 0.00033712120519813205 + ], + [ + 0.0019389351865696236, + 1.2176612013137245e-05 + ], + [ + 0.0021951668002651026, + 2.060962708139158e-05 + ], + [ + 0.002217197710627672, + 0.00012852587459599718 + ], + [ + 0.004186078348393907, + 9.932222063235852e-05 + ], + [ + 0.003542669973801371, + 4.546901413660098e-05 + ], + [ + 0.0035388918519587698, + 4.00958757893477e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/cube/other_solutions/rough-15-3-0.0036_0.0000.json b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-3-0.0036_0.0000.json new file mode 100644 index 00000000..280c7272 --- /dev/null +++ b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-3-0.0036_0.0000.json @@ -0,0 +1,109 @@ +{ + "graph": { + "(0, 6, 0, 0)": 1.0, + "(1, 1, 0, 0)": -1.0, + "(0, 0, 0, 0)": -0.2701331491427751, + "(1, 7, 0, 0)": -0.4856194257552765, + "(5, 6, 0, 0)": -0.6324567937198179, + "(0, 1, 0, 0)": -0.7332426398613077, + "(1, 5, 0, 0)": -0.7479587466758847, + "(0, 4, 0, 0)": 0.7896544681394656, + "(3, 4, 0, 0)": -0.8264602026607462, + "(4, 7, 0, 0)": 0.8293606147871091, + "(1, 2, 0, 0)": -0.8927075323125852, + "(0, 5, 0, 0)": 0.9835700039955296, + "(0, 3, 0, 0)": -1.0, + "(2, 4, 0, 0)": -1.0, + "(0, 7, 0, 0)": -1.0 + }, + "loss": [ + 0.003627592064200158, + 3.0510735917865794e-05 + ], + "history": [ + [ + 0.00046915318607920753, + 2.1307078703625137e-06 + ], + [ + 0.00046695713021061014, + 1.4602941386110402e-06 + ], + [ + 0.00042070071987465596, + 7.517759288422354e-07 + ], + [ + 0.0003821530135447171, + 1.8441783455891425e-07 + ], + [ + 0.00038197275676232767, + 2.887341764568063e-07 + ], + [ + 0.00034457502136586715, + 1.1039765736020613e-06 + ], + [ + 0.0004354814113658456, + 2.2039165858966925e-07 + ], + [ + 0.0005072797801972673, + 1.8706398459134022e-06 + ], + [ + 0.0005037822577437234, + 3.189624910415745e-06 + ], + [ + 0.0005763076728823036, + 2.999742902187741e-06 + ], + [ + 0.0008238856405207162, + 2.989215689641611e-06 + ], + [ + 0.0008085281800893629, + 1.083316199634865e-05 + ], + [ + 0.001447240281991169, + 2.188076116960147e-06 + ], + [ + 0.0015431113678773256, + 1.1276375803892513e-05 + ], + [ + 0.003616551127400003, + 0.0008628177200808995 + ], + [ + 0.0030392877186375955, + 5.0006410861946904e-05 + ], + [ + 0.003381216383344987, + 7.331330431026295e-05 + ], + [ + 0.003295992138350079, + 0.00013033453107424986 + ], + [ + 0.003632316224079446, + 3.212205608582597e-05 + ], + [ + 0.0036298784756231273, + 2.759249534789454e-05 + ], + [ + 0.003627592064200158, + 3.0510735917865794e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/cube/other_solutions/rough-15-3-0.0056_0.0000.json b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-3-0.0056_0.0000.json new file mode 100644 index 00000000..4b7e010c --- /dev/null +++ b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-3-0.0056_0.0000.json @@ -0,0 +1,109 @@ +{ + "graph": { + "(0, 2, 0, 0)": -1.0, + "(1, 6, 0, 0)": -1.0, + "(4, 5, 0, 0)": 1.0, + "(2, 4, 0, 0)": 0.1799247058913494, + "(1, 1, 0, 0)": -0.26955560511902327, + "(4, 6, 0, 0)": -0.3305880128699218, + "(0, 7, 0, 0)": 0.6567694963678569, + "(0, 5, 0, 0)": 0.6851343161654521, + "(0, 1, 0, 0)": 0.7335604138714277, + "(1, 2, 0, 0)": -0.7850925213497786, + "(3, 7, 0, 0)": -0.803632069377641, + "(1, 4, 0, 0)": -0.9336489623305736, + "(1, 3, 0, 0)": -1.0, + "(0, 0, 0, 0)": -1.0, + "(1, 7, 0, 0)": -1.0 + }, + "loss": [ + 0.005574199967973925, + 2.5124166634804546e-05 + ], + "history": [ + [ + 0.0005560163998240553, + 1.2010089037173266e-05 + ], + [ + 0.0005521654567145484, + 9.253451912716315e-06 + ], + [ + 0.0005530177348874732, + 3.949158973948208e-06 + ], + [ + 0.0005681425661135941, + 1.2568459040074309e-05 + ], + [ + 0.0005638214384534601, + 1.0045301665706496e-05 + ], + [ + 0.0005620865705230349, + 8.21006509610367e-06 + ], + [ + 0.002517022128958768, + 0.0002635066917263673 + ], + [ + 0.002126795401853565, + 0.000221423645287544 + ], + [ + 0.002038251574230543, + 1.3405231974572551e-05 + ], + [ + 0.0019000614484105949, + 2.445656756788761e-05 + ], + [ + 0.0021282202203655176, + 8.450494255718421e-05 + ], + [ + 0.002241271978373094, + 7.622872585788532e-05 + ], + [ + 0.002474676805581111, + 8.441577882989382e-05 + ], + [ + 0.002081410096855918, + 0.00010415483363157563 + ], + [ + 0.0030892889602888163, + 0.00014801132461628175 + ], + [ + 0.0036189905974673975, + 0.0002247116329899823 + ], + [ + 0.005583447983947609, + 2.96634055326761e-05 + ], + [ + 0.0055801923734528636, + 2.275687971864393e-05 + ], + [ + 0.005577872374136983, + 2.6465273064602002e-05 + ], + [ + 0.00557589364424016, + 2.2083890995561184e-05 + ], + [ + 0.005574199967973925, + 2.5124166634804546e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/cube/other_solutions/rough-15-4-0.0044_0.0000.json b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-4-0.0044_0.0000.json new file mode 100644 index 00000000..b8b1707b --- /dev/null +++ b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-4-0.0044_0.0000.json @@ -0,0 +1,105 @@ +{ + "graph": { + "(0, 3, 0, 0)": -1.0, + "(1, 1, 0, 0)": -1.0, + "(5, 6, 0, 0)": 1.0, + "(5, 7, 0, 0)": -0.13344544940444875, + "(3, 6, 0, 0)": 0.24804535070344105, + "(0, 0, 0, 0)": -0.26674498058642043, + "(1, 2, 0, 0)": -0.6591434615431324, + "(0, 6, 0, 0)": 0.71808412182647, + "(0, 1, 0, 0)": 0.7291095281627192, + "(0, 7, 0, 0)": -0.8023655385386607, + "(2, 4, 0, 0)": 0.8048440388129248, + "(1, 5, 0, 0)": -0.9943218925277193, + "(0, 4, 0, 0)": -1.0, + "(0, 2, 0, 0)": 1.0, + "(1, 7, 0, 0)": -1.0 + }, + "loss": [ + 0.0044142447077260005, + 4.400140720395296e-05 + ], + "history": [ + [ + 0.0032711391031793324, + 0.00011415686413274173 + ], + [ + 0.0028630971012538753, + 0.0001446735437163893 + ], + [ + 0.0026149883469640534, + 3.714807439070267e-05 + ], + [ + 0.0025803218004532003, + 2.8167032026016336e-05 + ], + [ + 0.0025782066236337275, + 2.582170539000561e-05 + ], + [ + 0.0025821667214906974, + 2.0110505107306942e-05 + ], + [ + 0.0020875890852150025, + 0.0003502980918036469 + ], + [ + 0.001692729888441491, + 1.0487242455003987e-05 + ], + [ + 0.0017717758425352947, + 2.555155680306065e-05 + ], + [ + 0.0019365688592070107, + 5.363009120995521e-05 + ], + [ + 0.0019472130616445815, + 6.155322219758563e-05 + ], + [ + 0.0021416358207887454, + 4.001432040756647e-05 + ], + [ + 0.002462143860912258, + 0.00031519048320194365 + ], + [ + 0.005299317518521085, + 0.002506074755988408 + ], + [ + 0.0032731063951937367, + 0.00061107371290825 + ], + [ + 0.004414804849403042, + 4.7399210661547286e-05 + ], + [ + 0.004414423947247892, + 4.5629758748333415e-05 + ], + [ + 0.004414338753307878, + 4.395855073113797e-05 + ], + [ + 0.004414281877799686, + 4.466472749009576e-05 + ], + [ + 0.0044142447077260005, + 4.400140720395296e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/cube/other_solutions/rough-15-4-0.0046_0.0000.json b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-4-0.0046_0.0000.json new file mode 100644 index 00000000..0b8aad9d --- /dev/null +++ b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-4-0.0046_0.0000.json @@ -0,0 +1,109 @@ +{ + "graph": { + "(0, 4, 0, 0)": 1.0, + "(1, 1, 0, 0)": -1.0, + "(5, 7, 0, 0)": -0.10531351867108227, + "(0, 0, 0, 0)": -0.2670155924571195, + "(3, 6, 0, 0)": 0.3076042135419739, + "(1, 4, 0, 0)": 0.6589095754021541, + "(0, 1, 0, 0)": -0.7288479769219425, + "(0, 7, 0, 0)": 0.7837534741907803, + "(1, 5, 0, 0)": -0.8015034124723659, + "(2, 4, 0, 0)": -0.803772824696357, + "(0, 3, 0, 0)": -0.890850806227484, + "(1, 7, 0, 0)": -0.9801866663669467, + "(0, 2, 0, 0)": 1.0, + "(3, 5, 0, 0)": 1.0, + "(0, 6, 0, 0)": 1.0 + }, + "loss": [ + 0.004594191098330147, + 3.6886655432000204e-05 + ], + "history": [ + [ + 0.0011980147321052348, + 2.3800709503252193e-06 + ], + [ + 0.0012046079802939813, + 1.4782031274584995e-06 + ], + [ + 0.00100829383963974, + 7.42480027504655e-06 + ], + [ + 0.0010431797680926502, + 2.5695187907404105e-06 + ], + [ + 0.00113019551760829, + 3.719054786244236e-06 + ], + [ + 0.0011061737251587545, + 8.193071778128669e-06 + ], + [ + 0.0012076406784110594, + 3.731958547303904e-06 + ], + [ + 0.0012039451855383465, + 4.398245965764325e-06 + ], + [ + 0.001524317044616308, + 9.507473302750036e-06 + ], + [ + 0.0015207825156813293, + 6.356344976921058e-06 + ], + [ + 0.0012313151198339867, + 2.326724678081149e-05 + ], + [ + 0.0029076728576693522, + 5.048910779203997e-05 + ], + [ + 0.002103781824768891, + 0.00011500820649534838 + ], + [ + 0.0020017543436982033, + 2.1450615451223953e-05 + ], + [ + 0.0022420772123116217, + 1.992351600466069e-05 + ], + [ + 0.002240554753530244, + 1.9658703040881242e-05 + ], + [ + 0.002330014586092277, + 0.000409464454536157 + ], + [ + 0.0054516243062642245, + 5.531968385252828e-05 + ], + [ + 0.004606160929552017, + 3.243293786414636e-05 + ], + [ + 0.004599538906940537, + 4.8996302494885846e-05 + ], + [ + 0.004594191098330147, + 3.6886655432000204e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0031_0.0000(0).json b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0031_0.0000(0).json new file mode 100644 index 00000000..68877629 --- /dev/null +++ b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0031_0.0000(0).json @@ -0,0 +1,101 @@ +{ + "graph": { + "(1, 3, 0, 0)": 1.0, + "(1, 5, 0, 0)": 1.0, + "(1, 1, 0, 0)": 0.2695343686343398, + "(0, 3, 0, 0)": -0.4838494366277521, + "(2, 4, 0, 0)": -0.4955596248436947, + "(3, 4, 0, 0)": -0.6408624952324553, + "(5, 7, 0, 0)": -0.7116868473896607, + "(0, 1, 0, 0)": -0.7342279405105113, + "(0, 7, 0, 0)": -0.7533198086986131, + "(0, 6, 0, 0)": 0.7643198605266642, + "(1, 2, 0, 0)": -0.979545148388795, + "(2, 6, 0, 0)": -0.9995067867503334, + "(0, 0, 0, 0)": 1.0, + "(1, 7, 0, 0)": -1.0, + "(1, 4, 0, 0)": -1.0 + }, + "loss": [ + 0.003132470916758834, + 1.6849608261870763e-05 + ], + "history": [ + [ + 0.0006106499807625454, + 2.418571866225072e-06 + ], + [ + 0.0006073141963125472, + 4.584897764892126e-06 + ], + [ + 0.0005865374088281916, + 1.282160523419229e-06 + ], + [ + 0.0006251384086292111, + 3.5279610591798516e-06 + ], + [ + 0.000597177073297761, + 9.618970301383811e-07 + ], + [ + 0.0005945137252814092, + 9.124294624296425e-07 + ], + [ + 0.0005822839307964012, + 9.222860823276946e-06 + ], + [ + 0.0006104420547353717, + 2.2958462559952153e-06 + ], + [ + 0.0007604023194121012, + 5.009642632902711e-05 + ], + [ + 0.0007104960979212871, + 5.391900659512672e-06 + ], + [ + 0.0007069651575718483, + 2.8550587092279756e-06 + ], + [ + 0.0007050107151405083, + 2.3628997581903732e-06 + ], + [ + 0.005516594553933052, + 0.0006557433661017464 + ], + [ + 0.0034172572452643157, + 0.00016701251938711081 + ], + [ + 0.0033981216639843437, + 0.0002025300370814831 + ], + [ + 0.0031372603794556086, + 2.104582298378954e-05 + ], + [ + 0.003135470193868617, + 1.8162574953461963e-05 + ], + [ + 0.0031339831544162644, + 1.9748859531820706e-05 + ], + [ + 0.003132470916758834, + 1.6849608261870763e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0031_0.0000(1).json b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0031_0.0000(1).json new file mode 100644 index 00000000..4a04ddad --- /dev/null +++ b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0031_0.0000(1).json @@ -0,0 +1,109 @@ +{ + "graph": { + "(0, 4, 0, 0)": -1.0, + "(0, 7, 0, 0)": 1.0, + "(3, 6, 0, 0)": 1.0, + "(0, 0, 0, 0)": 0.2711972644893232, + "(1, 4, 0, 0)": 0.4791645791727385, + "(2, 6, 0, 0)": 0.5181211324614329, + "(2, 4, 0, 0)": 0.6388779920908721, + "(5, 7, 0, 0)": -0.7141184755980144, + "(0, 1, 0, 0)": -0.7360099860042836, + "(1, 3, 0, 0)": 0.7545183974866819, + "(1, 7, 0, 0)": 0.7564178701541313, + "(0, 6, 0, 0)": 0.9989959837820545, + "(0, 5, 0, 0)": -1.0, + "(0, 2, 0, 0)": -1.0, + "(1, 1, 0, 0)": 1.0 + }, + "loss": [ + 0.003084661148410439, + 4.564651300964506e-05 + ], + "history": [ + [ + 0.0003217426610889751, + 8.346173976714333e-06 + ], + [ + 0.00032485834846862627, + 4.617528804651272e-06 + ], + [ + 0.0003240454037014562, + 3.5378022833487677e-06 + ], + [ + 0.00038193821443877063, + 2.2801634446900643e-05 + ], + [ + 0.0003682716550423848, + 9.329149339820653e-06 + ], + [ + 0.0003533300285358809, + 1.2397406322639526e-06 + ], + [ + 0.00035305557202991444, + 1.027858264501802e-06 + ], + [ + 0.0003528972839996758, + 1.024321882647783e-06 + ], + [ + 0.0005190113241847483, + 9.833552842009041e-07 + ], + [ + 0.00045598042003902606, + 5.982971776896662e-07 + ], + [ + 0.00041820347526866364, + 4.194396543977241e-06 + ], + [ + 0.00046974368885810414, + 3.169387520818301e-05 + ], + [ + 0.0004953608678094357, + 7.979718236961197e-06 + ], + [ + 0.0005578342853927998, + 7.551499279001561e-06 + ], + [ + 0.0017805568985393982, + 2.689691728541277e-05 + ], + [ + 0.0017879184838514028, + 1.2278167471513335e-05 + ], + [ + 0.002624122816107244, + 8.306967576532376e-05 + ], + [ + 0.0020987971660787474, + 4.4115149986367896e-05 + ], + [ + 0.0020952446306065076, + 3.976316957232662e-05 + ], + [ + 0.003546869391098828, + 0.0001067159244459992 + ], + [ + 0.003084661148410439, + 4.564651300964506e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0031_0.0000.json b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0031_0.0000.json new file mode 100644 index 00000000..80694c2c --- /dev/null +++ b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0031_0.0000.json @@ -0,0 +1,105 @@ +{ + "graph": { + "(0, 4, 0, 0)": -1.0, + "(0, 6, 0, 0)": 1.0, + "(3, 7, 0, 0)": 1.0, + "(0, 0, 0, 0)": -0.2708098979770514, + "(1, 2, 0, 0)": 0.48077868422418196, + "(5, 7, 0, 0)": 0.5157797773418163, + "(2, 5, 0, 0)": -0.639411891778119, + "(4, 6, 0, 0)": 0.713792469931331, + "(0, 1, 0, 0)": 0.7350340337346698, + "(1, 3, 0, 0)": 0.7527430382812058, + "(1, 4, 0, 0)": -0.7559264053968922, + "(0, 7, 0, 0)": -0.9992978667733337, + "(0, 5, 0, 0)": -1.0, + "(0, 2, 0, 0)": -1.0, + "(1, 1, 0, 0)": -1.0 + }, + "loss": [ + 0.0030902263502371463, + 3.711636097714077e-05 + ], + "history": [ + [ + 0.001516034105367714, + 2.9005748388932773e-05 + ], + [ + 0.00147084355542082, + 4.773695421289581e-06 + ], + [ + 0.001486359674900295, + 1.2013059009108318e-05 + ], + [ + 0.001667918444117178, + 8.554024468643284e-06 + ], + [ + 0.0037414429635977964, + 0.00019261505853562788 + ], + [ + 0.0037333212735864985, + 0.00020514004369898142 + ], + [ + 0.001856373304736203, + 1.0116049590891407e-05 + ], + [ + 0.002122367141216608, + 0.00018085567399395153 + ], + [ + 0.0021068902058329897, + 2.500973614827373e-05 + ], + [ + 0.0027899804206668044, + 0.00010190409933796829 + ], + [ + 0.0017550022746869454, + 0.00013747350638837474 + ], + [ + 0.0018399192267593012, + 2.1326891985085084e-05 + ], + [ + 0.00278773679722244, + 0.0001333673629871912 + ], + [ + 0.0020852275907550233, + 0.00011588752748403763 + ], + [ + 0.002077521232096702, + 0.00010650490358043996 + ], + [ + 0.0032557747795926018, + 0.00012265749783801905 + ], + [ + 0.0030923949791903382, + 3.898665553048186e-05 + ], + [ + 0.003091340961122513, + 3.7714001836053335e-05 + ], + [ + 0.003090641994147436, + 3.606591068472387e-05 + ], + [ + 0.0030902263502371463, + 3.711636097714077e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0048_0.0000.json b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0048_0.0000.json new file mode 100644 index 00000000..9974cab3 --- /dev/null +++ b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0048_0.0000.json @@ -0,0 +1,109 @@ +{ + "graph": { + "(0, 4, 0, 0)": -1.0, + "(3, 5, 0, 0)": -1.0, + "(0, 0, 0, 0)": -0.26838218316618717, + "(1, 3, 0, 0)": -0.39464300258590373, + "(0, 1, 0, 0)": -0.7311764079861608, + "(1, 4, 0, 0)": 0.7489490306085144, + "(3, 7, 0, 0)": 0.781958510543629, + "(2, 4, 0, 0)": -0.7895805072406942, + "(0, 3, 0, 0)": -0.8200432100453142, + "(1, 6, 0, 0)": 0.8824985881698417, + "(0, 7, 0, 0)": -0.8976055345950475, + "(0, 5, 0, 0)": -0.9382773791953697, + "(0, 2, 0, 0)": -1.0, + "(6, 7, 0, 0)": -1.0, + "(1, 1, 0, 0)": -1.0 + }, + "loss": [ + 0.004771894017465361, + 4.9528918177665915e-05 + ], + "history": [ + [ + 0.0003983080900267222, + 1.7674331572847812e-05 + ], + [ + 0.00039472144714935986, + 1.4661928745440811e-05 + ], + [ + 0.00038658945074665496, + 1.9329995244343756e-05 + ], + [ + 0.00038002132752479323, + 1.3216155141160257e-05 + ], + [ + 0.00040809443275191537, + 1.1736139610141194e-05 + ], + [ + 0.003288389364157207, + 0.00045484727564393257 + ], + [ + 0.00310413142246202, + 0.0002444724824333111 + ], + [ + 0.002026656732496246, + 0.0002566138160307041 + ], + [ + 0.001943326666558054, + 1.4604635307891023e-05 + ], + [ + 0.0019416121643491824, + 1.4199772019996004e-05 + ], + [ + 0.001956579461509511, + 8.552305068432187e-05 + ], + [ + 0.0029136260087674337, + 3.8921577527495366e-05 + ], + [ + 0.0018221774147416658, + 8.557552475052521e-05 + ], + [ + 0.0019785616173263465, + 0.00020522525246602363 + ], + [ + 0.0016528431923125142, + 2.8311110436884945e-05 + ], + [ + 0.0030872813834732504, + 0.0001099395653505475 + ], + [ + 0.0033242087439777634, + 9.090392756871957e-05 + ], + [ + 0.003322163480359075, + 0.00011443658103693632 + ], + [ + 0.004294196918983695, + 7.771580152271529e-05 + ], + [ + 0.00429393390819599, + 7.740479172269055e-05 + ], + [ + 0.004771894017465361, + 4.9528918177665915e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0052_0.0000(0).json b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0052_0.0000(0).json new file mode 100644 index 00000000..e0a95d70 --- /dev/null +++ b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0052_0.0000(0).json @@ -0,0 +1,109 @@ +{ + "graph": { + "(0, 7, 0, 0)": -1.0, + "(1, 3, 0, 0)": 1.0, + "(4, 5, 0, 0)": 1.0, + "(1, 1, 0, 0)": 0.2674329932641925, + "(5, 7, 0, 0)": 0.33151897785676543, + "(0, 3, 0, 0)": 0.68393269410677, + "(0, 4, 0, 0)": 0.6948110747260818, + "(0, 1, 0, 0)": 0.7296246401089618, + "(1, 7, 0, 0)": 0.7429255736341868, + "(2, 3, 0, 0)": 0.8375318759840065, + "(6, 7, 0, 0)": 0.8997406162745795, + "(1, 5, 0, 0)": -0.9948742630258411, + "(1, 2, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0, + "(1, 6, 0, 0)": 1.0 + }, + "loss": [ + 0.005215794666932894, + 3.0412171749816252e-05 + ], + "history": [ + [ + 0.00042710524863587285, + 1.9055961543723576e-05 + ], + [ + 0.0004431107155083991, + 1.9865210373115616e-05 + ], + [ + 0.00043923091485220667, + 5.445223487110518e-06 + ], + [ + 0.0004377273518553215, + 4.135306213126633e-06 + ], + [ + 0.0004368123844037397, + 2.8993163414536838e-06 + ], + [ + 0.00042771931405871655, + 3.5617451104030806e-06 + ], + [ + 0.0005544403163698641, + 1.7952633525331052e-06 + ], + [ + 0.004159711339268624, + 0.0008484196780991216 + ], + [ + 0.004118545166528875, + 0.00031454363259253437 + ], + [ + 0.0035827441886231437, + 0.00016210913750791534 + ], + [ + 0.0029671368782938634, + 9.265211807862883e-05 + ], + [ + 0.003939106369554302, + 8.842099433525874e-05 + ], + [ + 0.0037199179020183104, + 0.00042484445152446426 + ], + [ + 0.002964562863258302, + 0.0001225878417119297 + ], + [ + 0.002571639605680298, + 8.629842873952853e-05 + ], + [ + 0.0025682766808499125, + 8.40367773050632e-05 + ], + [ + 0.0025661931720987186, + 8.234540683194069e-05 + ], + [ + 0.0032951622464977293, + 6.917509516690679e-05 + ], + [ + 0.004075300432122453, + 0.00013393875536871214 + ], + [ + 0.005220479341426443, + 2.0721931913048053e-05 + ], + [ + 0.005215794666932894, + 3.0412171749816252e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0052_0.0000(1).json b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0052_0.0000(1).json new file mode 100644 index 00000000..ae625799 --- /dev/null +++ b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0052_0.0000(1).json @@ -0,0 +1,109 @@ +{ + "graph": { + "(0, 3, 0, 0)": -1.0, + "(1, 1, 0, 0)": -1.0, + "(4, 5, 0, 0)": 1.0, + "(0, 0, 0, 0)": -0.2675434725061665, + "(4, 6, 0, 0)": -0.291530252914574, + "(1, 3, 0, 0)": -0.684783989498773, + "(0, 1, 0, 0)": -0.7299258311280759, + "(0, 6, 0, 0)": 0.7435049575687145, + "(1, 5, 0, 0)": -0.7905301539335716, + "(3, 7, 0, 0)": -0.8401560461867656, + "(0, 4, 0, 0)": -0.8750598681434816, + "(2, 6, 0, 0)": 0.9006003018355274, + "(0, 7, 0, 0)": -1.0, + "(0, 2, 0, 0)": -1.0, + "(1, 6, 0, 0)": -1.0 + }, + "loss": [ + 0.005215533226317848, + 4.554348624086213e-05 + ], + "history": [ + [ + 0.0002658214991613228, + 3.793764883563977e-05 + ], + [ + 0.0002476381947376094, + 4.993793633945032e-06 + ], + [ + 0.00029806093649054066, + 5.421204261946144e-06 + ], + [ + 0.0002858343679846831, + 1.6878705237921565e-06 + ], + [ + 0.0003039862206309918, + 1.2018913945199827e-06 + ], + [ + 0.0003033795069503631, + 5.899730788350155e-07 + ], + [ + 0.00029084970478698846, + 1.248928176866837e-05 + ], + [ + 0.0002873327462731279, + 9.289333415263279e-06 + ], + [ + 0.0002852033540510224, + 7.4295767539256374e-06 + ], + [ + 0.0004038779158461736, + 2.5584609747442144e-06 + ], + [ + 0.002035583505040517, + 1.839170071926688e-05 + ], + [ + 0.001661299575156372, + 4.9842311207415335e-05 + ], + [ + 0.0015722886186959606, + 6.883778672173158e-05 + ], + [ + 0.004772159969839818, + 0.0017149677964897192 + ], + [ + 0.00213987553230921, + 1.840845347589326e-05 + ], + [ + 0.0028250996371260717, + 5.311958644904635e-05 + ], + [ + 0.005110540931860474, + 4.891144157026517e-05 + ], + [ + 0.005218291575273759, + 5.3292279987071645e-05 + ], + [ + 0.005216750214152355, + 4.6833374676702455e-05 + ], + [ + 0.0052160263732790035, + 4.9267441099898335e-05 + ], + [ + 0.005215533226317848, + 4.554348624086213e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0052_0.0000(2).json b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0052_0.0000(2).json new file mode 100644 index 00000000..b033ed9a --- /dev/null +++ b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0052_0.0000(2).json @@ -0,0 +1,109 @@ +{ + "graph": { + "(0, 3, 0, 0)": -1.0, + "(1, 1, 0, 0)": 1.0, + "(4, 5, 0, 0)": 1.0, + "(0, 0, 0, 0)": 0.2674942774588131, + "(4, 7, 0, 0)": -0.2853743461764836, + "(1, 2, 0, 0)": 0.6824552020005459, + "(0, 1, 0, 0)": 0.7301587364088982, + "(0, 7, 0, 0)": 0.7437299477256489, + "(1, 5, 0, 0)": -0.8081896064174812, + "(2, 6, 0, 0)": -0.8352554910135349, + "(0, 4, 0, 0)": 0.8564552097432734, + "(3, 7, 0, 0)": -0.9003026793169662, + "(0, 6, 0, 0)": -1.0, + "(0, 2, 0, 0)": 1.0, + "(1, 7, 0, 0)": -1.0 + }, + "loss": [ + 0.005217399635691566, + 3.455970229671035e-05 + ], + "history": [ + [ + 0.0023800426288103083, + 2.892320888725486e-05 + ], + [ + 0.00202085351440362, + 8.67226078236083e-05 + ], + [ + 0.0017837507894071791, + 6.196198126140473e-06 + ], + [ + 0.0018204181060235136, + 3.911105565634898e-06 + ], + [ + 0.0017743500223200703, + 2.2527979081199412e-05 + ], + [ + 0.0017523562853168917, + 4.511225702430455e-05 + ], + [ + 0.00184037660154579, + 1.108914076719536e-05 + ], + [ + 0.0014685441040672709, + 8.493509055518267e-06 + ], + [ + 0.001466666679230788, + 6.998304435956726e-06 + ], + [ + 0.0019714786975203458, + 4.4033715562608045e-05 + ], + [ + 0.0018289571845426789, + 5.45368605666674e-05 + ], + [ + 0.001805137164395676, + 2.302805363207927e-05 + ], + [ + 0.0020899545358613603, + 2.3445614843353724e-05 + ], + [ + 0.002461619660008685, + 1.7601734536354385e-05 + ], + [ + 0.0028569475530513255, + 4.494182274406011e-05 + ], + [ + 0.002895230812999583, + 0.00020961633306981753 + ], + [ + 0.006222217827615895, + 0.0002010460492510857 + ], + [ + 0.005322823116195252, + 0.00011641284526420215 + ], + [ + 0.00529215129085614, + 9.276584278117284e-05 + ], + [ + 0.0052181580371174485, + 3.3335323718186594e-05 + ], + [ + 0.005217399635691566, + 3.455970229671035e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0052_0.0000.json b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0052_0.0000.json new file mode 100644 index 00000000..d22d9389 --- /dev/null +++ b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0052_0.0000.json @@ -0,0 +1,109 @@ +{ + "graph": { + "(0, 4, 0, 0)": 1.0, + "(1, 5, 0, 0)": -1.0, + "(2, 6, 0, 0)": 1.0, + "(1, 1, 0, 0)": -0.2665829840869662, + "(4, 6, 0, 0)": 0.323942922613027, + "(0, 3, 0, 0)": 0.6817799061862647, + "(0, 2, 0, 0)": -0.7077699842821495, + "(0, 1, 0, 0)": -0.7296289744642307, + "(1, 4, 0, 0)": -0.7493623821763775, + "(3, 5, 0, 0)": 0.8334955226253334, + "(4, 7, 0, 0)": -0.899670379629474, + "(1, 6, 0, 0)": -0.976587800571518, + "(1, 3, 0, 0)": 1.0, + "(0, 0, 0, 0)": -1.0, + "(1, 7, 0, 0)": -1.0 + }, + "loss": [ + 0.005229718061735444, + 4.9998345136192945e-05 + ], + "history": [ + [ + 0.00032059015339280794, + 8.203915283666596e-06 + ], + [ + 0.0003304451221859406, + 3.7856869739005816e-06 + ], + [ + 0.0004291117033374814, + 1.5182689030557306e-05 + ], + [ + 0.0004281483871321212, + 1.4769005640236088e-05 + ], + [ + 0.0005426611336053488, + 0.00010682007488338474 + ], + [ + 0.00047199085044113964, + 2.5206816398837262e-05 + ], + [ + 0.00042882748115069536, + 2.6042009656168652e-05 + ], + [ + 0.00026715717854108867, + 3.162225946651276e-07 + ], + [ + 0.0002912275130321218, + 2.7654595446957586e-07 + ], + [ + 0.0005787930123719587, + 1.0325400968680398e-06 + ], + [ + 0.0005764069838465335, + 3.479384886873049e-07 + ], + [ + 0.0005746636992395304, + 9.727428599282106e-07 + ], + [ + 0.002712886886576338, + 0.0001098489058938279 + ], + [ + 0.003887139864373168, + 0.0007065809292156056 + ], + [ + 0.0030423661167581217, + 4.2949790866275706e-05 + ], + [ + 0.004011827188007855, + 5.181632197193142e-05 + ], + [ + 0.005236252896056559, + 5.0535567900134026e-05 + ], + [ + 0.005234168548510665, + 5.580188358111915e-05 + ], + [ + 0.005232489899340331, + 5.105522907000726e-05 + ], + [ + 0.005231022379686534, + 5.444731913062384e-05 + ], + [ + 0.005229718061735444, + 4.9998345136192945e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0053_0.0000.json b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0053_0.0000.json new file mode 100644 index 00000000..8647e429 --- /dev/null +++ b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-5-0.0053_0.0000.json @@ -0,0 +1,109 @@ +{ + "graph": { + "(1, 5, 0, 0)": -1.0, + "(3, 7, 0, 0)": -1.0, + "(1, 1, 0, 0)": 0.2684199703422493, + "(2, 7, 0, 0)": 0.27723769860029673, + "(0, 6, 0, 0)": -0.6857220036451218, + "(0, 1, 0, 0)": 0.7285385916966778, + "(1, 2, 0, 0)": 0.732779393749186, + "(1, 7, 0, 0)": -0.8287981989397922, + "(0, 3, 0, 0)": -0.8352033422751893, + "(5, 6, 0, 0)": 0.8390673255005539, + "(2, 4, 0, 0)": -0.8942205714109693, + "(0, 2, 0, 0)": -0.9973210761821624, + "(0, 0, 0, 0)": 1.0, + "(1, 4, 0, 0)": -1.0, + "(1, 6, 0, 0)": -1.0 + }, + "loss": [ + 0.005269361973280207, + 4.621040960794964e-05 + ], + "history": [ + [ + 0.0013153193891094483, + 5.4320808308139235e-06 + ], + [ + 0.0013121155917741323, + 4.880849634791851e-06 + ], + [ + 0.0015933214418414332, + 2.8919298544760608e-06 + ], + [ + 0.0012320986322773564, + 0.00010577772864250878 + ], + [ + 0.0010774922407305043, + 6.943917280288758e-06 + ], + [ + 0.0035715106328055857, + 0.00040542269482535254 + ], + [ + 0.002340506911665874, + 4.650800612771011e-05 + ], + [ + 0.0032194384844445034, + 9.946086904200069e-05 + ], + [ + 0.0026785454765969607, + 0.00013142439404500994 + ], + [ + 0.002179226530351852, + 0.00023821218361019803 + ], + [ + 0.0020386196617740993, + 5.170782607866187e-05 + ], + [ + 0.002031801837161118, + 4.929001634546015e-05 + ], + [ + 0.0021528520069639123, + 5.827984052575452e-05 + ], + [ + 0.001826105571441583, + 8.18297877425156e-06 + ], + [ + 0.0020878826900259106, + 8.190576613154033e-05 + ], + [ + 0.001467408784505575, + 2.1242977751412262e-05 + ], + [ + 0.014513364085846692, + 0.0005832372971685817 + ], + [ + 0.014512383573684229, + 0.0005994328418370554 + ], + [ + 0.004308625034820102, + 0.00010670716805571967 + ], + [ + 0.005293344283845203, + 8.20696645786878e-05 + ], + [ + 0.005269361973280207, + 4.621040960794964e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/cube/other_solutions/rough-15-6-0.0040_0.0000.json b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-6-0.0040_0.0000.json new file mode 100644 index 00000000..eff6f8c3 --- /dev/null +++ b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-6-0.0040_0.0000.json @@ -0,0 +1,109 @@ +{ + "graph": { + "(0, 3, 0, 0)": 1.0, + "(1, 1, 0, 0)": 1.0, + "(0, 0, 0, 0)": 0.26938793130955524, + "(2, 4, 0, 0)": 0.3448146550877659, + "(2, 6, 0, 0)": 0.592434360575949, + "(0, 1, 0, 0)": 0.7343527486402036, + "(1, 7, 0, 0)": -0.7705040685231619, + "(5, 6, 0, 0)": -0.7774477712332041, + "(3, 6, 0, 0)": -0.9009875849620816, + "(0, 5, 0, 0)": -0.956293107528546, + "(2, 5, 0, 0)": -0.9622971115191545, + "(0, 4, 0, 0)": -0.9965501942895484, + "(0, 2, 0, 0)": 1.0, + "(4, 7, 0, 0)": -1.0, + "(0, 6, 0, 0)": -1.0 + }, + "loss": [ + 0.003960579570709943, + 4.8972045646356044e-05 + ], + "history": [ + [ + 0.0018062026705336631, + 8.955704585145163e-06 + ], + [ + 0.0017340241451243577, + 6.793127286131018e-06 + ], + [ + 0.0012903008146138983, + 3.8091815345309143e-06 + ], + [ + 0.002122444073825114, + 0.00013894348587795147 + ], + [ + 0.0018999806579338419, + 2.7223086713878963e-05 + ], + [ + 0.0018963932407827233, + 2.3172668831450416e-05 + ], + [ + 0.0018948771009429377, + 2.367135148262367e-05 + ], + [ + 0.0035962871577088773, + 0.0003134098790699147 + ], + [ + 0.002282709595908372, + 3.03569423893979e-05 + ], + [ + 0.0024050875952482675, + 0.00010656362536554109 + ], + [ + 0.0024223750879961425, + 5.4360688465537876e-05 + ], + [ + 0.002404632220003755, + 4.188492369139318e-05 + ], + [ + 0.003038864027147592, + 0.0003520960231446768 + ], + [ + 0.002374811797022258, + 2.5265332447732547e-05 + ], + [ + 0.0024548970447887397, + 6.414926038478264e-05 + ], + [ + 0.00358677004898611, + 9.365319923104742e-05 + ], + [ + 0.00358626128398587, + 9.077289529368926e-05 + ], + [ + 0.004010692525353687, + 9.373389130840071e-05 + ], + [ + 0.003974625666495757, + 5.858248984802472e-05 + ], + [ + 0.00396677972045878, + 4.794373354799486e-05 + ], + [ + 0.003960579570709943, + 4.8972045646356044e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/cube/other_solutions/rough-15-7-0.0027_0.0000.json b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-7-0.0027_0.0000.json new file mode 100644 index 00000000..ebc17092 --- /dev/null +++ b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-7-0.0027_0.0000.json @@ -0,0 +1,109 @@ +{ + "graph": { + "(0, 0, 0, 0)": 0.2675510135303129, + "(3, 7, 0, 0)": 0.36514397328753434, + "(0, 1, 0, 0)": -0.7299976044528598, + "(4, 6, 0, 0)": -0.8023874931595977, + "(4, 5, 0, 0)": 0.8946991072606728, + "(6, 7, 0, 0)": 0.8967277591747828, + "(2, 5, 0, 0)": 0.9009795454790188, + "(0, 6, 0, 0)": -0.9506866683611309, + "(0, 2, 0, 0)": 0.9604708831125266, + "(2, 3, 0, 0)": -0.9756689410498935, + "(0, 3, 0, 0)": -0.9831454187678526, + "(0, 4, 0, 0)": -0.9970126668436445, + "(0, 5, 0, 0)": -0.9990420479113271, + "(1, 7, 0, 0)": -0.9999649893633611, + "(1, 1, 0, 0)": 1.0 + }, + "loss": [ + 0.0027009891113325413, + 4.0525280002534636e-05 + ], + "history": [ + [ + 0.0012448434164833433, + 7.387139908221485e-06 + ], + [ + 0.00260234467353182, + 2.6372256928586246e-05 + ], + [ + 0.002234186906265201, + 0.00022408209357005493 + ], + [ + 0.002046951946122033, + 2.9593883313916436e-05 + ], + [ + 0.002052161949508413, + 2.2565076226110925e-05 + ], + [ + 0.003182807315527114, + 0.00024403832809194448 + ], + [ + 0.0029141659878586523, + 0.0001441999923326165 + ], + [ + 0.002771142455277542, + 0.00020483734481102633 + ], + [ + 0.002761045919651095, + 0.00013939243354799125 + ], + [ + 0.0027361418080623645, + 0.00010086571802569999 + ], + [ + 0.0027265500097988227, + 9.889045579025701e-05 + ], + [ + 0.002720773425437306, + 8.539983594846312e-05 + ], + [ + 0.0049665625312993456, + 0.0002993219101379285 + ], + [ + 0.0024780219249539437, + 0.00035038604773596216 + ], + [ + 0.00218051518710638, + 1.226709633028733e-05 + ], + [ + 0.002381676860314985, + 7.194884774019972e-05 + ], + [ + 0.0029715083801672426, + 0.0001437396063503904 + ], + [ + 0.0027096619069144623, + 4.064058187380759e-05 + ], + [ + 0.002705886302382887, + 4.2758641811579956e-05 + ], + [ + 0.0027032597433150896, + 3.765890892171164e-05 + ], + [ + 0.0027009891113325413, + 4.0525280002534636e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/cube/other_solutions/rough-15-7-0.0032_0.0000.json b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-7-0.0032_0.0000.json new file mode 100644 index 00000000..ab66aea3 --- /dev/null +++ b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-7-0.0032_0.0000.json @@ -0,0 +1,109 @@ +{ + "graph": { + "(1, 4, 0, 0)": -1.0, + "(2, 5, 0, 0)": -1.0, + "(1, 1, 0, 0)": -0.26792372864068975, + "(4, 6, 0, 0)": -0.5535454929049562, + "(3, 5, 0, 0)": 0.6798900216343332, + "(0, 1, 0, 0)": -0.7311598520660142, + "(6, 7, 0, 0)": 0.7555398619866964, + "(3, 4, 0, 0)": 0.7827135464549931, + "(1, 2, 0, 0)": 0.8454004827229038, + "(2, 7, 0, 0)": 0.9729045115516683, + "(1, 5, 0, 0)": 0.9786798915256205, + "(1, 3, 0, 0)": 0.9836350874123321, + "(0, 6, 0, 0)": 0.9999596043083231, + "(1, 7, 0, 0)": 1.0, + "(0, 0, 0, 0)": -1.0 + }, + "loss": [ + 0.003215584763816337, + 1.4338171237526787e-05 + ], + "history": [ + [ + 0.0001289428891713129, + 2.1224704771505287e-07 + ], + [ + 0.00014113413579019962, + 9.354311054310394e-06 + ], + [ + 0.00013836529620880889, + 6.404526271541755e-07 + ], + [ + 0.00013819325529007553, + 4.2203838723775533e-07 + ], + [ + 0.00013807174033242386, + 3.568961424171846e-07 + ], + [ + 0.00014052179806323117, + 3.677556786874092e-07 + ], + [ + 0.0008310727041362931, + 3.949660628221885e-06 + ], + [ + 0.0008150410467169245, + 6.173841214529574e-05 + ], + [ + 0.0008132809491481208, + 3.0566903663764577e-06 + ], + [ + 0.0009485830444391219, + 2.0143498553615302e-06 + ], + [ + 0.005948228255064247, + 0.000707673091659311 + ], + [ + 0.0023870158597831814, + 0.00017246254091418667 + ], + [ + 0.002543208920081419, + 0.0004089180784657698 + ], + [ + 0.0022366326000545778, + 7.622430518716694e-05 + ], + [ + 0.0022879007845328925, + 3.430604058540787e-05 + ], + [ + 0.0033695224467689133, + 2.865696979714727e-06 + ], + [ + 0.0035411736709970443, + 0.00018259750413640585 + ], + [ + 0.0032301149063292955, + 1.8643198319234777e-05 + ], + [ + 0.00322519237235519, + 1.4770765595639723e-05 + ], + [ + 0.003221345177983337, + 1.879441841867724e-05 + ], + [ + 0.003215584763816337, + 1.4338171237526787e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/cube/other_solutions/rough-15-8-0.0025_0.0000.json b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-8-0.0025_0.0000.json new file mode 100644 index 00000000..2f440be0 --- /dev/null +++ b/pytheus/graphs/FockStates/cube/other_solutions/rough-15-8-0.0025_0.0000.json @@ -0,0 +1,105 @@ +{ + "graph": { + "(1, 7, 0, 0)": 1.0, + "(1, 1, 0, 0)": 0.26742890233525657, + "(3, 4, 0, 0)": 0.4046736399639507, + "(0, 1, 0, 0)": -0.7285768025216057, + "(5, 6, 0, 0)": -0.8371121034308483, + "(2, 4, 0, 0)": -0.9036294130586733, + "(2, 7, 0, 0)": -0.9055061408814414, + "(5, 7, 0, 0)": -0.9262682464320714, + "(3, 6, 0, 0)": 0.9403812058741573, + "(1, 6, 0, 0)": -0.9703279095732349, + "(1, 5, 0, 0)": -0.9709363954369038, + "(1, 3, 0, 0)": -0.9876394112230489, + "(1, 2, 0, 0)": 0.9987943172678296, + "(0, 4, 0, 0)": -0.9999680593110335, + "(0, 0, 0, 0)": 1.0 + }, + "loss": [ + 0.002494370828139636, + 4.3003800066498954e-05 + ], + "history": [ + [ + 0.0012960536211744644, + 2.225880538775371e-06 + ], + [ + 0.0011801615917628183, + 2.1021428703305034e-06 + ], + [ + 0.0011779096487125607, + 3.5541927645432736e-06 + ], + [ + 0.00117585184292468, + 1.6486394274206617e-06 + ], + [ + 0.0012110980955843953, + 9.661856613218944e-06 + ], + [ + 0.0012500847492553646, + 2.3962592058390797e-06 + ], + [ + 0.0012165132739667683, + 2.239206304710528e-06 + ], + [ + 0.0011913397727981723, + 3.14607868467931e-06 + ], + [ + 0.001159689551512022, + 6.646276518806893e-06 + ], + [ + 0.0011554180055708407, + 3.10856365770551e-06 + ], + [ + 0.0010913464073873946, + 3.086870343405046e-05 + ], + [ + 0.004937758182098184, + 0.00025742590751320904 + ], + [ + 0.004102695719409466, + 0.0008035973812287045 + ], + [ + 0.0024505061505001313, + 7.229391400398466e-05 + ], + [ + 0.0022917683358523178, + 2.9227035092116438e-05 + ], + [ + 0.00255628877470393, + 9.092745858141349e-05 + ], + [ + 0.0025304453339666244, + 8.005933707722068e-05 + ], + [ + 0.0025051988142498205, + 5.320951873377666e-05 + ], + [ + 0.0024986687302821498, + 5.1956818846510266e-05 + ], + [ + 0.002494370828139636, + 4.3003800066498954e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/cube/plot_cube_rough-15-5-0.0031_0.0000.json b/pytheus/graphs/FockStates/cube/plot_cube_rough-15-5-0.0031_0.0000.json new file mode 100644 index 00000000..7795e047 --- /dev/null +++ b/pytheus/graphs/FockStates/cube/plot_cube_rough-15-5-0.0031_0.0000.json @@ -0,0 +1,105 @@ +{ + "graph": { + "(0, 4, 0, 0)": 1.0, + "(0, 6, 0, 0)": 1.0, + "(3, 7, 0, 0)": 1.0, + "(0, 0, 0, 0)": -0.2708098979770514, + "(1, 2, 0, 0)": -0.48077868422418196, + "(5, 7, 0, 0)": 0.5157797773418163, + "(2, 5, 0, 0)": 0.639411891778119, + "(4, 6, 0, 0)": -0.713792469931331, + "(0, 1, 0, 0)": 0.7350340337346698, + "(1, 3, 0, 0)": 0.7527430382812058, + "(1, 4, 0, 0)": 0.7559264053968922, + "(0, 7, 0, 0)": -0.9992978667733337, + "(0, 5, 0, 0)": -1.0, + "(0, 2, 0, 0)": 1.0, + "(1, 1, 0, 0)": -1.0 + }, + "loss": [ + 0.0030902263502371463, + 3.711636097714077e-05 + ], + "history": [ + [ + 0.001516034105367714, + 2.9005748388932773e-05 + ], + [ + 0.00147084355542082, + 4.773695421289581e-06 + ], + [ + 0.001486359674900295, + 1.2013059009108318e-05 + ], + [ + 0.001667918444117178, + 8.554024468643284e-06 + ], + [ + 0.0037414429635977964, + 0.00019261505853562788 + ], + [ + 0.0037333212735864985, + 0.00020514004369898142 + ], + [ + 0.001856373304736203, + 1.0116049590891407e-05 + ], + [ + 0.002122367141216608, + 0.00018085567399395153 + ], + [ + 0.0021068902058329897, + 2.500973614827373e-05 + ], + [ + 0.0027899804206668044, + 0.00010190409933796829 + ], + [ + 0.0017550022746869454, + 0.00013747350638837474 + ], + [ + 0.0018399192267593012, + 2.1326891985085084e-05 + ], + [ + 0.00278773679722244, + 0.0001333673629871912 + ], + [ + 0.0020852275907550233, + 0.00011588752748403763 + ], + [ + 0.002077521232096702, + 0.00010650490358043996 + ], + [ + 0.0032557747795926018, + 0.00012265749783801905 + ], + [ + 0.0030923949791903382, + 3.898665553048186e-05 + ], + [ + 0.003091340961122513, + 3.7714001836053335e-05 + ], + [ + 0.003090641994147436, + 3.606591068472387e-05 + ], + [ + 0.0030902263502371463, + 3.711636097714077e-05 + ] + ] +} diff --git a/configs/to_be_confirmed/noon_2_3_anc1.json b/pytheus/graphs/FockStates/noon2m3ph1anc/config_noon2m3ph1anc.json similarity index 92% rename from configs/to_be_confirmed/noon_2_3_anc1.json rename to pytheus/graphs/FockStates/noon2m3ph1anc/config_noon2m3ph1anc.json index e64a1613..42f05202 100644 --- a/configs/to_be_confirmed/noon_2_3_anc1.json +++ b/pytheus/graphs/FockStates/noon2m3ph1anc/config_noon2m3ph1anc.json @@ -13,10 +13,10 @@ "samples": 30, "target_state": [[0,3],[3,0]], "amplitudes": [1.0,1.0], - "thresholds": [0.000001,0.1], + "thresholds": [0.00001,0.1], "tries_per_edge": 1, "unicolor": false, "loops":true } - \ No newline at end of file + diff --git a/pytheus/graphs/FockStates/noon2m3ph1anc/plot_noon2m3ph1anc_clean-5-0-0.0000_0.0769.json b/pytheus/graphs/FockStates/noon2m3ph1anc/plot_noon2m3ph1anc_clean-5-0-0.0000_0.0769.json new file mode 100644 index 00000000..3f5a879e --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m3ph1anc/plot_noon2m3ph1anc_clean-5-0-0.0000_0.0769.json @@ -0,0 +1,19 @@ +{ + "graph": { + "(0, 1, 0, 0)": -1.0, + "(1, 1, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0, + "(1, 2, 0, 0)": 1.0, + "(0, 2, 0, 0)": 1.0 + }, + "loss": [ + 1.1102230246251565e-16, + 0.0769230769230771 + ], + "history": [ + [ + 1.1102230246251565e-16, + 0.0769230769230771 + ] + ] +} \ No newline at end of file diff --git a/configs/to_be_confirmed/noon_2_4_anc2.json b/pytheus/graphs/FockStates/noon2m4ph2anc/config_noon2m4ph2anc.json similarity index 58% rename from configs/to_be_confirmed/noon_2_4_anc2.json rename to pytheus/graphs/FockStates/noon2m4ph2anc/config_noon2m4ph2anc.json index fea635b1..b379043e 100644 --- a/configs/to_be_confirmed/noon_2_4_anc2.json +++ b/pytheus/graphs/FockStates/noon2m4ph2anc/config_noon2m4ph2anc.json @@ -1,22 +1,22 @@ { - "description": "NOON states in Fock basis.", + "description": "Noon state of 2 modes and 4 particles.", "bulk_thr": 0.1, "edges_tried": 20, - "foldername": "noon_2_4_anc2", + "foldername": "noon_2_4_anc2_cr", "ftol": 1e-05, - "loss_func": "fockfid", + "loss_func": "fockcr", "num_anc": 2, "num_pre": 1, "optimizer": "L-BFGS-B", "imaginary": false, "safe_hist": true, - "samples": 30, + "samples": 100, "target_state": [[0,4],[4,0]], - "amplitudes": [1.0,1.0], - "thresholds": [0.000001,0.1], + "amplitudes": [1,-1], + "thresholds": [0.1,0.001], "tries_per_edge": 1, "unicolor": false, "loops":true } - \ No newline at end of file + diff --git a/pytheus/graphs/FockStates/noon2m4ph2anc/graph_noon2m4ph2anc.aux b/pytheus/graphs/FockStates/noon2m4ph2anc/graph_noon2m4ph2anc.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m4ph2anc/graph_noon2m4ph2anc.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/FockStates/noon2m4ph2anc/graph_noon2m4ph2anc.pdf b/pytheus/graphs/FockStates/noon2m4ph2anc/graph_noon2m4ph2anc.pdf new file mode 100644 index 00000000..57a75bc8 Binary files /dev/null and b/pytheus/graphs/FockStates/noon2m4ph2anc/graph_noon2m4ph2anc.pdf differ diff --git a/pytheus/graphs/FockStates/noon2m4ph2anc/graph_noon2m4ph2anc.tex b/pytheus/graphs/FockStates/noon2m4ph2anc/graph_noon2m4ph2anc.tex new file mode 100644 index 00000000..26abce0f --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m4ph2anc/graph_noon2m4ph2anc.tex @@ -0,0 +1,45 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle,dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle,dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=30.0,in=-30.0, opacity=1.0] (0) to (0); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=120.0,in=60.0, opacity=1.0] (1) to (1); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/FockStates/noon2m4ph2anc/plot_noon2m4ph2anc.json b/pytheus/graphs/FockStates/noon2m4ph2anc/plot_noon2m4ph2anc.json new file mode 100644 index 00000000..d7492a5d --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m4ph2anc/plot_noon2m4ph2anc.json @@ -0,0 +1,23 @@ +{ + "graph": { + "(0, 2, 0, 0)": 1.0, + "(1, 1, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0, + "(2, 3, 0, 0)": -1.0, + "(0, 3, 0, 0)": 1.0 + }, + "loss": [ + 1.1102230246251565e-16, + 0.0769230769230771 + ], + "history": [ + [ + 1.1102230246251565e-16, + 0.0769230769230771 + ], + [ + 1.1102230246251565e-16, + 0.0769230769230771 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m5ph3anc/config_noon2m5ph3anc.json b/pytheus/graphs/FockStates/noon2m5ph3anc/config_noon2m5ph3anc.json new file mode 100644 index 00000000..41434008 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m5ph3anc/config_noon2m5ph3anc.json @@ -0,0 +1,44 @@ +{ + "description": "NOON states in Fock basis.", + "bulk_thr": 0.1, + "edges_tried": 30, + "foldername": "noon2m5ph3ancPlus_cr", + "ftol": 1e-05, + "loss_func": "fockcr", + "num_anc": 3, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 20, + "target_state": [ + [ + 0, + 5 + ], + [ + 5, + 0 + ] + ], + "amplitudes": [ + 1.0, + 1.0 + ], + "thresholds": [ + 0.2, + 0.0001 + ], + "tries_per_edge": 3, + "unicolor": false, + "loops": true, + "topopt": true, + "seed": 2447422524, + "dimensions": [ + 1, + 1, + 1, + 1, + 1 + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m5ph3anc/graph_noon2m5ph3anc.aux b/pytheus/graphs/FockStates/noon2m5ph3anc/graph_noon2m5ph3anc.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m5ph3anc/graph_noon2m5ph3anc.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/FockStates/noon2m5ph3anc/graph_noon2m5ph3anc.pdf b/pytheus/graphs/FockStates/noon2m5ph3anc/graph_noon2m5ph3anc.pdf new file mode 100644 index 00000000..a199a7cd Binary files /dev/null and b/pytheus/graphs/FockStates/noon2m5ph3anc/graph_noon2m5ph3anc.pdf differ diff --git a/pytheus/graphs/FockStates/noon2m5ph3anc/graph_noon2m5ph3anc.tex b/pytheus/graphs/FockStates/noon2m5ph3anc/graph_noon2m5ph3anc.tex new file mode 100644 index 00000000..06a3285f --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m5ph3anc/graph_noon2m5ph3anc.tex @@ -0,0 +1,51 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle,dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (0.9270509831248424,2.8531695488854605) [circle,dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (-2.427050983124842,1.7633557568774196) [rectangle] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.4270509831248424,-1.7633557568774192) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (0.9270509831248417,-2.853169548885461) [rectangle] {\color{fontcolor}4}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=30.0,in=-30.0, opacity=1.0] (0) to (0); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.6164934043245868] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=102.0,in=42.0, opacity=1.0] (1) to (1); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=0.3451131210022669] (2) to (4); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(0).json b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(0).json new file mode 100644 index 00000000..17ae0b05 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(0).json @@ -0,0 +1,37 @@ +{ + "graph": { + "(0, 2, 0, 0)": 1.0, + "(0, 4, 0, 0)": -1.0, + "(1, 2, 0, 0)": 1.0, + "(1, 4, 0, 0)": 1.0, + "(3, 4, 0, 0)": 0.3455932800529506, + "(0, 1, 0, 0)": -0.6157570642643949, + "(0, 3, 0, 0)": 1.0, + "(1, 3, 0, 0)": -1.0, + "(1, 1, 0, 0)": -1.0, + "(0, 0, 0, 0)": -1.0 + }, + "loss": [ + 0.0030252293254808826, + 5.101777857396961e-06 + ], + "seed": 4226937254, + "history": [ + [ + 0.003025235211479793, + 5.198028573683011e-06 + ], + [ + 0.0030252293254808826, + 5.101777857396961e-06 + ], + [ + 0.0030252293254808826, + 5.101777857396961e-06 + ], + [ + 0.0030252293254808826, + 5.101777857396961e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(1).json b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(1).json new file mode 100644 index 00000000..50d456fe --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(1).json @@ -0,0 +1,37 @@ +{ + "graph": { + "(0, 2, 0, 0)": 1.0, + "(0, 4, 0, 0)": -1.0, + "(1, 2, 0, 0)": -1.0, + "(1, 4, 0, 0)": 1.0, + "(2, 4, 0, 0)": 0.3456057463966757, + "(0, 1, 0, 0)": -0.6157440886870161, + "(0, 3, 0, 0)": -1.0, + "(1, 3, 0, 0)": -1.0, + "(1, 1, 0, 0)": -1.0, + "(0, 0, 0, 0)": -1.0 + }, + "loss": [ + 0.003025229212700431, + 5.133864091400042e-06 + ], + "seed": 2066011813, + "history": [ + [ + 0.0030254581645962064, + 6.899563690154764e-06 + ], + [ + 0.003026921259411952, + 8.49267899116768e-06 + ], + [ + 0.003025229752950387, + 5.056292517902072e-06 + ], + [ + 0.003025229212700431, + 5.133864091400042e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(10).json b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(10).json new file mode 100644 index 00000000..b23786db --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(10).json @@ -0,0 +1,41 @@ +{ + "graph": { + "(0, 2, 0, 0)": -1.0, + "(0, 4, 0, 0)": 1.0, + "(1, 2, 0, 0)": 1.0, + "(1, 4, 0, 0)": -1.0, + "(2, 4, 0, 0)": -0.3451131210022669, + "(0, 1, 0, 0)": 0.6164934043245868, + "(0, 3, 0, 0)": -1.0, + "(1, 3, 0, 0)": -1.0, + "(1, 1, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0 + }, + "loss": [ + 0.003025369390051047, + 4.002082829690501e-06 + ], + "seed": 625448654, + "history": [ + [ + 0.0030294726626083346, + 3.5233166971737617e-06 + ], + [ + 0.0030269589464064772, + 2.352618487910796e-06 + ], + [ + 0.003025976664110641, + 2.9407413856263886e-06 + ], + [ + 0.0030255527441289676, + 3.521653120452939e-06 + ], + [ + 0.003025369390051047, + 4.002082829690501e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(11).json b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(11).json new file mode 100644 index 00000000..296346e6 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(11).json @@ -0,0 +1,37 @@ +{ + "graph": { + "(0, 2, 0, 0)": -1.0, + "(0, 4, 0, 0)": -1.0, + "(1, 2, 0, 0)": -1.0, + "(1, 4, 0, 0)": 1.0, + "(3, 4, 0, 0)": 0.3450398491596082, + "(0, 1, 0, 0)": 0.6166591261681907, + "(0, 3, 0, 0)": -1.0, + "(1, 3, 0, 0)": 1.0, + "(1, 1, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0 + }, + "loss": [ + 0.0030254306337417214, + 3.874315117835536e-06 + ], + "seed": 1110270121, + "history": [ + [ + 0.003025229235027016, + 5.159124935150139e-06 + ], + [ + 0.0030594630428093517, + 2.4006154503597443e-05 + ], + [ + 0.0030259437211292983, + 2.0291597960797603e-06 + ], + [ + 0.0030254306337417214, + 3.874315117835536e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(12).json b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(12).json new file mode 100644 index 00000000..dbbbcfd7 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(12).json @@ -0,0 +1,37 @@ +{ + "graph": { + "(0, 2, 0, 0)": 1.0, + "(0, 4, 0, 0)": -1.0, + "(1, 2, 0, 0)": -1.0, + "(1, 4, 0, 0)": -1.0, + "(2, 3, 0, 0)": -0.34541485711689124, + "(0, 1, 0, 0)": -0.6160327076889988, + "(0, 3, 0, 0)": 1.0, + "(1, 3, 0, 0)": -1.0, + "(1, 1, 0, 0)": -1.0, + "(0, 0, 0, 0)": -1.0 + }, + "loss": [ + 0.003025250774275068, + 4.66244629282464e-06 + ], + "seed": 2633693200, + "history": [ + [ + 0.0030257357233284266, + 2.4165354326477484e-06 + ], + [ + 0.00302534430896384, + 4.16111444023759e-06 + ], + [ + 0.003025278930922415, + 4.42718766346939e-06 + ], + [ + 0.003025250774275068, + 4.66244629282464e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(13).json b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(13).json new file mode 100644 index 00000000..bea37b3d --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(13).json @@ -0,0 +1,37 @@ +{ + "graph": { + "(0, 2, 0, 0)": -1.0, + "(0, 4, 0, 0)": 1.0, + "(1, 2, 0, 0)": -1.0, + "(1, 4, 0, 0)": -1.0, + "(3, 4, 0, 0)": -0.34541158452599396, + "(0, 1, 0, 0)": 0.6160375824851047, + "(0, 3, 0, 0)": -1.0, + "(1, 3, 0, 0)": 1.0, + "(1, 1, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0 + }, + "loss": [ + 0.0030252514926383256, + 4.654714118812464e-06 + ], + "seed": 419659590, + "history": [ + [ + 0.0030255027236858467, + 3.6077013692015214e-06 + ], + [ + 0.003025347723368821, + 4.08430427467632e-06 + ], + [ + 0.003025280596034019, + 4.41859959732227e-06 + ], + [ + 0.0030252514926383256, + 4.654714118812464e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(2).json b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(2).json new file mode 100644 index 00000000..55cc2074 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(2).json @@ -0,0 +1,33 @@ +{ + "graph": { + "(0, 2, 0, 0)": -1.0, + "(0, 4, 0, 0)": 1.0, + "(1, 2, 0, 0)": 1.0, + "(1, 4, 0, 0)": -1.0, + "(2, 4, 0, 0)": -0.34507178498140817, + "(0, 1, 0, 0)": 0.6165565374399622, + "(0, 3, 0, 0)": -1.0, + "(1, 3, 0, 0)": -1.0, + "(1, 1, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0 + }, + "loss": [ + 0.0030253937153309485, + 3.919718187139765e-06 + ], + "seed": 2817228039, + "history": [ + [ + 0.00302610687275362, + 2.7800534058153303e-06 + ], + [ + 0.0030256089341028636, + 3.4181486986417653e-06 + ], + [ + 0.0030253937153309485, + 3.919718187139765e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(3).json b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(3).json new file mode 100644 index 00000000..c603053e --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(3).json @@ -0,0 +1,33 @@ +{ + "graph": { + "(0, 2, 0, 0)": -1.0, + "(0, 4, 0, 0)": 1.0, + "(1, 2, 0, 0)": 1.0, + "(1, 4, 0, 0)": -1.0, + "(2, 4, 0, 0)": 0.3456137330635177, + "(0, 1, 0, 0)": -0.6157201977395331, + "(0, 3, 0, 0)": 1.0, + "(1, 3, 0, 0)": 1.0, + "(1, 1, 0, 0)": -1.0, + "(0, 0, 0, 0)": -1.0 + }, + "loss": [ + 0.003025229246765737, + 5.154527097372963e-06 + ], + "seed": 1589627016, + "history": [ + [ + 0.003025229246765737, + 5.154527097372963e-06 + ], + [ + 0.003025229246765737, + 5.154527097372963e-06 + ], + [ + 0.003025229246765737, + 5.154527097372963e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(4).json b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(4).json new file mode 100644 index 00000000..6ec69c44 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(4).json @@ -0,0 +1,33 @@ +{ + "graph": { + "(0, 2, 0, 0)": 1.0, + "(0, 4, 0, 0)": -1.0, + "(1, 2, 0, 0)": -1.0, + "(1, 4, 0, 0)": -1.0, + "(2, 3, 0, 0)": 0.3454927157906177, + "(0, 1, 0, 0)": 0.61591392397604, + "(0, 3, 0, 0)": 1.0, + "(1, 3, 0, 0)": -1.0, + "(1, 1, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0 + }, + "loss": [ + 0.003025236980988333, + 4.849710473209257e-06 + ], + "seed": 1456334843, + "history": [ + [ + 0.003025270540165881, + 4.489741397661895e-06 + ], + [ + 0.0030252471357367083, + 4.703068601230598e-06 + ], + [ + 0.003025236980988333, + 4.849710473209257e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(5).json b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(5).json new file mode 100644 index 00000000..50734034 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(5).json @@ -0,0 +1,37 @@ +{ + "graph": { + "(0, 2, 0, 0)": -1.0, + "(0, 4, 0, 0)": 1.0, + "(1, 2, 0, 0)": -1.0, + "(1, 4, 0, 0)": -1.0, + "(3, 4, 0, 0)": -0.34558748897279845, + "(0, 1, 0, 0)": -0.6157695412095492, + "(0, 3, 0, 0)": 1.0, + "(1, 3, 0, 0)": -1.0, + "(1, 1, 0, 0)": -1.0, + "(0, 0, 0, 0)": -1.0 + }, + "loss": [ + 0.003025229481791958, + 5.086976984314262e-06 + ], + "seed": 850718765, + "history": [ + [ + 0.0030252333539509957, + 5.0228502823657095e-06 + ], + [ + 0.0030252307150374635, + 5.009355155904949e-06 + ], + [ + 0.003025229854478173, + 5.057413201559058e-06 + ], + [ + 0.003025229481791958, + 5.086976984314262e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(6).json b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(6).json new file mode 100644 index 00000000..25b6d99d --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(6).json @@ -0,0 +1,41 @@ +{ + "graph": { + "(1, 2, 0, 0)": -1.0, + "(0, 0, 0, 0)": -1.0, + "(0, 3, 0, 0)": 1.0, + "(1, 3, 0, 0)": -1.0, + "(3, 4, 0, 0)": -0.34546439911626614, + "(0, 1, 0, 0)": -0.6150943190776749, + "(1, 4, 0, 0)": -1.0, + "(0, 4, 0, 0)": 1.0, + "(1, 1, 0, 0)": -1.0, + "(0, 2, 0, 0)": -1.0 + }, + "loss": [ + 0.003025381337036337, + 4.921791174949952e-06 + ], + "seed": 4147943607, + "history": [ + [ + 0.004097301467780867, + 4.604036459732175e-05 + ], + [ + 0.004161459076281737, + 3.3491642588590054e-05 + ], + [ + 0.004151547068135808, + 3.4240092371407016e-05 + ], + [ + 0.004148111545929201, + 3.2305999650650286e-05 + ], + [ + 0.003025381337036337, + 4.921791174949952e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(7).json b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(7).json new file mode 100644 index 00000000..ce4f0c2a --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(7).json @@ -0,0 +1,41 @@ +{ + "graph": { + "(0, 2, 0, 0)": -1.0, + "(0, 4, 0, 0)": 1.0, + "(1, 2, 0, 0)": -1.0, + "(1, 4, 0, 0)": -1.0, + "(3, 4, 0, 0)": 0.34562375669731793, + "(0, 1, 0, 0)": 0.6157143485571915, + "(0, 3, 0, 0)": 1.0, + "(1, 3, 0, 0)": -1.0, + "(1, 1, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0 + }, + "loss": [ + 0.0030252293034673805, + 5.180473852561818e-06 + ], + "seed": 1055121918, + "history": [ + [ + 0.003025610123479794, + 7.654096881526407e-06 + ], + [ + 0.003025247387146046, + 4.898700260436151e-06 + ], + [ + 0.003025229793890749, + 5.243105874352949e-06 + ], + [ + 0.0030252294436243776, + 5.198422202035147e-06 + ], + [ + 0.0030252293034673805, + 5.180473852561818e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(8).json b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(8).json new file mode 100644 index 00000000..68f441fd --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(8).json @@ -0,0 +1,41 @@ +{ + "graph": { + "(0, 2, 0, 0)": -1.0, + "(0, 4, 0, 0)": -1.0, + "(1, 2, 0, 0)": 1.0, + "(1, 4, 0, 0)": -1.0, + "(2, 3, 0, 0)": -0.34543038528092174, + "(0, 1, 0, 0)": 0.616008967335373, + "(0, 3, 0, 0)": 1.0, + "(1, 3, 0, 0)": -1.0, + "(1, 1, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0 + }, + "loss": [ + 0.0030252474690607434, + 4.699238298710995e-06 + ], + "seed": 1362705094, + "history": [ + [ + 0.003025237341105158, + 5.46712770077562e-06 + ], + [ + 0.003025787524326806, + 2.5076165420800933e-06 + ], + [ + 0.0030253267717655907, + 4.2401491099353095e-06 + ], + [ + 0.003025271303930821, + 4.480348297808412e-06 + ], + [ + 0.0030252474690607434, + 4.699238298710995e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(9).json b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(9).json new file mode 100644 index 00000000..a66e6601 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000(9).json @@ -0,0 +1,41 @@ +{ + "graph": { + "(0, 2, 0, 0)": -1.0, + "(0, 4, 0, 0)": 1.0, + "(1, 2, 0, 0)": -1.0, + "(1, 4, 0, 0)": -1.0, + "(3, 4, 0, 0)": 0.34564726358217285, + "(0, 1, 0, 0)": 0.6156785724140832, + "(0, 3, 0, 0)": 1.0, + "(1, 3, 0, 0)": -1.0, + "(1, 1, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0 + }, + "loss": [ + 0.0030252299824401474, + 5.241870786987235e-06 + ], + "seed": 2804833428, + "history": [ + [ + 0.0030252483588993906, + 5.22890917398211e-06 + ], + [ + 0.0030253582644240717, + 5.680506114935646e-06 + ], + [ + 0.003025233367811242, + 5.367999942773594e-06 + ], + [ + 0.0030252310069325272, + 5.292851906646412e-06 + ], + [ + 0.0030252299824401474, + 5.241870786987235e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000.json b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000.json new file mode 100644 index 00000000..a8ee60f4 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m5ph3anc/other_solutions/rough-10-0-0.0030_0.0000.json @@ -0,0 +1,41 @@ +{ + "graph": { + "(0, 2, 0, 0)": -1.0, + "(0, 4, 0, 0)": -1.0, + "(1, 2, 0, 0)": 1.0, + "(1, 4, 0, 0)": 1.0, + "(2, 4, 0, 0)": 0.3456232161407535, + "(0, 1, 0, 0)": 0.6157152032892305, + "(0, 3, 0, 0)": -1.0, + "(1, 3, 0, 0)": -1.0, + "(1, 1, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0 + }, + "loss": [ + 0.0030252292949846105, + 5.1790691413255985e-06 + ], + "seed": 2447422524, + "history": [ + [ + 0.003168902400489171, + 2.1667244662681995e-05 + ], + [ + 0.0030252652437656735, + 4.741663195972912e-06 + ], + [ + 0.003025229777387395, + 5.2465964757164585e-06 + ], + [ + 0.0030252294238815036, + 5.195887843090219e-06 + ], + [ + 0.0030252292949846105, + 5.1790691413255985e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m5ph3anc/plot_noon2m5ph3anc.json b/pytheus/graphs/FockStates/noon2m5ph3anc/plot_noon2m5ph3anc.json new file mode 100644 index 00000000..0bd66fa3 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m5ph3anc/plot_noon2m5ph3anc.json @@ -0,0 +1,41 @@ +{ + "graph": { + "(0, 2, 0, 0)": 1.0, + "(0, 4, 0, 0)": -1.0, + "(1, 2, 0, 0)": -1.0, + "(1, 4, 0, 0)": 1.0, + "(2, 4, 0, 0)": -0.3451131210022669, + "(0, 1, 0, 0)": 0.6164934043245868, + "(0, 3, 0, 0)": 1.0, + "(1, 3, 0, 0)": 1.0, + "(1, 1, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0 + }, + "loss": [ + 0.003025369390051047, + 4.002082829690501e-06 + ], + "seed": 625448654, + "history": [ + [ + 0.0030294726626083346, + 3.5233166971737617e-06 + ], + [ + 0.0030269589464064772, + 2.352618487910796e-06 + ], + [ + 0.003025976664110641, + 2.9407413856263886e-06 + ], + [ + 0.0030255527441289676, + 3.521653120452939e-06 + ], + [ + 0.003025369390051047, + 4.002082829690501e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m6ph4anc/config_noon2m6ph4anc.json b/pytheus/graphs/FockStates/noon2m6ph4anc/config_noon2m6ph4anc.json new file mode 100644 index 00000000..80baa1ac --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m6ph4anc/config_noon2m6ph4anc.json @@ -0,0 +1,45 @@ +{ + "description": "NOON states in Fock basis.", + "bulk_thr": 0.1, + "edges_tried": 30, + "foldername": "noon2m6ph4ancPlus_cr", + "ftol": 1e-05, + "loss_func": "fockcr", + "num_anc": 4, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 20, + "target_state": [ + [ + 0, + 6 + ], + [ + 6, + 0 + ] + ], + "amplitudes": [ + 1.0, + 1.0 + ], + "thresholds": [ + 0.2, + 0.0001 + ], + "tries_per_edge": 3, + "unicolor": false, + "loops": true, + "topopt": true, + "seed": 3872238428, + "dimensions": [ + 1, + 1, + 1, + 1, + 1, + 1 + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m6ph4anc/graph_noon2m6ph4anc.aux b/pytheus/graphs/FockStates/noon2m6ph4anc/graph_noon2m6ph4anc.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m6ph4anc/graph_noon2m6ph4anc.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/FockStates/noon2m6ph4anc/graph_noon2m6ph4anc.pdf b/pytheus/graphs/FockStates/noon2m6ph4anc/graph_noon2m6ph4anc.pdf new file mode 100644 index 00000000..4080828b Binary files /dev/null and b/pytheus/graphs/FockStates/noon2m6ph4anc/graph_noon2m6ph4anc.pdf differ diff --git a/pytheus/graphs/FockStates/noon2m6ph4anc/graph_noon2m6ph4anc.tex b/pytheus/graphs/FockStates/noon2m6ph4anc/graph_noon2m6ph4anc.tex new file mode 100644 index 00000000..7b5ffb31 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m6ph4anc/graph_noon2m6ph4anc.tex @@ -0,0 +1,50 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle,dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle,dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [rectangle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=30.0,in=-30.0, opacity=1.0] (0) to (0); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=90.0,in=30.0, opacity=1.0] (1) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/FockStates/noon2m6ph4anc/other_solutions/clean-10-4-0.0244_0.0000.json b/pytheus/graphs/FockStates/noon2m6ph4anc/other_solutions/clean-10-4-0.0244_0.0000.json new file mode 100644 index 00000000..b15a89b3 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m6ph4anc/other_solutions/clean-10-4-0.0244_0.0000.json @@ -0,0 +1,49 @@ +{ + "graph": { + "(0, 2, 0, 0)": -1.0, + "(1, 1, 0, 0)": 1.0, + "(1, 5, 0, 0)": 1.0, + "(2, 4, 0, 0)": 1.0, + "(2, 5, 0, 0)": 1.0, + "(3, 4, 0, 0)": -1.0, + "(3, 5, 0, 0)": -1.0, + "(0, 0, 0, 0)": 1.0, + "(0, 3, 0, 0)": 1.0, + "(1, 4, 0, 0)": -1.0 + }, + "loss": [ + 0.024390243961054492, + 6.158296095293281e-11 + ], + "seed": 887933011, + "history": [ + [ + 0.005972103187646738, + 5.3086112125955154e-05 + ], + [ + 0.00614820077201772, + 7.447958408601796e-05 + ], + [ + 0.006148964101296617, + 5.6306617980839135e-05 + ], + [ + 0.006188123329237016, + 2.3917843572696107e-05 + ], + [ + 0.006211180124223392, + -2.220446049250313e-16 + ], + [ + 0.006211180124223392, + -2.220446049250313e-16 + ], + [ + 0.006211180124223392, + -2.220446049250313e-16 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m6ph4anc/other_solutions/clean-8-2-0.0062_-0.0000(0).json b/pytheus/graphs/FockStates/noon2m6ph4anc/other_solutions/clean-8-2-0.0062_-0.0000(0).json new file mode 100644 index 00000000..f9fc6dd9 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m6ph4anc/other_solutions/clean-8-2-0.0062_-0.0000(0).json @@ -0,0 +1,63 @@ +{ + "graph": { + "(0, 5, 0, 0)": 1.0, + "(1, 2, 0, 0)": 1.0, + "(4, 5, 0, 0)": 1.0, + "(0, 4, 0, 0)": 1.0, + "(1, 1, 0, 0)": -1.0, + "(2, 3, 0, 0)": -1.0, + "(1, 3, 0, 0)": -1.0, + "(0, 0, 0, 0)": -1.0 + }, + "loss": [ + 0.006211180124223281, + -4.440892098500626e-16 + ], + "seed": 55348407, + "history": [ + [ + 0.0011508401587334571, + 4.950795001901209e-05 + ], + [ + 0.0021728915569064755, + 1.298572114671881e-05 + ], + [ + 0.0021704455518406496, + 1.364576251605687e-05 + ], + [ + 0.002168533977881526, + 1.3195831466084051e-05 + ], + [ + 0.004246054536014121, + 6.004512066826173e-05 + ], + [ + 0.004166251455382519, + 2.8383138470200464e-05 + ], + [ + 0.004152593862293719, + 2.756973286555109e-05 + ], + [ + 0.006211461023380216, + 2.8624690995293633e-07 + ], + [ + 0.0062111968849247745, + 1.6970864602505742e-08 + ], + [ + 0.006211180124223281, + -4.440892098500626e-16 + ], + [ + 0.006211180124223281, + -4.440892098500626e-16 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m6ph4anc/other_solutions/clean-8-2-0.0062_-0.0000(1).json b/pytheus/graphs/FockStates/noon2m6ph4anc/other_solutions/clean-8-2-0.0062_-0.0000(1).json new file mode 100644 index 00000000..44e6fb2a --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m6ph4anc/other_solutions/clean-8-2-0.0062_-0.0000(1).json @@ -0,0 +1,59 @@ +{ + "graph": { + "(0, 2, 0, 0)": 1.0, + "(1, 1, 0, 0)": 1.0, + "(1, 5, 0, 0)": -1.0, + "(4, 5, 0, 0)": -1.0, + "(0, 3, 0, 0)": -1.0, + "(2, 3, 0, 0)": 1.0, + "(1, 4, 0, 0)": -1.0, + "(0, 0, 0, 0)": 1.0 + }, + "loss": [ + 0.006211180124223281, + -4.440892098500626e-16 + ], + "seed": 214887337, + "history": [ + [ + 0.0017398125310152945, + 3.622365161293217e-05 + ], + [ + 0.0017321605072053714, + 2.590731575713434e-05 + ], + [ + 0.0017275736728675772, + 1.861959075433184e-05 + ], + [ + 0.001658554818088187, + 2.3760951607609826e-05 + ], + [ + 0.006136741391559619, + 9.189880729842947e-05 + ], + [ + 0.006212131114080699, + 9.7218707151292e-07 + ], + [ + 0.006211180124223281, + -4.440892098500626e-16 + ], + [ + 0.006211180124223281, + -4.440892098500626e-16 + ], + [ + 0.006211180124246263, + 2.2870594307278225e-14 + ], + [ + 0.006211180124223281, + -4.440892098500626e-16 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m6ph4anc/other_solutions/clean-8-2-0.0062_-0.0000(2).json b/pytheus/graphs/FockStates/noon2m6ph4anc/other_solutions/clean-8-2-0.0062_-0.0000(2).json new file mode 100644 index 00000000..3c7031d2 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m6ph4anc/other_solutions/clean-8-2-0.0062_-0.0000(2).json @@ -0,0 +1,59 @@ +{ + "graph": { + "(0, 2, 0, 0)": 1.0, + "(1, 5, 0, 0)": 1.0, + "(4, 5, 0, 0)": -1.0, + "(1, 4, 0, 0)": -1.0, + "(1, 1, 0, 0)": -1.0, + "(0, 3, 0, 0)": -1.0, + "(2, 3, 0, 0)": -1.0, + "(0, 0, 0, 0)": -1.0 + }, + "loss": [ + 0.006211180124223281, + -4.440892098500626e-16 + ], + "seed": 2094807400, + "history": [ + [ + 0.0008990893630469454, + 2.6661674275008096e-06 + ], + [ + 0.0014250009776775041, + 7.428035870171712e-06 + ], + [ + 0.0014204605617182953, + 8.546828742850288e-06 + ], + [ + 0.0030506167259283234, + 4.13767334972448e-05 + ], + [ + 0.0038333179667326966, + 1.8610454257328435e-05 + ], + [ + 0.0040174046404123365, + 4.866704699346691e-06 + ], + [ + 0.006211181614345751, + 1.5226226945941335e-09 + ], + [ + 0.006211180160214047, + 3.6441738515691213e-11 + ], + [ + 0.006211180124223281, + -4.440892098500626e-16 + ], + [ + 0.006211180124223281, + -4.440892098500626e-16 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m6ph4anc/other_solutions/clean-8-2-0.0062_-0.0000(3).json b/pytheus/graphs/FockStates/noon2m6ph4anc/other_solutions/clean-8-2-0.0062_-0.0000(3).json new file mode 100644 index 00000000..2c5f24b1 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m6ph4anc/other_solutions/clean-8-2-0.0062_-0.0000(3).json @@ -0,0 +1,71 @@ +{ + "graph": { + "(1, 3, 0, 0)": -1.0, + "(3, 4, 0, 0)": -1.0, + "(1, 1, 0, 0)": 1.0, + "(1, 4, 0, 0)": -1.0, + "(2, 5, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0, + "(0, 2, 0, 0)": -1.0, + "(0, 5, 0, 0)": 1.0 + }, + "loss": [ + 0.006211180124223281, + -4.440892098500626e-16 + ], + "seed": 3175741032, + "history": [ + [ + 0.0004321621871583581, + 1.7098586071240263e-05 + ], + [ + 0.0004317915898526259, + 1.7208172150673384e-05 + ], + [ + 0.0004314990044461675, + 1.6935546951257763e-05 + ], + [ + 0.0009664027774085593, + 3.098222848973986e-05 + ], + [ + 0.001538504801557261, + 1.5721957933756414e-05 + ], + [ + 0.0015343116092371156, + 1.3217026663236986e-05 + ], + [ + 0.001531265137230453, + 1.5675708296636337e-05 + ], + [ + 0.003488738032180305, + 7.784351797979205e-05 + ], + [ + 0.003481279154601613, + 5.836575573781033e-05 + ], + [ + 0.0062142027137171985, + 3.3978849210969386e-06 + ], + [ + 0.006214107159687621, + 2.963737690042656e-06 + ], + [ + 0.006211180124223392, + -4.440892098500626e-16 + ], + [ + 0.006211180124223281, + -4.440892098500626e-16 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m6ph4anc/other_solutions/clean-8-2-0.0062_-0.0000.json b/pytheus/graphs/FockStates/noon2m6ph4anc/other_solutions/clean-8-2-0.0062_-0.0000.json new file mode 100644 index 00000000..3b378141 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m6ph4anc/other_solutions/clean-8-2-0.0062_-0.0000.json @@ -0,0 +1,67 @@ +{ + "graph": { + "(0, 2, 0, 0)": -1.0, + "(1, 1, 0, 0)": -1.0, + "(1, 5, 0, 0)": 1.0, + "(3, 5, 0, 0)": -1.0, + "(0, 4, 0, 0)": 1.0, + "(2, 4, 0, 0)": -1.0, + "(1, 3, 0, 0)": -1.0, + "(0, 0, 0, 0)": -1.0 + }, + "loss": [ + 0.006211180124223281, + -4.440892098500626e-16 + ], + "seed": 1875600156, + "history": [ + [ + 0.0009817220267968052, + 8.513950243149715e-06 + ], + [ + 0.0015897201200854028, + 9.347435163231665e-05 + ], + [ + 0.0021069895436434116, + 3.7665950207821375e-05 + ], + [ + 0.0021045271888424644, + 3.418642864227994e-05 + ], + [ + 0.006143251713550124, + 6.1552726731251e-05 + ], + [ + 0.006134401596784578, + 8.022105573068927e-05 + ], + [ + 0.006134778318734879, + 8.333984735542366e-05 + ], + [ + 0.006211180132060901, + 7.935541113113231e-12 + ], + [ + 0.006211180124223281, + -4.440892098500626e-16 + ], + [ + 0.006211180124223281, + -4.440892098500626e-16 + ], + [ + 0.006211180124223281, + -4.440892098500626e-16 + ], + [ + 0.006211180124223281, + -4.440892098500626e-16 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m6ph4anc/plot_noon2m6ph4anc.json b/pytheus/graphs/FockStates/noon2m6ph4anc/plot_noon2m6ph4anc.json new file mode 100644 index 00000000..26d431de --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m6ph4anc/plot_noon2m6ph4anc.json @@ -0,0 +1,63 @@ +{ + "graph": { + "(0, 5, 0, 0)": 1.0, + "(1, 2, 0, 0)": 1.0, + "(4, 5, 0, 0)": -1.0, + "(0, 4, 0, 0)": 1.0, + "(1, 1, 0, 0)": 1.0, + "(2, 3, 0, 0)": -1.0, + "(1, 3, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0 + }, + "loss": [ + 0.006211180124223281, + -4.440892098500626e-16 + ], + "seed": 55348407, + "history": [ + [ + 0.0011508401587334571, + 4.950795001901209e-05 + ], + [ + 0.0021728915569064755, + 1.298572114671881e-05 + ], + [ + 0.0021704455518406496, + 1.364576251605687e-05 + ], + [ + 0.002168533977881526, + 1.3195831466084051e-05 + ], + [ + 0.004246054536014121, + 6.004512066826173e-05 + ], + [ + 0.004166251455382519, + 2.8383138470200464e-05 + ], + [ + 0.004152593862293719, + 2.756973286555109e-05 + ], + [ + 0.006211461023380216, + 2.8624690995293633e-07 + ], + [ + 0.0062111968849247745, + 1.6970864602505742e-08 + ], + [ + 0.006211180124223281, + -4.440892098500626e-16 + ], + [ + 0.006211180124223281, + -4.440892098500626e-16 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m7ph5anc/config_noon2m7ph5anc.json b/pytheus/graphs/FockStates/noon2m7ph5anc/config_noon2m7ph5anc.json new file mode 100644 index 00000000..68302268 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m7ph5anc/config_noon2m7ph5anc.json @@ -0,0 +1,46 @@ +{ + "description": "NOON states in Fock basis.", + "bulk_thr": 0.1, + "edges_tried": 30, + "foldername": "noon2m7ph5ancPlus_cr", + "ftol": 1e-05, + "loss_func": "fockcr", + "num_anc": 5, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 20, + "target_state": [ + [ + 0, + 7 + ], + [ + 7, + 0 + ] + ], + "amplitudes": [ + 1.0, + 1.0 + ], + "thresholds": [ + 0.2, + 0.01 + ], + "tries_per_edge": 2, + "unicolor": false, + "loops": true, + "topopt": true, + "seed": 4232170735, + "dimensions": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m7ph5anc/graph_noon2m7ph5anc.aux b/pytheus/graphs/FockStates/noon2m7ph5anc/graph_noon2m7ph5anc.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m7ph5anc/graph_noon2m7ph5anc.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/FockStates/noon2m7ph5anc/graph_noon2m7ph5anc.pdf b/pytheus/graphs/FockStates/noon2m7ph5anc/graph_noon2m7ph5anc.pdf new file mode 100644 index 00000000..e4fee1e8 Binary files /dev/null and b/pytheus/graphs/FockStates/noon2m7ph5anc/graph_noon2m7ph5anc.pdf differ diff --git a/pytheus/graphs/FockStates/noon2m7ph5anc/graph_noon2m7ph5anc.tex b/pytheus/graphs/FockStates/noon2m7ph5anc/graph_noon2m7ph5anc.tex new file mode 100644 index 00000000..14877b8d --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m7ph5anc/graph_noon2m7ph5anc.tex @@ -0,0 +1,54 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle,dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8704694055762008,2.3454944474040893) [circle,dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (-0.667562801868943,2.924783736545471) [rectangle] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.702906603707257,1.3016512173526746) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-2.7029066037072575,-1.301651217352674) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (-0.6675628018689438,-2.9247837365454705) [rectangle] {\color{fontcolor}5}; +\node[vertex] (6) at (1.8704694055762001,-2.3454944474040897) [rectangle] {\color{fontcolor}6}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=30.0,in=-30.0, opacity=1.0] (0) to (0); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=0.4456706828571158] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.8069178013910424] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=0.739356051242636] (0) to (6); +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=81.42857142857143,in=21.42857142857143, opacity=1.0] (1) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.8389106222379384] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.7643720301523899] (1) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (6); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-11-0-0.0036_0.0000(0).json b/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-11-0-0.0036_0.0000(0).json new file mode 100644 index 00000000..4bacf432 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-11-0-0.0036_0.0000(0).json @@ -0,0 +1,86 @@ +{ + "graph": { + "(0, 6, 0, 0)": -1.0, + "(1, 6, 0, 0)": -1.0, + "(3, 5, 0, 0)": 1.0, + "(0, 1, 0, 0)": -0.4456706828571158, + "(0, 5, 0, 0)": -0.739356051242636, + "(1, 3, 0, 0)": 0.7643720301523899, + "(0, 4, 0, 0)": 0.8069178013910424, + "(1, 2, 0, 0)": -0.8389106222379384, + "(1, 1, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0, + "(2, 4, 0, 0)": -1.0 + }, + "loss": [ + 0.003559115484237707, + 3.9946110774735644e-07 + ], + "seed": 197747540, + "history": [ + [ + 0.0013301857524590233, + 0.00015555296276825725 + ], + [ + 0.001128630491779914, + 3.075193269830301e-05 + ], + [ + 0.0010564097118175297, + 1.2410130524220797e-05 + ], + [ + 0.0009780516290790464, + 1.8795706966390213e-05 + ], + [ + 0.0009237908229604574, + 4.89449799423447e-06 + ], + [ + 0.0008105464214309688, + 2.1730861759272635e-05 + ], + [ + 0.001004407963171916, + 0.00014103567346612778 + ], + [ + 0.0009683424069381052, + 0.00011080945828356725 + ], + [ + 0.0009601817326804207, + 0.00011085341568295437 + ], + [ + 0.002361525284288124, + 0.0008896804956463056 + ], + [ + 0.0011258009252205214, + 5.356194201722175e-06 + ], + [ + 0.001127268656720748, + 1.2028940584163372e-05 + ], + [ + 0.001119414492965154, + 8.195462077309479e-06 + ], + [ + 0.0011148151266674455, + 4.1402374933996455e-06 + ], + [ + 0.003562038445634852, + 3.3433380440817118e-06 + ], + [ + 0.003559115484237707, + 3.9946110774735644e-07 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-11-0-0.0036_0.0000(1).json b/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-11-0-0.0036_0.0000(1).json new file mode 100644 index 00000000..7418dd4f --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-11-0-0.0036_0.0000(1).json @@ -0,0 +1,82 @@ +{ + "graph": { + "(0, 2, 0, 0)": -1.0, + "(1, 2, 0, 0)": -1.0, + "(4, 6, 0, 0)": -1.0, + "(0, 1, 0, 0)": 0.44922972895142627, + "(0, 6, 0, 0)": 0.6099144309865667, + "(1, 5, 0, 0)": -0.6867137523088237, + "(1, 4, 0, 0)": -0.9239839389542706, + "(0, 3, 0, 0)": -0.9887083296445873, + "(1, 1, 0, 0)": -1.0, + "(0, 0, 0, 0)": -1.0, + "(3, 5, 0, 0)": -1.0 + }, + "loss": [ + 0.0035605044465353286, + 1.7983622701001067e-06 + ], + "seed": 2445080962, + "history": [ + [ + 0.00032969471182853205, + 5.1531418379324734e-05 + ], + [ + 0.0003269744223250992, + 4.915204383404426e-05 + ], + [ + 0.0004148944746437122, + 1.8537695112397223e-05 + ], + [ + 0.00043034109483541805, + 7.579547096403516e-06 + ], + [ + 0.00035729070733880874, + 6.586141165776382e-07 + ], + [ + 0.000577391762028423, + 2.8454028958568856e-06 + ], + [ + 0.0004065057009884354, + 2.132352809092186e-05 + ], + [ + 0.00047551890145858255, + 0.00010622203363908067 + ], + [ + 0.00047144252250519436, + 0.00010233312756469104 + ], + [ + 0.0007384648118033965, + 0.00023509714603409115 + ], + [ + 0.0004256631862075144, + 1.3686156055570109e-05 + ], + [ + 0.003551742294869431, + 1.435157040308166e-05 + ], + [ + 0.0035617930060483083, + 3.096142192626772e-06 + ], + [ + 0.0035607399813988305, + 2.0355825265383487e-06 + ], + [ + 0.0035605044465353286, + 1.7983622701001067e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-11-0-0.0036_0.0000(2).json b/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-11-0-0.0036_0.0000(2).json new file mode 100644 index 00000000..003f47b9 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-11-0-0.0036_0.0000(2).json @@ -0,0 +1,78 @@ +{ + "graph": { + "(0, 3, 0, 0)": 1.0, + "(1, 3, 0, 0)": 1.0, + "(4, 5, 0, 0)": -1.0, + "(0, 1, 0, 0)": 0.4519159875093697, + "(1, 5, 0, 0)": -0.6418035704875911, + "(1, 6, 0, 0)": -0.7697770364449467, + "(0, 4, 0, 0)": 0.875839914704498, + "(0, 2, 0, 0)": 0.8833225410041213, + "(1, 1, 0, 0)": -1.0, + "(0, 0, 0, 0)": -1.0, + "(2, 6, 0, 0)": 1.0 + }, + "loss": [ + 0.003563565506581101, + 4.881326001293651e-06 + ], + "seed": 1237097679, + "history": [ + [ + 0.0010471856438799554, + 7.936150230758443e-06 + ], + [ + 0.0010453582831209118, + 7.771354989194457e-06 + ], + [ + 0.0011654431999938986, + 3.552636661485753e-05 + ], + [ + 0.0013347100377942844, + 7.039424528987315e-05 + ], + [ + 0.0013262104733773317, + 6.747716199195786e-05 + ], + [ + 0.0013203233226092292, + 5.8771214562103324e-05 + ], + [ + 0.0014878026368000397, + 1.2525775015315155e-05 + ], + [ + 0.001601165875804611, + 0.00010645323438041032 + ], + [ + 0.0015968442259927107, + 4.017557257651738e-06 + ], + [ + 0.0015957320778301476, + 2.8874393626088235e-06 + ], + [ + 0.003558719065992033, + 2.0624746355224488e-10 + ], + [ + 0.0035671758272376453, + 8.51748053909418e-06 + ], + [ + 0.0035642148177897903, + 5.535283404967117e-06 + ], + [ + 0.003563565506581101, + 4.881326001293651e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-11-0-0.0036_0.0000(3).json b/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-11-0-0.0036_0.0000(3).json new file mode 100644 index 00000000..3b2a06ff --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-11-0-0.0036_0.0000(3).json @@ -0,0 +1,86 @@ +{ + "graph": { + "(0, 5, 0, 0)": 1.0, + "(2, 3, 0, 0)": 1.0, + "(0, 1, 0, 0)": -0.4450716401475542, + "(0, 2, 0, 0)": 0.6382519869355813, + "(1, 4, 0, 0)": 0.6902532794928263, + "(1, 3, 0, 0)": -0.8865637886189573, + "(0, 6, 0, 0)": -0.9811841751509162, + "(1, 5, 0, 0)": 0.999085133473009, + "(0, 0, 0, 0)": 1.0, + "(4, 6, 0, 0)": -1.0, + "(1, 1, 0, 0)": 1.0 + }, + "loss": [ + 0.003563390031053215, + 1.434991184323664e-06 + ], + "seed": 2575403946, + "history": [ + [ + 0.00018988093727390076, + 3.644025929339101e-06 + ], + [ + 0.0001889458189344717, + 1.361226276030969e-06 + ], + [ + 0.0001930174091903103, + 1.2787595370600258e-05 + ], + [ + 0.0001897040867976374, + 1.3769123636375724e-05 + ], + [ + 0.0001758435570969885, + 5.709742603166035e-06 + ], + [ + 0.00017432341936740592, + 4.336188511588901e-06 + ], + [ + 0.0001731600989470783, + 3.2036944438429416e-06 + ], + [ + 0.00019677787753391573, + 1.7077056646774835e-05 + ], + [ + 0.0001925796643467148, + 1.2817503640794037e-05 + ], + [ + 0.0007087267858378876, + 1.6773052461283022e-05 + ], + [ + 0.0009011032051705614, + 3.360566020482736e-05 + ], + [ + 0.002552004326744406, + 0.001750318235956061 + ], + [ + 0.0003754319634360348, + 3.6974966057812253e-06 + ], + [ + 0.0003745999301294489, + 2.935632832379298e-06 + ], + [ + 0.0035494336658610237, + 7.448104797580513e-06 + ], + [ + 0.003563390031053215, + 1.434991184323664e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-11-0-0.0036_0.0000(4).json b/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-11-0-0.0036_0.0000(4).json new file mode 100644 index 00000000..982c0408 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-11-0-0.0036_0.0000(4).json @@ -0,0 +1,90 @@ +{ + "graph": { + "(2, 6, 0, 0)": 1.0, + "(0, 0, 0, 0)": -1.0, + "(0, 5, 0, 0)": -1.0, + "(0, 1, 0, 0)": 0.4448177556820348, + "(0, 3, 0, 0)": -0.6785489848500516, + "(1, 2, 0, 0)": -0.7389573300467629, + "(0, 6, 0, 0)": -0.7650758418232353, + "(1, 4, 0, 0)": -0.9975789359370245, + "(3, 4, 0, 0)": -1.0, + "(1, 5, 0, 0)": -1.0, + "(1, 1, 0, 0)": -1.0 + }, + "loss": [ + 0.003558727596272626, + 8.797567341289891e-09 + ], + "seed": 1452565574, + "history": [ + [ + 0.00011251488499552931, + 1.0486811147791819e-05 + ], + [ + 0.00015093606441751728, + 2.7629878530888163e-05 + ], + [ + 0.0003233837766710712, + 0.00016583238078649032 + ], + [ + 0.00035306899141085424, + 0.00013461090130195696 + ], + [ + 0.000344986904236122, + 2.939123774192698e-05 + ], + [ + 0.0003442941484615991, + 2.8897714508091532e-05 + ], + [ + 0.0011395237440888772, + 1.7504648939903333e-05 + ], + [ + 0.0016909298304056408, + 5.7554259240921724e-05 + ], + [ + 0.007101900046285636, + 0.001490946165500051 + ], + [ + 0.019550821749299785, + 0.007409167304688213 + ], + [ + 0.0035447493574023436, + 1.2722800967868153e-05 + ], + [ + 0.0035468320185039204, + 9.931409611585451e-06 + ], + [ + 0.0035593778087339434, + 6.636626954659164e-07 + ], + [ + 0.0035589075322766117, + 1.9002112350285927e-07 + ], + [ + 0.003558775430683836, + 5.697426308515219e-08 + ], + [ + 0.003558738195024058, + 1.9472159329403382e-08 + ], + [ + 0.003558727596272626, + 8.797567341289891e-09 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-11-0-0.0036_0.0000.json b/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-11-0-0.0036_0.0000.json new file mode 100644 index 00000000..6818f9f5 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-11-0-0.0036_0.0000.json @@ -0,0 +1,86 @@ +{ + "graph": { + "(0, 2, 0, 0)": 1.0, + "(1, 2, 0, 0)": 1.0, + "(0, 1, 0, 0)": -0.4344347064279394, + "(0, 3, 0, 0)": -0.6719399883711625, + "(1, 5, 0, 0)": 0.6993541738766919, + "(0, 6, 0, 0)": -0.8142665267596592, + "(3, 4, 0, 0)": -0.9989799865565456, + "(1, 4, 0, 0)": 0.9998141108851196, + "(0, 0, 0, 0)": 1.0, + "(5, 6, 0, 0)": 1.0, + "(1, 1, 0, 0)": 1.0 + }, + "loss": [ + 0.0035777916483559213, + 1.1912517468015693e-05 + ], + "seed": 4232170735, + "history": [ + [ + 0.0005391696409767777, + 2.3552862984499434e-05 + ], + [ + 0.0005380974760036406, + 2.28442218217495e-05 + ], + [ + 0.0004564190344877872, + 9.240889480066627e-06 + ], + [ + 0.00047011193264445694, + 4.387094839641836e-05 + ], + [ + 0.00048748464502135214, + 4.456892504034471e-05 + ], + [ + 0.00044453100017316505, + 1.3685706579003032e-05 + ], + [ + 0.00023722007584836557, + 4.797800492362114e-05 + ], + [ + 0.00018722807134352593, + 2.0813433585509244e-06 + ], + [ + 0.0003087304831620452, + 2.663885456000159e-06 + ], + [ + 0.0003069628900197463, + 1.6342817144021637e-06 + ], + [ + 0.0003063798670711604, + 1.3493317461144017e-06 + ], + [ + 0.0005368931787678166, + 1.061615357145218e-05 + ], + [ + 0.0007162879657072185, + 0.0003319348034102054 + ], + [ + 0.0004383496932182096, + 6.101488526977228e-06 + ], + [ + 0.0035743055775850907, + 1.725999127777378e-05 + ], + [ + 0.0035777916483559213, + 1.1912517468015693e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-11-0-0.0039_0.0000.json b/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-11-0-0.0039_0.0000.json new file mode 100644 index 00000000..e389383c --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-11-0-0.0039_0.0000.json @@ -0,0 +1,82 @@ +{ + "graph": { + "(1, 1, 0, 0)": -1.0, + "(4, 5, 0, 0)": 1.0, + "(0, 1, 0, 0)": 0.4591874129944155, + "(1, 5, 0, 0)": 0.6103493514169333, + "(0, 3, 0, 0)": -0.688861919261349, + "(0, 4, 0, 0)": 0.9146542418489952, + "(1, 2, 0, 0)": -0.9558700451304556, + "(0, 2, 0, 0)": -0.9573766574239106, + "(1, 6, 0, 0)": 0.9907182460055026, + "(3, 6, 0, 0)": 1.0, + "(0, 0, 0, 0)": -1.0 + }, + "loss": [ + 0.003911194216202563, + 2.3897479445422753e-05 + ], + "seed": 659192200, + "history": [ + [ + 0.0001929247753229557, + 9.774487351066341e-06 + ], + [ + 0.00018921599635857156, + 6.391062264965441e-06 + ], + [ + 0.0001899538447961424, + 5.788928542305172e-06 + ], + [ + 0.00018759332177908927, + 4.469581674992895e-06 + ], + [ + 0.00021356858364030007, + 8.48756303495346e-06 + ], + [ + 0.0002242560584925224, + 7.3560860698318464e-06 + ], + [ + 0.0003569561819003475, + 5.896777342861981e-06 + ], + [ + 0.0003537547964804766, + 8.129454986738338e-06 + ], + [ + 0.00034802324589000566, + 3.304152240479752e-06 + ], + [ + 0.00034622805118988964, + 3.1541130193213363e-06 + ], + [ + 0.00040432670456547193, + 1.2893289011550735e-05 + ], + [ + 0.0005942177392713743, + 0.0002956474117892238 + ], + [ + 0.0003572925039085906, + 1.7538053496135575e-06 + ], + [ + 0.003917205129589263, + 6.772188798720435e-05 + ], + [ + 0.003911194216202563, + 2.3897479445422753e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-13-0-0.0018_0.0009.json b/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-13-0-0.0018_0.0009.json new file mode 100644 index 00000000..a3bc2b17 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-13-0-0.0018_0.0009.json @@ -0,0 +1,80 @@ +{ + "graph": { + "(2, 3, 0, 0)": 0.5697390211067285, + "(0, 5, 0, 0)": -0.6998469837814049, + "(1, 1, 0, 0)": -0.8209038896635935, + "(0, 0, 0, 0)": -0.8267348357829183, + "(0, 3, 0, 0)": -0.9190831223777423, + "(1, 3, 0, 0)": 0.9339612487333557, + "(5, 6, 0, 0)": 0.9684618275022386, + "(0, 2, 0, 0)": 0.9687434498228885, + "(1, 4, 0, 0)": -0.9704380842235635, + "(0, 4, 0, 0)": -0.9727214058483631, + "(1, 2, 0, 0)": -0.985009903907267, + "(0, 1, 0, 0)": -0.9882590154849273, + "(1, 6, 0, 0)": -0.9999901000524568 + }, + "loss": [ + 0.0017505465668283815, + 0.0008892585696694821 + ], + "seed": 367958698, + "history": [ + [ + 0.0002671699584978482, + 8.844658196727195e-06 + ], + [ + 0.0003236030900687359, + 6.639259748697501e-05 + ], + [ + 0.000284558390114098, + 1.6872180025884198e-05 + ], + [ + 0.0002931362607474508, + 1.7287796621578977e-05 + ], + [ + 0.00029139620052909265, + 1.5882694669455688e-05 + ], + [ + 0.00028043472446181994, + 6.7524064938373485e-06 + ], + [ + 0.0002750871204748595, + 3.785387729826617e-06 + ], + [ + 0.0002730016688802239, + 3.8035358040922063e-06 + ], + [ + 0.0006118993582866494, + 0.00012209672796292814 + ], + [ + 0.0004809358304499467, + 3.9522399062352775e-06 + ], + [ + 0.0003687640589935537, + 1.4409751099009327e-06 + ], + [ + 0.0012936410923071184, + 0.00010511399478807526 + ], + [ + 0.005666879600111474, + 0.004051937625393465 + ], + [ + 0.0017505465668283815, + 0.0008892585696694821 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-13-0-0.0022_0.0001.json b/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-13-0-0.0022_0.0001.json new file mode 100644 index 00000000..75f54b42 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-13-0-0.0022_0.0001.json @@ -0,0 +1,72 @@ +{ + "graph": { + "(0, 6, 0, 0)": -1.0, + "(3, 4, 0, 0)": 1.0, + "(0, 4, 0, 0)": -0.42093845553243353, + "(1, 5, 0, 0)": -0.4426403410557585, + "(1, 1, 0, 0)": 0.8084369996802638, + "(0, 0, 0, 0)": 0.8145425599033911, + "(1, 2, 0, 0)": -0.880719551286485, + "(0, 3, 0, 0)": -0.9001046199759489, + "(1, 4, 0, 0)": 0.9884544095692508, + "(2, 5, 0, 0)": 0.9993742779851001, + "(0, 5, 0, 0)": 1.0, + "(0, 1, 0, 0)": 1.0, + "(1, 6, 0, 0)": -1.0 + }, + "loss": [ + 0.002191556417031948, + 6.045601922621824e-05 + ], + "seed": 506409438, + "history": [ + [ + 0.00045431761585779107, + 7.950598574302248e-05 + ], + [ + 0.00042148650305318114, + 4.797871025274958e-05 + ], + [ + 0.0003867941124027219, + 2.4998383022611925e-05 + ], + [ + 0.0003856616527593282, + 2.4071825484472953e-05 + ], + [ + 0.0003846728879836059, + 2.3511007910648196e-05 + ], + [ + 0.00037660585918353195, + 8.305554852094943e-06 + ], + [ + 0.00036080741763344637, + 9.755541494405051e-06 + ], + [ + 0.0006092941207060942, + 5.659475694497207e-05 + ], + [ + 0.0013764307440662371, + 0.00013045177781090267 + ], + [ + 0.0009810147688514848, + 7.192289392277118e-06 + ], + [ + 0.002193770377081239, + 5.8654793847146e-05 + ], + [ + 0.002191556417031948, + 6.045601922621824e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-13-0-0.0023_0.0002.json b/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-13-0-0.0023_0.0002.json new file mode 100644 index 00000000..4476a8b3 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m7ph5anc/other_solutions/rough-13-0-0.0023_0.0002.json @@ -0,0 +1,80 @@ +{ + "graph": { + "(0, 2, 0, 0)": -1.0, + "(0, 6, 0, 0)": 0.43268447127744375, + "(1, 3, 0, 0)": 0.43990906156415394, + "(1, 1, 0, 0)": -0.817330734090407, + "(0, 0, 0, 0)": -0.8201445448538109, + "(0, 4, 0, 0)": 0.8866223477043786, + "(1, 5, 0, 0)": -0.8884098609109886, + "(4, 6, 0, 0)": -0.9947658764363043, + "(3, 5, 0, 0)": 0.9954357027089636, + "(0, 3, 0, 0)": -0.9992710762598475, + "(1, 6, 0, 0)": -0.9997624905949992, + "(0, 1, 0, 0)": -1.0, + "(1, 2, 0, 0)": -1.0 + }, + "loss": [ + 0.002259252233159259, + 0.00020941358921366948 + ], + "seed": 1963971784, + "history": [ + [ + 0.00039792556077322683, + 1.9732968537744533e-05 + ], + [ + 0.0003959044607366735, + 2.306418590525272e-05 + ], + [ + 0.0003744128605217556, + 2.884411375303486e-06 + ], + [ + 0.0004091104316990002, + 3.3048028968640786e-05 + ], + [ + 0.00040639634071815145, + 3.147661617064479e-05 + ], + [ + 0.0004042627159460688, + 2.9694795908641325e-05 + ], + [ + 0.00033717509603503615, + 4.846175130301944e-06 + ], + [ + 0.00033537742325095987, + 5.260247554761399e-06 + ], + [ + 0.0004990860009794762, + 7.933565590911851e-05 + ], + [ + 0.0007513584440228538, + 6.619666898255439e-05 + ], + [ + 0.0006897610371875418, + 1.0404942955788421e-05 + ], + [ + 0.0006870247257452222, + 1.0081121698979345e-05 + ], + [ + 0.0006861997960785349, + 1.003696755152994e-05 + ], + [ + 0.002259252233159259, + 0.00020941358921366948 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m7ph5anc/plot_noon2m7ph5anc.json b/pytheus/graphs/FockStates/noon2m7ph5anc/plot_noon2m7ph5anc.json new file mode 100644 index 00000000..021e6de0 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m7ph5anc/plot_noon2m7ph5anc.json @@ -0,0 +1,86 @@ +{ + "graph": { + "(0, 4, 0, 0)": 1.0, + "(1, 4, 0, 0)": 1.0, + "(5, 6, 0, 0)": 1.0, + "(0, 1, 0, 0)": -0.4456706828571158, + "(0, 6, 0, 0)": -0.739356051242636, + "(1, 5, 0, 0)": 0.7643720301523899, + "(0, 3, 0, 0)": 0.8069178013910424, + "(1, 2, 0, 0)": 0.8389106222379384, + "(1, 1, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0, + "(2, 3, 0, 0)": 1.0 + }, + "loss": [ + 0.003559115484237707, + 3.9946110774735644e-07 + ], + "seed": 197747540, + "history": [ + [ + 0.0013301857524590233, + 0.00015555296276825725 + ], + [ + 0.001128630491779914, + 3.075193269830301e-05 + ], + [ + 0.0010564097118175297, + 1.2410130524220797e-05 + ], + [ + 0.0009780516290790464, + 1.8795706966390213e-05 + ], + [ + 0.0009237908229604574, + 4.89449799423447e-06 + ], + [ + 0.0008105464214309688, + 2.1730861759272635e-05 + ], + [ + 0.001004407963171916, + 0.00014103567346612778 + ], + [ + 0.0009683424069381052, + 0.00011080945828356725 + ], + [ + 0.0009601817326804207, + 0.00011085341568295437 + ], + [ + 0.002361525284288124, + 0.0008896804956463056 + ], + [ + 0.0011258009252205214, + 5.356194201722175e-06 + ], + [ + 0.001127268656720748, + 1.2028940584163372e-05 + ], + [ + 0.001119414492965154, + 8.195462077309479e-06 + ], + [ + 0.0011148151266674455, + 4.1402374933996455e-06 + ], + [ + 0.003562038445634852, + 3.3433380440817118e-06 + ], + [ + 0.003559115484237707, + 3.9946110774735644e-07 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m8ph6anc/config_noon2m8ph6anc.json b/pytheus/graphs/FockStates/noon2m8ph6anc/config_noon2m8ph6anc.json new file mode 100644 index 00000000..db260b1e --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m8ph6anc/config_noon2m8ph6anc.json @@ -0,0 +1,63 @@ +{ + "description": "NOON states in Fock basis.", + "bulk_thr": 0.1, + "edges_tried": 30, + "foldername": "noon2m8ph6ancPlus_cr", + "ftol": 1e-05, + "loss_func": "fockcr", + "num_anc": 6, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 20, + "target_state": [ + [ + 0, + 8 + ], + [ + 8, + 0 + ] + ], + "amplitudes": [ + 1.0, + 1.0 + ], + "thresholds": [ + 0.1, + 0.001 + ], + "tries_per_edge": 2, + "unicolor": false, + "loops": true, + "topopt": true, + "seed": 969327182, + "out_nodes": [ + 0, + 1 + ], + "in_nodes": [], + "single_emitters": [], + "verts": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "dimensions": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m8ph6anc/graph_noon2m8ph6anc.aux b/pytheus/graphs/FockStates/noon2m8ph6anc/graph_noon2m8ph6anc.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m8ph6anc/graph_noon2m8ph6anc.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/FockStates/noon2m8ph6anc/graph_noon2m8ph6anc.pdf b/pytheus/graphs/FockStates/noon2m8ph6anc/graph_noon2m8ph6anc.pdf new file mode 100644 index 00000000..86721615 Binary files /dev/null and b/pytheus/graphs/FockStates/noon2m8ph6anc/graph_noon2m8ph6anc.pdf differ diff --git a/pytheus/graphs/FockStates/noon2m8ph6anc/graph_noon2m8ph6anc.tex b/pytheus/graphs/FockStates/noon2m8ph6anc/graph_noon2m8ph6anc.tex new file mode 100644 index 00000000..169451d2 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m8ph6anc/graph_noon2m8ph6anc.tex @@ -0,0 +1,57 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle,dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [circle,dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [rectangle] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [rectangle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [rectangle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=30.0,in=-30.0, opacity=1.0] (0) to (0); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.7688756070003273] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.9938317860086973] (0) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.7334015090594814] (0) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.8327264762442803] (0) to (7); +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=75.0,in=15.0, opacity=1.0] (1) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.7861156336780736] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.7319139677301413] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.9951262720556318] (1) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.3] (4) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (6); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/FockStates/noon2m8ph6anc/other_solutions/rough-13-4-0.0020_0.0000.json b/pytheus/graphs/FockStates/noon2m8ph6anc/other_solutions/rough-13-4-0.0020_0.0000.json new file mode 100644 index 00000000..5a15dcae --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m8ph6anc/other_solutions/rough-13-4-0.0020_0.0000.json @@ -0,0 +1,108 @@ +{ + "graph": { + "(1, 1, 0, 0)": -1.0, + "(3, 5, 0, 0)": -1.0, + "(5, 6, 0, 0)": 0.25136064154539445, + "(1, 3, 0, 0)": -0.7319139677301413, + "(0, 2, 0, 0)": 0.7334015090594814, + "(0, 1, 0, 0)": -0.7688756070003273, + "(1, 4, 0, 0)": 0.7861156336780736, + "(0, 7, 0, 0)": -0.8327264762442803, + "(0, 6, 0, 0)": -0.9938317860086973, + "(1, 5, 0, 0)": 0.9951262720556318, + "(0, 0, 0, 0)": -1.0, + "(4, 7, 0, 0)": -1.0, + "(2, 6, 0, 0)": -1.0 + }, + "loss": [ + 0.0019620460587596034, + 1.7026473027592637e-05 + ], + "seed": 2317368656, + "history": [ + [ + 0.0003482558867142771, + 3.070908355573554e-05 + ], + [ + 0.0003472015603415146, + 3.06043788292909e-05 + ], + [ + 0.00033917628218127494, + 2.145499341155155e-05 + ], + [ + 0.0003453393165192553, + 3.883437807361556e-05 + ], + [ + 0.00025340417170771623, + 1.645425728658001e-05 + ], + [ + 0.0002465034314734771, + 9.89841819332149e-06 + ], + [ + 0.0002447462606736117, + 1.043772683773092e-05 + ], + [ + 0.00037386314253762265, + 8.141943195094647e-06 + ], + [ + 0.0003833750608315256, + 7.381455361943345e-06 + ], + [ + 0.00031765563739571956, + 9.44814926207016e-06 + ], + [ + 0.00041507360007597693, + 9.820220874146024e-06 + ], + [ + 0.00075246273217211, + 0.00014204012476737304 + ], + [ + 0.000630014101957399, + 7.173142352101536e-06 + ], + [ + 0.0006329248672793941, + 2.1907253966335638e-05 + ], + [ + 0.0006393284149387446, + 3.5545406711356975e-06 + ], + [ + 0.0015725308915770508, + 3.195839372160947e-05 + ], + [ + 0.001584198016809757, + 3.248139013833917e-05 + ], + [ + 0.0019891845872460623, + 1.750797536193005e-05 + ], + [ + 0.001984823531401836, + 3.214340217572165e-05 + ], + [ + 0.001970320670420689, + 1.8800430562460058e-05 + ], + [ + 0.0019620460587596034, + 1.7026473027592637e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m8ph6anc/other_solutions/rough-13-5-0.0071_0.0000.json b/pytheus/graphs/FockStates/noon2m8ph6anc/other_solutions/rough-13-5-0.0071_0.0000.json new file mode 100644 index 00000000..97ba6c1f --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m8ph6anc/other_solutions/rough-13-5-0.0071_0.0000.json @@ -0,0 +1,104 @@ +{ + "graph": { + "(1, 1, 0, 0)": 1.0, + "(3, 6, 0, 0)": 1.0, + "(2, 5, 0, 0)": -0.23651560015170672, + "(1, 6, 0, 0)": -0.6333152488778494, + "(0, 3, 0, 0)": 0.6470300270662613, + "(0, 5, 0, 0)": 0.7291951993736286, + "(0, 1, 0, 0)": -0.7647711423898199, + "(1, 4, 0, 0)": 0.7984720792593135, + "(0, 7, 0, 0)": 0.8689432174897452, + "(1, 2, 0, 0)": 0.870543893777503, + "(0, 0, 0, 0)": 1.0, + "(4, 5, 0, 0)": 1.0, + "(2, 7, 0, 0)": 1.0 + }, + "loss": [ + 0.007092278514294392, + 8.107870852480659e-08 + ], + "seed": 3798845606, + "history": [ + [ + 0.0001391124551780587, + 1.3867973756021001e-05 + ], + [ + 0.0001316524514554107, + 6.326082520158316e-06 + ], + [ + 9.997663474414775e-05, + 2.345960944061254e-06 + ], + [ + 0.0001294227955882521, + 3.3905270695022693e-05 + ], + [ + 0.000125822731961156, + 3.335308087271116e-06 + ], + [ + 0.00012570121981714255, + 3.2269916331317816e-06 + ], + [ + 0.00012559830748859468, + 3.1330846900212705e-06 + ], + [ + 0.00012550479030948303, + 3.0559860005885398e-06 + ], + [ + 0.0002123569029186534, + 4.476726996149871e-05 + ], + [ + 0.0002346508182674567, + 9.23702458799358e-06 + ], + [ + 0.0003556014667809304, + 3.676670360630574e-05 + ], + [ + 0.0007596665639169053, + 6.786773390698997e-05 + ], + [ + 0.0007306127913841998, + 2.456668762818026e-05 + ], + [ + 0.001363470841280523, + 0.00018422632600156863 + ], + [ + 0.007054266527215969, + 3.788615211264279e-05 + ], + [ + 0.007096617763138635, + 4.4825380697277595e-06 + ], + [ + 0.007093124988503341, + 9.396885872758887e-07 + ], + [ + 0.0070923225581071, + 1.2575396557412688e-07 + ], + [ + 0.007092295941469762, + 9.87557325915489e-08 + ], + [ + 0.007092278514294392, + 8.107870852480659e-08 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m8ph6anc/other_solutions/rough-14-4-0.0013_0.0000.json b/pytheus/graphs/FockStates/noon2m8ph6anc/other_solutions/rough-14-4-0.0013_0.0000.json new file mode 100644 index 00000000..a26c1324 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m8ph6anc/other_solutions/rough-14-4-0.0013_0.0000.json @@ -0,0 +1,101 @@ +{ + "graph": { + "(1, 1, 0, 0)": 1.0, + "(3, 7, 0, 0)": 1.0, + "(1, 2, 0, 0)": 0.35326689791938104, + "(0, 7, 0, 0)": 0.36421993057300095, + "(1, 4, 0, 0)": -0.6031105312610701, + "(0, 6, 0, 0)": -0.7223793525785248, + "(0, 1, 0, 0)": -0.7758168225770956, + "(0, 2, 0, 0)": 0.8514830083313476, + "(1, 7, 0, 0)": 0.8775883304261463, + "(0, 3, 0, 0)": 0.9217392627574109, + "(1, 5, 0, 0)": 0.9500535792841631, + "(0, 0, 0, 0)": 1.0, + "(2, 5, 0, 0)": 1.0, + "(4, 6, 0, 0)": -1.0 + }, + "loss": [ + 0.0013154788780951332, + 1.5702047626464655e-05 + ], + "seed": 2159081522, + "history": [ + [ + 0.00015015454557465446, + 1.4126233984668168e-05 + ], + [ + 0.00014377854602609652, + 8.452240515377518e-06 + ], + [ + 0.0001427664123780925, + 7.406772592144506e-06 + ], + [ + 0.0001372337668346102, + 4.670803671724677e-06 + ], + [ + 0.00013926142377729267, + 3.6404171446235978e-06 + ], + [ + 0.0001374973130904289, + 1.9782628070119657e-06 + ], + [ + 0.00016630050281651876, + 3.130908885673467e-05 + ], + [ + 0.00015259792822808205, + 2.390823647946405e-06 + ], + [ + 0.00030999305772749786, + 3.1519569972271455e-05 + ], + [ + 0.00023589317662409126, + 1.2178190720080195e-05 + ], + [ + 0.0001758803317893909, + 3.6049595574239035e-06 + ], + [ + 0.00017449270856706445, + 2.4058188607956055e-06 + ], + [ + 0.00017381324846010848, + 1.8635825294044395e-06 + ], + [ + 0.0005943852590423182, + 9.273513268848177e-06 + ], + [ + 0.000755461551646297, + 0.00012975372855617007 + ], + [ + 0.0008040447349046964, + 3.36574560444447e-05 + ], + [ + 0.0008809058824985616, + 9.60564789420637e-06 + ], + [ + 0.0013155673999707407, + 1.5828808301421304e-05 + ], + [ + 0.0013154788780951332, + 1.5702047626464655e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m8ph6anc/other_solutions/rough-14-4-0.0015_0.0000.json b/pytheus/graphs/FockStates/noon2m8ph6anc/other_solutions/rough-14-4-0.0015_0.0000.json new file mode 100644 index 00000000..4eb57f43 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m8ph6anc/other_solutions/rough-14-4-0.0015_0.0000.json @@ -0,0 +1,97 @@ +{ + "graph": { + "(1, 1, 0, 0)": 1.0, + "(6, 7, 0, 0)": 1.0, + "(1, 4, 0, 0)": -0.3966074160680505, + "(0, 2, 0, 0)": -0.4100257064194886, + "(0, 6, 0, 0)": 0.5817330195854327, + "(1, 7, 0, 0)": -0.7433594862652014, + "(0, 5, 0, 0)": 0.7747684053185574, + "(0, 1, 0, 0)": -0.7827889043610129, + "(1, 3, 0, 0)": 0.8503171522931836, + "(2, 5, 0, 0)": -0.941187478420954, + "(0, 4, 0, 0)": -0.9551473839190009, + "(1, 2, 0, 0)": -0.9856345223065535, + "(3, 4, 0, 0)": -1.0, + "(0, 0, 0, 0)": 1.0 + }, + "loss": [ + 0.0014861334585954955, + 2.766272748022658e-05 + ], + "seed": 1415302732, + "history": [ + [ + 0.00013110136989857857, + 0.00010736123975463308 + ], + [ + 7.665509242849033e-05, + 5.1302114399076615e-05 + ], + [ + 0.0006489577803107105, + 0.0006258102286021971 + ], + [ + 0.0005439768453622262, + 0.0005204928000233089 + ], + [ + 0.0001913758551047584, + 0.00016557859126242747 + ], + [ + 0.0001880509876370784, + 0.00016228595734557594 + ], + [ + 0.00017105285936003245, + 0.00013841234411204884 + ], + [ + 0.00016809708639808907, + 0.0001355068670225723 + ], + [ + 0.00016557496456526266, + 0.00013297299679326802 + ], + [ + 4.292163674068927e-05, + 1.0232924046227332e-05 + ], + [ + 0.00012514384865958128, + 8.234603066747948e-05 + ], + [ + 0.00012207192011126633, + 7.924816102544696e-05 + ], + [ + 0.00041845629906145376, + 0.00010134372542847103 + ], + [ + 0.0010950241107109404, + 4.07269618913908e-05 + ], + [ + 0.0012024428072194837, + 0.00030174579672714863 + ], + [ + 0.0019523608040468154, + 0.00017398643475408093 + ], + [ + 0.0014873297700712662, + 2.8743010973775185e-05 + ], + [ + 0.0014861334585954955, + 2.766272748022658e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m8ph6anc/other_solutions/rough-16-5-0.0006_0.0000.json b/pytheus/graphs/FockStates/noon2m8ph6anc/other_solutions/rough-16-5-0.0006_0.0000.json new file mode 100644 index 00000000..825925b8 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m8ph6anc/other_solutions/rough-16-5-0.0006_0.0000.json @@ -0,0 +1,99 @@ +{ + "graph": { + "(2, 6, 0, 0)": -0.4113111498173313, + "(1, 3, 0, 0)": -0.4237105946255944, + "(3, 7, 0, 0)": 0.660646150631744, + "(2, 3, 0, 0)": 0.7436940460963809, + "(0, 1, 0, 0)": 0.7490383676876907, + "(0, 3, 0, 0)": 0.7502711859646793, + "(1, 4, 0, 0)": -0.7792874247644109, + "(1, 6, 0, 0)": 0.8600682514175324, + "(0, 6, 0, 0)": 0.8619235770407084, + "(1, 5, 0, 0)": 0.8918969553415838, + "(0, 2, 0, 0)": 0.9313687058281386, + "(1, 1, 0, 0)": -0.9761063795412599, + "(1, 7, 0, 0)": 0.983495266187726, + "(4, 7, 0, 0)": -0.9929861244166303, + "(0, 0, 0, 0)": -0.9991007315414003, + "(3, 5, 0, 0)": -1.0 + }, + "loss": [ + 0.0006017607641890521, + 4.5911375084584094e-05 + ], + "seed": 3042732057, + "history": [ + [ + 0.00016026711704197893, + 8.015042582698584e-05 + ], + [ + 0.0001039063701335774, + 2.588486759436126e-05 + ], + [ + 0.00011038216172454263, + 2.3939168844355763e-05 + ], + [ + 0.00012805490789780105, + 8.36782004087766e-06 + ], + [ + 0.00014210869062369902, + 5.1376015525184116e-06 + ], + [ + 0.0002867358139587717, + 2.1898774869577586e-05 + ], + [ + 0.00028012653811337884, + 2.125475355574391e-05 + ], + [ + 0.00033895738613565207, + 4.290470423484738e-05 + ], + [ + 0.0003218252144291389, + 2.738183351336243e-05 + ], + [ + 0.0003162678693060528, + 2.2540341897303584e-05 + ], + [ + 0.00035466993206267894, + 7.367731261198607e-06 + ], + [ + 0.00029792569855013884, + 5.6836039205698796e-05 + ], + [ + 0.0002734948395095582, + 6.0429160918529234e-06 + ], + [ + 0.0005592502032589763, + 1.7145330425405447e-05 + ], + [ + 0.0006168594161873875, + 6.177709732202441e-05 + ], + [ + 0.0006089188800811884, + 5.287242978402329e-05 + ], + [ + 0.000605230281203073, + 4.9422463257342564e-05 + ], + [ + 0.0006017607641890521, + 4.5911375084584094e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m8ph6anc/other_solutions/rough-16-6-0.0010_0.0000.json b/pytheus/graphs/FockStates/noon2m8ph6anc/other_solutions/rough-16-6-0.0010_0.0000.json new file mode 100644 index 00000000..f8738294 --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m8ph6anc/other_solutions/rough-16-6-0.0010_0.0000.json @@ -0,0 +1,103 @@ +{ + "graph": { + "(0, 6, 0, 0)": 0.6115062113728309, + "(1, 6, 0, 0)": -0.6543383258932188, + "(1, 4, 0, 0)": -0.7017031010535424, + "(0, 3, 0, 0)": -0.7362008951263589, + "(1, 2, 0, 0)": -0.7524946610945977, + "(0, 1, 0, 0)": 0.7637858352065876, + "(0, 2, 0, 0)": 0.7926575437340457, + "(1, 7, 0, 0)": 0.8083440880527064, + "(4, 7, 0, 0)": 0.8378066033443751, + "(0, 5, 0, 0)": -0.8511965244213268, + "(2, 3, 0, 0)": 0.9404722847715441, + "(3, 7, 0, 0)": -0.994313646971302, + "(0, 0, 0, 0)": 0.9943216073242072, + "(4, 6, 0, 0)": 0.9943723851860082, + "(5, 7, 0, 0)": 0.9990351583779599, + "(1, 1, 0, 0)": 0.999507640911049 + }, + "loss": [ + 0.0010204127405739616, + 1.1502038405830639e-05 + ], + "seed": 2058021818, + "history": [ + [ + 0.00018146222809511947, + 1.8029903745664377e-05 + ], + [ + 0.00016101827550729642, + 1.1688926345065909e-05 + ], + [ + 0.00015961474292736089, + 1.0389183644932132e-05 + ], + [ + 0.00015867558740512155, + 9.451556080231072e-06 + ], + [ + 0.00014827770635883475, + 4.337917226981958e-06 + ], + [ + 0.00014346962681333064, + 5.591101792323805e-06 + ], + [ + 0.00017676034290015075, + 4.661996843235983e-06 + ], + [ + 0.0003145733300942144, + 7.057166969359763e-06 + ], + [ + 0.00025985453317400875, + 8.055826279607103e-06 + ], + [ + 0.00032547237090052583, + 1.6039874656814668e-05 + ], + [ + 0.00041528035802629315, + 4.264496507611071e-05 + ], + [ + 0.0004141797856739293, + 4.176248584375486e-05 + ], + [ + 0.0005057397393751772, + 9.786563947455917e-06 + ], + [ + 0.000635780709743794, + 8.757325068553534e-06 + ], + [ + 0.00047232051137591213, + 3.304957190020108e-05 + ], + [ + 0.0005482680636372805, + 6.897696259655639e-05 + ], + [ + 0.001075353741414653, + 3.6716699359118365e-05 + ], + [ + 0.001048404716227691, + 9.529203397251607e-06 + ], + [ + 0.0010204127405739616, + 1.1502038405830639e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon2m8ph6anc/plot_noon2m8ph6anc.json b/pytheus/graphs/FockStates/noon2m8ph6anc/plot_noon2m8ph6anc.json new file mode 100644 index 00000000..71dfeccc --- /dev/null +++ b/pytheus/graphs/FockStates/noon2m8ph6anc/plot_noon2m8ph6anc.json @@ -0,0 +1,108 @@ +{ + "graph": { + "(1, 1, 0, 0)": 1.0, + "(3, 4, 0, 0)": -1.0, + "(4, 5, 0, 0)": 0.25136064154539445, + "(1, 3, 0, 0)": 0.7319139677301413, + "(0, 6, 0, 0)": 0.7334015090594814, + "(0, 1, 0, 0)": 0.7688756070003273, + "(1, 2, 0, 0)": 0.7861156336780736, + "(0, 7, 0, 0)": 0.8327264762442803, + "(0, 5, 0, 0)": 0.9938317860086973, + "(1, 4, 0, 0)": 0.9951262720556318, + "(0, 0, 0, 0)": 1.0, + "(2, 7, 0, 0)": -1.0, + "(5, 6, 0, 0)": -1.0 + }, + "loss": [ + 0.0019620460587596034, + 1.7026473027592637e-05 + ], + "seed": 2317368656, + "history": [ + [ + 0.0003482558867142771, + 3.070908355573554e-05 + ], + [ + 0.0003472015603415146, + 3.06043788292909e-05 + ], + [ + 0.00033917628218127494, + 2.145499341155155e-05 + ], + [ + 0.0003453393165192553, + 3.883437807361556e-05 + ], + [ + 0.00025340417170771623, + 1.645425728658001e-05 + ], + [ + 0.0002465034314734771, + 9.89841819332149e-06 + ], + [ + 0.0002447462606736117, + 1.043772683773092e-05 + ], + [ + 0.00037386314253762265, + 8.141943195094647e-06 + ], + [ + 0.0003833750608315256, + 7.381455361943345e-06 + ], + [ + 0.00031765563739571956, + 9.44814926207016e-06 + ], + [ + 0.00041507360007597693, + 9.820220874146024e-06 + ], + [ + 0.00075246273217211, + 0.00014204012476737304 + ], + [ + 0.000630014101957399, + 7.173142352101536e-06 + ], + [ + 0.0006329248672793941, + 2.1907253966335638e-05 + ], + [ + 0.0006393284149387446, + 3.5545406711356975e-06 + ], + [ + 0.0015725308915770508, + 3.195839372160947e-05 + ], + [ + 0.001584198016809757, + 3.248139013833917e-05 + ], + [ + 0.0019891845872460623, + 1.750797536193005e-05 + ], + [ + 0.001984823531401836, + 3.214340217572165e-05 + ], + [ + 0.001970320670420689, + 1.8800430562460058e-05 + ], + [ + 0.0019620460587596034, + 1.7026473027592637e-05 + ] + ] +} \ No newline at end of file diff --git a/configs/to_be_confirmed/noon_3_3_anc3.json b/pytheus/graphs/FockStates/noon3m3ph3anc/config_noon3m3ph3anc.json similarity index 76% rename from configs/to_be_confirmed/noon_3_3_anc3.json rename to pytheus/graphs/FockStates/noon3m3ph3anc/config_noon3m3ph3anc.json index e4cbb4ea..85d4dce5 100644 --- a/configs/to_be_confirmed/noon_3_3_anc3.json +++ b/pytheus/graphs/FockStates/noon3m3ph3anc/config_noon3m3ph3anc.json @@ -1,8 +1,8 @@ { "description": "NOON states in Fock basis.", "bulk_thr": 0.1, - "edges_tried": 20, - "foldername": "noon_3_3_anc3", + "edges_tried": 30, + "foldername": "noon_3_3_anc3_fid", "ftol": 1e-05, "loss_func": "fockfid", "num_anc": 3, @@ -13,8 +13,8 @@ "samples": 30, "target_state": [[0,0,3],[0,3,0],[3,0,0]], "amplitudes": [1.0,1.0,1.0], - "thresholds": [0.000001,0.1], - "tries_per_edge": 1, + "thresholds": [0.0001,0.1], + "tries_per_edge": 3, "unicolor": false, "loops":true } diff --git a/pytheus/graphs/FockStates/noon3m3ph3anc/other_solutions/clean-11-2-0.0000_0.0526.json b/pytheus/graphs/FockStates/noon3m3ph3anc/other_solutions/clean-11-2-0.0000_0.0526.json new file mode 100644 index 00000000..5bbdf9c4 --- /dev/null +++ b/pytheus/graphs/FockStates/noon3m3ph3anc/other_solutions/clean-11-2-0.0000_0.0526.json @@ -0,0 +1,58 @@ +{ + "graph": { + "(0, 3, 0, 0)": -1.0, + "(0, 5, 0, 0)": -1.0, + "(1, 2, 0, 0)": 1.0, + "(2, 2, 0, 0)": -1.0, + "(3, 4, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0, + "(1, 1, 0, 0)": -1.0, + "(2, 5, 0, 0)": -1.0, + "(0, 4, 0, 0)": 1.0, + "(4, 5, 0, 0)": -1.0, + "(1, 5, 0, 0)": -1.0 + }, + "loss": [ + 2.220446049250313e-16, + 0.052631578947368585 + ], + "seed": 2680525604, + "history": [ + [ + 5.541965231581347e-05, + 0.08653731885164628 + ], + [ + 9.116016281707218e-05, + 0.0901490299697798 + ], + [ + 6.237857888491405e-05, + 0.0909394364164231 + ], + [ + 9.202691941823105e-10, + 0.09922242275764914 + ], + [ + 4.150603194474911e-10, + 0.09922127907922818 + ], + [ + 2.220446049250313e-16, + 0.052631578947368585 + ], + [ + 2.220446049250313e-16, + 0.052631578947368585 + ], + [ + 2.220446049250313e-16, + 0.052631578947368585 + ], + [ + 2.220446049250313e-16, + 0.052631578947368585 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon3m3ph3anc/other_solutions/rough-11-2-0.0000_0.0716.json b/pytheus/graphs/FockStates/noon3m3ph3anc/other_solutions/rough-11-2-0.0000_0.0716.json new file mode 100644 index 00000000..f0607813 --- /dev/null +++ b/pytheus/graphs/FockStates/noon3m3ph3anc/other_solutions/rough-11-2-0.0000_0.0716.json @@ -0,0 +1,46 @@ +{ + "graph": { + "(0, 5, 0, 0)": -0.8687110404773047, + "(1, 5, 0, 0)": -0.8688667569512929, + "(2, 3, 0, 0)": -0.9032531141248713, + "(2, 2, 0, 0)": 0.9121336453093435, + "(3, 5, 0, 0)": 0.9382420775109362, + "(2, 5, 0, 0)": -0.9473402586646457, + "(3, 4, 0, 0)": -0.9791943343234063, + "(2, 4, 0, 0)": -0.9895594994600361, + "(0, 0, 0, 0)": -0.9980932773069049, + "(1, 1, 0, 0)": -0.9981170308286084, + "(0, 1, 0, 0)": 0.9986933220696348 + }, + "loss": [ + 1.2424882702699591e-06, + 0.07162821447468248 + ], + "seed": 2373381161, + "history": [ + [ + 3.30354881670214e-05, + 0.07081376628703562 + ], + [ + 2.574070017036245e-05, + 0.07091022527946667 + ], + [ + 9.525855119374427e-06, + 0.07157363889031798 + ], + [ + 2.5667706438081694e-06, + 0.07160708990699838 + ], + [ + 1.7356872380469568e-06, + 0.07160296915224096 + ], + [ + 1.2424882702699591e-06, + 0.07162821447468248 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon3m3ph3anc/other_solutions/rough-11-2-0.0000_0.0955.json b/pytheus/graphs/FockStates/noon3m3ph3anc/other_solutions/rough-11-2-0.0000_0.0955.json new file mode 100644 index 00000000..063b3875 --- /dev/null +++ b/pytheus/graphs/FockStates/noon3m3ph3anc/other_solutions/rough-11-2-0.0000_0.0955.json @@ -0,0 +1,50 @@ +{ + "graph": { + "(1, 5, 0, 0)": 0.8172734248014158, + "(3, 5, 0, 0)": -0.820064445419131, + "(0, 5, 0, 0)": 0.8515106171681058, + "(2, 5, 0, 0)": 0.8516879995274512, + "(0, 0, 0, 0)": -0.8902506238613462, + "(2, 2, 0, 0)": -0.8904161728471732, + "(0, 2, 0, 0)": 0.8905484236086779, + "(1, 1, 0, 0)": 0.9242057336470718, + "(1, 3, 0, 0)": -0.9270953778913426, + "(1, 4, 0, 0)": -0.954829176266181, + "(3, 4, 0, 0)": -0.9570772510257749 + }, + "loss": [ + 1.3389062641921967e-06, + 0.09554779799559088 + ], + "seed": 1150678865, + "history": [ + [ + 6.177413962582534e-07, + 0.08590021020631877 + ], + [ + 1.8004110264757678e-05, + 0.09476489532648769 + ], + [ + 2.5668748945162356e-05, + 0.09484096494775829 + ], + [ + 1.4735148262889908e-05, + 0.09545443771461182 + ], + [ + 2.864671140856423e-06, + 0.09550813171309058 + ], + [ + 1.898922404541814e-06, + 0.09550708286477017 + ], + [ + 1.3389062641921967e-06, + 0.09554779799559088 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon3m3ph3anc/plot_noon3m3ph3anc_11edges.json b/pytheus/graphs/FockStates/noon3m3ph3anc/plot_noon3m3ph3anc_11edges.json new file mode 100644 index 00000000..d8a1d30a --- /dev/null +++ b/pytheus/graphs/FockStates/noon3m3ph3anc/plot_noon3m3ph3anc_11edges.json @@ -0,0 +1,58 @@ +{ + "graph": { + "(0, 5, 0, 0)": 1.0, + "(0, 3, 0, 0)": 1.0, + "(1, 2, 0, 0)": 1.0, + "(2, 2, 0, 0)": -1.0, + "(5, 4, 0, 0)": -1.0, + "(0, 0, 0, 0)": 1.0, + "(1, 1, 0, 0)": -1.0, + "(2, 3, 0, 0)": 1.0, + "(0, 4, 0, 0)": 1.0, + "(4, 3, 0, 0)": 1.0, + "(1, 3, 0, 0)": 1.0, + }, + "loss": [ + 2.220446049250313e-16, + 0.052631578947368585 + ], + "seed": 2680525604, + "history": [ + [ + 5.541965231581347e-05, + 0.08653731885164628 + ], + [ + 9.116016281707218e-05, + 0.0901490299697798 + ], + [ + 6.237857888491405e-05, + 0.0909394364164231 + ], + [ + 9.202691941823105e-10, + 0.09922242275764914 + ], + [ + 4.150603194474911e-10, + 0.09922127907922818 + ], + [ + 2.220446049250313e-16, + 0.052631578947368585 + ], + [ + 2.220446049250313e-16, + 0.052631578947368585 + ], + [ + 2.220446049250313e-16, + 0.052631578947368585 + ], + [ + 2.220446049250313e-16, + 0.052631578947368585 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon3m4ph4anc/config_noon3m4ph4anc.json b/pytheus/graphs/FockStates/noon3m4ph4anc/config_noon3m4ph4anc.json new file mode 100644 index 00000000..d2e72c0a --- /dev/null +++ b/pytheus/graphs/FockStates/noon3m4ph4anc/config_noon3m4ph4anc.json @@ -0,0 +1,22 @@ +{ + "description": "Noon state of 3 modes and 4 particles.", + "bulk_thr": 0.1, + "edges_tried": 20, + "foldername": "noon_3_4_anc4_cr", + "ftol": 1e-05, + "loss_func": "fockcr", + "num_anc": 4, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 30, + "target_state": [[0,0,4],[0,4,0],[4,0,0]], + "amplitudes": [1, -1, -1], + "thresholds": [0.1,0.001], + "tries_per_edge": 2, + "unicolor": false, + "loops":true + } + + diff --git a/pytheus/graphs/FockStates/noon3m4ph4anc/graph_noon3m4ph4anc.aux b/pytheus/graphs/FockStates/noon3m4ph4anc/graph_noon3m4ph4anc.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/FockStates/noon3m4ph4anc/graph_noon3m4ph4anc.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/FockStates/noon3m4ph4anc/graph_noon3m4ph4anc.pdf b/pytheus/graphs/FockStates/noon3m4ph4anc/graph_noon3m4ph4anc.pdf new file mode 100644 index 00000000..e53e55fd Binary files /dev/null and b/pytheus/graphs/FockStates/noon3m4ph4anc/graph_noon3m4ph4anc.pdf differ diff --git a/pytheus/graphs/FockStates/noon3m4ph4anc/graph_noon3m4ph4anc.tex b/pytheus/graphs/FockStates/noon3m4ph4anc/graph_noon3m4ph4anc.tex new file mode 100644 index 00000000..ad9937ab --- /dev/null +++ b/pytheus/graphs/FockStates/noon3m4ph4anc/graph_noon3m4ph4anc.tex @@ -0,0 +1,52 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle,dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8704694055762008,2.3454944474040893) [circle,dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (-0.667562801868943,2.924783736545471) [circle,dashed] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.702906603707257,1.3016512173526746) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-2.7029066037072575,-1.301651217352674) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (-0.6675628018689438,-2.9247837365454705) [rectangle] {\color{fontcolor}5}; +\node[vertex] (6) at (1.8704694055762001,-2.3454944474040897) [rectangle] {\color{fontcolor}6}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=30.0,in=-30.0, opacity=1.0] (0) to (0); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=81.42857142857143,in=21.42857142857143, opacity=1.0] (1) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=132.85714285714286,in=72.85714285714286, opacity=1.0] (2) to (2); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (6); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/FockStates/noon3m4ph4anc/plot_noon3m4ph4anc.json b/pytheus/graphs/FockStates/noon3m4ph4anc/plot_noon3m4ph4anc.json new file mode 100644 index 00000000..92b4a1ab --- /dev/null +++ b/pytheus/graphs/FockStates/noon3m4ph4anc/plot_noon3m4ph4anc.json @@ -0,0 +1,84 @@ +{ + "graph": { + "(1, 4, 0, 0)": 1.0, + "(3, 4, 0, 0)": -1.0, + "(1, 3, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0, + "(1, 1, 0, 0)": 1.0, + "(0, 6, 0, 0)": 1.0, + "(5, 6, 0, 0)": -1.0, + "(2, 2, 0, 0)": 1.0, + "(0, 5, 0, 0)": 1.0 + }, + "loss": [ + 0.052631706831543945, + 1.2213277877926032e-07 + ], + "seed": 408244309, + "history": [ + [ + 0.015806653319556663, + 0.0005262956782989825 + ], + [ + 0.015802846270083215, + 0.0005205265366055034 + ], + [ + 0.015803491351371712, + 0.0005314477630135039 + ], + [ + 0.015802617613575265, + 0.0005306642864918443 + ], + [ + 0.015802089471654956, + 0.0005314432571946748 + ], + [ + 0.015801809912223796, + 0.0005260872059771327 + ], + [ + 0.036244209102503144, + 0.0009987429967674988 + ], + [ + 0.04036519850015752, + 0.0002501347047513258 + ], + [ + 0.052554113163761684, + 2.7785644113986763e-05 + ], + [ + 0.05256602839158553, + 2.0492712995978657e-05 + ], + [ + 0.052593163248846886, + 3.39307816006329e-05 + ], + [ + 0.0525970375294309, + 3.5385405358634436e-05 + ], + [ + 0.05263157908404814, + 1.3055434511244357e-10 + ], + [ + 0.05263314701670374, + 1.4979492323208277e-06 + ], + [ + 0.05263202640286657, + 4.273319356151717e-07 + ], + [ + 0.052631706831543945, + 1.2213277877926032e-07 + ] + ] +} diff --git a/pytheus/graphs/FockStates/noon4m3ph5anc/config_noon4m3ph5anc.json b/pytheus/graphs/FockStates/noon4m3ph5anc/config_noon4m3ph5anc.json new file mode 100644 index 00000000..c56e16b8 --- /dev/null +++ b/pytheus/graphs/FockStates/noon4m3ph5anc/config_noon4m3ph5anc.json @@ -0,0 +1,65 @@ +{ + "description": "NOON states in Fock basis.", + "bulk_thr": 0.1, + "edges_tried": 30, + "foldername": "noon_4_3_anc5_cr", + "ftol": 0.0001, + "loss_func": "fockcr", + "num_anc": 5, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 30, + "target_state": [ + [ + 0, + 0, + 0, + 3 + ], + [ + 0, + 0, + 3, + 0 + ], + [ + 0, + 3, + 0, + 0 + ], + [ + 3, + 0, + 0, + 0 + ] + ], + "amplitudes": [ + 1, + 1, + 1, + 1 + ], + "thresholds": [ + 0.1, + 0.01 + ], + "tries_per_edge": 3, + "unicolor": false, + "loops": true, + "topopt": true, + "dimensions": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon4m3ph5anc/graph_noon4m3ph5anc.aux b/pytheus/graphs/FockStates/noon4m3ph5anc/graph_noon4m3ph5anc.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/FockStates/noon4m3ph5anc/graph_noon4m3ph5anc.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/FockStates/noon4m3ph5anc/graph_noon4m3ph5anc.pdf b/pytheus/graphs/FockStates/noon4m3ph5anc/graph_noon4m3ph5anc.pdf new file mode 100644 index 00000000..d9cf763c Binary files /dev/null and b/pytheus/graphs/FockStates/noon4m3ph5anc/graph_noon4m3ph5anc.pdf differ diff --git a/pytheus/graphs/FockStates/noon4m3ph5anc/graph_noon4m3ph5anc.tex b/pytheus/graphs/FockStates/noon4m3ph5anc/graph_noon4m3ph5anc.tex new file mode 100644 index 00000000..fa2269a3 --- /dev/null +++ b/pytheus/graphs/FockStates/noon4m3ph5anc/graph_noon4m3ph5anc.tex @@ -0,0 +1,62 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle,dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (2.2981333293569346,1.9283628290596178) [circle,dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (0.5209445330007912,2.954423259036624) [circle,dashed] {\color{fontcolor}2}; +\node[vertex] (3) at (-1.4999999999999993,2.5980762113533165) [circle,dashed] {\color{fontcolor}3}; +\node[vertex] (4) at (-2.819077862357725,1.0260604299770066) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.8190778623577253,-1.026060429977006) [rectangle] {\color{fontcolor}5}; +\node[vertex] (6) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (0.5209445330007899,-2.9544232590366244) [rectangle] {\color{fontcolor}7}; +\node[vertex] (8) at (2.2981333293569337,-1.9283628290596186) [rectangle] {\color{fontcolor}8}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=30.0,in=-30.0, opacity=1.0] (0) to (0); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (8); +\path[line width=4.0,bicolor_neg={col0}{col0}, looseness=10,right,out=70.0,in=10.0, opacity=1.0] (1) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, looseness=10,right,out=110.0,in=50.0, opacity=1.0] (2) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=150.0,in=90.0, opacity=1.0] (3) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (7) to (8); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/FockStates/noon4m3ph5anc/plot_noon4m3ph5anc_17edges.json b/pytheus/graphs/FockStates/noon4m3ph5anc/plot_noon4m3ph5anc_17edges.json new file mode 100644 index 00000000..b1b2de46 --- /dev/null +++ b/pytheus/graphs/FockStates/noon4m3ph5anc/plot_noon4m3ph5anc_17edges.json @@ -0,0 +1,119 @@ +{ + "graph": { + "(0, 0, 0, 0)": 1.0, "(3, 4, 0, 0)": -1.0, "(5, 6, 0, 0)": 1.0, "(1, 2, 0, 0)": 1.0, "(6, 7, 0, 0)": 1.0, "(7, 8, 0, 0)": 1.0, "(4, 5, 0, 0)": 1.0, "(2, 6, 0, 0)": 1.0, "(3, 6, 0, 0)": 1.0, "(2, 2, 0, 0)": -1.0, "(3, 5, 0, 0)": 1.0, "(3, 3, 0, 0)": 1.0, "(1, 6, 0, 0)": 1.0, "(1, 1, 0, 0)": -1.0, "(0, 8, 0, 0)": -1.0, "(0, 6, 0, 0)": 1.0, "(0, 7, 0, 0)": 1.0 + }, + "loss": [ + 0.040000026313823045, + 2.8552325281872015e-08 + ], + "history": [ + [ + 0.005636728318446305, + 0.0002771833274085589 + ], + [ + 0.005765513320966309, + 0.0002489566385960318 + ], + [ + 0.005955757241134396, + 0.00031016284081319956 + ], + [ + 0.006036815750082858, + 0.00023708743732664406 + ], + [ + 0.006012800003827978, + 0.00021385997351575092 + ], + [ + 0.005983378957413632, + 0.00016303749230472953 + ], + [ + 0.0059084161553297765, + 0.0001418015129870387 + ], + [ + 0.005989641448536642, + 0.0002209638852097573 + ], + [ + 0.0067835292954813164, + 0.0001960156605733676 + ], + [ + 0.010608668181125491, + 0.0008394960844623212 + ], + [ + 0.010912271989891309, + 0.000560419927052247 + ], + [ + 0.010941086465286354, + 0.00047523184435860344 + ], + [ + 0.011017040001042644, + 0.0005747073600278485 + ], + [ + 0.010842828674301863, + 0.0005151705577591814 + ], + [ + 0.010837209465008213, + 0.0005143125103300727 + ], + [ + 0.029866214277456282, + 0.006985858476786233 + ], + [ + 0.02858114984106397, + 0.003398420896269294 + ], + [ + 0.03148700908943569, + 0.003496977980872118 + ], + [ + 0.03293166539729164, + 0.002592679664695563 + ], + [ + 0.03302718833857632, + 0.0027218930072274716 + ], + [ + 0.033064822003206595, + 0.0027553601520879933 + ], + [ + 0.034854222640821386, + 0.003943611818782777 + ], + [ + 0.036549074287836825, + 0.00420721508541988 + ], + [ + 0.03969158102326531, + 0.0003332755232383633 + ], + [ + 0.039719710564327215, + 0.00030191708884586 + ], + [ + 0.04000005482365199, + 5.9487469505903334e-08 + ], + [ + 0.040000026313823045, + 2.8552325281872015e-08 + ] + ] +} diff --git a/pytheus/graphs/FockStates/noon5m3ph7anc/config_noon5m3ph7anc.json b/pytheus/graphs/FockStates/noon5m3ph7anc/config_noon5m3ph7anc.json new file mode 100644 index 00000000..ae4d8661 --- /dev/null +++ b/pytheus/graphs/FockStates/noon5m3ph7anc/config_noon5m3ph7anc.json @@ -0,0 +1,80 @@ +{ + "description": "NOON states in Fock basis.", + "bulk_thr": 0.1, + "edges_tried": 30, + "foldername": "noon_5_3_anc7_cr", + "ftol": 0.0001, + "loss_func": "fockcr", + "num_anc": 7, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 30, + "target_state": [ + [ + 0, + 0, + 0, + 0, + 3 + ], + [ + 0, + 0, + 0, + 3, + 0 + ], + [ + 0, + 0, + 3, + 0, + 0 + ], + [ + 0, + 3, + 0, + 0, + 0 + ], + [ + 3, + 0, + 0, + 0, + 0 + ] + ], + "amplitudes": [ + 1, + 1, + 1, + 1, + 1 + ], + "thresholds": [ + 0.1, + 0.01 + ], + "tries_per_edge": 3, + "unicolor": false, + "loops": true, + "topopt": true, + "dimensions": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon5m3ph7anc/graph_noon5m3ph7anc.aux b/pytheus/graphs/FockStates/noon5m3ph7anc/graph_noon5m3ph7anc.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/FockStates/noon5m3ph7anc/graph_noon5m3ph7anc.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/FockStates/noon5m3ph7anc/graph_noon5m3ph7anc.pdf b/pytheus/graphs/FockStates/noon5m3ph7anc/graph_noon5m3ph7anc.pdf new file mode 100644 index 00000000..b3143758 Binary files /dev/null and b/pytheus/graphs/FockStates/noon5m3ph7anc/graph_noon5m3ph7anc.pdf differ diff --git a/pytheus/graphs/FockStates/noon5m3ph7anc/graph_noon5m3ph7anc.tex b/pytheus/graphs/FockStates/noon5m3ph7anc/graph_noon5m3ph7anc.tex new file mode 100644 index 00000000..13d2f891 --- /dev/null +++ b/pytheus/graphs/FockStates/noon5m3ph7anc/graph_noon5m3ph7anc.tex @@ -0,0 +1,71 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle,dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (2.598076211353316,1.4999999999999998) [circle,dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (1.5000000000000004,2.598076211353316) [circle,dashed] {\color{fontcolor}2}; +\node[vertex] (3) at (1.8369701987210297e-16,3.0) [circle,dashed] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.4999999999999993,2.5980762113533165) [circle,dashed] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.598076211353316,1.4999999999999998) [rectangle] {\color{fontcolor}5}; +\node[vertex] (6) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (-2.5980762113533165,-1.4999999999999993) [rectangle] {\color{fontcolor}7}; +\node[vertex] (8) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}8}; +\node[vertex] (9) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}9}; +\node[vertex] (90) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}90}; +\node[vertex] (91) at (2.598076211353315,-1.5000000000000013) [rectangle] {\color{fontcolor}91}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=30.0,in=-30.0, opacity=1.0] (0) to (0); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (90); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (91); +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=60.0,in=0.0, opacity=1.0] (1) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (9); +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=90.0,in=30.0, opacity=1.0] (2) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (9); +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=120.0,in=60.0, opacity=1.0] (3) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (8); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (9); +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=150.0,in=90.0, opacity=1.0] (4) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (7) to (8); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (8) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (9) to (90); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (90) to (91); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/FockStates/noon5m3ph7anc/other_solutions/clean-23-3-0.0323_0.0000(0).json b/pytheus/graphs/FockStates/noon5m3ph7anc/other_solutions/clean-23-3-0.0323_0.0000(0).json new file mode 100644 index 00000000..8fec7ce8 --- /dev/null +++ b/pytheus/graphs/FockStates/noon5m3ph7anc/other_solutions/clean-23-3-0.0323_0.0000(0).json @@ -0,0 +1,233 @@ +{ + "graph": { + "(0, 5, 0, 0)": 1.0, + "(3, 8, 0, 0)": -1.0, + "(8, 11, 0, 0)": -1.0, + "(0, 0, 0, 0)": 0.9949609807569462, + "(10, 11, 0, 0)": 1.0, + "(3, 3, 0, 0)": 1.0, + "(8, 9, 0, 0)": 1.0, + "(7, 9, 0, 0)": 1.0, + "(6, 8, 0, 0)": -1.0, + "(5, 6, 0, 0)": 1.0, + "(4, 5, 0, 0)": 1.0, + "(3, 11, 0, 0)": 1.0, + "(4, 4, 0, 0)": -1.0, + "(3, 10, 0, 0)": -1.0, + "(2, 9, 0, 0)": -1.0, + "(2, 8, 0, 0)": 1.0, + "(2, 7, 0, 0)": -1.0, + "(2, 2, 0, 0)": -1.0, + "(1, 5, 0, 0)": 1.0, + "(1, 4, 0, 0)": 1.0, + "(1, 1, 0, 0)": -1.0, + "(0, 6, 0, 0)": 1.0, + "(0, 8, 0, 0)": 1.0 + }, + "loss": [ + 0.03226123516733481, + 3.385550528922643e-06 + ], + "history": [ + [ + 0.004512267463459119, + 0.0001483207091864669 + ], + [ + 0.00453675226312622, + 0.00014884418385907594 + ], + [ + 0.004492953558863699, + 0.00012582049271059326 + ], + [ + 0.004599562182557526, + 0.0002332785382562763 + ], + [ + 0.004799806375174631, + 0.00028368379681575906 + ], + [ + 0.004595557580193699, + 0.0002664966621443998 + ], + [ + 0.004830054686176699, + 0.000487610584676168 + ], + [ + 0.004672341876669095, + 0.00045053458611565844 + ], + [ + 0.004567149755880018, + 0.00034961974029923404 + ], + [ + 0.0044578655480371765, + 0.0005865834065790221 + ], + [ + 0.0042273806198478425, + 0.00033842302490227905 + ], + [ + 0.004416469541015489, + 0.0005715811800898196 + ], + [ + 0.004404736520497554, + 0.0005261912944112268 + ], + [ + 0.004627994002382008, + 0.0004458834700022951 + ], + [ + 0.005967077334486315, + 0.00236079696653424 + ], + [ + 0.006510500413098086, + 0.002720656164651003 + ], + [ + 0.00679498541005541, + 0.002841702986180583 + ], + [ + 0.005917644276413281, + 0.001225231889435019 + ], + [ + 0.0060290833989362635, + 0.0013724177832390438 + ], + [ + 0.005398911486431901, + 0.0012823398954109333 + ], + [ + 0.006293297848917301, + 0.002115183934104259 + ], + [ + 0.005558227824897788, + 0.001792668441474965 + ], + [ + 0.0043264812966528066, + 0.0006020601584467711 + ], + [ + 0.004148908978228283, + 0.00041128965362458025 + ], + [ + 0.004097179839132159, + 0.000377922563253863 + ], + [ + 0.004820452847326684, + 0.0004075108935440719 + ], + [ + 0.005299198666888216, + 0.00041587765764949935 + ], + [ + 0.005539712987994605, + 0.0006974123264528176 + ], + [ + 0.00602886147658499, + 0.0007885823939111081 + ], + [ + 0.005927269142042668, + 0.0007709146933977395 + ], + [ + 0.005910358034269536, + 0.0008038325325011586 + ], + [ + 0.007097774076206598, + 0.0017011305673121369 + ], + [ + 0.006972768980938904, + 0.002150278936594474 + ], + [ + 0.00888027776676692, + 0.003814010088666553 + ], + [ + 0.012191086377357885, + 0.003073529634643135 + ], + [ + 0.012158973512345517, + 0.0030509039538680893 + ], + [ + 0.011519035446989179, + 0.0022151457420478415 + ], + [ + 0.011793171425635518, + 0.0024364472255561376 + ], + [ + 0.011700295621434154, + 0.0023474598078413456 + ], + [ + 0.00827352095533651, + 3.67293761741605e-05 + ], + [ + 0.00829050875068793, + 1.5320790615058755e-05 + ], + [ + 0.008270999524158995, + 6.618786425049983e-06 + ], + [ + 0.008266300174045171, + 1.8602558475855346e-06 + ], + [ + 0.008265363031640494, + 9.102197452426353e-07 + ], + [ + 0.008323976565742908, + 2.982958934871771e-05 + ], + [ + 0.00829728072915814, + 2.051962535942753e-05 + ], + [ + 0.029427256914838718, + 0.0034077575380032643 + ], + [ + 0.032125551834153776, + 0.004100953423536335 + ], + [ + 0.03222452387359398, + 4.329502736333257e-05 + ], + [ + 0.03226123516733481, + 3.385550528922643e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon5m3ph7anc/other_solutions/clean-23-3-0.0323_0.0000.json b/pytheus/graphs/FockStates/noon5m3ph7anc/other_solutions/clean-23-3-0.0323_0.0000.json new file mode 100644 index 00000000..7b4fff04 --- /dev/null +++ b/pytheus/graphs/FockStates/noon5m3ph7anc/other_solutions/clean-23-3-0.0323_0.0000.json @@ -0,0 +1,233 @@ +{ + "graph": { + "(1, 1, 0, 0)": -1.0, + "(5, 7, 0, 0)": 1.0, + "(3, 11, 0, 0)": -1.0, + "(4, 4, 0, 0)": -0.9979492123338276, + "(2, 2, 0, 0)": 0.9986812364424363, + "(4, 11, 0, 0)": -0.9987061328583778, + "(0, 3, 0, 0)": -0.9993194620314474, + "(1, 5, 0, 0)": -1.0, + "(0, 11, 0, 0)": -1.0, + "(1, 7, 0, 0)": 1.0, + "(4, 10, 0, 0)": 1.0, + "(3, 3, 0, 0)": 1.0, + "(4, 7, 0, 0)": -1.0, + "(10, 11, 0, 0)": 1.0, + "(7, 10, 0, 0)": -1.0, + "(6, 9, 0, 0)": 1.0, + "(6, 7, 0, 0)": 1.0, + "(5, 8, 0, 0)": -1.0, + "(2, 9, 0, 0)": 1.0, + "(2, 7, 0, 0)": -1.0, + "(2, 6, 0, 0)": -1.0, + "(1, 8, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0 + }, + "loss": [ + 0.032259159050861075, + 1.1333405828262144e-06 + ], + "history": [ + [ + 0.00440670640819385, + 0.0003375360556790996 + ], + [ + 0.0043687798095776165, + 0.00030546117646057525 + ], + [ + 0.004369716023024606, + 0.00031592733696783615 + ], + [ + 0.004538135659844622, + 0.0004934617454495083 + ], + [ + 0.004100211180447122, + 0.00023269090353916777 + ], + [ + 0.003747693725166368, + 0.00048011640044343107 + ], + [ + 0.0037781343839716763, + 0.0005116945299867837 + ], + [ + 0.004822824693451078, + 0.001830697039278406 + ], + [ + 0.0027527696727014384, + 0.0001531180800983245 + ], + [ + 0.002838054741212681, + 0.0002459202345025391 + ], + [ + 0.0036953782052633333, + 0.0011072873697509644 + ], + [ + 0.0026968425397208007, + 0.0001933757345199405 + ], + [ + 0.002956826250019029, + 0.0004230504518224487 + ], + [ + 0.0025790490403423405, + 7.400423377446064e-05 + ], + [ + 0.0026464995622691445, + 0.00018334714347012504 + ], + [ + 0.0027498325739601093, + 0.0001542283113806775 + ], + [ + 0.0038768550782296574, + 0.00124014600869915 + ], + [ + 0.0025696525987169982, + 0.000139153396739089 + ], + [ + 0.003769802232135966, + 0.0007082197115063638 + ], + [ + 0.003880764146407145, + 0.000572247389970526 + ], + [ + 0.003946656857773956, + 0.0007798110718467699 + ], + [ + 0.003897490855998109, + 0.0007273647490744217 + ], + [ + 0.0040839498958702425, + 0.0009382354733091791 + ], + [ + 0.004047836006354721, + 0.0006891535515377578 + ], + [ + 0.00596647133557493, + 0.0023064843918466638 + ], + [ + 0.004039423158376132, + 0.000341894218243044 + ], + [ + 0.004146578138048418, + 0.000323777852061502 + ], + [ + 0.004058268001902454, + 0.00019289764664842668 + ], + [ + 0.00640431817410092, + 0.0021698332907466034 + ], + [ + 0.009477293085307537, + 0.003741142260490271 + ], + [ + 0.009815762522131566, + 0.002275511771385963 + ], + [ + 0.013939254203552465, + 0.005981457831053305 + ], + [ + 0.01318962675266655, + 0.004149213721869827 + ], + [ + 0.012989632882554392, + 0.003886069678844528 + ], + [ + 0.01930362644059258, + 0.00907769342629794 + ], + [ + 0.019230008606442195, + 0.009028649211491824 + ], + [ + 0.026948960715382775, + 0.007141344170272013 + ], + [ + 0.03419777554804282, + 0.008388609012950798 + ], + [ + 0.03418036941868241, + 0.00832587755521863 + ], + [ + 0.034170372860374276, + 0.008311886627295095 + ], + [ + 0.031529556113475854, + 0.0034189443869028224 + ], + [ + 0.03134758718973485, + 0.003333199430238243 + ], + [ + 0.03151362204982866, + 0.003454791600202789 + ], + [ + 0.03152712984718642, + 0.0033876148154234897 + ], + [ + 0.03138927121872048, + 0.002610355824117505 + ], + [ + 0.03157378706370306, + 0.0025262864171891053 + ], + [ + 0.032225272782717584, + 4.197782700010588e-05 + ], + [ + 0.03222519062982887, + 2.2276766937556758e-05 + ], + [ + 0.032260157502083664, + 2.163121673115498e-06 + ], + [ + 0.032259159050861075, + 1.1333405828262144e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon5m3ph7anc/other_solutions/clean-23-4-0.0323_0.0000(0).json b/pytheus/graphs/FockStates/noon5m3ph7anc/other_solutions/clean-23-4-0.0323_0.0000(0).json new file mode 100644 index 00000000..8b18b7cb --- /dev/null +++ b/pytheus/graphs/FockStates/noon5m3ph7anc/other_solutions/clean-23-4-0.0323_0.0000(0).json @@ -0,0 +1,225 @@ +{ + "graph": { + "(0, 10, 0, 0)": -1.0, + "(6, 7, 0, 0)": -1.0, + "(10, 11, 0, 0)": -1.0, + "(0, 7, 0, 0)": 0.9997599808855124, + "(1, 3, 0, 0)": 0.9997675800895794, + "(4, 9, 0, 0)": 0.9999265365428297, + "(4, 4, 0, 0)": 0.9999962252417353, + "(2, 2, 0, 0)": 0.9999999666933095, + "(2, 11, 0, 0)": 0.9999999666933095, + "(2, 8, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0, + "(7, 10, 0, 0)": -1.0, + "(8, 11, 0, 0)": 1.0, + "(5, 8, 0, 0)": -1.0, + "(4, 7, 0, 0)": -1.0, + "(4, 6, 0, 0)": -1.0, + "(3, 9, 0, 0)": 1.0, + "(3, 3, 0, 0)": -1.0, + "(2, 5, 0, 0)": 1.0, + "(1, 9, 0, 0)": 1.0, + "(1, 1, 0, 0)": -1.0, + "(0, 11, 0, 0)": -1.0, + "(6, 9, 0, 0)": -1.0 + }, + "loss": [ + 0.03225809908328181, + 3.690634009512195e-08 + ], + "history": [ + [ + 0.0034654535288178856, + 0.0009052960046546099 + ], + [ + 0.003424591367212959, + 0.0008762410770569717 + ], + [ + 0.0033927421687306447, + 0.0008435023657862306 + ], + [ + 0.0031312988387227625, + 0.0005870591676595538 + ], + [ + 0.003480523004274483, + 0.0009816856217128578 + ], + [ + 0.0032021712981569195, + 0.0007656224795671296 + ], + [ + 0.0034978421917274405, + 0.0010873516606364486 + ], + [ + 0.0040057036282190595, + 0.001542018892200847 + ], + [ + 0.00390764777025332, + 0.0011889418850270506 + ], + [ + 0.004057475594646087, + 0.0014764616607624292 + ], + [ + 0.0044561086362712166, + 0.001925821220498225 + ], + [ + 0.002834308552839948, + 0.0004680091100873751 + ], + [ + 0.0030788250067855794, + 0.0006992876141913573 + ], + [ + 0.0027176550614346207, + 0.0005481801325469826 + ], + [ + 0.002528957668700871, + 0.0005320844497678223 + ], + [ + 0.0025002288083919577, + 0.0005035675473780143 + ], + [ + 0.0027450889456367422, + 0.0006192881403863648 + ], + [ + 0.002644483623481575, + 0.0007383074141014134 + ], + [ + 0.005415399019764733, + 0.00272126948196727 + ], + [ + 0.005731932165264353, + 0.0026727529260607286 + ], + [ + 0.00754970151837886, + 0.004282588432434786 + ], + [ + 0.007588938467100181, + 0.004302031954470542 + ], + [ + 0.009144592742933666, + 0.003072884926458186 + ], + [ + 0.00956915225389876, + 0.0032633490835326517 + ], + [ + 0.0065066586246506075, + 0.0009589039571415992 + ], + [ + 0.006326653451522279, + 0.0007691677495810234 + ], + [ + 0.006252809084241973, + 0.000325634724215651 + ], + [ + 0.006202547195867658, + 0.00026882039488418386 + ], + [ + 0.011154222361250854, + 0.00376120188272544 + ], + [ + 0.01075229041916137, + 0.0031498911510293714 + ], + [ + 0.009438239118516045, + 0.0006104149613537224 + ], + [ + 0.009439452861615738, + 0.0006025271831006096 + ], + [ + 0.009793580689828385, + 0.0009199972495715913 + ], + [ + 0.009747528175066411, + 0.0008991704184084792 + ], + [ + 0.010350499468941954, + 0.0011660314189750887 + ], + [ + 0.010414876357850766, + 0.0013329568599644848 + ], + [ + 0.011543711682695634, + 0.001926584265030895 + ], + [ + 0.01434349532527135, + 0.005377565528969064 + ], + [ + 0.015124114705781788, + 0.006404238218598812 + ], + [ + 0.015056950970061878, + 0.006320496509097717 + ], + [ + 0.016596955108915568, + 0.006432766106656662 + ], + [ + 0.019500038499814076, + 0.00847887550062354 + ], + [ + 0.035473066567651146, + 0.0048686331008744865 + ], + [ + 0.035468672686823854, + 0.004975255770057863 + ], + [ + 0.03201488040303002, + 0.0004268689236466283 + ], + [ + 0.032170624934224734, + 0.0010898679452008286 + ], + [ + 0.03226475017476482, + 7.1387934748035065e-06 + ], + [ + 0.03225809908328181, + 3.690634009512195e-08 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon5m3ph7anc/other_solutions/clean-23-4-0.0323_0.0000.json b/pytheus/graphs/FockStates/noon5m3ph7anc/other_solutions/clean-23-4-0.0323_0.0000.json new file mode 100644 index 00000000..7f495684 --- /dev/null +++ b/pytheus/graphs/FockStates/noon5m3ph7anc/other_solutions/clean-23-4-0.0323_0.0000.json @@ -0,0 +1,209 @@ +{ + "graph": { + "(0, 6, 0, 0)": 1.0, + "(4, 4, 0, 0)": -1.0, + "(6, 10, 0, 0)": -1.0, + "(3, 3, 0, 0)": -0.9906525536071118, + "(1, 1, 0, 0)": 0.9957386822655732, + "(2, 4, 0, 0)": 0.9998328529628272, + "(0, 0, 0, 0)": -0.9999893570713458, + "(0, 7, 0, 0)": -0.9999915763912055, + "(9, 11, 0, 0)": -1.0, + "(8, 10, 0, 0)": 1.0, + "(6, 7, 0, 0)": 1.0, + "(5, 8, 0, 0)": 1.0, + "(5, 11, 0, 0)": 1.0, + "(3, 11, 0, 0)": -1.0, + "(3, 9, 0, 0)": 1.0, + "(3, 5, 0, 0)": 1.0, + "(2, 7, 0, 0)": 1.0, + "(2, 2, 0, 0)": -1.0, + "(1, 10, 0, 0)": -1.0, + "(1, 8, 0, 0)": -1.0, + "(1, 5, 0, 0)": 1.0, + "(0, 10, 0, 0)": -1.0, + "(4, 7, 0, 0)": 1.0 + }, + "loss": [ + 0.032271245822370176, + 1.407469830083663e-05 + ], + "history": [ + [ + 0.006712052523325407, + 0.0004286945554942134 + ], + [ + 0.006700805995288772, + 0.00043100854873789896 + ], + [ + 0.0066920202958129504, + 0.0004157691110585615 + ], + [ + 0.006833132830909916, + 0.0005373941769428736 + ], + [ + 0.006948579207204375, + 0.0006183971510308472 + ], + [ + 0.00688709338746496, + 0.0005341672377456863 + ], + [ + 0.0066046825978394175, + 0.0003834675503177065 + ], + [ + 0.006549915186604638, + 0.0004366397117668841 + ], + [ + 0.0071358883934354855, + 0.0008639477293723719 + ], + [ + 0.0072100237329357775, + 0.000700627631897377 + ], + [ + 0.0071032865779145915, + 0.0005171452032638468 + ], + [ + 0.007935828121446886, + 0.0015719140415818567 + ], + [ + 0.007902346741605615, + 0.0015404168850947642 + ], + [ + 0.0079537644241916, + 0.001366579297664261 + ], + [ + 0.00964589680757899, + 0.0030954687427021677 + ], + [ + 0.00946658873933992, + 0.0024797410749117788 + ], + [ + 0.008301522386311877, + 0.0017165517846852163 + ], + [ + 0.008126060104211352, + 0.0013912009715836282 + ], + [ + 0.00812229515701235, + 0.00139517390698507 + ], + [ + 0.008603278729322539, + 0.001767840060533099 + ], + [ + 0.008050917947125535, + 0.0011974975044264369 + ], + [ + 0.011428779729306116, + 0.0017757557676160163 + ], + [ + 0.018079754359295985, + 0.005299073942442001 + ], + [ + 0.019516569956155472, + 0.0059545710174702116 + ], + [ + 0.019478961159296482, + 0.006017172516357472 + ], + [ + 0.0145635613734586, + 0.0019047872702886437 + ], + [ + 0.01454087660535186, + 0.001934103339312987 + ], + [ + 0.014536365347394109, + 0.0019273191400150935 + ], + [ + 0.014777020156323206, + 0.0021679041286084555 + ], + [ + 0.019068968183332813, + 0.0056215948396318716 + ], + [ + 0.01898643478843376, + 0.005557214779997155 + ], + [ + 0.01896500994425443, + 0.005569951834369258 + ], + [ + 0.031255449239855015, + 0.002187524764201254 + ], + [ + 0.03123547817333039, + 0.002109592811990968 + ], + [ + 0.03114484741607515, + 0.0018968408253858815 + ], + [ + 0.031128320221309957, + 0.00201985800868576 + ], + [ + 0.031124236188073362, + 0.0019360233852553366 + ], + [ + 0.03111089273288503, + 0.0019714026986593636 + ], + [ + 0.03144579436891792, + 0.002395043860964785 + ], + [ + 0.03213227347784875, + 0.0005330931704432551 + ], + [ + 0.03235082974935044, + 9.821374979746e-05 + ], + [ + 0.032299727606517004, + 4.4460133571844196e-05 + ], + [ + 0.03228148074076431, + 2.5003301731052474e-05 + ], + [ + 0.032271245822370176, + 1.407469830083663e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon5m3ph7anc/other_solutions/clean-23-4-0.0323_0.0001.json b/pytheus/graphs/FockStates/noon5m3ph7anc/other_solutions/clean-23-4-0.0323_0.0001.json new file mode 100644 index 00000000..32bf2509 --- /dev/null +++ b/pytheus/graphs/FockStates/noon5m3ph7anc/other_solutions/clean-23-4-0.0323_0.0001.json @@ -0,0 +1,233 @@ +{ + "graph": { + "(2, 8, 0, 0)": 1.0, + "(1, 7, 0, 0)": -1.0, + "(4, 5, 0, 0)": -1.0, + "(3, 3, 0, 0)": -0.9803925378543396, + "(2, 2, 0, 0)": 0.9999903077530437, + "(2, 7, 0, 0)": 0.9999914179760628, + "(0, 1, 0, 0)": -0.9999943267603727, + "(8, 9, 0, 0)": -1.0, + "(5, 10, 0, 0)": 1.0, + "(4, 11, 0, 0)": 1.0, + "(4, 10, 0, 0)": -1.0, + "(1, 1, 0, 0)": 1.0, + "(0, 7, 0, 0)": -1.0, + "(4, 4, 0, 0)": 1.0, + "(7, 8, 0, 0)": 1.0, + "(6, 10, 0, 0)": -1.0, + "(6, 9, 0, 0)": -1.0, + "(5, 11, 0, 0)": 1.0, + "(3, 10, 0, 0)": -1.0, + "(3, 9, 0, 0)": 1.0, + "(3, 6, 0, 0)": 1.0, + "(2, 9, 0, 0)": 1.0, + "(0, 0, 0, 0)": 1.0 + }, + "loss": [ + 0.0323060687277168, + 5.1257744510646575e-05 + ], + "history": [ + [ + 0.005267171826543238, + 0.0005076197729950715 + ], + [ + 0.005500336263885353, + 0.0008030219741068656 + ], + [ + 0.005363105322871986, + 0.0007216324079707404 + ], + [ + 0.0052012448067925154, + 0.0005466248006446017 + ], + [ + 0.005464237596125687, + 0.0008436895874668338 + ], + [ + 0.006019297182771721, + 0.0013864627224252635 + ], + [ + 0.006469252692392624, + 0.00190561327167027 + ], + [ + 0.005909973340654018, + 0.0014659557224213637 + ], + [ + 0.005780854464358498, + 0.001383628317351393 + ], + [ + 0.006616206883160447, + 0.0022258787224690435 + ], + [ + 0.005321066666381324, + 0.0007509202197679699 + ], + [ + 0.0054453170113145655, + 0.0008419232259454512 + ], + [ + 0.005679882644302525, + 0.0010318984132221543 + ], + [ + 0.005297100852534653, + 0.000508529818284198 + ], + [ + 0.005574837643449793, + 0.000585815121117883 + ], + [ + 0.005433648244581368, + 0.00044848657392260183 + ], + [ + 0.005401128474907924, + 0.00043561816648551854 + ], + [ + 0.005939551316740066, + 0.0009738588836201156 + ], + [ + 0.005386132377478536, + 0.0006962673788160068 + ], + [ + 0.005047066581014059, + 0.0008024952012647413 + ], + [ + 0.005382273423490402, + 0.0011458414882145052 + ], + [ + 0.005345969778935644, + 0.0010624930513866149 + ], + [ + 0.004907820184999134, + 0.0006946005678509781 + ], + [ + 0.005183532208001274, + 0.000975576743737161 + ], + [ + 0.005667888237585239, + 0.0013254205995738566 + ], + [ + 0.005639242270954137, + 0.0013151069672446836 + ], + [ + 0.005584328443073994, + 0.0009537431431170251 + ], + [ + 0.005535888457828375, + 0.000904143071014385 + ], + [ + 0.008806581210001219, + 0.0032570761707034768 + ], + [ + 0.007580166289311907, + 0.00214986749287549 + ], + [ + 0.009556598684696493, + 0.003352412293927909 + ], + [ + 0.009576329790808358, + 0.001099311205014386 + ], + [ + 0.009607040948905632, + 0.0011337170608179958 + ], + [ + 0.009637374218830153, + 0.001119368134274823 + ], + [ + 0.009814856348257184, + 0.0012772357246504384 + ], + [ + 0.010217077810669939, + 0.0009048783091878398 + ], + [ + 0.01030443109429846, + 0.0009590390928152503 + ], + [ + 0.010173289711085443, + 0.0008490024965701615 + ], + [ + 0.024856149497652025, + 0.004391398538053259 + ], + [ + 0.026819628244221794, + 0.0036743613696454958 + ], + [ + 0.028728157327383097, + 0.0034554381039555437 + ], + [ + 0.029837073378942036, + 0.0031088137064732013 + ], + [ + 0.02978893712721864, + 0.003055443698229632 + ], + [ + 0.029755786162535824, + 0.0031096754087351908 + ], + [ + 0.0297309035239528, + 0.0030610615392839824 + ], + [ + 0.029712308493210937, + 0.003097576005359759 + ], + [ + 0.032461539716097665, + 0.0001233699547177336 + ], + [ + 0.032335759747484594, + 7.963319865378349e-05 + ], + [ + 0.032343339009950234, + 9.104914318425195e-05 + ], + [ + 0.0323060687277168, + 5.1257744510646575e-05 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon5m3ph7anc/other_solutions/clean-23-5-0.0323_0.0000(0).json b/pytheus/graphs/FockStates/noon5m3ph7anc/other_solutions/clean-23-5-0.0323_0.0000(0).json new file mode 100644 index 00000000..f2d2672a --- /dev/null +++ b/pytheus/graphs/FockStates/noon5m3ph7anc/other_solutions/clean-23-5-0.0323_0.0000(0).json @@ -0,0 +1,217 @@ +{ + "graph": { + "(0, 0, 0, 0)": 1.0, + "(4, 5, 0, 0)": 1.0, + "(8, 9, 0, 0)": -1.0, + "(1, 1, 0, 0)": -1.0, + "(1, 9, 0, 0)": -1.0, + "(2, 3, 0, 0)": -1.0, + "(4, 4, 0, 0)": -1.0, + "(10, 11, 0, 0)": 1.0, + "(9, 10, 0, 0)": 1.0, + "(7, 8, 0, 0)": -1.0, + "(6, 7, 0, 0)": 1.0, + "(4, 7, 0, 0)": -1.0, + "(4, 6, 0, 0)": 1.0, + "(3, 9, 0, 0)": -1.0, + "(3, 3, 0, 0)": 1.0, + "(2, 9, 0, 0)": -1.0, + "(2, 2, 0, 0)": 1.0, + "(1, 8, 0, 0)": -1.0, + "(1, 7, 0, 0)": 1.0, + "(0, 10, 0, 0)": 1.0, + "(0, 11, 0, 0)": -1.0, + "(0, 9, 0, 0)": 1.0, + "(5, 6, 0, 0)": 1.0 + }, + "loss": [ + 0.03225824643176545, + 1.8768891496545592e-07 + ], + "history": [ + [ + 0.0061068570868269, + 0.000698678197318503 + ], + [ + 0.00607516030541666, + 0.0006673038382914998 + ], + [ + 0.006074088061645333, + 0.0006943071768343856 + ], + [ + 0.006025032568254818, + 0.0006668149722190986 + ], + [ + 0.006070695912054336, + 0.0007139134463634011 + ], + [ + 0.006115003020020993, + 0.0007745493561430727 + ], + [ + 0.0062889650691587695, + 0.000964476556905236 + ], + [ + 0.00642567139589445, + 0.0008750708902520721 + ], + [ + 0.00568015463816629, + 0.0006565936959709306 + ], + [ + 0.0054637908100901855, + 0.0005058226916185848 + ], + [ + 0.005585211924319822, + 0.0006031869614111507 + ], + [ + 0.006050715976037124, + 0.00107977846439411 + ], + [ + 0.0061145303899492465, + 0.0011003195693007894 + ], + [ + 0.0064276213579326225, + 0.0012539979268457735 + ], + [ + 0.00634094063784052, + 0.0012498663008679856 + ], + [ + 0.0061372895047284715, + 0.0011342701685563839 + ], + [ + 0.006383845756280926, + 0.0012193761483322296 + ], + [ + 0.006875310189535799, + 0.001788636938423127 + ], + [ + 0.007109138049011365, + 0.0020764368557799617 + ], + [ + 0.00556753106828578, + 0.000743554341078867 + ], + [ + 0.0054670580049077655, + 0.0006684469183378949 + ], + [ + 0.005441723324109526, + 0.0006407158924676137 + ], + [ + 0.005624415470336097, + 0.001042387063985517 + ], + [ + 0.007887601125439847, + 0.003247122699316596 + ], + [ + 0.007355753157460954, + 0.001940824918201467 + ], + [ + 0.007742494217619078, + 0.0011787311771438436 + ], + [ + 0.00917653924491657, + 0.0018411255420185402 + ], + [ + 0.009149333695681938, + 0.0018362233725659483 + ], + [ + 0.012760217796028206, + 0.004135990177066118 + ], + [ + 0.012339918270623862, + 0.003612236033695093 + ], + [ + 0.01216395080323629, + 0.0026882349456869292 + ], + [ + 0.012085320095829966, + 0.002576762786692832 + ], + [ + 0.012044303464037953, + 0.0025830099242399873 + ], + [ + 0.01884454634576549, + 0.005080648194259685 + ], + [ + 0.019441760942352282, + 0.005271803560735533 + ], + [ + 0.01978304779083151, + 0.004913278322498549 + ], + [ + 0.018823060713509476, + 0.0036342702211228373 + ], + [ + 0.02569471075052565, + 0.007603571660398378 + ], + [ + 0.032075622600332476, + 0.0008506907677708897 + ], + [ + 0.032044457817851035, + 0.0007685058085260543 + ], + [ + 0.03201532720299183, + 0.0007713904812617356 + ], + [ + 0.032538671472641334, + 0.0008247515208165135 + ], + [ + 0.032259346130920075, + 1.3142565282731056e-06 + ], + [ + 0.03225872764233284, + 6.811906447801164e-07 + ], + [ + 0.032258410360731626, + 3.5599022640830924e-07 + ], + [ + 0.03225824643176545, + 1.8768891496545592e-07 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon5m3ph7anc/other_solutions/clean-23-5-0.0323_0.0000.json b/pytheus/graphs/FockStates/noon5m3ph7anc/other_solutions/clean-23-5-0.0323_0.0000.json new file mode 100644 index 00000000..69397e1b --- /dev/null +++ b/pytheus/graphs/FockStates/noon5m3ph7anc/other_solutions/clean-23-5-0.0323_0.0000.json @@ -0,0 +1,209 @@ +{ + "graph": { + "(0, 0, 0, 0)": 1.0, + "(4, 9, 0, 0)": -1.0, + "(3, 3, 0, 0)": -1.0, + "(4, 4, 0, 0)": -0.9992145787276573, + "(0, 1, 0, 0)": -0.9999254310935287, + "(4, 7, 0, 0)": -1.0, + "(0, 7, 0, 0)": -1.0, + "(2, 7, 0, 0)": -1.0, + "(8, 9, 0, 0)": -1.0, + "(7, 9, 0, 0)": -1.0, + "(6, 10, 0, 0)": -1.0, + "(5, 11, 0, 0)": -1.0, + "(6, 8, 0, 0)": -1.0, + "(5, 7, 0, 0)": 1.0, + "(4, 8, 0, 0)": 1.0, + "(3, 10, 0, 0)": 1.0, + "(3, 8, 0, 0)": -1.0, + "(3, 6, 0, 0)": -1.0, + "(2, 11, 0, 0)": -1.0, + "(2, 5, 0, 0)": 1.0, + "(2, 2, 0, 0)": -1.0, + "(1, 1, 0, 0)": 1.0, + "(1, 7, 0, 0)": -1.0 + }, + "loss": [ + 0.032258142241046506, + 8.299293940972063e-08 + ], + "history": [ + [ + 0.013413039635000068, + 0.0037848808663523137 + ], + [ + 0.013547176516641057, + 0.003916821593742625 + ], + [ + 0.013598504075293394, + 0.0037283439517532546 + ], + [ + 0.014532210072272678, + 0.004595646358149685 + ], + [ + 0.014273971033221033, + 0.004106978640738168 + ], + [ + 0.013589924077693438, + 0.003996062744371365 + ], + [ + 0.013937835306508606, + 0.0034121739103046833 + ], + [ + 0.014446095083699872, + 0.004314076537357492 + ], + [ + 0.013826436575743117, + 0.003971603684481573 + ], + [ + 0.014162727605314784, + 0.004483863653214959 + ], + [ + 0.014345414703601844, + 0.0049996988651096474 + ], + [ + 0.01420646816785498, + 0.005523190455097193 + ], + [ + 0.013978402404584034, + 0.004736600913908928 + ], + [ + 0.014377171068780004, + 0.004612782479778366 + ], + [ + 0.014332419089092108, + 0.004926741409985502 + ], + [ + 0.017781223458671058, + 0.008082165317827017 + ], + [ + 0.022427143186911747, + 0.008648744856278645 + ], + [ + 0.022651635571377393, + 0.008653429647986433 + ], + [ + 0.020660789132939672, + 0.007053448891189085 + ], + [ + 0.03666003062778511, + 0.00824206056115695 + ], + [ + 0.036467693233436904, + 0.009168667960589572 + ], + [ + 0.036067426323185714, + 0.008282956630860316 + ], + [ + 0.037561776623011855, + 0.00863950582736106 + ], + [ + 0.038470476322527536, + 0.009637703552616061 + ], + [ + 0.03953366299611105, + 0.009697883773923666 + ], + [ + 0.03945410524439019, + 0.009443805001249417 + ], + [ + 0.0394233303734578, + 0.009435995167808908 + ], + [ + 0.02958182738639259, + 0.0057599397616050485 + ], + [ + 0.029519854558152647, + 0.005660239121622945 + ], + [ + 0.029486084969071125, + 0.005657902344247678 + ], + [ + 0.02947604489040967, + 0.0055731483537238 + ], + [ + 0.029473285360390622, + 0.005570692939272703 + ], + [ + 0.029469006221665595, + 0.005529637888787908 + ], + [ + 0.029993658786750643, + 0.005491837281539125 + ], + [ + 0.030298950308327965, + 0.004628959344191608 + ], + [ + 0.030857230040164274, + 0.004737537637821476 + ], + [ + 0.031222402826539764, + 0.0012092118123652185 + ], + [ + 0.03219849983710921, + 0.000600661842569683 + ], + [ + 0.03215778206331854, + 0.0004549496500864114 + ], + [ + 0.03225884044907745, + 8.285239373462261e-07 + ], + [ + 0.032258500298180004, + 4.653183830471974e-07 + ], + [ + 0.03225830981564892, + 2.619253740565597e-07 + ], + [ + 0.032258202592571394, + 1.4743495602154155e-07 + ], + [ + 0.032258142241046506, + 8.299293940972063e-08 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/noon5m3ph7anc/plot_noon5m3ph7anc_clean-23-5-0.0323_0.0000.json b/pytheus/graphs/FockStates/noon5m3ph7anc/plot_noon5m3ph7anc_clean-23-5-0.0323_0.0000.json new file mode 100644 index 00000000..30764a24 --- /dev/null +++ b/pytheus/graphs/FockStates/noon5m3ph7anc/plot_noon5m3ph7anc_clean-23-5-0.0323_0.0000.json @@ -0,0 +1,217 @@ +{ + "graph": { + "(0, 0, 0, 0)": 1.0, + "(4, 5, 0, 0)": -1.0, + "(8, 9, 0, 0)": -1.0, + "(3, 3, 0, 0)": 1.0, + "(3, 9, 0, 0)": -1.0, + "(1, 2, 0, 0)": 1.0, + "(4, 4, 0, 0)": 1.0, + "(90, 91, 0, 0)": 1.0, + "(9, 90, 0, 0)": 1.0, + "(7, 8, 0, 0)": 1.0, + "(6, 7, 0, 0)": 1.0, + "(4, 7, 0, 0)": 1.0, + "(4, 6, 0, 0)": 1.0, + "(2, 9, 0, 0)": 1.0, + "(2, 2, 0, 0)": 1.0, + "(1, 9, 0, 0)": 1.0, + "(1, 1, 0, 0)": 1.0, + "(3, 8, 0, 0)": 1.0, + "(3, 7, 0, 0)": -1.0, + "(0, 90, 0, 0)": 1.0, + "(0, 91, 0, 0)": 1.0, + "(0, 9, 0, 0)": -1.0, + "(5, 6, 0, 0)": 1.0 + }, + "loss": [ + 0.03225824643176545, + 1.8768891496545592e-07 + ], + "history": [ + [ + 0.0061068570868269, + 0.000698678197318503 + ], + [ + 0.00607516030541666, + 0.0006673038382914998 + ], + [ + 0.006074088061645333, + 0.0006943071768343856 + ], + [ + 0.006025032568254818, + 0.0006668149722190986 + ], + [ + 0.006070695912054336, + 0.0007139134463634011 + ], + [ + 0.006115003020020993, + 0.0007745493561430727 + ], + [ + 0.0062889650691587695, + 0.000964476556905236 + ], + [ + 0.00642567139589445, + 0.0008750708902520721 + ], + [ + 0.00568015463816629, + 0.0006565936959709306 + ], + [ + 0.0054637908100901855, + 0.0005058226916185848 + ], + [ + 0.005585211924319822, + 0.0006031869614111507 + ], + [ + 0.006050715976037124, + 0.00107977846439411 + ], + [ + 0.0061145303899492465, + 0.0011003195693007894 + ], + [ + 0.0064276213579326225, + 0.0012539979268457735 + ], + [ + 0.00634094063784052, + 0.0012498663008679856 + ], + [ + 0.0061372895047284715, + 0.0011342701685563839 + ], + [ + 0.006383845756280926, + 0.0012193761483322296 + ], + [ + 0.006875310189535799, + 0.001788636938423127 + ], + [ + 0.007109138049011365, + 0.0020764368557799617 + ], + [ + 0.00556753106828578, + 0.000743554341078867 + ], + [ + 0.0054670580049077655, + 0.0006684469183378949 + ], + [ + 0.005441723324109526, + 0.0006407158924676137 + ], + [ + 0.005624415470336097, + 0.001042387063985517 + ], + [ + 0.007887601125439847, + 0.003247122699316596 + ], + [ + 0.007355753157460954, + 0.001940824918201467 + ], + [ + 0.007742494217619078, + 0.0011787311771438436 + ], + [ + 0.00917653924491657, + 0.0018411255420185402 + ], + [ + 0.009149333695681938, + 0.0018362233725659483 + ], + [ + 0.012760217796028206, + 0.004135990177066118 + ], + [ + 0.012339918270623862, + 0.003612236033695093 + ], + [ + 0.01216395080323629, + 0.0026882349456869292 + ], + [ + 0.012085320095829966, + 0.002576762786692832 + ], + [ + 0.012044303464037953, + 0.0025830099242399873 + ], + [ + 0.01884454634576549, + 0.005080648194259685 + ], + [ + 0.019441760942352282, + 0.005271803560735533 + ], + [ + 0.01978304779083151, + 0.004913278322498549 + ], + [ + 0.018823060713509476, + 0.0036342702211228373 + ], + [ + 0.02569471075052565, + 0.007603571660398378 + ], + [ + 0.032075622600332476, + 0.0008506907677708897 + ], + [ + 0.032044457817851035, + 0.0007685058085260543 + ], + [ + 0.03201532720299183, + 0.0007713904812617356 + ], + [ + 0.032538671472641334, + 0.0008247515208165135 + ], + [ + 0.032259346130920075, + 1.3142565282731056e-06 + ], + [ + 0.03225872764233284, + 6.811906447801164e-07 + ], + [ + 0.032258410360731626, + 3.5599022640830924e-07 + ], + [ + 0.03225824643176545, + 1.8768891496545592e-07 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/FockStates/octahedron/config_octahedron.json b/pytheus/graphs/FockStates/octahedron/config_octahedron.json new file mode 100644 index 00000000..22e104c5 --- /dev/null +++ b/pytheus/graphs/FockStates/octahedron/config_octahedron.json @@ -0,0 +1,22 @@ +{ + "description": "Octahedron state in Fock basis. More info: polarization.markus-grassl.de", + "bulk_thr": 0.1, + "edges_tried": 20, + "foldername": "fock_2_4_anc4octa_cr", + "ftol": 1e-05, + "loss_func": "fockcr", + "num_anc": 4, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 100, + "target_state": [[1,5],[5,1]], + "amplitudes": [1,-1], + "thresholds": [0.1,0.001], + "tries_per_edge": 1, + "unicolor": false, + "loops":true + } + + diff --git a/pytheus/graphs/FockStates/octahedron/graph_octahedron.aux b/pytheus/graphs/FockStates/octahedron/graph_octahedron.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/FockStates/octahedron/graph_octahedron.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/FockStates/octahedron/graph_octahedron.pdf b/pytheus/graphs/FockStates/octahedron/graph_octahedron.pdf new file mode 100644 index 00000000..adbf46b9 Binary files /dev/null and b/pytheus/graphs/FockStates/octahedron/graph_octahedron.pdf differ diff --git a/pytheus/graphs/FockStates/octahedron/graph_octahedron.tex b/pytheus/graphs/FockStates/octahedron/graph_octahedron.tex new file mode 100644 index 00000000..4aadd160 --- /dev/null +++ b/pytheus/graphs/FockStates/octahedron/graph_octahedron.tex @@ -0,0 +1,49 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle,dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle,dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [rectangle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=30.0,in=-30.0, opacity=1.0] (0) to (0); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col0}{col0}, looseness=10,right,out=90.0,in=30.0, opacity=1.0] (1) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/FockStates/octahedron/plot_octahedron.json b/pytheus/graphs/FockStates/octahedron/plot_octahedron.json new file mode 100644 index 00000000..9b5bbdbb --- /dev/null +++ b/pytheus/graphs/FockStates/octahedron/plot_octahedron.json @@ -0,0 +1,11 @@ +{ + "graph": { + "(0, 0, 0, 0)": 1.0, + "(1, 1, 0, 0)": 1.0, + "(1, 2, 0, 0)": 1.0, + "(0, 5, 0, 0)": 1.0, + "(3, 4, 0, 0)": -1.0, + "(0, 4, 0, 0)": 1.0, + "(0, 3, 0, 0)": 1.0 + } +} diff --git a/theseus/configs/fock_tetrahedron_short.json b/pytheus/graphs/FockStates/tetrahedron/config_tetrahedron.json similarity index 80% rename from theseus/configs/fock_tetrahedron_short.json rename to pytheus/graphs/FockStates/tetrahedron/config_tetrahedron.json index 320b0d12..80fad3cd 100644 --- a/theseus/configs/fock_tetrahedron_short.json +++ b/pytheus/graphs/FockStates/tetrahedron/config_tetrahedron.json @@ -2,16 +2,16 @@ "description": "tetrahedron states in Fock basis.", "bulk_thr": 0.1, "edges_tried": 20, - "foldername": "fock_tetrahedron_short", + "foldername": "fock_tetrahedron", "ftol": 1e-05, "loss_func": "fockfid", - "num_anc": 1, + "num_anc": 2, "num_pre": 1, "optimizer": "L-BFGS-B", "imaginary": false, "safe_hist": true, "samples": 10, - "target_state": [[3,0],[0,3]], + "target_state": [[4,0],[1,3]], "amplitudes": [1, 1.4142135623730951], "thresholds": [0.0001,0.1], "tries_per_edge": 1, diff --git a/pytheus/graphs/FockStates/tetrahedron/plot_tetrahedron.json b/pytheus/graphs/FockStates/tetrahedron/plot_tetrahedron.json new file mode 100644 index 00000000..e07301e7 --- /dev/null +++ b/pytheus/graphs/FockStates/tetrahedron/plot_tetrahedron.json @@ -0,0 +1,4 @@ +{ + "graph": { + "(0, 0, 0, 0)": 0.7937005259840997, "(0, 2, 0, 0)": 0.8908987181403393, "(0, 1, 0, 0)": -0.8908987181403393, "(1, 1, 0, 0)": 1.0, "(1, 2, 0, 0)": 1.0, "(0, 3, 0, 0)": 1.0} +} diff --git a/pytheus/graphs/FockStates/tetrahedron_short/rough-5-0-0.0000_0.1000.json b/pytheus/graphs/FockStates/tetrahedron_short/rough-5-0-0.0000_0.1000.json new file mode 100644 index 00000000..c69bbcc3 --- /dev/null +++ b/pytheus/graphs/FockStates/tetrahedron_short/rough-5-0-0.0000_0.1000.json @@ -0,0 +1,19 @@ +{ + "graph": { + "(0, 0, 0, 0)": 0.79362139323349, + "(0, 2, 0, 0)": 0.8908346239593032, + "(0, 1, 0, 0)": -0.8908481316100023, + "(1, 1, 0, 0)": 0.999910171855529, + "(1, 2, 0, 0)": 1.0 + }, + "loss": [ + 3.549948224268462e-09, + 0.10002108368952833 + ], + "history": [ + [ + 3.549948224268462e-09, + 0.10002108368952833 + ] + ] +} diff --git a/pytheus/graphs/Gates/.DS_Store b/pytheus/graphs/Gates/.DS_Store new file mode 100644 index 00000000..3e654943 Binary files /dev/null and b/pytheus/graphs/Gates/.DS_Store differ diff --git a/theseus/configs/cnot22_sp.json b/pytheus/graphs/Gates/cnot22_sp/config_cnot22_sp.json similarity index 95% rename from theseus/configs/cnot22_sp.json rename to pytheus/graphs/Gates/cnot22_sp/config_cnot22_sp.json index 8c62678a..857db63e 100644 --- a/theseus/configs/cnot22_sp.json +++ b/pytheus/graphs/Gates/cnot22_sp/config_cnot22_sp.json @@ -28,6 +28,7 @@ ], "heralding_out": true, "brutal_covers": true, + "number_resolving": true, "single_emitters": [ 4, 5 diff --git a/pytheus/graphs/Gates/cnot22_sp/graph_cnot22_sp.aux b/pytheus/graphs/Gates/cnot22_sp/graph_cnot22_sp.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Gates/cnot22_sp/graph_cnot22_sp.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Gates/cnot22_sp/graph_cnot22_sp.pdf b/pytheus/graphs/Gates/cnot22_sp/graph_cnot22_sp.pdf new file mode 100644 index 00000000..343e6f3b Binary files /dev/null and b/pytheus/graphs/Gates/cnot22_sp/graph_cnot22_sp.pdf differ diff --git a/pytheus/graphs/Gates/cnot22_sp/graph_cnot22_sp.tex b/pytheus/graphs/Gates/cnot22_sp/graph_cnot22_sp.tex new file mode 100644 index 00000000..ac46110c --- /dev/null +++ b/pytheus/graphs/Gates/cnot22_sp/graph_cnot22_sp.tex @@ -0,0 +1,66 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [circle,dashed] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [circle,dashed] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [inner sep=0.1em, regular polygon,regular polygon sides=6] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [inner sep=0.1em, regular polygon,regular polygon sides=6] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-15.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.9988693271289076] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=15.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-11.25, opacity=0.9988437447126786] (0) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=0.9988437458462298] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=0.9988280709205252] (0) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=0.9988641901756321] (0) to (7); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/cnot22_sp/clean-22-68-0.0588_0.0000.json b/pytheus/graphs/Gates/cnot22_sp/plot_cnot22_sp_clean-22-68-0.0588_0.0000.json similarity index 100% rename from theseus/graphs/cnot22_sp/clean-22-68-0.0588_0.0000.json rename to pytheus/graphs/Gates/cnot22_sp/plot_cnot22_sp_clean-22-68-0.0588_0.0000.json diff --git a/theseus/configs/cnot23.json b/pytheus/graphs/Gates/cnot23/config_cnot23.json similarity index 90% rename from theseus/configs/cnot23.json rename to pytheus/graphs/Gates/cnot23/config_cnot23.json index 4cb06366..6bc03b7f 100644 --- a/theseus/configs/cnot23.json +++ b/pytheus/graphs/Gates/cnot23/config_cnot23.json @@ -4,7 +4,7 @@ "foldername": "cnot23", "ftol": 1e-08, "loss_func": "cr", - "num_anc": 2, + "num_anc": 4, "num_pre": 1, "optimizer": "L-BFGS-B", "imaginary": false, @@ -27,7 +27,8 @@ 3 ], "heralding_out": true, - "novac": true, + "number_resolving": true, + "novac": false, "thresholds": [ 0.2, 0.1 diff --git a/pytheus/graphs/Gates/cnot23/graph_cnot23.aux b/pytheus/graphs/Gates/cnot23/graph_cnot23.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Gates/cnot23/graph_cnot23.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Gates/cnot23/graph_cnot23.pdf b/pytheus/graphs/Gates/cnot23/graph_cnot23.pdf new file mode 100644 index 00000000..8b56def6 Binary files /dev/null and b/pytheus/graphs/Gates/cnot23/graph_cnot23.pdf differ diff --git a/pytheus/graphs/Gates/cnot23/graph_cnot23.tex b/pytheus/graphs/Gates/cnot23/graph_cnot23.tex new file mode 100644 index 00000000..03f6fcc4 --- /dev/null +++ b/pytheus/graphs/Gates/cnot23/graph_cnot23.tex @@ -0,0 +1,69 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [circle,dashed] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [circle,dashed] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [inner sep=0.1em, regular polygon,regular polygon sides=6] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [inner sep=0.1em, regular polygon,regular polygon sides=6] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [inner sep=0.1em, regular polygon,regular polygon sides=6] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [inner sep=0.1em, regular polygon,regular polygon sides=6] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=0.9970358565858389] (0) to (2); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-15.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col2}{col2}, bend right=15.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=-11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=0.9910873933090817] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.9962610116709161] (1) to (6); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=-11.25, opacity=1.0] (3) to (7); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (3) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.9936886360110115] (4) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/cnot23/clean-25-66-0.0400_0.0000.json b/pytheus/graphs/Gates/cnot23/plot_cnot23_clean-25-66-0.0400_0.0000.json similarity index 100% rename from theseus/graphs/cnot23/clean-25-66-0.0400_0.0000.json rename to pytheus/graphs/Gates/cnot23/plot_cnot23_clean-25-66-0.0400_0.0000.json diff --git a/theseus/configs/cnot_23_post.json b/pytheus/graphs/Gates/cnot23_post/config_cnot_23_post.json similarity index 100% rename from theseus/configs/cnot_23_post.json rename to pytheus/graphs/Gates/cnot23_post/config_cnot_23_post.json diff --git a/pytheus/graphs/Gates/cnot23_post/graph_cnot23_post.aux b/pytheus/graphs/Gates/cnot23_post/graph_cnot23_post.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Gates/cnot23_post/graph_cnot23_post.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Gates/cnot23_post/graph_cnot23_post.pdf b/pytheus/graphs/Gates/cnot23_post/graph_cnot23_post.pdf new file mode 100644 index 00000000..34e72c42 Binary files /dev/null and b/pytheus/graphs/Gates/cnot23_post/graph_cnot23_post.pdf differ diff --git a/pytheus/graphs/Gates/cnot23_post/graph_cnot23_post.tex b/pytheus/graphs/Gates/cnot23_post/graph_cnot23_post.tex new file mode 100644 index 00000000..67bb8c36 --- /dev/null +++ b/pytheus/graphs/Gates/cnot23_post/graph_cnot23_post.tex @@ -0,0 +1,56 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col2}, bend right=11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/cnot23_post/clean-14-12-0.1429_0.0000.json b/pytheus/graphs/Gates/cnot23_post/plot_cnot23_post_clean-14-12-0.1429_0.0000.json similarity index 100% rename from theseus/graphs/cnot23_post/clean-14-12-0.1429_0.0000.json rename to pytheus/graphs/Gates/cnot23_post/plot_cnot23_post_clean-14-12-0.1429_0.0000.json diff --git a/theseus/configs/cnot23_sp.json b/pytheus/graphs/Gates/cnot23_sp/config_cnot23_sp.json similarity index 89% rename from theseus/configs/cnot23_sp.json rename to pytheus/graphs/Gates/cnot23_sp/config_cnot23_sp.json index 431ee6e3..91d05b66 100644 --- a/theseus/configs/cnot23_sp.json +++ b/pytheus/graphs/Gates/cnot23_sp/config_cnot23_sp.json @@ -4,7 +4,7 @@ "foldername": "cnot23sp", "ftol": 1e-08, "loss_func": "cr", - "num_anc": 3, + "num_anc": 4, "num_pre": 1, "optimizer": "L-BFGS-B", "imaginary": false, @@ -27,10 +27,13 @@ 3 ], "heralding_out": true, + "number_resolving": true, + "novac": true, "single_emitters": [ 4, 5, - 6 + 6, + 7 ], "thresholds": [ 0.3, diff --git a/pytheus/graphs/Gates/cnot23_sp/graph_cnot23_sp.aux b/pytheus/graphs/Gates/cnot23_sp/graph_cnot23_sp.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Gates/cnot23_sp/graph_cnot23_sp.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Gates/cnot23_sp/graph_cnot23_sp.pdf b/pytheus/graphs/Gates/cnot23_sp/graph_cnot23_sp.pdf new file mode 100644 index 00000000..356c8a63 Binary files /dev/null and b/pytheus/graphs/Gates/cnot23_sp/graph_cnot23_sp.pdf differ diff --git a/pytheus/graphs/Gates/cnot23_sp/graph_cnot23_sp.tex b/pytheus/graphs/Gates/cnot23_sp/graph_cnot23_sp.tex new file mode 100644 index 00000000..10a02058 --- /dev/null +++ b/pytheus/graphs/Gates/cnot23_sp/graph_cnot23_sp.tex @@ -0,0 +1,84 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (2.598076211353316,1.4999999999999998) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (1.5000000000000004,2.598076211353316) [circle,dashed] {\color{fontcolor}2}; +\node[vertex] (3) at (1.8369701987210297e-16,3.0) [circle,dashed] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.4999999999999993,2.5980762113533165) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.598076211353316,1.4999999999999998) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}5}; +\node[vertex] (6) at (-3.0,3.6739403974420594e-16) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}6}; +\node[vertex] (7) at (-2.5980762113533165,-1.4999999999999993) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}7}; +\node[vertex] (8) at (-1.5000000000000013,-2.598076211353315) [inner sep=0.1em, regular polygon,regular polygon sides=6] {\color{fontcolor}8}; +\node[vertex] (9) at (-5.51091059616309e-16,-3.0) [inner sep=0.1em, regular polygon,regular polygon sides=6] {\color{fontcolor}9}; +\node[vertex] (10) at (1.5,-2.598076211353316) [inner sep=0.1em, regular polygon,regular polygon sides=6] {\color{fontcolor}10}; +\node[vertex] (11) at (2.598076211353315,-1.5000000000000013) [inner sep=0.1em, regular polygon,regular polygon sides=6] {\color{fontcolor}11}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col2}{col2}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-16.875, opacity=0.985185449317192] (0) to (3); +\path[line width=4.0,bicolor={col0}{col2}, bend right=-5.625, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=5.625, opacity=0.9906920872686505] (0) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=16.875, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (9); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (11); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-18.75, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=-3.75, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col2}, bend right=3.75, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col2}{col2}, bend right=18.75, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=-11.25, opacity=1.0] (1) to (9); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (1) to (9); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (11); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (1) to (11); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.9940941252170894] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-11.25, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=0.9772428041785977] (3) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (8); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (9); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (10); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (11); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (8); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (10); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (11); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (10); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (7) to (8); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (7) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (7) to (10); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/cnot23_sp/clean-36-210-0.0270_0.0000.json b/pytheus/graphs/Gates/cnot23_sp/plot_cnot23_sp_clean-36-210-0.0270_0.0000.json similarity index 100% rename from theseus/graphs/cnot23_sp/clean-36-210-0.0270_0.0000.json rename to pytheus/graphs/Gates/cnot23_sp/plot_cnot23_sp_clean-36-210-0.0270_0.0000.json diff --git a/theseus/configs/controlled_z_post.json b/pytheus/graphs/Gates/cnot23_sp_post/config_cnot_23_sp_post.json similarity index 52% rename from theseus/configs/controlled_z_post.json rename to pytheus/graphs/Gates/cnot23_sp_post/config_cnot_23_sp_post.json index e950c869..7615eb34 100644 --- a/theseus/configs/controlled_z_post.json +++ b/pytheus/graphs/Gates/cnot23_sp_post/config_cnot_23_sp_post.json @@ -1,17 +1,19 @@ { - "description": "Postselected Controlled Z gate.", + "description": "Postselected CNOT(2,3), two ancillary photons from single photon sources.", "edges_tried": 30, - "foldername": "controlled_z", - "ftol": 1e-05, + "foldername": "cnot_23_sp_post", + "ftol": 1e-08, "loss_func": "cr", "num_anc": 2, "optimizer": "L-BFGS-B", "samples": 10, "target_state": [ - "0000", - "0101", - "1010", - "1111" + "0000", + "0101", + "0202", + "1011", + "1112", + "1210" ], "in_nodes": [ 0, @@ -21,13 +23,11 @@ 2, 3 ], - "heralding_out": false, - "amplitudes": [ - 1, - 1, - 1, - -1 + "single_emitters": [ +4, + 5 ], + "heralding_out": false, "thresholds": [ 0.3, 0.1 diff --git a/pytheus/graphs/Gates/cnot23_sp_post/graph_cnot23_sp_post.aux b/pytheus/graphs/Gates/cnot23_sp_post/graph_cnot23_sp_post.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Gates/cnot23_sp_post/graph_cnot23_sp_post.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Gates/cnot23_sp_post/graph_cnot23_sp_post.pdf b/pytheus/graphs/Gates/cnot23_sp_post/graph_cnot23_sp_post.pdf new file mode 100644 index 00000000..9a9ad2a8 Binary files /dev/null and b/pytheus/graphs/Gates/cnot23_sp_post/graph_cnot23_sp_post.pdf differ diff --git a/pytheus/graphs/Gates/cnot23_sp_post/graph_cnot23_sp_post.tex b/pytheus/graphs/Gates/cnot23_sp_post/graph_cnot23_sp_post.tex new file mode 100644 index 00000000..6ef980c1 --- /dev/null +++ b/pytheus/graphs/Gates/cnot23_sp_post/graph_cnot23_sp_post.tex @@ -0,0 +1,69 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [rectangle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col2}{col0}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-18.75, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=-3.75, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col2}{col1}, bend right=3.75, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col2}{col1}, bend right=18.75, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-15.0, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor={col2}{col0}, bend right=15.0, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=0.960287380183716] (2) to (6); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=-11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/Gates/cnot23_sp_post/plot_clean-25-48-0.0400_0.0000.json b/pytheus/graphs/Gates/cnot23_sp_post/plot_clean-25-48-0.0400_0.0000.json new file mode 100644 index 00000000..d30bf002 --- /dev/null +++ b/pytheus/graphs/Gates/cnot23_sp_post/plot_clean-25-48-0.0400_0.0000.json @@ -0,0 +1,200 @@ +{ + "graph": { + "(0, 2, 1, 1)": -1.0, + "(0, 3, 0, 0)": -1.0, + "(0, 3, 0, 2)": -1.0, + "(0, 6, 0, 0)": -1.0, + "(1, 2, 0, 0)": 1.0, + "(1, 2, 2, 0)": -1.0, + "(1, 3, 0, 0)": 1.0, + "(1, 3, 0, 1)": -1.0, + "(1, 3, 1, 1)": 1.0, + "(1, 3, 1, 2)": -1.0, + "(1, 3, 2, 0)": -1.0, + "(1, 3, 2, 1)": 1.0, + "(1, 6, 0, 0)": 1.0, + "(1, 6, 1, 0)": 1.0, + "(1, 6, 2, 0)": 1.0, + "(1, 7, 1, 0)": 1.0, + "(2, 5, 0, 0)": 1.0, + "(2, 6, 0, 0)": -0.960287380183716, + "(3, 4, 1, 0)": -1.0, + "(3, 4, 2, 0)": -1.0, + "(3, 5, 0, 0)": 1.0, + "(3, 5, 2, 0)": -1.0, + "(4, 6, 0, 0)": 1.0, + "(4, 7, 0, 0)": -1.0, + "(5, 7, 0, 0)": 1.0 + }, + "loss": [ + 0.040000000000000036, + 0.0 + ], + "seed": 1265670089, + "history": [ + [ + 0.03009812250916588, + 0.0015358547265880151 + ], + [ + 0.029581966519472203, + 0.0014717749498729393 + ], + [ + 0.029581964142881945, + 0.001471843641357884 + ], + [ + 0.029581962357628222, + 0.0014718586961495195 + ], + [ + 0.02958196091710208, + 0.001471820935832202 + ], + [ + 0.029581959714265693, + 0.0014717721630428393 + ], + [ + 0.029581958671909714, + 0.0014717050246755292 + ], + [ + 0.02958195780376205, + 0.0014716483525096802 + ], + [ + 0.029581957048063656, + 0.0014715699408686111 + ], + [ + 0.029581956654190278, + 0.001471522129418923 + ], + [ + 0.029581955657711267, + 0.0014714727637376024 + ], + [ + 0.02958195491856641, + 0.0014714158468034366 + ], + [ + 0.02958195440910938, + 0.001471339363274371 + ], + [ + 0.029581954075256545, + 0.0014712948097729273 + ], + [ + 0.029783779993676096, + 0.0015038019420805515 + ], + [ + 0.029783778060766264, + 0.0015036301229297555 + ], + [ + 0.029783776889542812, + 0.001503510333362934 + ], + [ + 0.02978377608945848, + 0.001503434777682 + ], + [ + 0.03031885698690373, + 0.0016435670002323821 + ], + [ + 0.03080027238207439, + 0.0016428614722863166 + ], + [ + 0.031187735182758525, + 0.0015395916420830602 + ], + [ + 0.03536379468941664, + 0.004142452717244782 + ], + [ + 0.03536597653702578, + 0.0041875311995071 + ], + [ + 0.0353659359776356, + 0.004186883513566553 + ], + [ + 0.03536593227843077, + 0.004185614446631569 + ], + [ + 0.035365930852067295, + 0.00418652938802011 + ], + [ + 0.03536593008004174, + 0.00418483733533237 + ], + [ + 0.041574823873689826, + 0.007672455219915331 + ], + [ + 0.03884572207780812, + 0.0012713763719853777 + ], + [ + 0.03907967933063916, + 0.0008838203048820992 + ], + [ + 0.039222722032905, + 0.0008244716521121909 + ], + [ + 0.039776594668820664, + 0.00023692281506249024 + ], + [ + 0.0398550724638429, + 0.00015660772153924807 + ], + [ + 0.040000000000000036, + 0.0 + ], + [ + 0.040000000000000036, + 0.0 + ], + [ + 0.040000000000000036, + 0.0 + ], + [ + 0.040000000000000036, + 0.0 + ], + [ + 0.040000000000000036, + 0.0 + ], + [ + 0.040000000000000036, + 0.0 + ], + [ + 0.040000000000000036, + 0.0 + ], + [ + 0.040000000000000036, + 0.0 + ] + ] +} \ No newline at end of file diff --git a/theseus/configs/cnot_24_post.json b/pytheus/graphs/Gates/cnot24_post/config_cnot_24_post.json similarity index 100% rename from theseus/configs/cnot_24_post.json rename to pytheus/graphs/Gates/cnot24_post/config_cnot_24_post.json diff --git a/pytheus/graphs/Gates/cnot24_post/graph_cnot24_post.aux b/pytheus/graphs/Gates/cnot24_post/graph_cnot24_post.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Gates/cnot24_post/graph_cnot24_post.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Gates/cnot24_post/graph_cnot24_post.pdf b/pytheus/graphs/Gates/cnot24_post/graph_cnot24_post.pdf new file mode 100644 index 00000000..ffe4b029 Binary files /dev/null and b/pytheus/graphs/Gates/cnot24_post/graph_cnot24_post.pdf differ diff --git a/pytheus/graphs/Gates/cnot24_post/graph_cnot24_post.tex b/pytheus/graphs/Gates/cnot24_post/graph_cnot24_post.tex new file mode 100644 index 00000000..bc20dc41 --- /dev/null +++ b/pytheus/graphs/Gates/cnot24_post/graph_cnot24_post.tex @@ -0,0 +1,79 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-18.75, opacity=0.9982889443062525] (0) to (3); +\path[line width=4.0,bicolor_neg={col2}{col0}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-3.75, opacity=0.9825309231950196] (0) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=3.75, opacity=0.9999384446418111] (0) to (3); +\path[line width=4.0,bicolor_neg={col2}{col1}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col3}{col1}, bend right=18.75, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-16.875, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=-5.625, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col1}{col2}, bend right=5.625, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col1}{col3}, bend right=16.875, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-16.875, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-5.625, opacity=0.9974171315189887] (1) to (3); +\path[line width=4.0,bicolor_neg={col2}{col2}, bend right=5.625, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col3}{col3}, bend right=16.875, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=0.9940547599877385] (1) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-11.25, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=11.25, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-18.75, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col2}, bend right=-3.75, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col3}, bend right=3.75, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col2}{col1}, bend right=18.75, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-16.875, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-5.625, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col2}{col0}, bend right=5.625, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col3}{col0}, bend right=16.875, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/cnot24_post/clean-37-136-0.0303_0.0000.json b/pytheus/graphs/Gates/cnot24_post/plot_cnot24_post_clean-37-136-0.0303_0.0000.json similarity index 100% rename from theseus/graphs/cnot24_post/clean-37-136-0.0303_0.0000.json rename to pytheus/graphs/Gates/cnot24_post/plot_cnot24_post_clean-37-136-0.0303_0.0000.json diff --git a/pytheus/graphs/Gates/cnot33_0/config_cnot33_0.json b/pytheus/graphs/Gates/cnot33_0/config_cnot33_0.json new file mode 100644 index 00000000..e74a3b7e --- /dev/null +++ b/pytheus/graphs/Gates/cnot33_0/config_cnot33_0.json @@ -0,0 +1,35 @@ +{ + "bulk_thr": 0, + "edges_tried": 20, + "foldername": "cnot33_0", + "ftol": 1e-10, + "loss_func": "cr", + "num_anc": 2, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 1000, + "target_state": [ + "0000", + "1011", + "2022" + ], + "in_nodes": [ + 0, + 1 + ], + "out_nodes": [ + 2, + 3 + ], + "thresholds": [ + 0.5, + 0.1 + ], + "heralding_out": true, + "tries_per_edge": 10, + "unicolor": false, + "number_resolving": false, + "novac": true +} \ No newline at end of file diff --git a/pytheus/graphs/Gates/cnot33_0/graph_cnot33_0.aux b/pytheus/graphs/Gates/cnot33_0/graph_cnot33_0.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Gates/cnot33_0/graph_cnot33_0.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Gates/cnot33_0/graph_cnot33_0.pdf b/pytheus/graphs/Gates/cnot33_0/graph_cnot33_0.pdf new file mode 100644 index 00000000..c31ae3d4 Binary files /dev/null and b/pytheus/graphs/Gates/cnot33_0/graph_cnot33_0.pdf differ diff --git a/pytheus/graphs/Gates/cnot33_0/graph_cnot33_0.tex b/pytheus/graphs/Gates/cnot33_0/graph_cnot33_0.tex new file mode 100644 index 00000000..07c85034 --- /dev/null +++ b/pytheus/graphs/Gates/cnot33_0/graph_cnot33_0.tex @@ -0,0 +1,56 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle,dashed] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle,dashed] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col2}{col2}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (3) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/cnot33_0/clean-14-12-0.0769_0.0000.json b/pytheus/graphs/Gates/cnot33_0/plot_cnot33_0_clean-14-12-0.0769_0.0000.json similarity index 100% rename from theseus/graphs/cnot33_0/clean-14-12-0.0769_0.0000.json rename to pytheus/graphs/Gates/cnot33_0/plot_cnot33_0_clean-14-12-0.0769_0.0000.json diff --git a/theseus/configs/cnot_33_post.json b/pytheus/graphs/Gates/cnot33_post/config_cnot33_post.json similarity index 100% rename from theseus/configs/cnot_33_post.json rename to pytheus/graphs/Gates/cnot33_post/config_cnot33_post.json diff --git a/pytheus/graphs/Gates/cnot33_post/graph_cnot33_post.aux b/pytheus/graphs/Gates/cnot33_post/graph_cnot33_post.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Gates/cnot33_post/graph_cnot33_post.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Gates/cnot33_post/graph_cnot33_post.pdf b/pytheus/graphs/Gates/cnot33_post/graph_cnot33_post.pdf new file mode 100644 index 00000000..aa942b08 Binary files /dev/null and b/pytheus/graphs/Gates/cnot33_post/graph_cnot33_post.pdf differ diff --git a/pytheus/graphs/Gates/cnot33_post/graph_cnot33_post.tex b/pytheus/graphs/Gates/cnot33_post/graph_cnot33_post.tex new file mode 100644 index 00000000..ba58f5f9 --- /dev/null +++ b/pytheus/graphs/Gates/cnot33_post/graph_cnot33_post.tex @@ -0,0 +1,76 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=-16.875, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col2}{col1}, bend right=-5.625, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=5.625, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col1}{col2}, bend right=16.875, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-16.875, opacity=0.9962331457818187] (1) to (2); +\path[line width=4.0,bicolor_neg={col2}{col0}, bend right=-5.625, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col2}, bend right=5.625, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col1}{col2}, bend right=16.875, opacity=0.9982988328292003] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-18.75, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=-3.75, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col2}{col1}, bend right=3.75, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col2}{col2}, bend right=18.75, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=-16.875, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=-5.625, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col1}{col2}, bend right=5.625, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col2}{col2}, bend right=16.875, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-11.25, opacity=0.9936761203682111] (2) to (4); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=-11.25, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=0.9934407929974615] (3) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/cnot33_post/clean-34-126-0.0270_0.0000.json b/pytheus/graphs/Gates/cnot33_post/plot_cnot33_post_clean-34-126-0.0270_0.0000.json similarity index 100% rename from theseus/graphs/cnot33_post/clean-34-126-0.0270_0.0000.json rename to pytheus/graphs/Gates/cnot33_post/plot_cnot33_post_clean-34-126-0.0270_0.0000.json diff --git a/configs/to_be_confirmed/cnot33_sp.json b/pytheus/graphs/Gates/cnot33_sp/config_cnot33_sp.json similarity index 90% rename from configs/to_be_confirmed/cnot33_sp.json rename to pytheus/graphs/Gates/cnot33_sp/config_cnot33_sp.json index ff4bc107..b8056a4d 100644 --- a/configs/to_be_confirmed/cnot33_sp.json +++ b/pytheus/graphs/Gates/cnot33_sp/config_cnot33_sp.json @@ -5,7 +5,7 @@ "foldername": "cnot33_sp", "ftol": 1e-08, "loss_func": "cr", - "num_anc": 3, + "num_anc": 5, "num_pre": 1, "optimizer": "L-BFGS-B", "imaginary": false, @@ -33,13 +33,15 @@ "single_emitters": [ 4, 5, - 6 + 6, + 7, + 8 ], "thresholds": [ 1, 0.1 ], - "heralding_out": true, + "heralding_out": false, "tries_per_edge": 5, "unicolor": false -} +} \ No newline at end of file diff --git a/pytheus/graphs/Gates/cnot33_sp/graph_cnot33_sp.aux b/pytheus/graphs/Gates/cnot33_sp/graph_cnot33_sp.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Gates/cnot33_sp/graph_cnot33_sp.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Gates/cnot33_sp/graph_cnot33_sp.pdf b/pytheus/graphs/Gates/cnot33_sp/graph_cnot33_sp.pdf new file mode 100644 index 00000000..ba27e656 Binary files /dev/null and b/pytheus/graphs/Gates/cnot33_sp/graph_cnot33_sp.pdf differ diff --git a/pytheus/graphs/Gates/cnot33_sp/graph_cnot33_sp.tex b/pytheus/graphs/Gates/cnot33_sp/graph_cnot33_sp.tex new file mode 100644 index 00000000..dd161088 --- /dev/null +++ b/pytheus/graphs/Gates/cnot33_sp/graph_cnot33_sp.tex @@ -0,0 +1,84 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (2.598076211353316,1.4999999999999998) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.4999999999999993,2.5980762113533165) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.598076211353316,1.4999999999999998) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}5}; +\node[vertex] (6) at (-3.0,3.6739403974420594e-16) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}6}; +\node[vertex] (7) at (-2.5980762113533165,-1.4999999999999993) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}7}; +\node[vertex] (8) at (-1.5000000000000013,-2.598076211353315) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}8}; +\node[vertex] (9) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}9}; +\node[vertex] (10) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}10}; +\node[vertex] (11) at (2.598076211353315,-1.5000000000000013) [rectangle] {\color{fontcolor}11}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col2}{col2}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-16.875, opacity=0.985185449317192] (0) to (3); +\path[line width=4.0,bicolor={col0}{col2}, bend right=-5.625, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=5.625, opacity=0.9906920872686505] (0) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=16.875, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (9); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (11); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-18.75, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=-3.75, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col2}, bend right=3.75, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col2}{col2}, bend right=18.75, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=-11.25, opacity=1.0] (1) to (9); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (1) to (9); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (11); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (1) to (11); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.9940941252170894] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-11.25, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=0.9772428041785977] (3) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (8); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (9); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (10); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (11); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (8); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (10); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (11); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (10); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (7) to (8); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (7) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (7) to (10); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/cnot33_sp/clean-36-210-0.0270_0.0000.json b/pytheus/graphs/Gates/cnot33_sp/plot_cnot33_sp_clean-36-210-0.0270_0.0000.json similarity index 100% rename from theseus/graphs/cnot33_sp/clean-36-210-0.0270_0.0000.json rename to pytheus/graphs/Gates/cnot33_sp/plot_cnot33_sp_clean-36-210-0.0270_0.0000.json diff --git a/theseus/configs/cnot44_0.json b/pytheus/graphs/Gates/cnot44_0/config_cnot44_0.json similarity index 93% rename from theseus/configs/cnot44_0.json rename to pytheus/graphs/Gates/cnot44_0/config_cnot44_0.json index 6ffdc15c..ff3770cb 100644 --- a/theseus/configs/cnot44_0.json +++ b/pytheus/graphs/Gates/cnot44_0/config_cnot44_0.json @@ -5,7 +5,7 @@ "foldername": "cnot44_0", "ftol": 1e-08, "loss_func": "cr", - "num_anc": 4, + "num_anc": 6, "num_pre": 1, "optimizer": "L-BFGS-B", "imaginary": false, @@ -26,6 +26,7 @@ 3 ], "heralding_out": true, + "number_resolving": true, "thresholds": [ 0.5, 0.1 diff --git a/pytheus/graphs/Gates/cnot44_0/graph_cnot44_0.aux b/pytheus/graphs/Gates/cnot44_0/graph_cnot44_0.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Gates/cnot44_0/graph_cnot44_0.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Gates/cnot44_0/graph_cnot44_0.pdf b/pytheus/graphs/Gates/cnot44_0/graph_cnot44_0.pdf new file mode 100644 index 00000000..e45dc540 Binary files /dev/null and b/pytheus/graphs/Gates/cnot44_0/graph_cnot44_0.pdf differ diff --git a/pytheus/graphs/Gates/cnot44_0/graph_cnot44_0.tex b/pytheus/graphs/Gates/cnot44_0/graph_cnot44_0.tex new file mode 100644 index 00000000..a725851c --- /dev/null +++ b/pytheus/graphs/Gates/cnot44_0/graph_cnot44_0.tex @@ -0,0 +1,70 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (2.4270509831248424,1.7633557568774194) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (0.9270509831248424,2.8531695488854605) [circle,dashed] {\color{fontcolor}2}; +\node[vertex] (3) at (-0.927050983124842,2.853169548885461) [circle,dashed] {\color{fontcolor}3}; +\node[vertex] (4) at (-2.427050983124842,1.7633557568774196) [inner sep=0.1em, regular polygon,regular polygon sides=6] {\color{fontcolor}4}; +\node[vertex] (5) at (-3.0,3.6739403974420594e-16) [inner sep=0.1em, regular polygon,regular polygon sides=6] {\color{fontcolor}5}; +\node[vertex] (6) at (-2.4270509831248424,-1.7633557568774192) [inner sep=0.1em, regular polygon,regular polygon sides=6] {\color{fontcolor}6}; +\node[vertex] (7) at (-0.9270509831248427,-2.8531695488854605) [inner sep=0.1em, regular polygon,regular polygon sides=6] {\color{fontcolor}7}; +\node[vertex] (8) at (0.9270509831248417,-2.853169548885461) [inner sep=0.1em, regular polygon,regular polygon sides=6] {\color{fontcolor}8}; +\node[vertex] (9) at (2.427050983124842,-1.7633557568774196) [inner sep=0.1em, regular polygon,regular polygon sides=6] {\color{fontcolor}9}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col3}{col3}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (8); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (0) to (8); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (9); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (0) to (9); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (9); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-11.25, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col3}{col0}, bend right=11.25, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=11.25, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (8); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (7); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (3) to (8); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (3) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (8); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (7) to (8); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/Gates/cnot44_0/plot_cnot44_0_clean-24-40-0.0588_0.0000.json b/pytheus/graphs/Gates/cnot44_0/plot_cnot44_0_clean-24-40-0.0588_0.0000.json new file mode 100644 index 00000000..89a6cd92 --- /dev/null +++ b/pytheus/graphs/Gates/cnot44_0/plot_cnot44_0_clean-24-40-0.0588_0.0000.json @@ -0,0 +1,32 @@ +{ + "graph": { + "(0, 4, 1, 0)": 1.0, + "(0, 5, 0, 0)": -1.0, + "(0, 8, 0, 0)": 1.0, + "(0, 9, 1, 0)": -1.0, + "(0, 3, 3, 3)": -1.0, + "(2, 4, 3, 0)": 1.0, + "(7, 8, 0, 0)": 1.0, + "(6, 9, 0, 0)": 1.0, + "(6, 8, 0, 0)": -1.0, + "(5, 7, 0, 0)": 1.0, + "(3, 9, 2, 0)": 1.0, + "(3, 8, 2, 0)": 1.0, + "(3, 7, 0, 0)": 1.0, + "(2, 9, 1, 0)": -1.0, + "(2, 8, 0, 0)": -1.0, + "(2, 6, 2, 0)": -1.0, + "(2, 5, 3, 0)": -1.0, + "(2, 5, 0, 0)": 1.0, + "(2, 4, 1, 0)": 1.0, + "(1, 9, 0, 0)": 1.0, + "(1, 4, 0, 0)": 1.0, + "(1, 3, 0, 1)": 1.0, + "(0, 9, 2, 0)": -1.0, + "(0, 8, 2, 0)": -1.0 + }, + "loss": [ + 0.05882352941176472, + 0.0 + ] +} \ No newline at end of file diff --git a/theseus/configs/controlled_z.json b/pytheus/graphs/Gates/controlled_z/config_controlled_z.json similarity index 100% rename from theseus/configs/controlled_z.json rename to pytheus/graphs/Gates/controlled_z/config_controlled_z.json diff --git a/pytheus/graphs/Gates/controlled_z/graph_controlled_z.aux b/pytheus/graphs/Gates/controlled_z/graph_controlled_z.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Gates/controlled_z/graph_controlled_z.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Gates/controlled_z/graph_controlled_z.pdf b/pytheus/graphs/Gates/controlled_z/graph_controlled_z.pdf new file mode 100644 index 00000000..492432ca Binary files /dev/null and b/pytheus/graphs/Gates/controlled_z/graph_controlled_z.pdf differ diff --git a/pytheus/graphs/Gates/controlled_z/graph_controlled_z.tex b/pytheus/graphs/Gates/controlled_z/graph_controlled_z.tex new file mode 100644 index 00000000..d2361780 --- /dev/null +++ b/pytheus/graphs/Gates/controlled_z/graph_controlled_z.tex @@ -0,0 +1,55 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [circle,dashed] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [circle,dashed] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [rectangle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [rectangle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/controlled_z/clean-11-4-0.2000_0.0000.json b/pytheus/graphs/Gates/controlled_z/plot_controlled_z_clean-11-4-0.2000_0.0000.json similarity index 100% rename from theseus/graphs/controlled_z/clean-11-4-0.2000_0.0000.json rename to pytheus/graphs/Gates/controlled_z/plot_controlled_z_clean-11-4-0.2000_0.0000.json diff --git a/theseus/configs/controlled_z_post_sp.json b/pytheus/graphs/Gates/controlled_z_post_sp/config_controlled_z_post_sp.json similarity index 100% rename from theseus/configs/controlled_z_post_sp.json rename to pytheus/graphs/Gates/controlled_z_post_sp/config_controlled_z_post_sp.json diff --git a/pytheus/graphs/Gates/controlled_z_post_sp/graph_controlled_z_post_sp.aux b/pytheus/graphs/Gates/controlled_z_post_sp/graph_controlled_z_post_sp.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Gates/controlled_z_post_sp/graph_controlled_z_post_sp.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Gates/controlled_z_post_sp/graph_controlled_z_post_sp.pdf b/pytheus/graphs/Gates/controlled_z_post_sp/graph_controlled_z_post_sp.pdf new file mode 100644 index 00000000..44465fbf Binary files /dev/null and b/pytheus/graphs/Gates/controlled_z_post_sp/graph_controlled_z_post_sp.pdf differ diff --git a/pytheus/graphs/Gates/controlled_z_post_sp/graph_controlled_z_post_sp.tex b/pytheus/graphs/Gates/controlled_z_post_sp/graph_controlled_z_post_sp.tex new file mode 100644 index 00000000..c162fa38 --- /dev/null +++ b/pytheus/graphs/Gates/controlled_z_post_sp/graph_controlled_z_post_sp.tex @@ -0,0 +1,51 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/controlled_z_post_sp/clean-9-6-0.2000_0.0000.json b/pytheus/graphs/Gates/controlled_z_post_sp/plot_controlled_z_post_sp_clean-9-6-0.2000_0.0000.json similarity index 100% rename from theseus/graphs/controlled_z_post_sp/clean-9-6-0.2000_0.0000.json rename to pytheus/graphs/Gates/controlled_z_post_sp/plot_controlled_z_post_sp_clean-9-6-0.2000_0.0000.json diff --git a/theseus/configs/controlled_z_sp.json b/pytheus/graphs/Gates/controlled_z_sp/config_controlled_z_sp.json similarity index 100% rename from theseus/configs/controlled_z_sp.json rename to pytheus/graphs/Gates/controlled_z_sp/config_controlled_z_sp.json diff --git a/pytheus/graphs/Gates/controlled_z_sp/graph_controlled_z_sp.aux b/pytheus/graphs/Gates/controlled_z_sp/graph_controlled_z_sp.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Gates/controlled_z_sp/graph_controlled_z_sp.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Gates/controlled_z_sp/graph_controlled_z_sp.pdf b/pytheus/graphs/Gates/controlled_z_sp/graph_controlled_z_sp.pdf new file mode 100644 index 00000000..0eeb81a8 Binary files /dev/null and b/pytheus/graphs/Gates/controlled_z_sp/graph_controlled_z_sp.pdf differ diff --git a/pytheus/graphs/Gates/controlled_z_sp/graph_controlled_z_sp.tex b/pytheus/graphs/Gates/controlled_z_sp/graph_controlled_z_sp.tex new file mode 100644 index 00000000..47e180a4 --- /dev/null +++ b/pytheus/graphs/Gates/controlled_z_sp/graph_controlled_z_sp.tex @@ -0,0 +1,62 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (2.4270509831248424,1.7633557568774194) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (0.9270509831248424,2.8531695488854605) [circle,dashed] {\color{fontcolor}2}; +\node[vertex] (3) at (-0.927050983124842,2.853169548885461) [circle,dashed] {\color{fontcolor}3}; +\node[vertex] (4) at (-2.427050983124842,1.7633557568774196) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}4}; +\node[vertex] (5) at (-3.0,3.6739403974420594e-16) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}5}; +\node[vertex] (6) at (-2.4270509831248424,-1.7633557568774192) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}6}; +\node[vertex] (7) at (-0.9270509831248427,-2.8531695488854605) [rectangle] {\color{fontcolor}7}; +\node[vertex] (8) at (0.9270509831248417,-2.853169548885461) [rectangle] {\color{fontcolor}8}; +\node[vertex] (9) at (2.427050983124842,-1.7633557568774196) [rectangle] {\color{fontcolor}9}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (8); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (8); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (8); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (9); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/controlled_z_sp/clean-16-16-0.0588_0.0000.json b/pytheus/graphs/Gates/controlled_z_sp/plot_controlled_z_sp_clean-16-16-0.0588_0.0000.json similarity index 100% rename from theseus/graphs/controlled_z_sp/clean-16-16-0.0588_0.0000.json rename to pytheus/graphs/Gates/controlled_z_sp/plot_controlled_z_sp_clean-16-16-0.0588_0.0000.json diff --git a/configs/to_be_confirmed/fredkin_0.json b/pytheus/graphs/Gates/fredkin_0/config_fredkin_0.json similarity index 99% rename from configs/to_be_confirmed/fredkin_0.json rename to pytheus/graphs/Gates/fredkin_0/config_fredkin_0.json index 98229368..9bd050d0 100644 --- a/configs/to_be_confirmed/fredkin_0.json +++ b/pytheus/graphs/Gates/fredkin_0/config_fredkin_0.json @@ -34,4 +34,4 @@ 0.2 ], "tries_per_edge": 10 -} +} \ No newline at end of file diff --git a/pytheus/graphs/Gates/fredkin_0/graph_fredkin_0.aux b/pytheus/graphs/Gates/fredkin_0/graph_fredkin_0.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Gates/fredkin_0/graph_fredkin_0.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Gates/fredkin_0/graph_fredkin_0.pdf b/pytheus/graphs/Gates/fredkin_0/graph_fredkin_0.pdf new file mode 100644 index 00000000..bd746650 Binary files /dev/null and b/pytheus/graphs/Gates/fredkin_0/graph_fredkin_0.pdf differ diff --git a/pytheus/graphs/Gates/fredkin_0/graph_fredkin_0.tex b/pytheus/graphs/Gates/fredkin_0/graph_fredkin_0.tex new file mode 100644 index 00000000..64c462a9 --- /dev/null +++ b/pytheus/graphs/Gates/fredkin_0/graph_fredkin_0.tex @@ -0,0 +1,59 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [circle,dashed] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [circle,dashed] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [circle,dashed] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [rectangle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-11.25, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/fredkin_0/clean-15-24-0.0588_0.0000.json b/pytheus/graphs/Gates/fredkin_0/plot_fredkin_0_clean-15-24-0.0588_0.0000.json similarity index 100% rename from theseus/graphs/fredkin_0/clean-15-24-0.0588_0.0000.json rename to pytheus/graphs/Gates/fredkin_0/plot_fredkin_0_clean-15-24-0.0588_0.0000.json diff --git a/theseus/configs/fredkin_post.json b/pytheus/graphs/Gates/fredkin_post/config_fredkin_post.json similarity index 100% rename from theseus/configs/fredkin_post.json rename to pytheus/graphs/Gates/fredkin_post/config_fredkin_post.json diff --git a/pytheus/graphs/Gates/fredkin_post/graph_fredkin_post.aux b/pytheus/graphs/Gates/fredkin_post/graph_fredkin_post.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Gates/fredkin_post/graph_fredkin_post.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Gates/fredkin_post/graph_fredkin_post.pdf b/pytheus/graphs/Gates/fredkin_post/graph_fredkin_post.pdf new file mode 100644 index 00000000..46feb60e Binary files /dev/null and b/pytheus/graphs/Gates/fredkin_post/graph_fredkin_post.pdf differ diff --git a/pytheus/graphs/Gates/fredkin_post/graph_fredkin_post.tex b/pytheus/graphs/Gates/fredkin_post/graph_fredkin_post.tex new file mode 100644 index 00000000..47d9238b --- /dev/null +++ b/pytheus/graphs/Gates/fredkin_post/graph_fredkin_post.tex @@ -0,0 +1,60 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [circle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [rectangle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=0.9999987711218533] (0) to (5); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (4) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/fredkin_post/clean-16-14-0.1111_0.0000.json b/pytheus/graphs/Gates/fredkin_post/plot_fredkin_post_clean-16-14-0.1111_0.0000.json similarity index 100% rename from theseus/graphs/fredkin_post/clean-16-14-0.1111_0.0000.json rename to pytheus/graphs/Gates/fredkin_post/plot_fredkin_post_clean-16-14-0.1111_0.0000.json diff --git a/theseus/configs/fredkin_post_sp.json b/pytheus/graphs/Gates/fredkin_post_sp/config_fredkin_post_sp.json similarity index 100% rename from theseus/configs/fredkin_post_sp.json rename to pytheus/graphs/Gates/fredkin_post_sp/config_fredkin_post_sp.json diff --git a/pytheus/graphs/Gates/fredkin_post_sp/graph_fredkin_post_sp.aux b/pytheus/graphs/Gates/fredkin_post_sp/graph_fredkin_post_sp.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Gates/fredkin_post_sp/graph_fredkin_post_sp.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Gates/fredkin_post_sp/graph_fredkin_post_sp.pdf b/pytheus/graphs/Gates/fredkin_post_sp/graph_fredkin_post_sp.pdf new file mode 100644 index 00000000..61753f36 Binary files /dev/null and b/pytheus/graphs/Gates/fredkin_post_sp/graph_fredkin_post_sp.pdf differ diff --git a/pytheus/graphs/Gates/fredkin_post_sp/graph_fredkin_post_sp.tex b/pytheus/graphs/Gates/fredkin_post_sp/graph_fredkin_post_sp.tex new file mode 100644 index 00000000..a718b3e7 --- /dev/null +++ b/pytheus/graphs/Gates/fredkin_post_sp/graph_fredkin_post_sp.tex @@ -0,0 +1,68 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [circle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [rectangle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-15.0, opacity=0.998782012957102] (0) to (4); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=15.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-15.0, opacity=0.998782091059001] (0) to (5); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=15.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-15.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=15.0, opacity=0.9987852491617034] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-15.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=15.0, opacity=0.9987851767832887] (2) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/fredkin_post_sp/clean-24-88-0.0303_0.0000.json b/pytheus/graphs/Gates/fredkin_post_sp/plot_fredkin_post_sp_clean-24-88-0.0303_0.0000.json similarity index 100% rename from theseus/graphs/fredkin_post_sp/clean-24-88-0.0303_0.0000.json rename to pytheus/graphs/Gates/fredkin_post_sp/plot_fredkin_post_sp_clean-24-88-0.0303_0.0000.json diff --git a/configs/to_be_confirmed/toffoli.json b/pytheus/graphs/Gates/toffoli/config_toffoli.json similarity index 99% rename from configs/to_be_confirmed/toffoli.json rename to pytheus/graphs/Gates/toffoli/config_toffoli.json index 69b62b42..3b46b256 100644 --- a/configs/to_be_confirmed/toffoli.json +++ b/pytheus/graphs/Gates/toffoli/config_toffoli.json @@ -38,4 +38,4 @@ ], "tries_per_edge": 5, "unicolor": false -} \ No newline at end of file +} diff --git a/pytheus/graphs/Gates/toffoli/graph_toffoli.aux b/pytheus/graphs/Gates/toffoli/graph_toffoli.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Gates/toffoli/graph_toffoli.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Gates/toffoli/graph_toffoli.pdf b/pytheus/graphs/Gates/toffoli/graph_toffoli.pdf new file mode 100644 index 00000000..44a32647 Binary files /dev/null and b/pytheus/graphs/Gates/toffoli/graph_toffoli.pdf differ diff --git a/pytheus/graphs/Gates/toffoli/graph_toffoli.tex b/pytheus/graphs/Gates/toffoli/graph_toffoli.tex new file mode 100644 index 00000000..1255188e --- /dev/null +++ b/pytheus/graphs/Gates/toffoli/graph_toffoli.tex @@ -0,0 +1,66 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (2.4270509831248424,1.7633557568774194) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (0.9270509831248424,2.8531695488854605) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}2}; +\node[vertex] (3) at (-0.927050983124842,2.853169548885461) [circle,dashed] {\color{fontcolor}3}; +\node[vertex] (4) at (-2.427050983124842,1.7633557568774196) [circle,dashed] {\color{fontcolor}4}; +\node[vertex] (5) at (-3.0,3.6739403974420594e-16) [circle,dashed] {\color{fontcolor}5}; +\node[vertex] (6) at (-2.4270509831248424,-1.7633557568774192) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (-0.9270509831248427,-2.8531695488854605) [rectangle] {\color{fontcolor}7}; +\node[vertex] (8) at (0.9270509831248417,-2.853169548885461) [rectangle] {\color{fontcolor}8}; +\node[vertex] (9) at (2.427050983124842,-1.7633557568774196) [rectangle] {\color{fontcolor}9}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (9); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=0.9856732285572877] (2) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (8); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (2) to (8); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=-11.25, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (9); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (7) to (8); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (8) to (9); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/toffoli/clean-20-56-0.0303_0.0000.json b/pytheus/graphs/Gates/toffoli/plot_toffoli_clean-20-56-0.0303_0.0000.json similarity index 100% rename from theseus/graphs/toffoli/clean-20-56-0.0303_0.0000.json rename to pytheus/graphs/Gates/toffoli/plot_toffoli_clean-20-56-0.0303_0.0000.json diff --git a/pytheus/graphs/Gates/toffoli_3d_post/config_toffoli_3d_post.json b/pytheus/graphs/Gates/toffoli_3d_post/config_toffoli_3d_post.json new file mode 100644 index 00000000..92014cb0 --- /dev/null +++ b/pytheus/graphs/Gates/toffoli_3d_post/config_toffoli_3d_post.json @@ -0,0 +1,42 @@ +{ + "description": "Postselected 3d Toffoli gate.", + "bulk_thr": 0, + "edges_tried": 30, + "foldername": "toffoli_post", + "ftol": 1e-07, + "loss_func": "cr", + "num_anc": 2, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "in_nodes": [ + 0, + 1, + 2 + ], + "out_nodes": [ + 3, + 4, + 5 + ], + "safe_hist": true, + "samples": 10, + "target_state": [ + "000000", + "001001", + "002002", + "010010", + "011011", + "012012", + "100100", + "101101", + "102102", + "110111", + "111112", + "112110" + ], + "thresholds": [ + 0.3, + 0.1 + ], + "tries_per_edge": 5 +} \ No newline at end of file diff --git a/pytheus/graphs/Gates/toffoli_3d_post/graph_toffoli_3d_post.aux b/pytheus/graphs/Gates/toffoli_3d_post/graph_toffoli_3d_post.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Gates/toffoli_3d_post/graph_toffoli_3d_post.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Gates/toffoli_3d_post/graph_toffoli_3d_post.pdf b/pytheus/graphs/Gates/toffoli_3d_post/graph_toffoli_3d_post.pdf new file mode 100644 index 00000000..c7e8d746 Binary files /dev/null and b/pytheus/graphs/Gates/toffoli_3d_post/graph_toffoli_3d_post.pdf differ diff --git a/pytheus/graphs/Gates/toffoli_3d_post/graph_toffoli_3d_post.tex b/pytheus/graphs/Gates/toffoli_3d_post/graph_toffoli_3d_post.tex new file mode 100644 index 00000000..6296859f --- /dev/null +++ b/pytheus/graphs/Gates/toffoli_3d_post/graph_toffoli_3d_post.tex @@ -0,0 +1,70 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [circle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [rectangle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-16.875, opacity=0.998491818872119] (2) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-5.625, opacity=0.9984981667709066] (2) to (4); +\path[line width=4.0,bicolor={col1}{col1}, bend right=5.625, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor_neg={col1}{col2}, bend right=16.875, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-15.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=15.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=0.9999782405192567] (2) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-16.875, opacity=0.9984952928683843] (4) to (5); +\path[line width=4.0,bicolor_neg={col2}{col0}, bend right=-5.625, opacity=0.9985242971713489] (4) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=5.625, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=16.875, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=0.9999833049697944] (5) to (7); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (5) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/Gates/toffoli_3d_post/plot_clean-26-68-0.0769_0.0000.json b/pytheus/graphs/Gates/toffoli_3d_post/plot_clean-26-68-0.0769_0.0000.json new file mode 100644 index 00000000..bffd62aa --- /dev/null +++ b/pytheus/graphs/Gates/toffoli_3d_post/plot_clean-26-68-0.0769_0.0000.json @@ -0,0 +1,309 @@ +{ + "graph": { + "(0, 3, 0, 0)": -1.0, + "(0, 3, 1, 1)": -1.0, + "(0, 6, 0, 0)": 1.0, + "(1, 3, 1, 0)": -1.0, + "(1, 4, 0, 0)": -1.0, + "(1, 4, 1, 1)": -1.0, + "(1, 6, 1, 0)": -1.0, + "(2, 4, 0, 0)": -0.998491818872119, + "(2, 4, 1, 0)": 0.9984981667709066, + "(2, 4, 1, 1)": 1.0, + "(2, 4, 2, 1)": -1.0, + "(2, 5, 0, 0)": -1.0, + "(2, 5, 1, 1)": -1.0, + "(2, 5, 2, 0)": -1.0, + "(2, 6, 2, 0)": 1.0, + "(2, 7, 0, 0)": -1.0, + "(2, 7, 1, 0)": 0.9999782405192567, + "(3, 6, 0, 0)": -1.0, + "(4, 5, 0, 0)": 0.9984952928683843, + "(4, 5, 0, 2)": -0.9985242971713489, + "(4, 5, 1, 0)": 1.0, + "(4, 5, 1, 1)": -1.0, + "(4, 6, 0, 0)": 1.0, + "(5, 7, 0, 0)": -0.9999833049697944, + "(5, 7, 2, 0)": 1.0, + "(6, 7, 0, 0)": -1.0 + }, + "loss": [ + 0.07692311301075694, + 4.23529020743274e-08 + ], + "seed": 3315468624, + "history": [ + [ + 0.01632221297941372, + 0.0018178401116907272 + ], + [ + 0.016188421839015477, + 0.0017308740542703038 + ], + [ + 0.016188357336372805, + 0.0017317909897580641 + ], + [ + 0.016188329679411084, + 0.0017297095609677404 + ], + [ + 0.016188282131669895, + 0.0017315183128273626 + ], + [ + 0.016188248384437776, + 0.0017303735400792108 + ], + [ + 0.016188243701111937, + 0.0017328964305146632 + ], + [ + 0.01618819625988921, + 0.0017309267230701808 + ], + [ + 0.016188169354663606, + 0.0017316117036056955 + ], + [ + 0.016188154253221843, + 0.0017300815627044885 + ], + [ + 0.01618813100505645, + 0.0017314014107725484 + ], + [ + 0.01618811109356777, + 0.0017304957834884949 + ], + [ + 0.016188108007315738, + 0.0017324979747262992 + ], + [ + 0.016188077531075207, + 0.0017309130474032486 + ], + [ + 0.016188058655350557, + 0.0017315030932654185 + ], + [ + 0.01618804772842697, + 0.0017301915995279193 + ], + [ + 0.016188031054708674, + 0.0017313163080781013 + ], + [ + 0.016188016205442746, + 0.0017304790097647516 + ], + [ + 0.01618801630321498, + 0.0017322621333113464 + ], + [ + 0.016187994225158375, + 0.0017307656694471873 + ], + [ + 0.01618796721232818, + 0.0017314964214815154 + ], + [ + 0.01619098132876373, + 0.0017489460658414169 + ], + [ + 0.01620669831840449, + 0.0017440101573708011 + ], + [ + 0.016250342205070933, + 0.0017356399684748114 + ], + [ + 0.016333701367769127, + 0.0017286884056180174 + ], + [ + 0.01648003399762854, + 0.0018328622639304237 + ], + [ + 0.01651631607396664, + 0.0018758026397273087 + ], + [ + 0.01663285657410607, + 0.001901280707347075 + ], + [ + 0.016737339883833857, + 0.0020093140123038644 + ], + [ + 0.016821184534017153, + 0.0019883971166771985 + ], + [ + 0.0169230763449425, + 0.002124147525619402 + ], + [ + 0.016927177977478003, + 0.002085208895363344 + ], + [ + 0.016917523977033833, + 0.0021136627506820327 + ], + [ + 0.016918397953939235, + 0.0021136967373774906 + ], + [ + 0.01695852739241599, + 0.0021819306971324615 + ], + [ + 0.017563427513289986, + 0.002006311080149481 + ], + [ + 0.017728614197104586, + 0.002095643757191401 + ], + [ + 0.017895983329273224, + 0.0020090987746808064 + ], + [ + 0.01948990723661803, + 0.0009159731734522669 + ], + [ + 0.01971869731362308, + 0.0006757687103072785 + ], + [ + 0.01976415599901249, + 0.0006728739697117181 + ], + [ + 0.01980936952775103, + 0.000590941434524539 + ], + [ + 0.019998061125229172, + 0.00040458467059334424 + ], + [ + 0.020027321889817817, + 0.00038472643570874876 + ], + [ + 0.0200840690430506, + 0.00032953108045952195 + ], + [ + 0.020139461010396542, + 0.0002741560263846976 + ], + [ + 0.02022940258792294, + 0.0001830310837037663 + ], + [ + 0.020297870644362837, + 0.00011075919106473542 + ], + [ + 0.020334965525285797, + 7.4002019464392e-05 + ], + [ + 0.020363634448634538, + 4.5714925879680735e-05 + ], + [ + 0.020358696360835093, + 5.1604608643063266e-05 + ], + [ + 0.020359738189422494, + 5.034496759126483e-05 + ], + [ + 0.020359861303042348, + 5.035633882222168e-05 + ], + [ + 0.02037650669146729, + 3.4134070593161425e-05 + ], + [ + 0.02037921079444016, + 3.58431817201188e-05 + ], + [ + 0.020375258180587275, + 3.343075862383138e-05 + ], + [ + 0.059385722768951044, + 0.03496517476485761 + ], + [ + 0.06554232014504391, + 0.03265997882875149 + ], + [ + 0.06554263607087063, + 0.032651043507275435 + ], + [ + 0.06794208839987914, + 0.03219350062818904 + ], + [ + 0.06807768756335286, + 0.009263171724703256 + ], + [ + 0.06809341412533576, + 0.009337076389745125 + ], + [ + 0.0685105455489281, + 0.008558753751782389 + ], + [ + 0.06865173862128215, + 0.008437669662575531 + ], + [ + 0.06999395767923089, + 0.007319150426208787 + ], + [ + 0.07500000271404605, + 0.0021866030701289674 + ], + [ + 0.0769230777427713, + 9.565622738350044e-10 + ], + [ + 0.07692307712744573, + 2.3984947361554987e-10 + ] + ] +} \ No newline at end of file diff --git a/theseus/configs/toffoli_post.json b/pytheus/graphs/Gates/toffoli_post/config_toffoli_post.json similarity index 100% rename from theseus/configs/toffoli_post.json rename to pytheus/graphs/Gates/toffoli_post/config_toffoli_post.json diff --git a/pytheus/graphs/Gates/toffoli_post/graph_toffoli_post.aux b/pytheus/graphs/Gates/toffoli_post/graph_toffoli_post.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Gates/toffoli_post/graph_toffoli_post.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Gates/toffoli_post/graph_toffoli_post.pdf b/pytheus/graphs/Gates/toffoli_post/graph_toffoli_post.pdf new file mode 100644 index 00000000..ee135c31 Binary files /dev/null and b/pytheus/graphs/Gates/toffoli_post/graph_toffoli_post.pdf differ diff --git a/pytheus/graphs/Gates/toffoli_post/graph_toffoli_post.tex b/pytheus/graphs/Gates/toffoli_post/graph_toffoli_post.tex new file mode 100644 index 00000000..6bcbd572 --- /dev/null +++ b/pytheus/graphs/Gates/toffoli_post/graph_toffoli_post.tex @@ -0,0 +1,53 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [circle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-11.25, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-11.25, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (2) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/toffoli_post/clean-11-12-0.1111_0.0000.json b/pytheus/graphs/Gates/toffoli_post/plot_toffoli_post_clean-11-12-0.1111_0.0000.json similarity index 100% rename from theseus/graphs/toffoli_post/clean-11-12-0.1111_0.0000.json rename to pytheus/graphs/Gates/toffoli_post/plot_toffoli_post_clean-11-12-0.1111_0.0000.json diff --git a/pytheus/graphs/HighlyEntangledStates/.DS_Store b/pytheus/graphs/HighlyEntangledStates/.DS_Store new file mode 100644 index 00000000..fed1a7ff Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/.DS_Store differ diff --git a/pytheus/graphs/HighlyEntangledStates/BellGem3D/config_BellGem3D.json b/pytheus/graphs/HighlyEntangledStates/BellGem3D/config_BellGem3D.json new file mode 100644 index 00000000..3914ca4c --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/BellGem3D/config_BellGem3D.json @@ -0,0 +1,85 @@ +{ + "description": "Creation of a 3D Bell gem with 3 qutrids", + "bulk_thr": 0.1, + "edges_tried": 60, + "foldername": "BellGem3D_2anc_cr", + "ftol": 0.0001, + "loss_func": "cr", + "num_anc": 2, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 10, + "target_state": [ + "0000", + "0011", + "0022", + "1100", + "1111", + "1122", + "2200", + "2211", + "2222", + "0101", + "0112", + "0120", + "1201", + "1212", + "1220", + "2001", + "2012", + "2020", + "0202", + "0210", + "0221", + "1002", + "1010", + "1021", + "2102", + "2110", + "2121" + ], + "thresholds": [ + 0.1, + 0.001 + ], + "tries_per_edge": 3, + "unicolor": false, + "topopt": true, + "seed": 1984515497, + "in_nodes": [], + "out_nodes": [ + 0, + 1, + 2, + 3 + ], + "single_emitters": [], + "removed_connections": [], + "amplitudes": [], + "heralding_out": false, + "number_resolving": false, + "brutal_covers": false, + "save_hist": true, + "dimensions": [ + 3, + 3, + 3, + 3, + 1, + 1 + ], + "verts": [ + 0, + 1, + 2, + 3, + 4, + 5 + ], + "anc_detectors": [ + 4, + 5 + ] +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/BellGem3D/graph_BellGem3D.aux b/pytheus/graphs/HighlyEntangledStates/BellGem3D/graph_BellGem3D.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/BellGem3D/graph_BellGem3D.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/BellGem3D/graph_BellGem3D.pdf b/pytheus/graphs/HighlyEntangledStates/BellGem3D/graph_BellGem3D.pdf new file mode 100644 index 00000000..8e4acddc Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/BellGem3D/graph_BellGem3D.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/BellGem3D/graph_BellGem3D.tex b/pytheus/graphs/HighlyEntangledStates/BellGem3D/graph_BellGem3D.tex new file mode 100644 index 00000000..1e466496 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/BellGem3D/graph_BellGem3D.tex @@ -0,0 +1,100 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-20.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-15.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col2}, bend right=-10.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-5.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col2}, bend right=5.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col2}{col0}, bend right=10.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col2}{col1}, bend right=15.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col2}{col2}, bend right=20.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-18.75, opacity=0.9999910405002362] (0) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-3.75, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col2}, bend right=3.75, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col2}{col1}, bend right=11.25, opacity=0.999942990047972] (0) to (2); +\path[line width=4.0,bicolor={col2}{col2}, bend right=18.75, opacity=0.9997681410247022] (0) to (2); +\path[line width=4.0,bicolor={col0}{col2}, bend right=-15.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=15.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-15.0, opacity=0.7883220288889847] (0) to (5); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=0.7876221272373453] (0) to (5); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=15.0, opacity=0.7884041589212419] (0) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-20.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-15.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col2}, bend right=-10.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=-5.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col2}{col1}, bend right=5.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col2}{col0}, bend right=10.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col1}{col2}, bend right=15.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col2}{col2}, bend right=20.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-20.0, opacity=0.9947466819988681] (1) to (3); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-15.0, opacity=0.9925365373341639] (1) to (3); +\path[line width=4.0,bicolor={col0}{col2}, bend right=-10.0, opacity=0.9973658174134582] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=-5.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=0.9849601571301093] (1) to (3); +\path[line width=4.0,bicolor_neg={col2}{col1}, bend right=5.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=10.0, opacity=0.984687334590245] (1) to (3); +\path[line width=4.0,bicolor_neg={col1}{col2}, bend right=15.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col2}{col2}, bend right=20.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-15.0, opacity=0.4281782893698577] (1) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.4283475819049167] (1) to (4); +\path[line width=4.0,bicolor={col2}{col0}, bend right=15.0, opacity=0.4276989090869502] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-15.0, opacity=0.3990129197412357] (1) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.4019950521445899] (1) to (5); +\path[line width=4.0,bicolor={col2}{col0}, bend right=15.0, opacity=0.4020315020617134] (1) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-15.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col2}{col2}, bend right=15.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-15.0, opacity=0.843828626682493] (2) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.8428311766366839] (2) to (4); +\path[line width=4.0,bicolor={col2}{col0}, bend right=15.0, opacity=0.8433175694796544] (2) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-15.0, opacity=0.42449963874847835] (3) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.4231775006316245] (3) to (4); +\path[line width=4.0,bicolor={col2}{col0}, bend right=15.0, opacity=0.42431144885900735] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-15.0, opacity=0.39631496423355167] (3) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.39497598487157953] (3) to (5); +\path[line width=4.0,bicolor={col2}{col0}, bend right=15.0, opacity=0.39654195455306573] (3) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/HighlyEntangledStates/BellGem3D/plot_BellGem3D_rough-58-513-0.0203_0.0001.json b/pytheus/graphs/HighlyEntangledStates/BellGem3D/plot_BellGem3D_rough-58-513-0.0203_0.0001.json new file mode 100644 index 00000000..a74d0f27 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/BellGem3D/plot_BellGem3D_rough-58-513-0.0203_0.0001.json @@ -0,0 +1,113 @@ +{ + "graph": { + "(0, 1, 0, 0)": -1.0, + "(2, 3, 2, 2)": -1.0, + "(3, 5, 1, 0)": 0.39497598487157953, + "(3, 5, 0, 0)": 0.39631496423355167, + "(3, 5, 2, 0)": 0.39654195455306573, + "(1, 5, 0, 0)": 0.3990129197412357, + "(1, 5, 1, 0)": 0.4019950521445899, + "(1, 5, 2, 0)": 0.4020315020617134, + "(3, 4, 1, 0)": 0.4231775006316245, + "(3, 4, 2, 0)": 0.42431144885900735, + "(3, 4, 0, 0)": 0.42449963874847835, + "(1, 4, 2, 0)": 0.4276989090869502, + "(1, 4, 0, 0)": 0.4281782893698577, + "(1, 4, 1, 0)": 0.4283475819049167, + "(0, 5, 1, 0)": -0.7876221272373453, + "(0, 5, 0, 0)": -0.7883220288889847, + "(0, 5, 2, 0)": -0.7884041589212419, + "(2, 4, 1, 0)": 0.8428311766366839, + "(2, 4, 2, 0)": 0.8433175694796544, + "(2, 4, 0, 0)": 0.843828626682493, + "(1, 3, 2, 0)": 0.984687334590245, + "(1, 3, 1, 1)": 0.9849601571301093, + "(1, 3, 0, 1)": -0.9925365373341639, + "(1, 3, 0, 0)": -0.9947466819988681, + "(1, 3, 0, 2)": 0.9973658174134582, + "(0, 2, 2, 2)": 0.9997681410247022, + "(0, 2, 2, 1)": 0.999942990047972, + "(0, 2, 0, 0)": 0.9999910405002362, + "(4, 5, 0, 0)": 1.0, + "(2, 3, 1, 1)": -1.0, + "(2, 3, 0, 0)": -1.0, + "(1, 3, 2, 2)": -1.0, + "(0, 1, 0, 1)": 1.0, + "(0, 1, 0, 2)": 1.0, + "(0, 1, 1, 0)": 1.0, + "(0, 1, 1, 1)": -1.0, + "(0, 1, 1, 2)": 1.0, + "(0, 1, 2, 0)": 1.0, + "(0, 1, 2, 1)": 1.0, + "(0, 1, 2, 2)": -1.0, + "(0, 2, 0, 1)": 1.0, + "(0, 2, 1, 2)": 1.0, + "(0, 3, 0, 2)": 1.0, + "(0, 3, 1, 1)": 1.0, + "(1, 3, 2, 1)": -1.0, + "(1, 3, 1, 2)": -1.0, + "(1, 3, 1, 0)": -1.0, + "(1, 2, 2, 2)": -1.0, + "(1, 2, 2, 1)": -1.0, + "(1, 2, 2, 0)": 1.0, + "(1, 2, 1, 2)": -1.0, + "(1, 2, 1, 1)": 1.0, + "(1, 2, 1, 0)": -1.0, + "(1, 2, 0, 2)": 1.0, + "(1, 2, 0, 1)": -1.0, + "(1, 2, 0, 0)": -1.0, + "(0, 3, 2, 0)": 1.0, + "(0, 2, 1, 0)": 1.0 + }, + "loss": [ + 0.02030428671652329, + 0.00010495985277347852 + ], + "seed": 138915780, + "history": [ + [ + 0.02020473611527973, + 0.0004757309206087079 + ], + [ + 0.020414522453732098, + 0.0006613454317144773 + ], + [ + 0.020400313652853552, + 0.0004978869849667777 + ], + [ + 0.020661554692820494, + 0.0007859128280478522 + ], + [ + 0.020459030171707582, + 0.0004939680122526546 + ], + [ + 0.020377153167217332, + 0.00042810854620534133 + ], + [ + 0.020401895595988595, + 0.000329354053479447 + ], + [ + 0.020670940118549197, + 0.0006209757780484271 + ], + [ + 0.020315364924728296, + 0.00017498438327079313 + ], + [ + 0.020309206088188758, + 0.0002586918768903157 + ], + [ + 0.02030428671652329, + 0.00010495985277347852 + ] + ] +} \ No newline at end of file diff --git a/theseus/configs/laflamme.json b/pytheus/graphs/HighlyEntangledStates/Laflamme/config_Laflamme.json similarity index 100% rename from theseus/configs/laflamme.json rename to pytheus/graphs/HighlyEntangledStates/Laflamme/config_Laflamme.json diff --git a/pytheus/graphs/HighlyEntangledStates/Laflamme/graph_Laflamme.aux b/pytheus/graphs/HighlyEntangledStates/Laflamme/graph_Laflamme.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/Laflamme/graph_Laflamme.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/Laflamme/graph_Laflamme.pdf b/pytheus/graphs/HighlyEntangledStates/Laflamme/graph_Laflamme.pdf new file mode 100644 index 00000000..e350d025 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/Laflamme/graph_Laflamme.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/Laflamme/graph_Laflamme.tex b/pytheus/graphs/HighlyEntangledStates/Laflamme/graph_Laflamme.tex new file mode 100644 index 00000000..a18be110 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/Laflamme/graph_Laflamme.tex @@ -0,0 +1,66 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [rectangle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [rectangle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.9999882205337679] (0) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=0.9998314792479389] (1) to (4); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.9962825036039819] (1) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (3) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (4) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-22-42-0.0588_0.0000.json b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-22-42-0.0588_0.0000.json new file mode 100644 index 00000000..be532a64 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-22-42-0.0588_0.0000.json @@ -0,0 +1,236 @@ +{ + "graph": { + "(0, 1, 0, 0)": -1.0, + "(3, 5, 0, 0)": -1.0, + "(1, 6, 0, 0)": 0.9962825036039819, + "(1, 4, 0, 0)": -0.9998314792479389, + "(0, 5, 0, 0)": -0.9999882205337679, + "(2, 5, 0, 0)": -1.0, + "(3, 6, 1, 0)": 1.0, + "(0, 2, 1, 1)": 1.0, + "(5, 7, 0, 0)": -1.0, + "(4, 5, 0, 0)": 1.0, + "(1, 7, 1, 0)": -1.0, + "(3, 7, 1, 0)": 1.0, + "(4, 5, 1, 0)": 1.0, + "(2, 6, 1, 0)": -1.0, + "(0, 6, 1, 0)": -1.0, + "(1, 7, 0, 0)": -1.0, + "(6, 7, 0, 0)": -1.0, + "(4, 7, 1, 0)": 1.0, + "(2, 3, 0, 0)": 1.0, + "(1, 2, 0, 1)": 1.0, + "(0, 4, 0, 0)": -1.0, + "(1, 4, 1, 1)": -1.0 + }, + "loss": [ + 0.058828129972147036, + 5.193568765604617e-06 + ], + "history": [ + [ + 0.00552210773297046, + 0.00018246978371105893 + ], + [ + 0.005480134031530359, + 0.00014967509609431495 + ], + [ + 0.005497474930674318, + 0.00022313728920331233 + ], + [ + 0.005396555156323535, + 0.00012498602838451056 + ], + [ + 0.005488148424574346, + 0.000249021747705358 + ], + [ + 0.005396134320401091, + 0.00015591620058685862 + ], + [ + 0.005201667615388428, + 0.00010723811536694772 + ], + [ + 0.005217647067484066, + 0.00020981752448312463 + ], + [ + 0.0061129560091807145, + 0.0007696400730576869 + ], + [ + 0.006138174462326673, + 0.00030792058063378036 + ], + [ + 0.005882115912385966, + 0.00022857932120246005 + ], + [ + 0.005590050634981525, + 0.00017039328010726162 + ], + [ + 0.005548488163704124, + 0.00013762927653948598 + ], + [ + 0.005665064868824232, + 0.0003333488389338779 + ], + [ + 0.006181664116629126, + 0.0007896209826664391 + ], + [ + 0.005619832012354609, + 0.00022752464188402488 + ], + [ + 0.005872986934185143, + 0.0004060184178649173 + ], + [ + 0.006366757673766155, + 0.0005491931691079532 + ], + [ + 0.007456105557971937, + 0.0015971049002438953 + ], + [ + 0.007624749031713063, + 0.0014473732665463146 + ], + [ + 0.00834732785355008, + 0.0004891447355154233 + ], + [ + 0.008314911952845061, + 0.0005972028747616154 + ], + [ + 0.00876100357021592, + 0.0005432383972900912 + ], + [ + 0.009949630606820747, + 0.0006927724773715394 + ], + [ + 0.010436953959723438, + 0.0011448024568376791 + ], + [ + 0.012948633854205416, + 0.0020560783490271017 + ], + [ + 0.01316517359590752, + 0.0020782802989919302 + ], + [ + 0.017166488958120563, + 0.004236705907099125 + ], + [ + 0.017030338399814493, + 0.003388267080894236 + ], + [ + 0.01714438680405239, + 0.003118762160019717 + ], + [ + 0.02021304967509785, + 0.006529188655395424 + ], + [ + 0.023962840671068575, + 0.009098512777257262 + ], + [ + 0.024406707843763975, + 0.006331089904735632 + ], + [ + 0.03294150521411543, + 0.009810002599798695 + ], + [ + 0.05667603480960792, + 0.0021273148517220175 + ], + [ + 0.056669070479354544, + 0.002157822829173983 + ], + [ + 0.056667057809591026, + 0.0021836287978670432 + ], + [ + 0.056671836988134494, + 0.002205226601434851 + ], + [ + 0.05669713132331089, + 0.0022367219976502373 + ], + [ + 0.05672491543125502, + 0.002270437019670113 + ], + [ + 0.056754404138181225, + 0.0022892975042893005 + ], + [ + 0.05679254320394511, + 0.0023146342369158024 + ], + [ + 0.05686421491504379, + 0.0024434021336139367 + ], + [ + 0.056929018763721695, + 0.002487826968467277 + ], + [ + 0.05690872359793031, + 0.002220796898544153 + ], + [ + 0.05716705098065167, + 0.002208681744013341 + ], + [ + 0.05724958172909733, + 0.0021610685265590623 + ], + [ + 0.057742147540248645, + 0.0013049746442341803 + ], + [ + 0.05794831632219344, + 0.0010955654365367717 + ], + [ + 0.05838429459151284, + 0.0007020670029899145 + ], + [ + 0.058828129972147036, + 5.193568765604617e-06 + ] + ] +} \ No newline at end of file diff --git a/theseus/graphs/HighlyEntangledStates/Laflamme/clean-22-48-0.0588_0.0000.json b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-22-48-0.0588_0.0000.json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/Laflamme/clean-22-48-0.0588_0.0000.json rename to pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-22-48-0.0588_0.0000.json diff --git a/theseus/graphs/HighlyEntangledStates/Laflamme/clean-23-48-0.0588_0.0001.json b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-23-48-0.0588_0.0001.json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/Laflamme/clean-23-48-0.0588_0.0001.json rename to pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-23-48-0.0588_0.0001.json diff --git a/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-24-48-0.0588_0.0000.json b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-24-48-0.0588_0.0000.json new file mode 100644 index 00000000..80496772 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-24-48-0.0588_0.0000.json @@ -0,0 +1,230 @@ +{ + "graph": { + "(0, 1, 0, 1)": 1.0, + "(4, 5, 0, 0)": 1.0, + "(4, 7, 0, 0)": 0.9997850722955809, + "(5, 7, 0, 0)": -1.0, + "(6, 7, 0, 0)": -1.0, + "(3, 6, 0, 0)": 1.0, + "(3, 4, 1, 1)": -1.0, + "(3, 4, 1, 0)": -1.0, + "(3, 4, 0, 1)": 1.0, + "(2, 7, 0, 0)": 1.0, + "(2, 6, 1, 0)": 1.0, + "(2, 3, 1, 1)": 1.0, + "(2, 3, 0, 1)": -1.0, + "(1, 5, 0, 0)": 1.0, + "(1, 2, 1, 1)": 1.0, + "(1, 2, 1, 0)": 1.0, + "(1, 2, 0, 0)": 1.0, + "(0, 5, 1, 0)": 1.0, + "(0, 4, 1, 1)": -1.0, + "(0, 4, 0, 1)": -1.0, + "(0, 3, 1, 0)": 1.0, + "(0, 3, 0, 0)": 1.0, + "(0, 1, 1, 1)": -1.0, + "(0, 2, 0, 1)": -1.0 + }, + "loss": [ + 0.05882353964155962, + 1.1548479394996036e-08 + ], + "history": [ + [ + 0.0031751862203370784, + 0.00021145392943333619 + ], + [ + 0.0031515821460681437, + 0.00019948510357037375 + ], + [ + 0.0031372644900831137, + 0.0001882822551454444 + ], + [ + 0.0030865856316566465, + 0.00014779955195898253 + ], + [ + 0.002977636666977479, + 0.00012004199872595045 + ], + [ + 0.002901267587065881, + 0.00011900421613486589 + ], + [ + 0.002926011465439027, + 0.00022847689745486566 + ], + [ + 0.0028958423124061383, + 0.0002564555975378413 + ], + [ + 0.0028180895295275565, + 0.00022321854260176632 + ], + [ + 0.002792946797900875, + 0.0002252181472580661 + ], + [ + 0.002866352060125532, + 0.0002118000732719283 + ], + [ + 0.0028130849894395515, + 0.0001515974382870766 + ], + [ + 0.00273739658885519, + 0.0002617527775951034 + ], + [ + 0.0026247415555759046, + 9.28127659042266e-05 + ], + [ + 0.0033798300116527624, + 0.00030383035731051944 + ], + [ + 0.0035323225398113944, + 0.0002703268317484353 + ], + [ + 0.003443616458308152, + 0.000267315657795697 + ], + [ + 0.004154288998464151, + 0.0004843306722445151 + ], + [ + 0.004076059683225108, + 0.0003707616452655049 + ], + [ + 0.005099554706459619, + 0.000752356187111114 + ], + [ + 0.005679637390942238, + 0.0007944622237219257 + ], + [ + 0.00680951296869825, + 0.0012863002132256218 + ], + [ + 0.006360510464998526, + 0.0014396654991968294 + ], + [ + 0.006516755645257111, + 0.0015741915942808493 + ], + [ + 0.007224667563135889, + 0.0018325041066818981 + ], + [ + 0.0076170945851051775, + 0.0018855515191742445 + ], + [ + 0.00860354536066954, + 0.002784426181474231 + ], + [ + 0.010913375991375207, + 0.003401692097946829 + ], + [ + 0.011578666708181529, + 0.0024870086487462917 + ], + [ + 0.011180024148162104, + 0.0019038232087732476 + ], + [ + 0.016583894031176882, + 0.006921610008633783 + ], + [ + 0.02246200750634042, + 0.0072208359064172 + ], + [ + 0.022357406315436035, + 0.0069853969985076425 + ], + [ + 0.025734027618310118, + 0.008807623833468559 + ], + [ + 0.028005569309945244, + 0.009114861037136657 + ], + [ + 0.03010805246501802, + 0.008218230049028663 + ], + [ + 0.03363697368667351, + 0.009827712245310982 + ], + [ + 0.05559294259655012, + 0.006533874802098105 + ], + [ + 0.055763130575476993, + 0.0038230583565148635 + ], + [ + 0.055900747375210114, + 0.003523118782011614 + ], + [ + 0.056218362003509825, + 0.0035541446167640656 + ], + [ + 0.05656262119025368, + 0.003102265248041469 + ], + [ + 0.05720362904260867, + 0.002865009790486095 + ], + [ + 0.05738088247887352, + 0.0025302808375854413 + ], + [ + 0.05734909482736217, + 0.0018375900428949654 + ], + [ + 0.05747417124215681, + 0.0018196130529414267 + ], + [ + 0.0581413670620875, + 0.0007641949700283313 + ], + [ + 0.05859380039568596, + 0.00026277940806340716 + ], + [ + 0.05882353964155962, + 1.1548479394996036e-08 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-24-52-0.0588_0.0000.json b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-24-52-0.0588_0.0000.json new file mode 100644 index 00000000..af5e0409 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-24-52-0.0588_0.0000.json @@ -0,0 +1,230 @@ +{ + "graph": { + "(0, 4, 0, 0)": 1.0, + "(0, 1, 0, 1)": 1.0, + "(1, 3, 0, 0)": 0.9949572885008191, + "(2, 3, 0, 0)": 1.0, + "(2, 3, 1, 1)": 1.0, + "(4, 5, 1, 0)": 1.0, + "(0, 1, 1, 0)": -1.0, + "(1, 7, 0, 0)": 1.0, + "(0, 1, 1, 1)": -1.0, + "(3, 4, 1, 1)": 1.0, + "(6, 7, 0, 0)": -1.0, + "(5, 6, 0, 0)": 1.0, + "(3, 5, 0, 0)": -1.0, + "(3, 4, 1, 0)": 1.0, + "(3, 4, 0, 0)": 1.0, + "(2, 7, 1, 0)": 1.0, + "(2, 6, 1, 0)": 1.0, + "(2, 3, 0, 1)": -1.0, + "(1, 2, 1, 1)": 1.0, + "(1, 2, 1, 0)": 1.0, + "(1, 2, 0, 0)": -1.0, + "(0, 7, 0, 0)": -1.0, + "(0, 4, 1, 0)": 1.0, + "(0, 4, 1, 1)": -1.0 + }, + "loss": [ + 0.05882916070026101, + 6.357194401673816e-06 + ], + "history": [ + [ + 0.004456729937118431, + 0.000293917503396246 + ], + [ + 0.004465425231547471, + 0.00030452993806229234 + ], + [ + 0.004457766619586856, + 0.000302459688358625 + ], + [ + 0.004513897324249672, + 0.00033832140539058475 + ], + [ + 0.004547957180753848, + 0.0003528608807172873 + ], + [ + 0.004428905700343377, + 0.00020435133730545285 + ], + [ + 0.004481207120880626, + 0.0002871383503152414 + ], + [ + 0.004421527237472023, + 0.00024057340046235165 + ], + [ + 0.004364609580650436, + 0.00019194138271116934 + ], + [ + 0.004317313172218062, + 0.00022747771553788265 + ], + [ + 0.004044915927566395, + 0.00022173304397810067 + ], + [ + 0.004097247223258993, + 0.00034479228097428205 + ], + [ + 0.0042677627992385725, + 0.00046074497621761967 + ], + [ + 0.004532652069831333, + 0.00028131874722792105 + ], + [ + 0.004419124600679281, + 0.00020570641688177904 + ], + [ + 0.004234900154217125, + 0.00017215406716275528 + ], + [ + 0.004372021811550497, + 0.00016212098404100317 + ], + [ + 0.004684522247975442, + 0.00038799699347957795 + ], + [ + 0.004701166905018317, + 0.0004476991518681528 + ], + [ + 0.00505146098064313, + 0.00036815666429290683 + ], + [ + 0.005815463554766254, + 0.00047079258496873777 + ], + [ + 0.005871152536065516, + 0.0006609507048437324 + ], + [ + 0.00568922012032691, + 0.000543064586892128 + ], + [ + 0.005787404613249558, + 0.000737910399376096 + ], + [ + 0.006735103172530232, + 0.0011447508466614353 + ], + [ + 0.006666469407295095, + 0.001275213049575341 + ], + [ + 0.007627694308894095, + 0.00162872545930004 + ], + [ + 0.0077763130448165185, + 0.0011542404582975951 + ], + [ + 0.010166252107380314, + 0.0020280310683686853 + ], + [ + 0.01454165603953217, + 0.0033845475557466864 + ], + [ + 0.021599556487214344, + 0.007291300991877803 + ], + [ + 0.0230264119364485, + 0.007115951455427649 + ], + [ + 0.02321296858432831, + 0.007046568265636655 + ], + [ + 0.027004949249251897, + 0.005838793111765717 + ], + [ + 0.02819354952290798, + 0.005968246126553223 + ], + [ + 0.041201373701004074, + 0.00903371486029847 + ], + [ + 0.05048093585244695, + 0.00978113262320468 + ], + [ + 0.05045990644153964, + 0.009717922557694325 + ], + [ + 0.04909354518708031, + 0.009312476234868972 + ], + [ + 0.049009809061311804, + 0.009278245985454903 + ], + [ + 0.05660598615510992, + 0.0025451912973907254 + ], + [ + 0.05658814379016408, + 0.0024615833924716 + ], + [ + 0.05657014890911449, + 0.002450767141746635 + ], + [ + 0.05660654000329668, + 0.002354344202212144 + ], + [ + 0.0566541950757381, + 0.0023237822158542754 + ], + [ + 0.056893199646895876, + 0.002029506055127306 + ], + [ + 0.05802898570366255, + 0.0013655229033893157 + ], + [ + 0.058577410157570675, + 0.0002757974654918893 + ], + [ + 0.05882916070026101, + 6.357194401673816e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-24-56-0.0587_0.0001.json b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-24-56-0.0587_0.0001.json new file mode 100644 index 00000000..b5b868fa --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-24-56-0.0587_0.0001.json @@ -0,0 +1,230 @@ +{ + "graph": { + "(0, 1, 1, 1)": -1.0, + "(5, 6, 0, 0)": -1.0, + "(4, 5, 1, 0)": 0.9799599682379634, + "(2, 5, 1, 0)": 0.996286451600401, + "(0, 1, 0, 1)": -0.9984057353404608, + "(3, 4, 1, 0)": 1.0, + "(5, 7, 0, 0)": 1.0, + "(4, 7, 0, 0)": 1.0, + "(3, 7, 0, 0)": 1.0, + "(3, 5, 0, 0)": 1.0, + "(3, 4, 1, 1)": -1.0, + "(2, 6, 0, 0)": 1.0, + "(2, 4, 0, 1)": 1.0, + "(2, 3, 1, 1)": 1.0, + "(2, 3, 0, 1)": 1.0, + "(1, 7, 0, 0)": -1.0, + "(1, 6, 1, 0)": 1.0, + "(1, 4, 0, 1)": 1.0, + "(1, 4, 0, 0)": 1.0, + "(0, 6, 1, 0)": 1.0, + "(0, 6, 0, 0)": -1.0, + "(0, 2, 0, 1)": -1.0, + "(0, 2, 0, 0)": 1.0, + "(2, 4, 1, 1)": 1.0 + }, + "loss": [ + 0.05866132536281454, + 0.00012860695216454499 + ], + "history": [ + [ + 0.004221729775665817, + 7.334886748089353e-05 + ], + [ + 0.004406198835324671, + 0.00025875352731263845 + ], + [ + 0.004401317224701384, + 0.0002495520590517497 + ], + [ + 0.0043006946668953105, + 0.00014250880800315002 + ], + [ + 0.004307295547675394, + 0.0001949289400379195 + ], + [ + 0.004094104404114396, + 8.320138002704258e-05 + ], + [ + 0.004203289914481045, + 0.00011926452597632586 + ], + [ + 0.0042958578871964415, + 0.00019456974046860864 + ], + [ + 0.004128507008906546, + 0.00013391112943406114 + ], + [ + 0.003972415979127009, + 5.414392866864848e-05 + ], + [ + 0.004909979201778825, + 0.0009046656544510201 + ], + [ + 0.004925094796920715, + 0.0007425485476909577 + ], + [ + 0.004958119632798796, + 0.0004086564947959337 + ], + [ + 0.004833149083731336, + 0.00032946893931540266 + ], + [ + 0.005264845785693195, + 0.0006364618311759385 + ], + [ + 0.004913206596975694, + 0.00044144067871398907 + ], + [ + 0.005058896367977961, + 0.00043706156132805596 + ], + [ + 0.0048481526313484125, + 0.00033290281784115194 + ], + [ + 0.005979054192671418, + 0.0011835672384822304 + ], + [ + 0.008419151097211919, + 0.0010976533367803576 + ], + [ + 0.008396271745478856, + 0.0008751951947097991 + ], + [ + 0.008630397588368699, + 0.0006894582760718082 + ], + [ + 0.012602351193417904, + 0.0022203002202572097 + ], + [ + 0.013249130958038036, + 0.0013154733903331106 + ], + [ + 0.015763996820083226, + 0.0018946289682667539 + ], + [ + 0.019139513952216358, + 0.005537601240330203 + ], + [ + 0.018948872939309913, + 0.0034190389929137366 + ], + [ + 0.019577633180243192, + 0.004108450529593299 + ], + [ + 0.021414585983755452, + 0.004009214674698169 + ], + [ + 0.02123736594339143, + 0.003715434530693229 + ], + [ + 0.021966918539087832, + 0.003983666117432172 + ], + [ + 0.025714290588730315, + 0.008814317060833687 + ], + [ + 0.026814528736324617, + 0.007509394622702503 + ], + [ + 0.03018272140758227, + 0.008346702208595791 + ], + [ + 0.030825693195987935, + 0.006783313378847744 + ], + [ + 0.03384304166967633, + 0.006751733735428367 + ], + [ + 0.05667701734382691, + 0.0028076829037363416 + ], + [ + 0.05666871897088155, + 0.00279474347886155 + ], + [ + 0.056680682173873564, + 0.0027050550643883398 + ], + [ + 0.05683943864118357, + 0.0028767148677156795 + ], + [ + 0.05698261001716032, + 0.002849881002359833 + ], + [ + 0.057102098745638985, + 0.0023828932892226984 + ], + [ + 0.057213816560341524, + 0.0022552538214206663 + ], + [ + 0.05745684750453539, + 0.0024798944113212373 + ], + [ + 0.05747720739196216, + 0.0021813031070754274 + ], + [ + 0.05766208083363755, + 0.0017385720267149019 + ], + [ + 0.057898012760908446, + 0.0017844341403986386 + ], + [ + 0.05807546115953588, + 0.0008183222124057421 + ], + [ + 0.05866132536281454, + 0.00012860695216454499 + ] + ] +} \ No newline at end of file diff --git a/theseus/graphs/HighlyEntangledStates/Laflamme/clean-24-56-0.0587_0.0002.json b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-24-56-0.0587_0.0002.json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/Laflamme/clean-24-56-0.0587_0.0002.json rename to pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-24-56-0.0587_0.0002.json diff --git a/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-24-56-0.0588_0.0000.json b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-24-56-0.0588_0.0000.json new file mode 100644 index 00000000..3475cdb3 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-24-56-0.0588_0.0000.json @@ -0,0 +1,230 @@ +{ + "graph": { + "(0, 1, 0, 1)": 1.0, + "(3, 6, 1, 0)": 1.0, + "(3, 4, 0, 0)": 0.9970000403918052, + "(4, 5, 0, 0)": 0.9991156804420933, + "(0, 7, 0, 0)": -0.9995115263078691, + "(5, 7, 0, 0)": -1.0, + "(4, 6, 1, 0)": 1.0, + "(3, 6, 0, 0)": 1.0, + "(3, 5, 1, 0)": 1.0, + "(3, 5, 0, 0)": -1.0, + "(3, 4, 0, 1)": -1.0, + "(2, 7, 0, 0)": -1.0, + "(2, 5, 0, 0)": -1.0, + "(2, 4, 1, 0)": 1.0, + "(2, 4, 0, 0)": -1.0, + "(1, 7, 0, 0)": 1.0, + "(1, 2, 1, 1)": -1.0, + "(1, 2, 1, 0)": -1.0, + "(0, 6, 1, 0)": -1.0, + "(0, 6, 0, 0)": -1.0, + "(0, 2, 1, 1)": 1.0, + "(0, 2, 0, 0)": -1.0, + "(0, 1, 1, 1)": -1.0, + "(2, 5, 1, 0)": 1.0 + }, + "loss": [ + 0.05882656375098283, + 3.4254838177094626e-06 + ], + "history": [ + [ + 0.007636130985031464, + 0.00019257049081045086 + ], + [ + 0.007638750104919212, + 0.00020753216715652112 + ], + [ + 0.007627266296361679, + 0.0002058999382027471 + ], + [ + 0.007622457737641808, + 0.00018782467025735272 + ], + [ + 0.0076974681705122006, + 0.0002515210106395216 + ], + [ + 0.007693486634855362, + 0.00024672249186330486 + ], + [ + 0.007522218310509032, + 8.408635808498932e-05 + ], + [ + 0.007800442073695901, + 0.00039591386337278767 + ], + [ + 0.007840484446124396, + 0.00038834747056681884 + ], + [ + 0.007666266150158085, + 0.00021388491885621086 + ], + [ + 0.007772873573911099, + 0.00034596332318936884 + ], + [ + 0.007821121246830542, + 0.00036280103660524254 + ], + [ + 0.008063841672647176, + 0.0003232839649985886 + ], + [ + 0.008130945528854405, + 0.0004175273265689672 + ], + [ + 0.0081841441172249, + 0.00030429602998982563 + ], + [ + 0.00831247474311736, + 0.0003552541480882354 + ], + [ + 0.00785955358497592, + 0.00037118920102552355 + ], + [ + 0.00773200973014343, + 0.0002640588670010935 + ], + [ + 0.008392344675493102, + 0.000872425752097894 + ], + [ + 0.00859531531213642, + 0.0007475886625426531 + ], + [ + 0.008453879103147321, + 0.0006293430426880242 + ], + [ + 0.009060065743191736, + 0.0011378462462068306 + ], + [ + 0.009449369164156507, + 0.0007081351058623175 + ], + [ + 0.009809748583282096, + 0.001112274749705322 + ], + [ + 0.010532362759360314, + 0.0008000534859758934 + ], + [ + 0.010699954550536628, + 0.0007446623919153961 + ], + [ + 0.010959160044446192, + 0.0010162210141390071 + ], + [ + 0.011772773321067853, + 0.0016358684730943818 + ], + [ + 0.02039689530753175, + 0.008182461401667118 + ], + [ + 0.03763803464539672, + 0.0032639442410783426 + ], + [ + 0.03761856687568865, + 0.003119520892913563 + ], + [ + 0.037709780102374246, + 0.0032383705842876642 + ], + [ + 0.03917832910163854, + 0.004372438238675835 + ], + [ + 0.04211614317994605, + 0.0057589708963659 + ], + [ + 0.04604738393523844, + 0.009661746476585908 + ], + [ + 0.05522263700497165, + 0.0037146250499310307 + ], + [ + 0.055186179016688874, + 0.0036896612505279425 + ], + [ + 0.05516458581707351, + 0.00368870699080448 + ], + [ + 0.05515686590660618, + 0.003714751440049513 + ], + [ + 0.05515468339411078, + 0.0036126085579964995 + ], + [ + 0.05521104939354038, + 0.0035722341302766303 + ], + [ + 0.055706112200877844, + 0.004031922116277231 + ], + [ + 0.05564186095139301, + 0.004200005469039314 + ], + [ + 0.05603211390597351, + 0.003197288859207559 + ], + [ + 0.05652131643832359, + 0.0033981293209578434 + ], + [ + 0.057156592656525285, + 0.001702377108753761 + ], + [ + 0.05758542991127069, + 0.001502317323050728 + ], + [ + 0.05814188419856814, + 0.001034540903631198 + ], + [ + 0.05882656375098283, + 3.4254838177094626e-06 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-24-64-0.0588_0.0000.json b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-24-64-0.0588_0.0000.json new file mode 100644 index 00000000..3638878e --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-24-64-0.0588_0.0000.json @@ -0,0 +1,230 @@ +{ + "graph": { + "(0, 4, 0, 1)": 1.0, + "(2, 3, 1, 1)": -1.0, + "(3, 6, 0, 0)": 0.9972097140408157, + "(5, 6, 0, 0)": -0.9983458208807878, + "(5, 7, 0, 0)": 0.9992351673621789, + "(3, 4, 0, 1)": -1.0, + "(0, 3, 1, 0)": 1.0, + "(6, 7, 0, 0)": -1.0, + "(2, 3, 0, 1)": -1.0, + "(2, 3, 1, 0)": 1.0, + "(4, 6, 0, 0)": -1.0, + "(1, 2, 1, 1)": -1.0, + "(1, 5, 0, 0)": -1.0, + "(3, 4, 1, 1)": -1.0, + "(3, 4, 1, 0)": 1.0, + "(2, 7, 0, 0)": 1.0, + "(1, 7, 1, 0)": -1.0, + "(1, 5, 1, 0)": 1.0, + "(1, 3, 0, 0)": -1.0, + "(1, 2, 0, 1)": -1.0, + "(0, 6, 1, 0)": -1.0, + "(0, 5, 0, 0)": -1.0, + "(0, 4, 1, 1)": -1.0, + "(0, 5, 1, 0)": -1.0 + }, + "loss": [ + 0.05882659467083362, + 3.4603894166762572e-06 + ], + "history": [ + [ + 0.004174348710090259, + 0.00010476276865445389 + ], + [ + 0.004156856119128749, + 0.0001018927813238868 + ], + [ + 0.004208946768474053, + 0.00015236450746669572 + ], + [ + 0.004187043000479673, + 0.00011144100139193203 + ], + [ + 0.004249296402171643, + 0.00019333476569982633 + ], + [ + 0.004357351293994616, + 0.0002183096103745008 + ], + [ + 0.004528989631241043, + 0.00019811918916201599 + ], + [ + 0.00453935649644055, + 0.00021377777300557455 + ], + [ + 0.004670982289995518, + 0.0002725781685686268 + ], + [ + 0.004465150942480789, + 0.0001265188569522513 + ], + [ + 0.004736684558824922, + 0.0002701392198199981 + ], + [ + 0.004635694022954273, + 0.00011439791877643213 + ], + [ + 0.005163416005411148, + 0.0002276544733136321 + ], + [ + 0.0062666380755562745, + 0.0002773485361990957 + ], + [ + 0.006986438688903918, + 0.0002897849619495352 + ], + [ + 0.006566270327429957, + 0.00031678020119230155 + ], + [ + 0.00659479700605492, + 0.0004032329426050252 + ], + [ + 0.007649479160945272, + 0.001235139756069592 + ], + [ + 0.009458750352074663, + 0.0016571969972288825 + ], + [ + 0.00967780491609127, + 0.0010656839878682156 + ], + [ + 0.013252123286802031, + 0.0016045335534553562 + ], + [ + 0.01745171370195331, + 0.002500992595691587 + ], + [ + 0.017308787414773708, + 0.0024544264662968995 + ], + [ + 0.01881766918447847, + 0.0029300704605665917 + ], + [ + 0.020863944394354683, + 0.003967227612061586 + ], + [ + 0.021706702726154048, + 0.0025652480182367654 + ], + [ + 0.021690033951852317, + 0.0025266052931827154 + ], + [ + 0.02680724074603902, + 0.004958742780366565 + ], + [ + 0.03166889881074997, + 0.007363068216825419 + ], + [ + 0.0321956866745674, + 0.007001969551236997 + ], + [ + 0.0318700196921331, + 0.006420267247964517 + ], + [ + 0.03344262293166933, + 0.007897065563858496 + ], + [ + 0.03415532716074776, + 0.006996444725663187 + ], + [ + 0.05365038652375642, + 0.008599844203784346 + ], + [ + 0.05424662108004852, + 0.008609953700685402 + ], + [ + 0.0563156261119131, + 0.0029664928737687113 + ], + [ + 0.056298613370157846, + 0.0029881551404792317 + ], + [ + 0.05642400461859476, + 0.003172968835874146 + ], + [ + 0.05647136375366568, + 0.002892038635344263 + ], + [ + 0.0568765857677922, + 0.00241284616270121 + ], + [ + 0.05681156195368009, + 0.002318485689765226 + ], + [ + 0.056939360453454824, + 0.0021420608758482285 + ], + [ + 0.05717350076004857, + 0.0023362003318100344 + ], + [ + 0.057448412624031886, + 0.0019433999227196352 + ], + [ + 0.057802268599324136, + 0.001597716992013276 + ], + [ + 0.05850623391005183, + 0.0003752924268647373 + ], + [ + 0.05853669824041241, + 0.00034710421281314296 + ], + [ + 0.05861183275604698, + 0.0003697197795593521 + ], + [ + 0.05882659467083362, + 3.4603894166762572e-06 + ] + ] +} \ No newline at end of file diff --git a/theseus/graphs/HighlyEntangledStates/Laflamme/clean-25-48-0.0588_0.0000.json b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-25-48-0.0588_0.0000.json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/Laflamme/clean-25-48-0.0588_0.0000.json rename to pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-25-48-0.0588_0.0000.json diff --git a/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-25-82-0.0588_0.0001.json b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-25-82-0.0588_0.0001.json new file mode 100644 index 00000000..35cf7501 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-25-82-0.0588_0.0001.json @@ -0,0 +1,227 @@ +{ + "graph": { + "(0, 2, 0, 0)": -1.0, + "(2, 3, 1, 0)": -1.0, + "(5, 6, 0, 0)": 1.0, + "(0, 4, 1, 0)": -0.9848274967739408, + "(6, 7, 0, 0)": -0.9976251859270241, + "(0, 4, 0, 0)": 1.0, + "(2, 3, 0, 1)": -1.0, + "(4, 7, 1, 0)": 1.0, + "(4, 5, 0, 0)": -1.0, + "(3, 7, 1, 0)": 1.0, + "(3, 7, 0, 0)": -1.0, + "(3, 5, 1, 0)": 1.0, + "(2, 5, 0, 0)": -1.0, + "(2, 7, 0, 0)": 1.0, + "(2, 3, 1, 1)": -1.0, + "(1, 6, 1, 0)": 1.0, + "(1, 6, 0, 0)": 1.0, + "(1, 5, 1, 0)": 1.0, + "(1, 3, 0, 0)": -1.0, + "(1, 2, 1, 1)": 1.0, + "(1, 2, 0, 1)": -1.0, + "(0, 7, 1, 0)": 1.0, + "(0, 7, 0, 0)": -1.0, + "(0, 4, 0, 1)": 1.0, + "(0, 6, 1, 0)": -1.0 + }, + "loss": [ + 0.0587760442934554, + 8.325275292797585e-05 + ], + "history": [ + [ + 0.004632396425069518, + 0.00010610484066708725 + ], + [ + 0.00459257701868343, + 8.600612739428914e-05 + ], + [ + 0.004653833571114041, + 0.00013387358887584355 + ], + [ + 0.004672678307318767, + 0.00018399476052999297 + ], + [ + 0.0043400652267042705, + 9.85214837401216e-05 + ], + [ + 0.004422877125436875, + 0.00017413831896184728 + ], + [ + 0.004400705797606319, + 0.00014297743109459304 + ], + [ + 0.00446236984108761, + 0.00012144210028730562 + ], + [ + 0.004701154088396109, + 0.00018968847211564555 + ], + [ + 0.005010326543455901, + 0.0002935079332299084 + ], + [ + 0.0047738232032259464, + 0.00015090100725489997 + ], + [ + 0.005052547532652052, + 8.311843539299257e-05 + ], + [ + 0.005156607563562621, + 0.00022881196547319682 + ], + [ + 0.006286493336331134, + 0.0004676923011383005 + ], + [ + 0.005707909096535957, + 0.00016381257410191807 + ], + [ + 0.005591037737209592, + 0.00022675398349780718 + ], + [ + 0.007320735138123591, + 0.0005958882623416928 + ], + [ + 0.007045947170633449, + 0.0006479336812350578 + ], + [ + 0.00681816210767594, + 0.0005181286354595249 + ], + [ + 0.0067799145808838945, + 0.0004245435329987002 + ], + [ + 0.009220287338344457, + 0.0008752988559199704 + ], + [ + 0.009262887583071588, + 0.0009457603327206465 + ], + [ + 0.011377336995175957, + 0.0013446601006444903 + ], + [ + 0.011321667616699616, + 0.001178452181322731 + ], + [ + 0.01414274419592998, + 0.0038211766807796366 + ], + [ + 0.015294702806325722, + 0.0031512316731118206 + ], + [ + 0.01895106626000176, + 0.0052745607811683914 + ], + [ + 0.017498909421113318, + 0.003994988295921265 + ], + [ + 0.026613693458531373, + 0.009248325100840615 + ], + [ + 0.028042552815196076, + 0.005242030414618015 + ], + [ + 0.033058080998541906, + 0.006698593087869464 + ], + [ + 0.03908544114740409, + 0.008917637542824708 + ], + [ + 0.040134372404343366, + 0.00863210114035029 + ], + [ + 0.03985868824295968, + 0.008977197679730708 + ], + [ + 0.04121264664430968, + 0.008616792999100453 + ], + [ + 0.041877317104274225, + 0.009543481803660048 + ], + [ + 0.054185029969665566, + 0.0048207081180369205 + ], + [ + 0.05418966744814202, + 0.004839720046112328 + ], + [ + 0.054403773796781185, + 0.005654561577451478 + ], + [ + 0.05468287038582842, + 0.0059590470163175535 + ], + [ + 0.05538888811229059, + 0.004419490876694687 + ], + [ + 0.05604165405936068, + 0.003503191241076009 + ], + [ + 0.056826946769900966, + 0.003670083052751516 + ], + [ + 0.05717895477154211, + 0.0027529985431754556 + ], + [ + 0.05768370113556165, + 0.002189846037564891 + ], + [ + 0.05831543537491124, + 0.0017501761385273484 + ], + [ + 0.05836334168938906, + 0.0005970749571930778 + ], + [ + 0.0587760442934554, + 8.325275292797585e-05 + ] + ] +} \ No newline at end of file diff --git a/theseus/graphs/HighlyEntangledStates/Laflamme/clean-26-48-0.0588_0.0000.json b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-26-48-0.0588_0.0000.json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/Laflamme/clean-26-48-0.0588_0.0000.json rename to pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-26-48-0.0588_0.0000.json diff --git a/theseus/graphs/HighlyEntangledStates/Laflamme/clean-26-80-0.0586_0.0002.json b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-26-80-0.0586_0.0002.json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/Laflamme/clean-26-80-0.0586_0.0002.json rename to pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-26-80-0.0586_0.0002.json diff --git a/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-26-80-0.0590_0.0002.json b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-26-80-0.0590_0.0002.json new file mode 100644 index 00000000..d83105bd --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-26-80-0.0590_0.0002.json @@ -0,0 +1,224 @@ +{ + "graph": { + "(0, 2, 1, 1)": 1.0, + "(0, 1, 0, 0)": -1.0, + "(1, 3, 1, 1)": -0.9790129812753234, + "(3, 4, 1, 0)": -0.9888385208843263, + "(1, 7, 0, 0)": -0.9901967214816539, + "(0, 7, 1, 0)": 0.9911957159845883, + "(1, 2, 0, 1)": 0.9919634050216917, + "(5, 6, 0, 0)": 0.9945365262255867, + "(1, 4, 1, 1)": -0.9958666040956516, + "(3, 6, 1, 0)": 0.9986047550310924, + "(0, 3, 1, 1)": 1.0, + "(0, 2, 0, 0)": 1.0, + "(5, 7, 0, 0)": 1.0, + "(4, 6, 0, 0)": -1.0, + "(4, 5, 1, 0)": 1.0, + "(3, 7, 1, 0)": 1.0, + "(3, 4, 0, 0)": 1.0, + "(2, 7, 1, 0)": 1.0, + "(2, 7, 0, 0)": -1.0, + "(1, 6, 1, 0)": 1.0, + "(1, 5, 1, 0)": 1.0, + "(1, 2, 0, 0)": 1.0, + "(0, 6, 1, 0)": -1.0, + "(0, 6, 0, 0)": 1.0, + "(0, 3, 0, 1)": -1.0, + "(3, 6, 0, 0)": 1.0 + }, + "loss": [ + 0.05896122681280891, + 0.000154480656488154 + ], + "history": [ + [ + 0.005733453469786154, + 0.0001339322214721772 + ], + [ + 0.005723869809245108, + 0.00012102950516712507 + ], + [ + 0.005715132734625983, + 0.00013004150951811955 + ], + [ + 0.005684710276878557, + 0.00011148506272118386 + ], + [ + 0.005652807769404133, + 7.494099715077418e-05 + ], + [ + 0.0056983942123051134, + 0.00013862217008620004 + ], + [ + 0.005631435129186846, + 0.00011963791196134554 + ], + [ + 0.005724713250462865, + 7.298936582378346e-05 + ], + [ + 0.005756867684935774, + 0.00018994740646649522 + ], + [ + 0.005465399910350999, + 0.00016303055146005274 + ], + [ + 0.0050056778748700514, + 0.00010706204820976062 + ], + [ + 0.005040969486579616, + 0.000269841243299096 + ], + [ + 0.005134732040458445, + 0.00014833807090275375 + ], + [ + 0.00624010774034256, + 0.00025038356363715764 + ], + [ + 0.006387688184459783, + 0.0002314638562571636 + ], + [ + 0.006736038203541295, + 0.0005459004872138129 + ], + [ + 0.0068253880054940375, + 0.0004892360640292859 + ], + [ + 0.006750588954994696, + 0.0004140172710059842 + ], + [ + 0.006770783199578134, + 0.0005074711741652749 + ], + [ + 0.007268603633241222, + 0.000765040907825032 + ], + [ + 0.007512466667575546, + 0.00038699316315693455 + ], + [ + 0.008511907094373106, + 0.0008451387569597957 + ], + [ + 0.010015787902134421, + 0.0018539812309941173 + ], + [ + 0.012331910956178471, + 0.002967503426591578 + ], + [ + 0.012953819824583213, + 0.0034862877207465504 + ], + [ + 0.01389005143399935, + 0.002365470276387338 + ], + [ + 0.014317754908583558, + 0.0027923649091543545 + ], + [ + 0.014417014691401775, + 0.002539101474604344 + ], + [ + 0.01433821662073298, + 0.0018852349541780278 + ], + [ + 0.01902688564400634, + 0.0035943836895465653 + ], + [ + 0.027189991487548748, + 0.00896115998086855 + ], + [ + 0.055545115945609624, + 0.0035289906973052787 + ], + [ + 0.05552012337120826, + 0.0035215676272399854 + ], + [ + 0.05551405770877127, + 0.003530413585913439 + ], + [ + 0.055513976114400565, + 0.003535179243467579 + ], + [ + 0.05551405654408792, + 0.003530481840424704 + ], + [ + 0.055521773421102316, + 0.0035276026865646015 + ], + [ + 0.055559210980149154, + 0.003621293611398624 + ], + [ + 0.05574101183025704, + 0.0037589217594132807 + ], + [ + 0.05596869131994564, + 0.0038613543531720307 + ], + [ + 0.05624193986103798, + 0.0036031769885538356 + ], + [ + 0.05623503314738798, + 0.0031541996897563873 + ], + [ + 0.05687759288486438, + 0.0036841294635628907 + ], + [ + 0.057046592310469935, + 0.003091948686092527 + ], + [ + 0.05779356770234445, + 0.0013000969949513719 + ], + [ + 0.05802250221094141, + 0.0009071080014387833 + ], + [ + 0.05896122681280891, + 0.000154480656488154 + ] + ] +} \ No newline at end of file diff --git a/theseus/graphs/HighlyEntangledStates/Laflamme/clean-27-48-0.0588_0.0000.json b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-27-48-0.0588_0.0000.json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/Laflamme/clean-27-48-0.0588_0.0000.json rename to pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-27-48-0.0588_0.0000.json diff --git a/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-27-80-0.0588_0.0000.json b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-27-80-0.0588_0.0000.json new file mode 100644 index 00000000..2e2f1361 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-27-80-0.0588_0.0000.json @@ -0,0 +1,221 @@ +{ + "graph": { + "(0, 1, 0, 1)": -1.0, + "(1, 5, 1, 0)": -1.0, + "(2, 3, 1, 0)": -1.0, + "(2, 7, 1, 0)": -0.9992840775439791, + "(2, 7, 0, 0)": -0.9995089744604506, + "(1, 3, 0, 0)": 1.0, + "(2, 3, 0, 0)": -1.0, + "(6, 7, 0, 0)": -1.0, + "(4, 7, 1, 0)": -1.0, + "(4, 5, 1, 0)": 1.0, + "(4, 5, 0, 0)": 1.0, + "(3, 4, 1, 1)": -1.0, + "(3, 4, 1, 0)": 1.0, + "(2, 3, 0, 1)": 1.0, + "(2, 3, 1, 1)": 1.0, + "(1, 6, 1, 0)": -1.0, + "(1, 5, 0, 0)": 1.0, + "(1, 4, 0, 1)": -1.0, + "(1, 3, 1, 0)": -1.0, + "(1, 2, 0, 1)": -1.0, + "(1, 2, 0, 0)": 1.0, + "(0, 7, 1, 0)": -1.0, + "(0, 6, 1, 0)": -1.0, + "(0, 5, 0, 0)": -1.0, + "(0, 3, 1, 0)": 1.0, + "(0, 2, 0, 0)": 1.0, + "(0, 2, 1, 1)": 1.0 + }, + "loss": [ + 0.05882386320864841, + 3.7682537989969234e-07 + ], + "history": [ + [ + 0.00541429680934935, + 0.00012181291309609765 + ], + [ + 0.005416455181743274, + 0.0001261332937940729 + ], + [ + 0.005557823443058996, + 0.0003058568299810771 + ], + [ + 0.005534237243895124, + 9.782927902168836e-05 + ], + [ + 0.005519691181568143, + 0.00012472175781386152 + ], + [ + 0.005409805860964512, + 0.0001249800587583838 + ], + [ + 0.004965467941647095, + 8.285637206606467e-05 + ], + [ + 0.0049750022884186285, + 0.0002074287629556526 + ], + [ + 0.00487845827674982, + 4.895550789740799e-05 + ], + [ + 0.005052893522257351, + 0.0001340228535093857 + ], + [ + 0.004776046167353831, + 0.00018621218917025395 + ], + [ + 0.004560893386288178, + 0.0001421927631818365 + ], + [ + 0.004138065305739125, + 0.00024306768454873673 + ], + [ + 0.004146771087623069, + 0.00029938436371224064 + ], + [ + 0.004385332974818024, + 0.000321217736161894 + ], + [ + 0.004750564729308238, + 0.0005977116401707505 + ], + [ + 0.004473547391889543, + 0.000264469014498947 + ], + [ + 0.0041818843186854915, + 0.00028420945152074495 + ], + [ + 0.0048027730769808485, + 0.0005923872320845458 + ], + [ + 0.005690387769551997, + 0.0008772316316708606 + ], + [ + 0.006004799312499642, + 0.0006368470493617329 + ], + [ + 0.0076891979861677395, + 0.0008659216555524374 + ], + [ + 0.008578573286231794, + 0.0005005022662956105 + ], + [ + 0.010360003483601776, + 0.0009353549660023885 + ], + [ + 0.011097762704585734, + 0.0008338998630017525 + ], + [ + 0.012456261424232062, + 0.0012663392988606637 + ], + [ + 0.013388046364598338, + 0.0021004666781644366 + ], + [ + 0.013241632622152721, + 0.0016838235822529413 + ], + [ + 0.014037819125430229, + 0.0021572902510986758 + ], + [ + 0.014999412104501841, + 0.0023842576364243584 + ], + [ + 0.019740947956889188, + 0.0038728610760148108 + ], + [ + 0.026575934739413, + 0.007539771827900887 + ], + [ + 0.027893059663176345, + 0.007291328239818373 + ], + [ + 0.02810570594094497, + 0.007907043803947134 + ], + [ + 0.03187812769725695, + 0.009436450659572215 + ], + [ + 0.0381571820787755, + 0.006578819285303017 + ], + [ + 0.045720387427445774, + 0.007434592475758395 + ], + [ + 0.05500188408735773, + 0.008529534220135693 + ], + [ + 0.05602484517922546, + 0.003782953881305895 + ], + [ + 0.05600784572231032, + 0.0035584950413684036 + ], + [ + 0.05618147275936336, + 0.0037888877888030414 + ], + [ + 0.05641091052812697, + 0.003704459845707997 + ], + [ + 0.05731097866333679, + 0.0018632313700387426 + ], + [ + 0.057976884793604966, + 0.0011137926833825196 + ], + [ + 0.0585753545687806, + 0.0004968167918889543 + ], + [ + 0.05882386320864841, + 3.7682537989969234e-07 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-28-96-0.0154_0.0000.json b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-28-96-0.0154_0.0000.json new file mode 100644 index 00000000..4efb3333 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/Laflamme/other_solutions/clean-28-96-0.0154_0.0000.json @@ -0,0 +1,218 @@ +{ + "graph": { + "(0, 3, 0, 1)": 1.0, + "(6, 7, 0, 0)": 1.0, + "(0, 3, 0, 0)": -1.0, + "(5, 7, 0, 0)": 1.0, + "(5, 6, 0, 0)": -1.0, + "(4, 7, 1, 0)": -1.0, + "(4, 7, 0, 0)": -1.0, + "(4, 6, 0, 0)": 1.0, + "(4, 5, 1, 0)": 1.0, + "(3, 6, 1, 0)": -1.0, + "(3, 6, 0, 0)": 1.0, + "(2, 6, 0, 0)": -1.0, + "(2, 5, 0, 0)": 1.0, + "(2, 3, 1, 1)": 1.0, + "(2, 3, 1, 0)": 1.0, + "(1, 7, 1, 0)": 1.0, + "(1, 7, 0, 0)": 1.0, + "(1, 4, 1, 1)": -1.0, + "(1, 4, 0, 1)": -1.0, + "(1, 3, 1, 1)": -1.0, + "(1, 3, 1, 0)": -1.0, + "(1, 3, 0, 1)": 1.0, + "(1, 3, 0, 0)": 1.0, + "(1, 2, 1, 1)": 1.0, + "(1, 2, 0, 1)": -1.0, + "(0, 7, 1, 0)": 1.0, + "(0, 4, 1, 0)": -1.0, + "(0, 5, 0, 0)": -1.0 + }, + "loss": [ + 0.01538461538461533, + 0.0 + ], + "history": [ + [ + 0.008201000345058773, + 0.00030147059538099263 + ], + [ + 0.008230932476105512, + 0.00042894488754452453 + ], + [ + 0.00793730763763456, + 0.00021757108437781003 + ], + [ + 0.007961635501853692, + 0.00022504205169160407 + ], + [ + 0.0075562822893293635, + 0.00018107638672160142 + ], + [ + 0.007462834554199493, + 0.00013449112969110555 + ], + [ + 0.007340336592406849, + 0.00026680193085393267 + ], + [ + 0.00715122843866367, + 0.0001521547537838286 + ], + [ + 0.007018885050621981, + 0.00020249719754039663 + ], + [ + 0.007204292799440792, + 0.00019948443782780156 + ], + [ + 0.007218461758527361, + 0.0002739073604867137 + ], + [ + 0.00685964139816353, + 0.0002569632519736631 + ], + [ + 0.006799958520124272, + 0.0005033952840389766 + ], + [ + 0.0064570016360315785, + 0.00028237234562422664 + ], + [ + 0.006513087672915807, + 0.00022034590454622638 + ], + [ + 0.006547884633085754, + 0.0003679987989866351 + ], + [ + 0.00656007096611555, + 0.00045239490464388243 + ], + [ + 0.006489443112177806, + 0.0003975923449053287 + ], + [ + 0.006964631774054819, + 0.0008261626737020578 + ], + [ + 0.0068831577237575825, + 0.0007061402857405641 + ], + [ + 0.006602066789209049, + 0.0004183477973392913 + ], + [ + 0.007190178262412195, + 0.0009504756917868562 + ], + [ + 0.00783922548274163, + 0.0014729404631315113 + ], + [ + 0.008433195978539088, + 0.001009701669126617 + ], + [ + 0.009348786838211609, + 0.0008806564904458858 + ], + [ + 0.009445316807378257, + 0.0009641937310086446 + ], + [ + 0.009761704701981122, + 0.0011476444082954007 + ], + [ + 0.01126327504707103, + 0.0014727933433990037 + ], + [ + 0.011215187268273752, + 0.0017005919895480837 + ], + [ + 0.011125449255014797, + 0.0014693138059533872 + ], + [ + 0.020096505677571264, + 0.0032281800015452333 + ], + [ + 0.015385913323002431, + 9.231711286739053e-05 + ], + [ + 0.0153691126833152, + 9.36742936437085e-05 + ], + [ + 0.015353275544729206, + 9.58118963737542e-05 + ], + [ + 0.015345709977080735, + 0.00010315767693647171 + ], + [ + 0.015347236975546186, + 0.00010478803264180048 + ], + [ + 0.015355146317274304, + 0.00011995141290732647 + ], + [ + 0.015380889178244872, + 0.00013026478780375772 + ], + [ + 0.015411870434267727, + 0.00017402141460998166 + ], + [ + 0.015412594195421403, + 0.00017811427922032053 + ], + [ + 0.015379929136264514, + 0.00013224941977496574 + ], + [ + 0.015404614180602128, + 0.00013904574280720894 + ], + [ + 0.015512800495604773, + 0.00010903003633777608 + ], + [ + 0.015446138317156244, + 4.2542947659374164e-05 + ], + [ + 0.01538461538461533, + 0.0 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/Laflamme/plot_Laflamme_clean-22-42-0.0588_0.0000.json b/pytheus/graphs/HighlyEntangledStates/Laflamme/plot_Laflamme_clean-22-42-0.0588_0.0000.json new file mode 100644 index 00000000..0d98cad7 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/Laflamme/plot_Laflamme_clean-22-42-0.0588_0.0000.json @@ -0,0 +1,236 @@ +{ + "graph": { + "(0, 1, 0, 0)": 1.0, + "(3, 5, 0, 0)": 1.0, + "(1, 6, 0, 0)": 0.9962825036039819, + "(1, 4, 0, 0)": -0.9998314792479389, + "(0, 5, 0, 0)": 0.9999882205337679, + "(2, 5, 0, 0)": 1.0, + "(3, 6, 1, 0)": -1.0, + "(0, 2, 1, 1)": 1.0, + "(5, 7, 0, 0)": 1.0, + "(4, 5, 0, 0)": 1.0, + "(1, 7, 1, 0)": 1.0, + "(3, 7, 1, 0)": 1.0, + "(4, 5, 1, 0)": 1.0, + "(2, 6, 1, 0)": 1.0, + "(0, 6, 1, 0)": 1.0, + "(1, 7, 0, 0)": 1.0, + "(6, 7, 0, 0)": 1.0, + "(4, 7, 1, 0)": -1.0, + "(2, 3, 0, 0)": 1.0, + "(1, 2, 0, 1)": -1.0, + "(0, 4, 0, 0)": 1.0, + "(1, 4, 1, 1)": -1.0 + }, + "loss": [ + 0.058828129972147036, + 5.193568765604617e-06 + ], + "history": [ + [ + 0.00552210773297046, + 0.00018246978371105893 + ], + [ + 0.005480134031530359, + 0.00014967509609431495 + ], + [ + 0.005497474930674318, + 0.00022313728920331233 + ], + [ + 0.005396555156323535, + 0.00012498602838451056 + ], + [ + 0.005488148424574346, + 0.000249021747705358 + ], + [ + 0.005396134320401091, + 0.00015591620058685862 + ], + [ + 0.005201667615388428, + 0.00010723811536694772 + ], + [ + 0.005217647067484066, + 0.00020981752448312463 + ], + [ + 0.0061129560091807145, + 0.0007696400730576869 + ], + [ + 0.006138174462326673, + 0.00030792058063378036 + ], + [ + 0.005882115912385966, + 0.00022857932120246005 + ], + [ + 0.005590050634981525, + 0.00017039328010726162 + ], + [ + 0.005548488163704124, + 0.00013762927653948598 + ], + [ + 0.005665064868824232, + 0.0003333488389338779 + ], + [ + 0.006181664116629126, + 0.0007896209826664391 + ], + [ + 0.005619832012354609, + 0.00022752464188402488 + ], + [ + 0.005872986934185143, + 0.0004060184178649173 + ], + [ + 0.006366757673766155, + 0.0005491931691079532 + ], + [ + 0.007456105557971937, + 0.0015971049002438953 + ], + [ + 0.007624749031713063, + 0.0014473732665463146 + ], + [ + 0.00834732785355008, + 0.0004891447355154233 + ], + [ + 0.008314911952845061, + 0.0005972028747616154 + ], + [ + 0.00876100357021592, + 0.0005432383972900912 + ], + [ + 0.009949630606820747, + 0.0006927724773715394 + ], + [ + 0.010436953959723438, + 0.0011448024568376791 + ], + [ + 0.012948633854205416, + 0.0020560783490271017 + ], + [ + 0.01316517359590752, + 0.0020782802989919302 + ], + [ + 0.017166488958120563, + 0.004236705907099125 + ], + [ + 0.017030338399814493, + 0.003388267080894236 + ], + [ + 0.01714438680405239, + 0.003118762160019717 + ], + [ + 0.02021304967509785, + 0.006529188655395424 + ], + [ + 0.023962840671068575, + 0.009098512777257262 + ], + [ + 0.024406707843763975, + 0.006331089904735632 + ], + [ + 0.03294150521411543, + 0.009810002599798695 + ], + [ + 0.05667603480960792, + 0.0021273148517220175 + ], + [ + 0.056669070479354544, + 0.002157822829173983 + ], + [ + 0.056667057809591026, + 0.0021836287978670432 + ], + [ + 0.056671836988134494, + 0.002205226601434851 + ], + [ + 0.05669713132331089, + 0.0022367219976502373 + ], + [ + 0.05672491543125502, + 0.002270437019670113 + ], + [ + 0.056754404138181225, + 0.0022892975042893005 + ], + [ + 0.05679254320394511, + 0.0023146342369158024 + ], + [ + 0.05686421491504379, + 0.0024434021336139367 + ], + [ + 0.056929018763721695, + 0.002487826968467277 + ], + [ + 0.05690872359793031, + 0.002220796898544153 + ], + [ + 0.05716705098065167, + 0.002208681744013341 + ], + [ + 0.05724958172909733, + 0.0021610685265590623 + ], + [ + 0.057742147540248645, + 0.0013049746442341803 + ], + [ + 0.05794831632219344, + 0.0010955654365367717 + ], + [ + 0.05838429459151284, + 0.0007020670029899145 + ], + [ + 0.058828129972147036, + 5.193568765604617e-06 + ] + ] +} diff --git a/theseus/configs/shor.json b/pytheus/graphs/HighlyEntangledStates/Shor/config_shor.json similarity index 100% rename from theseus/configs/shor.json rename to pytheus/graphs/HighlyEntangledStates/Shor/config_shor.json diff --git a/pytheus/graphs/HighlyEntangledStates/Shor/graph_Shor.aux b/pytheus/graphs/HighlyEntangledStates/Shor/graph_Shor.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/Shor/graph_Shor.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/Shor/graph_Shor.pdf b/pytheus/graphs/HighlyEntangledStates/Shor/graph_Shor.pdf new file mode 100644 index 00000000..8b1016a1 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/Shor/graph_Shor.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/Shor/graph_Shor.tex b/pytheus/graphs/HighlyEntangledStates/Shor/graph_Shor.tex new file mode 100644 index 00000000..edc9c5cd --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/Shor/graph_Shor.tex @@ -0,0 +1,58 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.4270509831248424,1.7633557568774194) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (0.9270509831248424,2.8531695488854605) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-0.927050983124842,2.853169548885461) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-2.427050983124842,1.7633557568774196) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}5}; +\node[vertex] (6) at (-2.4270509831248424,-1.7633557568774192) [circle] {\color{fontcolor}6}; +\node[vertex] (7) at (-0.9270509831248427,-2.8531695488854605) [circle] {\color{fontcolor}7}; +\node[vertex] (8) at (0.9270509831248417,-2.853169548885461) [circle] {\color{fontcolor}8}; +\node[vertex] (9) at (2.427050983124842,-1.7633557568774196) [rectangle] {\color{fontcolor}9}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (0); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (6) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (8); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (7) to (9); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (8) to (9); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/shor/clean-12-8-0.1111_0.0000.json b/pytheus/graphs/HighlyEntangledStates/Shor/other_solutions/clean-12-8-0.1111_0.0000.json similarity index 100% rename from theseus/graphs/shor/clean-12-8-0.1111_0.0000.json rename to pytheus/graphs/HighlyEntangledStates/Shor/other_solutions/clean-12-8-0.1111_0.0000.json diff --git a/pytheus/graphs/HighlyEntangledStates/Shor/plot_Shor_clean-12-8-0.1111_0.0000.json b/pytheus/graphs/HighlyEntangledStates/Shor/plot_Shor_clean-12-8-0.1111_0.0000.json new file mode 100644 index 00000000..7b49ed9a --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/Shor/plot_Shor_clean-12-8-0.1111_0.0000.json @@ -0,0 +1,618 @@ +{ + "graph": { + "(1, 2, 0, 0)": 1.0, + "(0, 3, 0, 0)": 1.0, + "(0, 5, 0, 1)": 1.0, + "(2, 3, 1, 0)": 1.0, + "(2, 5, 1, 1)": 1.0, + "(3, 4, 1, 1)": 1.0, + "(4, 5, 0, 0)": 1.0, + "(6, 7, 1, 1)": 1.0, + "(6, 8, 0, 0)": 1.0, + "(7, 9, 0, 0)": 1.0, + "(8, 9, 1, 0)": 1.0, + "(1, 0, 1, 1)": 1.0 + }, + "loss": [ + 0.11111111111111116, + 0.0 + ], + "history": [ + [ + 0.0006569112035409441, + 2.4373456757875722e-05 + ], + [ + 0.0006486698475977049, + 1.5569839050599832e-05 + ], + [ + 0.0006477268111146905, + 1.4678209183216495e-05 + ], + [ + 0.0006474444423578696, + 1.4561149896175074e-05 + ], + [ + 0.000647191347424414, + 1.4446180511273887e-05 + ], + [ + 0.0006471825865409508, + 1.458691527633782e-05 + ], + [ + 0.0006467110296675127, + 1.4157973909578736e-05 + ], + [ + 0.0006465403481311638, + 1.4124423600825331e-05 + ], + [ + 0.0006464923310792736, + 1.4156419866129255e-05 + ], + [ + 0.0006464315823796474, + 1.4191006049268928e-05 + ], + [ + 0.0006466433037993768, + 1.4459008684686303e-05 + ], + [ + 0.000646227181495096, + 1.4086445255800939e-05 + ], + [ + 0.0006461780663291616, + 1.410198389906192e-05 + ], + [ + 0.0006461566560643783, + 1.4141793270194825e-05 + ], + [ + 0.0006461117698495222, + 1.4230105808921145e-05 + ], + [ + 0.0006460951559240646, + 1.420411510311137e-05 + ], + [ + 0.0006461128690652407, + 1.4271071714699879e-05 + ], + [ + 0.0006461112524832613, + 1.4211389214202619e-05 + ], + [ + 0.0006457820769139033, + 1.3987987553032433e-05 + ], + [ + 0.0006457299558486618, + 1.4000674342984354e-05 + ], + [ + 0.0006456021219164443, + 1.4070137751343026e-05 + ], + [ + 0.0006454065892106398, + 1.3809715223800367e-05 + ], + [ + 0.000645280231825085, + 1.3754240419161512e-05 + ], + [ + 0.0006451012917240151, + 1.3608733846592891e-05 + ], + [ + 0.0006452055342701657, + 1.3801197909613094e-05 + ], + [ + 0.0006451692466896697, + 1.3811276479591683e-05 + ], + [ + 0.0006452006583956837, + 1.388925407663777e-05 + ], + [ + 0.0006452755143622202, + 1.3958106320322017e-05 + ], + [ + 0.0006452731475434792, + 1.3969842329486504e-05 + ], + [ + 0.0006453701886139918, + 1.4174981580294954e-05 + ], + [ + 0.0006457583502609276, + 1.4595781192339174e-05 + ], + [ + 0.0006460513356537634, + 1.4933388872817588e-05 + ], + [ + 0.0006462456991130905, + 1.5233466668651552e-05 + ], + [ + 0.0006464790285500843, + 1.5488077834358016e-05 + ], + [ + 0.000646818855083442, + 1.5884870914861793e-05 + ], + [ + 0.0006471584754670356, + 1.633006766810219e-05 + ], + [ + 0.0006476281527746375, + 1.6893622319269497e-05 + ], + [ + 0.0006483155010869046, + 1.7584538289483476e-05 + ], + [ + 0.0006492298460992751, + 1.8613898341790502e-05 + ], + [ + 0.0006500259765779282, + 1.9419276473087166e-05 + ], + [ + 0.0006505746079358277, + 2.002776386444971e-05 + ], + [ + 0.0006514074932082448, + 2.097023089264738e-05 + ], + [ + 0.0006519119142356367, + 2.1517475621735116e-05 + ], + [ + 0.0006529673460324847, + 2.2623344660299693e-05 + ], + [ + 0.0006536305507606199, + 2.3310421685129867e-05 + ], + [ + 0.0006551374722674197, + 2.4935880791887577e-05 + ], + [ + 0.0006539193005078436, + 2.42328546637971e-05 + ], + [ + 0.0006546895226197114, + 2.5111864851323773e-05 + ], + [ + 0.0006559997728020628, + 2.643175641670048e-05 + ], + [ + 0.0006589854997441913, + 2.956066231685206e-05 + ], + [ + 0.0006609148781113738, + 3.156190417730187e-05 + ], + [ + 0.0006604407272823298, + 3.115144822818383e-05 + ], + [ + 0.000660545455383299, + 3.175883880235375e-05 + ], + [ + 0.0006634589783399703, + 3.506433686195631e-05 + ], + [ + 0.000664302073448364, + 3.5998851498297846e-05 + ], + [ + 0.0006683618354992316, + 3.956642321001347e-05 + ], + [ + 0.0006036568247935747, + 7.456145884598975e-06 + ], + [ + 0.0006029048984441676, + 6.861308758487894e-06 + ], + [ + 0.0006026169348611887, + 6.668870259574078e-06 + ], + [ + 0.0006023752466465249, + 6.534837666882787e-06 + ], + [ + 0.0006022454701821722, + 6.427129151442834e-06 + ], + [ + 0.0006020409755256306, + 6.255626147089188e-06 + ], + [ + 0.0006019454904152566, + 6.232814450002344e-06 + ], + [ + 0.0006018459998702319, + 6.209206284579771e-06 + ], + [ + 0.0006016628359859499, + 6.086695038320933e-06 + ], + [ + 0.0006016405019767523, + 6.234235929158949e-06 + ], + [ + 0.0006020782167199812, + 6.652301558385254e-06 + ], + [ + 0.0006019525414650007, + 6.649246208967341e-06 + ], + [ + 0.0006024135195984437, + 7.021718686606171e-06 + ], + [ + 0.0006033508340027582, + 7.80105405451259e-06 + ], + [ + 0.0006024720886772528, + 7.061360801641214e-06 + ], + [ + 0.0006033299112739865, + 8.125573622841387e-06 + ], + [ + 0.0006018203152589052, + 6.843091809316526e-06 + ], + [ + 0.0006008924820066763, + 5.743059049212462e-06 + ], + [ + 0.0006003434650327932, + 5.508534853482239e-06 + ], + [ + 0.0006018026397777154, + 2.8848681723481207e-06 + ], + [ + 0.0006032622503223672, + 4.057044964089762e-06 + ], + [ + 0.0006017157365142412, + 2.8683295976161816e-06 + ], + [ + 0.0006013354472890198, + 3.082342708848884e-06 + ], + [ + 0.0006052786078687422, + 7.984668152216656e-06 + ], + [ + 0.0006061807544508468, + 8.960058312856845e-06 + ], + [ + 0.0006092398300577839, + 1.2253108855331263e-05 + ], + [ + 0.0006047954583244808, + 8.139629168457674e-06 + ], + [ + 0.0006206064370269937, + 2.2047559406490613e-05 + ], + [ + 0.0006148332595296013, + 1.7967680689401355e-05 + ], + [ + 0.0006163764433195773, + 2.0751915076888672e-05 + ], + [ + 0.0006184280800939357, + 2.284198343349697e-05 + ], + [ + 0.0006174543577268654, + 2.3042024219210866e-05 + ], + [ + 0.0006170237536862189, + 2.2660893169490492e-05 + ], + [ + 0.0006210840816487373, + 1.4025007387896693e-05 + ], + [ + 0.000611269306264095, + 3.4368599283185475e-06 + ], + [ + 0.0006110382338558873, + 3.3797616495467864e-06 + ], + [ + 0.000560766011875824, + 1.053282234098063e-06 + ], + [ + 0.0005607781801112433, + 1.0957767643260397e-06 + ], + [ + 0.0005608621058574847, + 1.0858925781898066e-06 + ], + [ + 0.0005630437300382374, + 3.6135144145799103e-06 + ], + [ + 0.0005637799486237771, + 4.4827759548837776e-06 + ], + [ + 0.0005569308455769528, + 2.9969082671055247e-07 + ], + [ + 0.0005568345500174265, + 2.2822385870036044e-07 + ], + [ + 0.000556755999755465, + 1.7514611727609264e-07 + ], + [ + 0.0005566920361778083, + 1.3760730044332092e-07 + ], + [ + 0.000556674988951622, + 2.7353520593020875e-07 + ], + [ + 0.0005563560203544204, + 3.045455232442151e-08 + ], + [ + 0.0006970369666589038, + 7.953864593623905e-07 + ], + [ + 0.0005763290980781433, + 1.2876081831869612e-06 + ], + [ + 0.0005801692596183461, + 2.7739582175723143e-07 + ], + [ + 0.0005799368842218655, + 1.7343377989309516e-07 + ], + [ + 0.0005797484485637883, + 1.230702376675552e-07 + ], + [ + 0.0015237610659762924, + 1.641433549415261e-05 + ], + [ + 0.0015384754746130547, + 2.3692889706827813e-06 + ], + [ + 0.0016971180933573748, + 2.422767329335329e-05 + ], + [ + 0.0015408320493115468, + 4.884981308350689e-15 + ], + [ + 0.0015408320493115468, + 4.884981308350689e-15 + ], + [ + 0.0015408320493115468, + 4.884981308350689e-15 + ], + [ + 0.0015408320493115468, + 4.884981308350689e-15 + ], + [ + 0.0015408320493115468, + 4.884981308350689e-15 + ], + [ + 0.0015408320498523365, + 5.473399511402022e-13 + ], + [ + 0.0015408320493066618, + 0.0 + ], + [ + 0.0015408320493066618, + 0.0 + ], + [ + 0.0015408320493066618, + 0.0 + ], + [ + 0.0015408320493066618, + 0.0 + ], + [ + 0.0015408320493066618, + 0.0 + ], + [ + 0.0015408320493066618, + 0.0 + ], + [ + 0.0015408320493066618, + 0.0 + ], + [ + 0.0034563865835762764, + 1.5572467718660832e-06 + ], + [ + 0.003456662732742255, + 2.5808118435666216e-06 + ], + [ + 0.0034602295641621428, + 2.2104412411572127e-08 + ], + [ + 0.0034602380543165, + 3.06536286354131e-08 + ], + [ + 0.003460216924583759, + 9.376906917601957e-09 + ], + [ + 0.003460210506276651, + 2.9139507473630033e-09 + ], + [ + 0.0034602076124568004, + 0.0 + ], + [ + 0.010806890920991408, + 0.0007260320331103909 + ], + [ + 0.013513514184077535, + 0.0001882376500693672 + ], + [ + 0.013636378236984603, + 6.227795054802865e-05 + ], + [ + 0.01369863033906804, + 2.0773405218221797e-10 + ], + [ + 0.013698630136989576, + 3.3306690738754696e-15 + ], + [ + 0.013698630136986356, + 0.0 + ], + [ + 0.013698630136986356, + 0.0 + ], + [ + 0.013698630136986356, + 0.0 + ], + [ + 0.03013045863153163, + 0.00018052952678881962 + ], + [ + 0.03030320057937208, + 1.8108489763246638e-07 + ], + [ + 0.03030303042485849, + 1.295614726615213e-10 + ], + [ + 0.030303030426575228, + 1.313871234032149e-10 + ], + [ + 0.030303030421899302, + 1.2641443447591882e-10 + ], + [ + 0.06466296889023004, + 0.01087252710728448 + ], + [ + 0.10000000005880705, + 0.012196859450492537 + ], + [ + 0.11111111111204375, + 1.1803891197814664e-12 + ], + [ + 0.11111111115928152, + 6.096567695124122e-11 + ], + [ + 0.11111111111111116, + 0.0 + ] + ] +} diff --git a/theseus/configs/steane.json b/pytheus/graphs/HighlyEntangledStates/Steane/config_steane.json similarity index 68% rename from theseus/configs/steane.json rename to pytheus/graphs/HighlyEntangledStates/Steane/config_steane.json index 04da2ff8..b3fc7a5b 100644 --- a/theseus/configs/steane.json +++ b/pytheus/graphs/HighlyEntangledStates/Steane/config_steane.json @@ -1,16 +1,16 @@ { "description": "Steane code.", - "bulk_thr": 0, + "bulk_thr": 1e-4, "edges_tried": 20, - "foldername": "fid_steane", + "foldername": "steane_cr", "ftol": 1e-06, - "loss_func": "fid", + "loss_func": "cr", "num_anc": 3, "num_pre": 1, "optimizer": "L-BFGS-B", "imaginary": false, "safe_hist": true, - "samples": 1, + "samples": 10, "target_state": [ "0000000", "1010101", @@ -22,10 +22,9 @@ "1101001" ], "thresholds": [ - 0.05, - 1 + 0.1, + 0.01 ], - "tries_per_edge": 5, - "unicolor": false, - "topopt": true + "tries_per_edge": 3, + "unicolor": false } \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/Steane/graph_Steane.aux b/pytheus/graphs/HighlyEntangledStates/Steane/graph_Steane.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/Steane/graph_Steane.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/Steane/graph_Steane.pdf b/pytheus/graphs/HighlyEntangledStates/Steane/graph_Steane.pdf new file mode 100644 index 00000000..05d703c1 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/Steane/graph_Steane.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/Steane/graph_Steane.tex b/pytheus/graphs/HighlyEntangledStates/Steane/graph_Steane.tex new file mode 100644 index 00000000..9d1f81f7 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/Steane/graph_Steane.tex @@ -0,0 +1,70 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.4270509831248424,1.7633557568774194) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (0.9270509831248424,2.8531695488854605) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-0.927050983124842,2.853169548885461) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-2.427050983124842,1.7633557568774196) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}5}; +\node[vertex] (6) at (-2.4270509831248424,-1.7633557568774192) [circle] {\color{fontcolor}6}; +\node[vertex] (7) at (-0.9270509831248427,-2.8531695488854605) [rectangle] {\color{fontcolor}7}; +\node[vertex] (8) at (0.9270509831248417,-2.853169548885461) [rectangle] {\color{fontcolor}8}; +\node[vertex] (9) at (2.427050983124842,-1.7633557568774196) [rectangle] {\color{fontcolor}9}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col0}{col1}, bend right=11.25, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (8); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (9); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (4) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (9); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-11.25, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (5) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (5) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (5) to (9); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (5) to (9); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (6) to (8); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (7) to (8); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (8) to (9); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/steane/clean-24-48-0.0303_0.0000(0).json b/pytheus/graphs/HighlyEntangledStates/Steane/other_solutions/clean-24-48-0.0303_0.0000(0).json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/steane/clean-24-48-0.0303_0.0000(0).json rename to pytheus/graphs/HighlyEntangledStates/Steane/other_solutions/clean-24-48-0.0303_0.0000(0).json diff --git a/theseus/graphs/HighlyEntangledStates/steane/clean-24-48-0.0303_0.0000(1).json b/pytheus/graphs/HighlyEntangledStates/Steane/other_solutions/clean-24-48-0.0303_0.0000(1).json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/steane/clean-24-48-0.0303_0.0000(1).json rename to pytheus/graphs/HighlyEntangledStates/Steane/other_solutions/clean-24-48-0.0303_0.0000(1).json diff --git a/pytheus/graphs/HighlyEntangledStates/Steane/other_solutions/clean-24-48-0.0303_0.0000(2).json b/pytheus/graphs/HighlyEntangledStates/Steane/other_solutions/clean-24-48-0.0303_0.0000(2).json new file mode 100644 index 00000000..13f2b978 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/Steane/other_solutions/clean-24-48-0.0303_0.0000(2).json @@ -0,0 +1,454 @@ +{ + "graph": { + "(0, 3, 1, 1)": -1.0, + "(0, 4, 1, 0)": -1.0, + "(0, 8, 0, 0)": -1.0, + "(4, 7, 0, 0)": 1.0, + "(0, 3, 0, 1)": 1.0, + "(0, 4, 0, 0)": -1.0, + "(7, 8, 0, 0)": 1.0, + "(7, 9, 0, 0)": -1.0, + "(5, 9, 0, 0)": 1.0, + "(5, 8, 1, 0)": -1.0, + "(4, 6, 1, 0)": -1.0, + "(3, 7, 1, 0)": 1.0, + "(3, 6, 0, 1)": 1.0, + "(2, 9, 1, 0)": -1.0, + "(2, 6, 0, 1)": -1.0, + "(2, 5, 1, 0)": 1.0, + "(2, 3, 0, 0)": 1.0, + "(1, 8, 1, 0)": -1.0, + "(1, 6, 0, 0)": 1.0, + "(1, 5, 1, 1)": -1.0, + "(1, 4, 0, 1)": 1.0, + "(0, 9, 1, 0)": -1.0, + "(0, 9, 0, 0)": -1.0, + "(0, 8, 1, 0)": 1.0 + }, + "loss": [ + 0.030303030303030276, + 0.0 + ], + "history": [ + [ + 0.016320528005033585, + 0.0062919625218551545 + ], + [ + 0.016325758173222127, + 0.0062964648795299505 + ], + [ + 0.016354632838953997, + 0.006385356390860131 + ], + [ + 0.016403446626385265, + 0.006301625671787048 + ], + [ + 0.016390071246240367, + 0.006225840634037416 + ], + [ + 0.01638980501694165, + 0.006226717608115329 + ], + [ + 0.01649145402940133, + 0.006429226384702114 + ], + [ + 0.01658814029944289, + 0.006612806276702132 + ], + [ + 0.016697360735736577, + 0.006419360561639498 + ], + [ + 0.01679398197272608, + 0.00648059364953546 + ], + [ + 0.01681249933892892, + 0.006366495977527364 + ], + [ + 0.0168173643049202, + 0.006292455266594055 + ], + [ + 0.017009509892907948, + 0.006226012589037433 + ], + [ + 0.017447348756664205, + 0.006758858672775592 + ], + [ + 0.018034973567822465, + 0.006667201275804779 + ], + [ + 0.01820246453622343, + 0.006732145606627049 + ], + [ + 0.018269636229364172, + 0.006719896430836925 + ], + [ + 0.019415990470177613, + 0.007863497676629083 + ], + [ + 0.01946653470381554, + 0.007827588826147092 + ], + [ + 0.019644827914123808, + 0.007891619367540459 + ], + [ + 0.019769516822163657, + 0.008058524982940352 + ], + [ + 0.020623176736647042, + 0.008774559854069608 + ], + [ + 0.021292817840997236, + 0.009246583016093157 + ], + [ + 0.021486913825975562, + 0.009500984091315612 + ], + [ + 0.022500558737898024, + 0.009773237895126297 + ], + [ + 0.0258037760380474, + 0.00962825091757702 + ], + [ + 0.02382859635967738, + 0.008203341167707268 + ], + [ + 0.02382795145516592, + 0.008200621586331613 + ], + [ + 0.023827855137180443, + 0.008200830570947892 + ], + [ + 0.023827274052452885, + 0.008199769517907796 + ], + [ + 0.023826997599051047, + 0.008198712729295954 + ], + [ + 0.02382682293480054, + 0.008198642834845393 + ], + [ + 0.023826690571176035, + 0.008198234044954456 + ], + [ + 0.023826464239781076, + 0.008198001563332613 + ], + [ + 0.023826277910380944, + 0.008197766063037903 + ], + [ + 0.02382615748376371, + 0.00819765207607781 + ], + [ + 0.02382605872220578, + 0.008197631073105005 + ], + [ + 0.023825885516717493, + 0.008197502996435513 + ], + [ + 0.023825739518481992, + 0.008197537603674143 + ], + [ + 0.02382563151410133, + 0.008197549201113374 + ], + [ + 0.023825527646617384, + 0.00819772240986505 + ], + [ + 0.02382539461722788, + 0.008197725147449764 + ], + [ + 0.023825265546118968, + 0.00819794725756784 + ], + [ + 0.02382512679569193, + 0.008198204364530226 + ], + [ + 0.023824989479203862, + 0.008198504527279216 + ], + [ + 0.02382485511960375, + 0.008198840210747571 + ], + [ + 0.02382472534349489, + 0.008199215793305625 + ], + [ + 0.023824602884314094, + 0.008199618201047976 + ], + [ + 0.02382448824738803, + 0.008200059404596116 + ], + [ + 0.023824378384199707, + 0.008200510701747654 + ], + [ + 0.02382427177867308, + 0.008201009421647587 + ], + [ + 0.023829165345801928, + 0.008138295482209679 + ], + [ + 0.023908587466069164, + 0.008518798910481684 + ], + [ + 0.024445835953466277, + 0.008350919706098248 + ], + [ + 0.025751084732587137, + 0.008735942811307185 + ], + [ + 0.025938035149718153, + 0.008675087367743028 + ], + [ + 0.02602990364115354, + 0.009331375567604439 + ], + [ + 0.02607200696490164, + 0.009215135771488248 + ], + [ + 0.025943367573318832, + 0.009764364432641948 + ], + [ + 0.025953138572617718, + 0.009784756094504576 + ], + [ + 0.02597518657783171, + 0.009826767208679255 + ], + [ + 0.025957860709335367, + 0.00988442362334463 + ], + [ + 0.026166239962665316, + 0.00992983230058786 + ], + [ + 0.02597130959419669, + 0.009338399823549448 + ], + [ + 0.025971840206627128, + 0.009326955830362138 + ], + [ + 0.025974627129282557, + 0.009259274851215915 + ], + [ + 0.026256883680945364, + 0.009155506229399757 + ], + [ + 0.01967898704583837, + 0.002436540069241433 + ], + [ + 0.019667121367968554, + 0.0024719955631314905 + ], + [ + 0.019666510672832982, + 0.0024627298806849662 + ], + [ + 0.019666172531630277, + 0.002466782925913291 + ], + [ + 0.019665948701246605, + 0.002461924204978705 + ], + [ + 0.019665789297279024, + 0.0024632899630205873 + ], + [ + 0.019665667589102043, + 0.0024604465835058598 + ], + [ + 0.01966556337247749, + 0.0024606434193213955 + ], + [ + 0.019665477561478073, + 0.0024587605449821748 + ], + [ + 0.01966540371558012, + 0.0024584332247920004 + ], + [ + 0.019665338200180904, + 0.002457059965831121 + ], + [ + 0.019665278037445555, + 0.0024565002289839155 + ], + [ + 0.01966522764306855, + 0.002455422486997594 + ], + [ + 0.01966517178573335, + 0.0024547679927146016 + ], + [ + 0.01966512442947843, + 0.002453863343512941 + ], + [ + 0.019665072541432127, + 0.00245318551945628 + ], + [ + 0.01966502007580806, + 0.0024523874183873806 + ], + [ + 0.01966499485473583, + 0.0024523691333192543 + ], + [ + 0.01966585640626528, + 0.0024497885799138475 + ], + [ + 0.019737971517253983, + 0.002233706648116618 + ], + [ + 0.020045524496338007, + 0.0025239874060227763 + ], + [ + 0.020273075164503385, + 0.002590611426495415 + ], + [ + 0.020542131291468868, + 0.002519411564511298 + ], + [ + 0.020948543780760165, + 0.002675936937028389 + ], + [ + 0.025785477379537736, + 0.004388352915409954 + ], + [ + 0.0253794997336797, + 0.003683073123042724 + ], + [ + 0.02641288697253863, + 0.003079846183360657 + ], + [ + 0.02706235791609457, + 0.0029139659729838785 + ], + [ + 0.027780267112015755, + 0.0024528669672218006 + ], + [ + 0.029621454954452675, + 0.0007284198123378438 + ], + [ + 0.02985125037261893, + 0.00047194297505748217 + ], + [ + 0.03023525526718862, + 7.163898239381794e-05 + ], + [ + 0.030303440926549796, + 4.3668848315192577e-07 + ], + [ + 0.03030303266577561, + 2.5127242508915515e-09 + ], + [ + 0.030303030551253496, + 2.6397950492196287e-10 + ], + [ + 0.03030303037344395, + 7.488321074333726e-11 + ], + [ + 0.030303030327349267, + 2.586264535864302e-11 + ], + [ + 0.030303030303030276, + 0.0 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/Steane/other_solutions/clean-24-48-0.0303_0.0000(3).json b/pytheus/graphs/HighlyEntangledStates/Steane/other_solutions/clean-24-48-0.0303_0.0000(3).json new file mode 100644 index 00000000..58d2ceca --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/Steane/other_solutions/clean-24-48-0.0303_0.0000(3).json @@ -0,0 +1,454 @@ +{ + "graph": { + "(0, 2, 1, 1)": -1.0, + "(0, 5, 0, 1)": 1.0, + "(0, 7, 0, 0)": 1.0, + "(3, 5, 1, 0)": -1.0, + "(0, 1, 1, 1)": -1.0, + "(5, 8, 0, 0)": 1.0, + "(8, 9, 0, 0)": -1.0, + "(7, 9, 0, 0)": -1.0, + "(6, 9, 0, 0)": 1.0, + "(5, 7, 1, 0)": 1.0, + "(4, 8, 1, 0)": -1.0, + "(4, 8, 0, 0)": 1.0, + "(4, 7, 1, 0)": 1.0, + "(4, 7, 0, 0)": 1.0, + "(4, 6, 1, 0)": 1.0, + "(4, 6, 0, 0)": 1.0, + "(3, 8, 1, 0)": -1.0, + "(3, 6, 0, 1)": -1.0, + "(2, 6, 0, 1)": -1.0, + "(2, 3, 0, 0)": 1.0, + "(1, 9, 0, 0)": 1.0, + "(1, 4, 0, 1)": -1.0, + "(1, 4, 0, 0)": 1.0, + "(1, 2, 1, 1)": 1.0 + }, + "loss": [ + 0.030303030303030276, + 0.0 + ], + "history": [ + [ + 0.01049975665978764, + 0.00497852909837837 + ], + [ + 0.010417448116592065, + 0.004895349301956675 + ], + [ + 0.010429421524676519, + 0.00487719929850583 + ], + [ + 0.010441242402908668, + 0.004841854118450506 + ], + [ + 0.01050653642228594, + 0.0048782095898528555 + ], + [ + 0.010539821759723456, + 0.0049115709904501426 + ], + [ + 0.010555126318683161, + 0.004936667651554649 + ], + [ + 0.01063995288054087, + 0.005026823109177347 + ], + [ + 0.01075606874909818, + 0.005114332043878678 + ], + [ + 0.01131216844332239, + 0.0055590250916989215 + ], + [ + 0.011403212731349255, + 0.00558364397619171 + ], + [ + 0.011403412534886526, + 0.0055830806528982535 + ], + [ + 0.011534023599755971, + 0.005672869767593736 + ], + [ + 0.012291871248281128, + 0.006589265778414344 + ], + [ + 0.012674764827276253, + 0.006989086088905139 + ], + [ + 0.012674477758184644, + 0.006987011229846463 + ], + [ + 0.013294893281765918, + 0.0067509000749508274 + ], + [ + 0.013850720967529595, + 0.007109962860746832 + ], + [ + 0.014641761912261075, + 0.007863676541752795 + ], + [ + 0.015033468849013465, + 0.00840159598712964 + ], + [ + 0.016512635491294003, + 0.009646247249104567 + ], + [ + 0.017236277732257, + 0.009404800269577018 + ], + [ + 0.018217713317108086, + 0.0096841356493782 + ], + [ + 0.019247244742913505, + 0.009819781396080196 + ], + [ + 0.012659910686091513, + 0.003230263467703276 + ], + [ + 0.011742544442765457, + 0.002719854297074442 + ], + [ + 0.011741802452315597, + 0.0027185562498174276 + ], + [ + 0.01174137868667624, + 0.0027193161801751797 + ], + [ + 0.01174105182737406, + 0.002717393429331305 + ], + [ + 0.01174077942736873, + 0.0027185703219688717 + ], + [ + 0.011740473923402384, + 0.0027167063408789494 + ], + [ + 0.011740198123398549, + 0.0027174731232444405 + ], + [ + 0.01173997628587553, + 0.002715962594474819 + ], + [ + 0.011739771301621627, + 0.002716955351788397 + ], + [ + 0.011739546241134713, + 0.002715450336246983 + ], + [ + 0.011739332064157226, + 0.0027162184709105253 + ], + [ + 0.011739144428208559, + 0.002714904416490138 + ], + [ + 0.011738965722733363, + 0.0027157601764481454 + ], + [ + 0.011738788680574985, + 0.0027144506786416223 + ], + [ + 0.011738604525128538, + 0.002715224505398628 + ], + [ + 0.011738439716605042, + 0.0027139233738541213 + ], + [ + 0.011738281496455838, + 0.0027146693171058445 + ], + [ + 0.011738128621847532, + 0.00271338706924773 + ], + [ + 0.011737981327266889, + 0.0027140708222701537 + ], + [ + 0.011737838217318997, + 0.002712834380260487 + ], + [ + 0.011737695402596837, + 0.0027135283357332396 + ], + [ + 0.011737551664857238, + 0.0027123084961785393 + ], + [ + 0.011737407489265883, + 0.0027129775458440974 + ], + [ + 0.011737271401610294, + 0.0027118010258694314 + ], + [ + 0.011737133176916492, + 0.0027124508319392726 + ], + [ + 0.011737001942339398, + 0.0027113265201820225 + ], + [ + 0.011736875727162754, + 0.0027119322767730214 + ], + [ + 0.011728581103482294, + 0.0027200770391768714 + ], + [ + 0.011738220725645232, + 0.002722073109406087 + ], + [ + 0.01175931712128353, + 0.0027078488642060528 + ], + [ + 0.011840649974130257, + 0.002952121793402984 + ], + [ + 0.011940204404323418, + 0.003219404854398644 + ], + [ + 0.012120589877093635, + 0.003424965246163647 + ], + [ + 0.012724914750300798, + 0.004291886002972478 + ], + [ + 0.014131438491298054, + 0.005519886000252439 + ], + [ + 0.01561391837395465, + 0.00680473214171895 + ], + [ + 0.016422805438040422, + 0.007628457308847758 + ], + [ + 0.01694529694253588, + 0.007842178192715266 + ], + [ + 0.01764351798343089, + 0.008314683948706492 + ], + [ + 0.018569402482528807, + 0.008572373113207243 + ], + [ + 0.019834782598864176, + 0.009560377248345686 + ], + [ + 0.02437220637371451, + 0.0028437471606559406 + ], + [ + 0.02437200190003419, + 0.002844376994760922 + ], + [ + 0.024371860934027656, + 0.0028453550019955642 + ], + [ + 0.024371746448952014, + 0.00284599359030957 + ], + [ + 0.024371644747659627, + 0.0028465405145324807 + ], + [ + 0.024371553601009954, + 0.0028468994986534657 + ], + [ + 0.024371470525805017, + 0.0028471852118343577 + ], + [ + 0.02437139285303591, + 0.0028473786203628837 + ], + [ + 0.02437132011412113, + 0.002847528571223057 + ], + [ + 0.024371252079492645, + 0.00284763545372424 + ], + [ + 0.024371188566916335, + 0.0028477154251288495 + ], + [ + 0.024371125712754904, + 0.00284777072339526 + ], + [ + 0.024371067284930104, + 0.0028478187535723176 + ], + [ + 0.024371008822300033, + 0.002847854970541741 + ], + [ + 0.024370954233690956, + 0.0028478850894951835 + ], + [ + 0.02437090212201609, + 0.002847918152381834 + ], + [ + 0.02437084403358314, + 0.0028479395610148117 + ], + [ + 0.02443798830965871, + 0.002961052838703182 + ], + [ + 0.02460301272930132, + 0.0032193823227760765 + ], + [ + 0.024852780598885738, + 0.0035401102155760977 + ], + [ + 0.02589181497992077, + 0.004167025871900987 + ], + [ + 0.027933155045728353, + 0.0059920298484861245 + ], + [ + 0.02845938390978131, + 0.00307726851209833 + ], + [ + 0.028328192456055334, + 0.002355337988293127 + ], + [ + 0.02835146607404604, + 0.0022954802902990235 + ], + [ + 0.02879703395355071, + 0.0019746567928474734 + ], + [ + 0.02883039025655043, + 0.0015052637647983147 + ], + [ + 0.028834730967438493, + 0.0015283309407833068 + ], + [ + 0.028874566795286216, + 0.0014727361421712493 + ], + [ + 0.029145503101173253, + 0.0011798954852753063 + ], + [ + 0.029199928430428734, + 0.0011385076114703852 + ], + [ + 0.029335705455054484, + 0.0009817398573367386 + ], + [ + 0.02955745618744643, + 0.0007685757535812465 + ], + [ + 0.029761164346084, + 0.0005626444409122522 + ], + [ + 0.030007465547436385, + 0.00031081515689213024 + ], + [ + 0.030075656952265772, + 0.0002399399262587032 + ], + [ + 0.03012095344339405, + 0.0001951856144812858 + ], + [ + 0.030303030303030276, + 0.0 + ], + [ + 0.030303030303030276, + 0.0 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/Steane/other_solutions/clean-24-48-0.0303_0.0000(4).json b/pytheus/graphs/HighlyEntangledStates/Steane/other_solutions/clean-24-48-0.0303_0.0000(4).json new file mode 100644 index 00000000..7929a626 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/Steane/other_solutions/clean-24-48-0.0303_0.0000(4).json @@ -0,0 +1,454 @@ +{ + "graph": { + "(0, 4, 1, 1)": 1.0, + "(0, 6, 0, 0)": 1.0, + "(0, 7, 0, 0)": 1.0, + "(2, 6, 0, 1)": -1.0, + "(0, 3, 1, 1)": 1.0, + "(1, 3, 0, 0)": -1.0, + "(5, 8, 1, 0)": -1.0, + "(1, 7, 0, 0)": -1.0, + "(4, 5, 0, 0)": 1.0, + "(8, 9, 0, 0)": -1.0, + "(7, 8, 0, 0)": -1.0, + "(6, 9, 1, 0)": -1.0, + "(6, 7, 0, 0)": 1.0, + "(3, 8, 0, 0)": -1.0, + "(3, 4, 1, 1)": 1.0, + "(2, 9, 0, 0)": 1.0, + "(2, 5, 1, 0)": -1.0, + "(2, 4, 1, 0)": -1.0, + "(1, 9, 1, 0)": 1.0, + "(1, 9, 0, 0)": 1.0, + "(1, 7, 1, 0)": 1.0, + "(1, 5, 1, 1)": -1.0, + "(1, 5, 0, 1)": 1.0, + "(1, 3, 1, 0)": -1.0 + }, + "loss": [ + 0.030303030303030276, + 0.0 + ], + "history": [ + [ + 0.010638250596542775, + 0.005044935474035395 + ], + [ + 0.010639415606720992, + 0.0050519932784566235 + ], + [ + 0.010641149494207802, + 0.0050502239043543895 + ], + [ + 0.010647383786578035, + 0.005075541514473647 + ], + [ + 0.01071209028405451, + 0.005166573412626385 + ], + [ + 0.010759256395316608, + 0.005141789551090015 + ], + [ + 0.010769646514504072, + 0.005151187788474232 + ], + [ + 0.010843434910250416, + 0.005234701080382709 + ], + [ + 0.01087373665331215, + 0.005240300765239514 + ], + [ + 0.011018675921147136, + 0.00525489194513129 + ], + [ + 0.011098128758817882, + 0.0052319241559269924 + ], + [ + 0.011335626458362058, + 0.005695942506463325 + ], + [ + 0.01170692249698746, + 0.005974358408587177 + ], + [ + 0.012073221803620915, + 0.006276717500856788 + ], + [ + 0.012371549709845553, + 0.006617691710468776 + ], + [ + 0.012507522897730383, + 0.006723796492332679 + ], + [ + 0.013357542049529991, + 0.007336488910250849 + ], + [ + 0.014001888171732313, + 0.007867204982333731 + ], + [ + 0.014486637858300178, + 0.00821781142177136 + ], + [ + 0.01546412665228758, + 0.009040172868540974 + ], + [ + 0.015651596378063792, + 0.009255897291531312 + ], + [ + 0.01673700795314348, + 0.009959760582668009 + ], + [ + 0.02592186718476952, + 0.009650063508231832 + ], + [ + 0.021565493032455918, + 0.006983717669125422 + ], + [ + 0.021565227016484445, + 0.006984226828333551 + ], + [ + 0.0215650210320667, + 0.0069830546612162925 + ], + [ + 0.021564840958094078, + 0.006983396890451354 + ], + [ + 0.02156469280572626, + 0.006982479010243514 + ], + [ + 0.02156455149856562, + 0.006982808605104807 + ], + [ + 0.021564410951378066, + 0.006981939026443951 + ], + [ + 0.02156428669312882, + 0.006982233822763306 + ], + [ + 0.021564173383832097, + 0.006981405252508677 + ], + [ + 0.021564050946437874, + 0.006981667499286415 + ], + [ + 0.021563945316991573, + 0.006980871462205163 + ], + [ + 0.02156383646352389, + 0.006981128459052188 + ], + [ + 0.021563739120626146, + 0.006980354516399223 + ], + [ + 0.02156364147316414, + 0.006980614831847642 + ], + [ + 0.02156355467247295, + 0.006979857241611986 + ], + [ + 0.02156345503355117, + 0.006980109286787606 + ], + [ + 0.02156337864699498, + 0.006979344583552427 + ], + [ + 0.02156329012366276, + 0.006979633601645552 + ], + [ + 0.02156318913123112, + 0.006978873788949791 + ], + [ + 0.021563092665315087, + 0.006979138416114639 + ], + [ + 0.021562990525764936, + 0.006978381905033082 + ], + [ + 0.02156290709294284, + 0.006978644082473617 + ], + [ + 0.02156283973619555, + 0.0069779425191 + ], + [ + 0.021562747616674316, + 0.00697819415249068 + ], + [ + 0.02156264909231065, + 0.0069774901719455995 + ], + [ + 0.021562552905508903, + 0.006977712840627204 + ], + [ + 0.02156249366846774, + 0.006977030243919713 + ], + [ + 0.02156236919963128, + 0.006977228554469139 + ], + [ + 0.02156231469532688, + 0.006976537857823151 + ], + [ + 0.021562193018981657, + 0.006976756391229966 + ], + [ + 0.021561956258475012, + 0.006975213578062633 + ], + [ + 0.021598706759289876, + 0.006985899394037376 + ], + [ + 0.021726021272467366, + 0.007347105328657455 + ], + [ + 0.022202910190946668, + 0.007064302636605069 + ], + [ + 0.022649537284681887, + 0.007291653466554027 + ], + [ + 0.024397149344305813, + 0.008509132716988943 + ], + [ + 0.02520278413525978, + 0.009133777231697726 + ], + [ + 0.02520686215902712, + 0.009124187192715572 + ], + [ + 0.0253489310395707, + 0.008932142254614361 + ], + [ + 0.025399452536067457, + 0.008919907014623751 + ], + [ + 0.025746967102329155, + 0.00966458536453041 + ], + [ + 0.025753163709036575, + 0.009591007142006336 + ], + [ + 0.02659180479130896, + 0.00952880523206212 + ], + [ + 0.027346202086689586, + 0.009977443172452416 + ], + [ + 0.03483557421277261, + 0.009233431300798123 + ], + [ + 0.034835233107280095, + 0.009231532887259086 + ], + [ + 0.03483502308366648, + 0.00923142517476494 + ], + [ + 0.034834876244268176, + 0.00923002724741917 + ], + [ + 0.03483478563928799, + 0.009231070528702756 + ], + [ + 0.0348347590766338, + 0.009228941969468663 + ], + [ + 0.03483457729280637, + 0.009230037854221718 + ], + [ + 0.03483450288363843, + 0.009229533516627808 + ], + [ + 0.034834443057051634, + 0.009229939681192012 + ], + [ + 0.034834397749750834, + 0.009229129762490351 + ], + [ + 0.03483437036165904, + 0.009230124841695386 + ], + [ + 0.03483431365196288, + 0.00922929674170947 + ], + [ + 0.034834277452155615, + 0.00922955989622043 + ], + [ + 0.03483424783612954, + 0.009229021603647136 + ], + [ + 0.03483422689593374, + 0.00922964037964713 + ], + [ + 0.03495708960738797, + 0.008943989740608949 + ], + [ + 0.035103642689678916, + 0.009297773023629996 + ], + [ + 0.03591233995145715, + 0.007546618856335785 + ], + [ + 0.037655172394793324, + 0.008914583705212809 + ], + [ + 0.02989848255506189, + 0.0004322483527624543 + ], + [ + 0.029898448253345644, + 0.00043546878253097887 + ], + [ + 0.02990029126635585, + 0.0004187703466846937 + ], + [ + 0.0299021432067873, + 0.00042176324585541103 + ], + [ + 0.029906759534600535, + 0.00043627611200180993 + ], + [ + 0.029911806677260344, + 0.0004182440403955878 + ], + [ + 0.029923712302135197, + 0.0004167345296931524 + ], + [ + 0.029926467666131162, + 0.0004134019274992795 + ], + [ + 0.029952281845813555, + 0.0003762846038313228 + ], + [ + 0.02995058370953052, + 0.0003844289132526324 + ], + [ + 0.029956005186608903, + 0.0003765059307692109 + ], + [ + 0.029986507272030005, + 0.0003521153583534442 + ], + [ + 0.030016216843672283, + 0.00031475586600948624 + ], + [ + 0.030037339987450284, + 0.00028030105898080304 + ], + [ + 0.030090064223750268, + 0.00022589279146978392 + ], + [ + 0.030166813622538702, + 0.0001492629919421784 + ], + [ + 0.030303030303030276, + 0.0 + ], + [ + 0.030303030303030276, + 0.0 + ], + [ + 0.030303030303030276, + 0.0 + ] + ] +} \ No newline at end of file diff --git a/theseus/graphs/HighlyEntangledStates/steane/clean-24-48-0.0303_0.0000.json b/pytheus/graphs/HighlyEntangledStates/Steane/other_solutions/clean-24-48-0.0303_0.0000.json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/steane/clean-24-48-0.0303_0.0000.json rename to pytheus/graphs/HighlyEntangledStates/Steane/other_solutions/clean-24-48-0.0303_0.0000.json diff --git a/theseus/graphs/HighlyEntangledStates/steane/steane_clean_24edges.json b/pytheus/graphs/HighlyEntangledStates/Steane/plot_Steane_steane_clean_24edges.json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/steane/steane_clean_24edges.json rename to pytheus/graphs/HighlyEntangledStates/Steane/plot_Steane_steane_clean_24edges.json diff --git a/theseus/configs/W3W3.json b/pytheus/graphs/HighlyEntangledStates/W3W3/config_W3W3.json similarity index 100% rename from theseus/configs/W3W3.json rename to pytheus/graphs/HighlyEntangledStates/W3W3/config_W3W3.json diff --git a/pytheus/graphs/HighlyEntangledStates/W3W3/graph_W3W3.aux b/pytheus/graphs/HighlyEntangledStates/W3W3/graph_W3W3.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/W3W3/graph_W3W3.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/W3W3/graph_W3W3.pdf b/pytheus/graphs/HighlyEntangledStates/W3W3/graph_W3W3.pdf new file mode 100644 index 00000000..cecbbd67 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/W3W3/graph_W3W3.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/W3W3/graph_W3W3.tex b/pytheus/graphs/HighlyEntangledStates/W3W3/graph_W3W3.tex new file mode 100644 index 00000000..e027447c --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/W3W3/graph_W3W3.tex @@ -0,0 +1,52 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [circle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (3) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/W3W3/clean-10-9-0.1000_0.0000.json b/pytheus/graphs/HighlyEntangledStates/W3W3/other_solutions/clean-10-9-0.1000_0.0000.json similarity index 100% rename from theseus/graphs/W3W3/clean-10-9-0.1000_0.0000.json rename to pytheus/graphs/HighlyEntangledStates/W3W3/other_solutions/clean-10-9-0.1000_0.0000.json diff --git a/pytheus/graphs/HighlyEntangledStates/W3W3/plot_W3W3_clean-10-9-0.1000_0.0000.json b/pytheus/graphs/HighlyEntangledStates/W3W3/plot_W3W3_clean-10-9-0.1000_0.0000.json new file mode 100644 index 00000000..eac2fd4d --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/W3W3/plot_W3W3_clean-10-9-0.1000_0.0000.json @@ -0,0 +1,208 @@ +{ + "graph": { + "(0, 2, 1, 0)": 1.0, + "(0, 4, 0, 0)": 1.0, + "(0, 5, 0, 0)": 1.0, + "(1, 2, 0, 1)": 1.0, + "(1, 2, 1, 0)": 1.0, + "(1, 4, 0, 0)": 1.0, + "(1, 5, 0, 0)": 1.0, + "(3, 4, 0, 1)": 1.0, + "(3, 4, 1, 0)": 1.0, + "(3, 5, 0, 1)": 1.0 + }, + "loss": [ + 0.09999999999999998, + 0.0 + ], + "history": [ + [ + 0.01981096312130015, + 0.0035472592346503795 + ], + [ + 0.01981841998834044, + 0.003553524159090271 + ], + [ + 0.019817242939327406, + 0.0035638764441733306 + ], + [ + 0.019823042899596466, + 0.0035976061206157706 + ], + [ + 0.019852152907331555, + 0.0036793154502754444 + ], + [ + 0.01986406295748544, + 0.003662060735824535 + ], + [ + 0.01987158287990931, + 0.003660088085013169 + ], + [ + 0.01989039642618473, + 0.003663226527155783 + ], + [ + 0.019918182918845284, + 0.003690762711258677 + ], + [ + 0.0199799767390606, + 0.003751481605945406 + ], + [ + 0.020004838094314303, + 0.0037802637271674433 + ], + [ + 0.02005292074298881, + 0.003834455103332912 + ], + [ + 0.020192135883768336, + 0.0038867432444184002 + ], + [ + 0.020446822359584838, + 0.003948669232127666 + ], + [ + 0.02070853045474197, + 0.003951026025774795 + ], + [ + 0.021209421632339742, + 0.0039848623528288 + ], + [ + 0.021257847440002142, + 0.0038820538514885428 + ], + [ + 0.021307706887430444, + 0.003925453727757544 + ], + [ + 0.021774993337728032, + 0.00378195843447815 + ], + [ + 0.021862078460779144, + 0.0038535287068094393 + ], + [ + 0.021943672951695192, + 0.003902219750499092 + ], + [ + 0.022300122706202408, + 0.0035596716276355966 + ], + [ + 0.022300099094009762, + 0.003559888436330927 + ], + [ + 0.022300088591973743, + 0.0035600916233747837 + ], + [ + 0.02306952778690563, + 0.003091415778482043 + ], + [ + 0.025252806692763197, + 0.0017066331327661999 + ], + [ + 0.025553247096596454, + 0.0014565935875033853 + ], + [ + 0.026339911538373117, + 0.000702529397951901 + ], + [ + 0.026550840795626085, + 0.00047464426821719474 + ], + [ + 0.026852022606076886, + 0.00018533343010374015 + ], + [ + 0.02693689155880241, + 0.00011394707693490602 + ], + [ + 0.02693614850158521, + 9.277317345779412e-05 + ], + [ + 0.026936096776497553, + 9.329822294779078e-05 + ], + [ + 0.02693612953202118, + 9.666984265033207e-05 + ], + [ + 0.0269360955498803, + 9.648851272037184e-05 + ], + [ + 0.026936101979777805, + 9.118826345111408e-05 + ], + [ + 0.02693608231173661, + 9.20313338906853e-05 + ], + [ + 0.02693602724327837, + 9.542390348216134e-05 + ], + [ + 0.02693602713909493, + 9.548923163127387e-05 + ], + [ + 0.05347094559062959, + 0.019505278843812812 + ], + [ + 0.07407408050606279, + 0.02191341855944806 + ], + [ + 0.08888893873548576, + 0.011781628437125047 + ], + [ + 0.09523809523810567, + 0.005509658003573836 + ], + [ + 0.09999999999999998, + 0.0 + ], + [ + 0.09999999999999998, + 0.0 + ], + [ + 0.09999999999999998, + 0.0 + ], + [ + 0.09999999999999998, + 0.0 + ] + ] +} diff --git a/theseus/configs/w3_sp.json b/pytheus/graphs/HighlyEntangledStates/W3_sp/config_w3_sp.json similarity index 82% rename from theseus/configs/w3_sp.json rename to pytheus/graphs/HighlyEntangledStates/W3_sp/config_w3_sp.json index fa316cd6..59ec4049 100644 --- a/theseus/configs/w3_sp.json +++ b/pytheus/graphs/HighlyEntangledStates/W3_sp/config_w3_sp.json @@ -1,5 +1,5 @@ { - "description": "Creation of three particle W state with tree single photon emitters", + "description": "Creation of three particle W state with three single photon emitters", "bulk_thr": 0, "edges_tried": 30, "foldername": "w_sp", diff --git a/pytheus/graphs/HighlyEntangledStates/W3_sp/graph_W3_sp.aux b/pytheus/graphs/HighlyEntangledStates/W3_sp/graph_W3_sp.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/W3_sp/graph_W3_sp.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/W3_sp/graph_W3_sp.pdf b/pytheus/graphs/HighlyEntangledStates/W3_sp/graph_W3_sp.pdf new file mode 100644 index 00000000..11aba4b0 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/W3_sp/graph_W3_sp.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/W3_sp/graph_W3_sp.tex b/pytheus/graphs/HighlyEntangledStates/W3_sp/graph_W3_sp.tex new file mode 100644 index 00000000..d2744f39 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/W3_sp/graph_W3_sp.tex @@ -0,0 +1,49 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/W_3_sp/clean-7-3-0.2500_0.0000.json b/pytheus/graphs/HighlyEntangledStates/W3_sp/plot_W3_sp_clean-7-3-0.2500_0.0000.json similarity index 100% rename from theseus/graphs/W_3_sp/clean-7-3-0.2500_0.0000.json rename to pytheus/graphs/HighlyEntangledStates/W3_sp/plot_W3_sp_clean-7-3-0.2500_0.0000.json diff --git a/theseus/configs/w4_sp.json b/pytheus/graphs/HighlyEntangledStates/W4_sp/config_W4_sp.json similarity index 100% rename from theseus/configs/w4_sp.json rename to pytheus/graphs/HighlyEntangledStates/W4_sp/config_W4_sp.json diff --git a/pytheus/graphs/HighlyEntangledStates/W4_sp/graph_W4_sp.aux b/pytheus/graphs/HighlyEntangledStates/W4_sp/graph_W4_sp.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/W4_sp/graph_W4_sp.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/W4_sp/graph_W4_sp.pdf b/pytheus/graphs/HighlyEntangledStates/W4_sp/graph_W4_sp.pdf new file mode 100644 index 00000000..1348a2eb Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/W4_sp/graph_W4_sp.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/W4_sp/graph_W4_sp.tex b/pytheus/graphs/HighlyEntangledStates/W4_sp/graph_W4_sp.tex new file mode 100644 index 00000000..ca4f7d6d --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/W4_sp/graph_W4_sp.tex @@ -0,0 +1,54 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/W_4_sp/clean-10-4-0.2000_0.0000.json b/pytheus/graphs/HighlyEntangledStates/W4_sp/plot_W4_sp_clean-10-4-0.2000_0.0000.json similarity index 100% rename from theseus/graphs/W_4_sp/clean-10-4-0.2000_0.0000.json rename to pytheus/graphs/HighlyEntangledStates/W4_sp/plot_W4_sp_clean-10-4-0.2000_0.0000.json diff --git a/pytheus/graphs/HighlyEntangledStates/W5W5/config_W5W5.json b/pytheus/graphs/HighlyEntangledStates/W5W5/config_W5W5.json new file mode 100644 index 00000000..23a5809a --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/W5W5/config_W5W5.json @@ -0,0 +1,46 @@ +{ + "description": "Creation of a product state of two 5 particle W states. No ancillary particles.", + "bulk_thr": 0.01, + "edges_tried": 20, + "foldername": "W5W5cr", + "ftol": 1e-06, + "loss_func": "cr", + "num_anc": 0, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 10, + "target_state": [ + "0000100001", + "0000100010", + "0000100100", + "0000101000", + "0000110000", + "0001000001", + "0001000010", + "0001000100", + "0001001000", + "0001010000", + "0010000001", + "0010000010", + "0010000100", + "0010001000", + "0010010000", + "0100000001", + "0100000010", + "0100000100", + "0100001000", + "0100010000", + "1000000001", + "1000000010", + "1000000100", + "1000001000", + "1000010000" ], + "thresholds": [ + 0.2, + 0.1 + ], + "tries_per_edge": 2, + "unicolor": false +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/W5W5/graph_W5W5.aux b/pytheus/graphs/HighlyEntangledStates/W5W5/graph_W5W5.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/W5W5/graph_W5W5.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/W5W5/graph_W5W5.pdf b/pytheus/graphs/HighlyEntangledStates/W5W5/graph_W5W5.pdf new file mode 100644 index 00000000..7d9801c9 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/W5W5/graph_W5W5.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/W5W5/graph_W5W5.tex b/pytheus/graphs/HighlyEntangledStates/W5W5/graph_W5W5.tex new file mode 100644 index 00000000..fc4a50d5 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/W5W5/graph_W5W5.tex @@ -0,0 +1,64 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.4270509831248424,1.7633557568774194) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (0.9270509831248424,2.8531695488854605) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-0.927050983124842,2.853169548885461) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-2.427050983124842,1.7633557568774196) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}5}; +\node[vertex] (6) at (-2.4270509831248424,-1.7633557568774192) [circle] {\color{fontcolor}6}; +\node[vertex] (7) at (-0.9270509831248427,-2.8531695488854605) [circle] {\color{fontcolor}7}; +\node[vertex] (8) at (0.9270509831248417,-2.853169548885461) [circle] {\color{fontcolor}8}; +\node[vertex] (9) at (2.427050983124842,-1.7633557568774196) [circle] {\color{fontcolor}9}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (8); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (8); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (9); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (5) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (6) to (7); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (7) to (8); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (7) to (9); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (7) to (9); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/HighlyEntangledStates/W5W5/other_solutions/clean-18-25-0.0385_0.0000(0).json b/pytheus/graphs/HighlyEntangledStates/W5W5/other_solutions/clean-18-25-0.0385_0.0000(0).json new file mode 100644 index 00000000..b5f6610f --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/W5W5/other_solutions/clean-18-25-0.0385_0.0000(0).json @@ -0,0 +1,605 @@ +{ + "graph": { + "(1, 9, 0, 0)": 1.0, + "(0, 2, 0, 1)": -1.0, + "(1, 5, 0, 0)": -1.0, + "(0, 1, 0, 1)": 1.0, + "(0, 3, 1, 0)": -1.0, + "(0, 3, 0, 1)": -1.0, + "(0, 4, 0, 1)": 1.0, + "(7, 9, 0, 1)": 1.0, + "(6, 7, 1, 0)": -1.0, + "(5, 7, 0, 1)": -1.0, + "(5, 7, 1, 0)": -1.0, + "(7, 8, 0, 1)": -1.0, + "(4, 6, 0, 0)": -1.0, + "(4, 5, 0, 0)": -1.0, + "(3, 8, 0, 0)": 1.0, + "(3, 6, 0, 0)": 1.0, + "(2, 8, 0, 0)": 1.0, + "(2, 9, 0, 0)": -1.0 + }, + "loss": [ + 0.038461538461538436, + 0.0 + ], + "seed": 194817380, + "history": [ + [ + 0.0002128163515168202, + 3.5581610599799696e-05 + ], + [ + 0.00021257615954184406, + 3.531206877660509e-05 + ], + [ + 0.00021223734705488884, + 3.499388395555858e-05 + ], + [ + 0.00021207380673970988, + 3.483835120299261e-05 + ], + [ + 0.00021193399789509737, + 3.4709216561679135e-05 + ], + [ + 0.0002119134717747384, + 3.468102721149169e-05 + ], + [ + 0.0002119396947858343, + 3.471729483106589e-05 + ], + [ + 0.0002118242746478316, + 3.4597797825552945e-05 + ], + [ + 0.00021200765198492455, + 3.478746181373449e-05 + ], + [ + 0.0002120164212763287, + 3.479588570332037e-05 + ], + [ + 0.00021363301230525877, + 3.637986758719958e-05 + ], + [ + 0.00021303507729286686, + 3.58001762349458e-05 + ], + [ + 0.0002153991588055293, + 3.790375231138565e-05 + ], + [ + 0.00021508990400653794, + 3.788098923696026e-05 + ], + [ + 0.00021457908774169532, + 3.728915480649686e-05 + ], + [ + 0.00021439445317195105, + 3.707960164733848e-05 + ], + [ + 0.00021440626735647061, + 3.7101093044333844e-05 + ], + [ + 0.00021427266846774096, + 3.695424089789068e-05 + ], + [ + 0.00021462865001653508, + 3.729919959349903e-05 + ], + [ + 0.0002155579061816626, + 3.8239703884834775e-05 + ], + [ + 0.00021556886323759183, + 3.825697106651926e-05 + ], + [ + 0.00021664005995858382, + 3.932505786619078e-05 + ], + [ + 0.0002163993014547838, + 3.905436800899498e-05 + ], + [ + 0.00021641870587985057, + 3.906281029386616e-05 + ], + [ + 0.00021775698513071262, + 4.04025900385685e-05 + ], + [ + 0.000217394780869129, + 4.004504603261072e-05 + ], + [ + 0.0002175651352588348, + 4.0241662567663816e-05 + ], + [ + 0.00021758517253211984, + 4.0255279092016316e-05 + ], + [ + 0.00021751677941694858, + 4.0182901744678645e-05 + ], + [ + 0.0002172558087715215, + 3.997865866378625e-05 + ], + [ + 0.00021736709046493718, + 4.0105794206213297e-05 + ], + [ + 0.0002169917357779383, + 3.977329253468387e-05 + ], + [ + 0.00021661017593155307, + 3.9351896719441726e-05 + ], + [ + 0.00022096493534107253, + 4.3756417930196356e-05 + ], + [ + 0.00022182132128201193, + 4.4598589152289314e-05 + ], + [ + 0.0002281245331916537, + 5.089643835232138e-05 + ], + [ + 0.00023028351862175445, + 5.290523375167666e-05 + ], + [ + 0.0002340014746808894, + 5.66252233047404e-05 + ], + [ + 0.0002375385295537713, + 6.020507284687504e-05 + ], + [ + 0.0002362103859288034, + 5.891823785386663e-05 + ], + [ + 0.00021363439256327776, + 3.509997957340527e-05 + ], + [ + 0.00021356574450215327, + 3.501981588838188e-05 + ], + [ + 0.00021362739748431725, + 3.51227995095682e-05 + ], + [ + 0.0002138961763978875, + 3.547632510469967e-05 + ], + [ + 0.00021428360199293728, + 3.5861181146845666e-05 + ], + [ + 0.00021492765349384602, + 3.6603295174408856e-05 + ], + [ + 0.00021514480805207015, + 3.6888471553142566e-05 + ], + [ + 0.00021595120001727253, + 3.77073269617334e-05 + ], + [ + 0.00021629754145913171, + 3.8028521488375766e-05 + ], + [ + 0.0002172017761125078, + 3.8900428471211335e-05 + ], + [ + 0.00022587600039836175, + 4.7609187065256187e-05 + ], + [ + 0.00022764501664762626, + 4.93790112645609e-05 + ], + [ + 0.00021529904666117705, + 3.845927652923464e-05 + ], + [ + 0.00021524783908732914, + 3.841443723617832e-05 + ], + [ + 0.0002140797392972127, + 3.729787895523362e-05 + ], + [ + 0.00021398315992793293, + 3.733310781894872e-05 + ], + [ + 0.0002267211420904358, + 4.997210285562215e-05 + ], + [ + 0.00022438389937673442, + 4.77056222790706e-05 + ], + [ + 0.0002233130737651079, + 4.6499255094256675e-05 + ], + [ + 0.00021011466369902365, + 3.421499889133539e-05 + ], + [ + 0.00020948341585269592, + 3.340293569731312e-05 + ], + [ + 0.00020945254005866332, + 3.341844150628326e-05 + ], + [ + 0.0002161456508732451, + 4.004593730999595e-05 + ], + [ + 0.00022883252460004222, + 5.271351195146323e-05 + ], + [ + 0.0002260046177859909, + 4.9706575357300053e-05 + ], + [ + 0.00023143482170873142, + 5.4603078712189834e-05 + ], + [ + 0.0002452800576706604, + 6.81127389622338e-05 + ], + [ + 0.0002452343558758674, + 6.61137048700855e-05 + ], + [ + 0.00022204093842892458, + 4.008948363376508e-05 + ], + [ + 0.0002222488166184755, + 4.0238808935444403e-05 + ], + [ + 0.00022575544193625952, + 4.36119691328285e-05 + ], + [ + 0.00022130086029359397, + 3.823787337509099e-05 + ], + [ + 0.00024547064460023194, + 6.208959545106474e-05 + ], + [ + 0.00025619401346144155, + 7.280291146516404e-05 + ], + [ + 0.00026038203791711734, + 7.699282948936403e-05 + ], + [ + 0.00025181415796826645, + 6.908497590063511e-05 + ], + [ + 0.0002260038696698663, + 4.636029103610717e-05 + ], + [ + 0.0002144033939386336, + 3.6252963312333186e-05 + ], + [ + 0.00021414469714042816, + 3.59393887853221e-05 + ], + [ + 0.00021889220169857282, + 4.120800382101386e-05 + ], + [ + 0.0002104779787700517, + 3.330804733736592e-05 + ], + [ + 0.00021195730204426333, + 3.329627511305944e-05 + ], + [ + 0.00021358263905357777, + 1.2104501273202395e-05 + ], + [ + 0.0002132365963966043, + 1.1882432704002355e-05 + ], + [ + 0.00021361153306520553, + 1.2481093488836414e-05 + ], + [ + 0.00021436927864249, + 1.31458901273529e-05 + ], + [ + 0.0002175821676936307, + 1.6304680592660326e-05 + ], + [ + 0.00022125390391436461, + 2.020500746358067e-05 + ], + [ + 0.00022045963561379, + 2.0158462466612903e-05 + ], + [ + 0.0002225401726674292, + 2.2577768378884144e-05 + ], + [ + 0.00021235331707492033, + 1.6451970367037383e-05 + ], + [ + 0.0002220487981586805, + 2.6297775027162018e-05 + ], + [ + 0.00020975352287377902, + 1.3647994207444114e-05 + ], + [ + 0.00019785962280094438, + 3.951340616037413e-06 + ], + [ + 0.0001975612251754466, + 3.666839900051677e-06 + ], + [ + 0.00019734126190718015, + 3.3809996707878653e-06 + ], + [ + 0.00019711147364609438, + 3.1627131092948346e-06 + ], + [ + 0.00020652047948799268, + 4.889419992326616e-06 + ], + [ + 0.0002067391124311868, + 5.170971758006182e-06 + ], + [ + 0.0002069593998679231, + 5.5277207755555224e-06 + ], + [ + 0.00020602495997057435, + 4.68331253822285e-06 + ], + [ + 0.00020388492628331534, + 9.747112401758962e-06 + ], + [ + 0.00020368687097249705, + 9.549689255261562e-06 + ], + [ + 0.0001930082742499506, + 1.8964951230548976e-06 + ], + [ + 0.00019251593482416673, + 1.3930626602265406e-06 + ], + [ + 0.0001928263972681421, + 6.740382603176442e-07 + ], + [ + 0.00019187186563074388, + 5.142956134296384e-07 + ], + [ + 0.00021144277784401755, + 1.890405783355753e-06 + ], + [ + 0.00021118663691688244, + 1.7065919318826062e-06 + ], + [ + 0.00021130969538707411, + 1.891393794362095e-06 + ], + [ + 0.00020983499489035662, + 2.487371756343393e-07 + ], + [ + 0.00021371007775505824, + 4.774126221462893e-06 + ], + [ + 0.00021506061594933623, + 6.185159661220574e-06 + ], + [ + 0.0002184153338598005, + 9.58973784459527e-06 + ], + [ + 0.00022242327335764145, + 1.3668615342687929e-05 + ], + [ + 0.0002437390251616156, + 6.671436763583394e-06 + ], + [ + 0.00019932828050861495, + 2.807609708166403e-06 + ], + [ + 0.00020072103843826739, + 6.579097560077685e-07 + ], + [ + 0.0002128340346481128, + 5.77942090518313e-07 + ], + [ + 0.00021274791718017827, + 5.661734830963994e-07 + ], + [ + 0.00022893980244020895, + 1.1368706124281758e-06 + ], + [ + 0.0002239217283239725, + 8.052065940677977e-07 + ], + [ + 0.00022554063365287647, + 4.6360574346149264e-07 + ], + [ + 0.00022543614657677402, + 4.621476960009474e-07 + ], + [ + 0.0003164055412313571, + 7.710173289821043e-07 + ], + [ + 0.00027849384007061495, + 1.8554315517338438e-07 + ], + [ + 0.000422312932572666, + 1.1055972289897298e-06 + ], + [ + 0.0004009541102025782, + 9.017535529398657e-08 + ], + [ + 0.0006690977254700803, + 2.2169075074573996e-06 + ], + [ + 0.0006273135973094979, + 3.1118994803236433e-07 + ], + [ + 0.0011404546450224373, + 3.379009514636877e-06 + ], + [ + 0.0011099920210567715, + 2.7334481345064887e-09 + ], + [ + 0.0011098779134295356, + 0.0 + ], + [ + 0.0011098779134295356, + 0.0 + ], + [ + 0.0011098779134295356, + 0.0 + ], + [ + 0.0011098779134295356, + 0.0 + ], + [ + 0.005939177932524298, + 0.0035106512378874077 + ], + [ + 0.02614846889084299, + 0.0181731795565937 + ], + [ + 0.01613769825063316, + 0.003956957266797345 + ], + [ + 0.016800165411854362, + 0.006615838018196207 + ], + [ + 0.021822866586568845, + 0.00832716235526798 + ], + [ + 0.04894211903574619, + 0.016528547644764968 + ], + [ + 0.03818181980431257, + 0.00030152690287321704 + ], + [ + 0.038461538461538436, + 0.0 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/W5W5/other_solutions/clean-18-25-0.0385_0.0000(1).json b/pytheus/graphs/HighlyEntangledStates/W5W5/other_solutions/clean-18-25-0.0385_0.0000(1).json new file mode 100644 index 00000000..46bcedb5 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/W5W5/other_solutions/clean-18-25-0.0385_0.0000(1).json @@ -0,0 +1,637 @@ +{ + "graph": { + "(0, 8, 0, 0)": -1.0, + "(6, 7, 1, 0)": 1.0, + "(0, 6, 0, 0)": 1.0, + "(7, 8, 0, 1)": -1.0, + "(5, 7, 1, 0)": -1.0, + "(7, 9, 0, 1)": 1.0, + "(7, 9, 1, 0)": 1.0, + "(0, 1, 1, 0)": -1.0, + "(0, 1, 0, 1)": -1.0, + "(1, 2, 0, 1)": -1.0, + "(1, 3, 0, 1)": 1.0, + "(1, 4, 0, 1)": -1.0, + "(4, 9, 0, 0)": 1.0, + "(4, 8, 0, 0)": -1.0, + "(3, 9, 0, 0)": -1.0, + "(3, 5, 0, 0)": 1.0, + "(2, 5, 0, 0)": -1.0, + "(2, 6, 0, 0)": 1.0 + }, + "loss": [ + 0.038461538461538436, + 0.0 + ], + "seed": 1253945932, + "history": [ + [ + 0.0003011456387694844, + 3.7053446731549755e-05 + ], + [ + 0.0003004928296939102, + 3.6425719254107314e-05 + ], + [ + 0.00030014656026522424, + 3.6139954803893204e-05 + ], + [ + 0.00030007366122342116, + 3.6103576336876664e-05 + ], + [ + 0.00029990311731276087, + 3.593270919011182e-05 + ], + [ + 0.00029967412877385247, + 3.588457874059703e-05 + ], + [ + 0.0002992302473414643, + 3.5410184428763536e-05 + ], + [ + 0.00029890971931512134, + 3.510919099647403e-05 + ], + [ + 0.0002987160224554586, + 3.493712662383519e-05 + ], + [ + 0.000298680549416952, + 3.4966252607016024e-05 + ], + [ + 0.00029852613555170215, + 3.481358893930864e-05 + ], + [ + 0.00029839237371342975, + 3.473884345006617e-05 + ], + [ + 0.0002985636337550224, + 3.489825589375606e-05 + ], + [ + 0.0002988050433675449, + 3.5219490098437056e-05 + ], + [ + 0.00029832592310208295, + 3.470495290880393e-05 + ], + [ + 0.00029814480022383183, + 3.461005266669481e-05 + ], + [ + 0.00029797098322081883, + 3.4400143783086534e-05 + ], + [ + 0.0002978554878253492, + 3.42916676318028e-05 + ], + [ + 0.0002977268108245168, + 3.4154275906361775e-05 + ], + [ + 0.0002980150176540297, + 3.450573268093393e-05 + ], + [ + 0.00029793976398928557, + 3.4415960214584373e-05 + ], + [ + 0.00029796737941267804, + 3.446196068113139e-05 + ], + [ + 0.00029827412187788394, + 3.4703094820009994e-05 + ], + [ + 0.00029828484929583787, + 3.478880041707377e-05 + ], + [ + 0.0002993488382827536, + 3.584360332664627e-05 + ], + [ + 0.00030064582004352136, + 3.719700393178815e-05 + ], + [ + 0.00030175445441305015, + 3.8309389888580014e-05 + ], + [ + 0.00030179849699984995, + 3.8428672798351826e-05 + ], + [ + 0.00030155256111263906, + 3.813126677876255e-05 + ], + [ + 0.00030253597663132403, + 3.9234231287599286e-05 + ], + [ + 0.0003013092825675523, + 3.800385547769736e-05 + ], + [ + 0.0003034311531556755, + 4.005863265155174e-05 + ], + [ + 0.00030643462458868065, + 4.309820737691261e-05 + ], + [ + 0.0002976006374492135, + 3.62891696797929e-05 + ], + [ + 0.0002970342398566084, + 3.5903747275023434e-05 + ], + [ + 0.0002974643770696783, + 3.6355205705329574e-05 + ], + [ + 0.0002966586960002626, + 3.556475598243125e-05 + ], + [ + 0.00029700713423364, + 3.5995378006914436e-05 + ], + [ + 0.0002977595880477857, + 3.6803183911526816e-05 + ], + [ + 0.00029910996646964616, + 3.820482300032069e-05 + ], + [ + 0.00030049544872656764, + 3.969401387671212e-05 + ], + [ + 0.0003064338861884508, + 4.563850040328887e-05 + ], + [ + 0.00030059072474908355, + 3.978002240789813e-05 + ], + [ + 0.00030630320454405613, + 4.5470706891537205e-05 + ], + [ + 0.00030646264491762665, + 4.563137737156886e-05 + ], + [ + 0.00030695953845605306, + 4.6104359559984154e-05 + ], + [ + 0.00029965431220213556, + 3.841963617912114e-05 + ], + [ + 0.00029798534519709374, + 3.6646848885379946e-05 + ], + [ + 0.0002993844289805869, + 3.808851587361328e-05 + ], + [ + 0.0003041790864791727, + 4.317923537799917e-05 + ], + [ + 0.00030376613961446974, + 4.2967830258922035e-05 + ], + [ + 0.0003156229134398947, + 5.532355276238743e-05 + ], + [ + 0.00032156818599538006, + 6.12929557030073e-05 + ], + [ + 0.0003194937351571614, + 5.925200253154017e-05 + ], + [ + 0.0003222317758753146, + 6.206876508008108e-05 + ], + [ + 0.0003243953333977867, + 6.422325229127335e-05 + ], + [ + 0.00032963838146282676, + 6.950945655603835e-05 + ], + [ + 0.0003156905461495496, + 5.8680775874786484e-05 + ], + [ + 0.00031607190974081156, + 5.923373979388469e-05 + ], + [ + 0.00031910258376399714, + 6.19214140813451e-05 + ], + [ + 0.0003196689458964119, + 6.205736002351525e-05 + ], + [ + 0.00032048058181410877, + 6.287900971013727e-05 + ], + [ + 0.0003153497396399807, + 5.7281972522638114e-05 + ], + [ + 0.0003164288752393052, + 5.851158258285416e-05 + ], + [ + 0.0003157110035364452, + 5.796577995054175e-05 + ], + [ + 0.0003210126130384072, + 6.331884588672843e-05 + ], + [ + 0.00031622067486569705, + 5.8011209410291364e-05 + ], + [ + 0.0003170925254273316, + 5.909635760381615e-05 + ], + [ + 0.0003173072481243988, + 5.9213717560124834e-05 + ], + [ + 0.00032049240369513843, + 6.24169005768449e-05 + ], + [ + 0.0003194822387968532, + 6.164254046003848e-05 + ], + [ + 0.00030755485408728855, + 4.959447554675478e-05 + ], + [ + 0.00030544801160914403, + 4.768634179297404e-05 + ], + [ + 0.0003056928081722754, + 4.832633925488938e-05 + ], + [ + 0.00031225150836089455, + 5.483297027775169e-05 + ], + [ + 0.00032970689132638675, + 7.22317706308706e-05 + ], + [ + 0.0003327756867327336, + 7.030792190543256e-05 + ], + [ + 0.0003258508596347687, + 6.256564225437522e-05 + ], + [ + 0.0003249128270192969, + 5.9361066832908094e-05 + ], + [ + 0.00032862759219420834, + 6.299236451623447e-05 + ], + [ + 0.00027627812158781406, + 2.8475797054783314e-05 + ], + [ + 0.0002764229403864338, + 2.8616890898058855e-05 + ], + [ + 0.00027628519598166257, + 2.8979915421500912e-05 + ], + [ + 0.00027016282406200354, + 2.3372132817223168e-05 + ], + [ + 0.00028646186172787136, + 3.8257890296100605e-05 + ], + [ + 0.00025344542576521967, + 1.755329695718455e-05 + ], + [ + 0.0002550676703407806, + 1.914060467955725e-05 + ], + [ + 0.00026027359840974373, + 2.4195303703899995e-05 + ], + [ + 0.0002566307261101519, + 1.9274753319420412e-05 + ], + [ + 0.0002578426888666385, + 1.7499453732527925e-05 + ], + [ + 0.0002499500918025088, + 1.3173739222605008e-05 + ], + [ + 0.00024968492672461373, + 1.2943534584808347e-05 + ], + [ + 0.00024941641307463236, + 1.2758338847396189e-05 + ], + [ + 0.00025019346100618733, + 1.3592840141130047e-05 + ], + [ + 0.00024935369718459555, + 1.2825954742834433e-05 + ], + [ + 0.0002458477066189513, + 1.514274950342731e-05 + ], + [ + 0.00027062069134942135, + 4.355274593226266e-05 + ], + [ + 0.00026797463960148704, + 4.314796462290271e-05 + ], + [ + 0.00027789841798664394, + 5.304069216471863e-05 + ], + [ + 0.0002477546284281873, + 1.113126732965597e-05 + ], + [ + 0.00025132493068602546, + 1.41634929166079e-05 + ], + [ + 0.000253665556712912, + 1.624363850349919e-05 + ], + [ + 0.00023783390476184163, + 7.5372246897131845e-06 + ], + [ + 0.00023692904112637692, + 6.85009814060944e-06 + ], + [ + 0.0002778762144234337, + 1.3047512031683084e-05 + ], + [ + 0.00028000183928889033, + 1.5145865523313873e-05 + ], + [ + 0.00027810817260387477, + 1.1714254497197096e-05 + ], + [ + 0.00032416704828552856, + 5.884469368921952e-05 + ], + [ + 0.000291328167432936, + 1.3410762941479248e-05 + ], + [ + 0.00029421863274936566, + 1.4923626290519465e-05 + ], + [ + 0.0002823180783849688, + 5.883591500110974e-06 + ], + [ + 0.0002821062575857347, + 5.71333265253493e-06 + ], + [ + 0.0003456166166067032, + 8.501710237918125e-05 + ], + [ + 0.00020455190119439415, + 6.237201996328601e-06 + ], + [ + 0.00020367207095650652, + 5.4118724034379895e-06 + ], + [ + 0.00020303138446453595, + 4.818687256102905e-06 + ], + [ + 0.00020282804554816458, + 4.5642478548879595e-06 + ], + [ + 0.0002325057722029067, + 1.5332190813621693e-06 + ], + [ + 0.00023213770286212299, + 1.3065324818706259e-06 + ], + [ + 0.00023177872790813847, + 1.0504685007406422e-06 + ], + [ + 0.0002311955340730254, + 7.164976673079693e-07 + ], + [ + 0.00022524308923044245, + 4.8927407259036215e-06 + ], + [ + 0.0002248709630622292, + 4.543822098801442e-06 + ], + [ + 0.00022623067630567206, + 5.994424464028647e-06 + ], + [ + 0.0002268035387842371, + 6.925426440873572e-06 + ], + [ + 0.0002212222812322251, + 4.377413066025682e-06 + ], + [ + 0.00022267323332747502, + 1.3496033897109072e-06 + ], + [ + 0.00022255892022160495, + 1.3312921383068499e-06 + ], + [ + 0.00023347376110616214, + 8.66529580312303e-07 + ], + [ + 0.00022466720791192163, + 3.7981470812908924e-07 + ], + [ + 0.00023009526572270733, + 4.410170779678424e-07 + ], + [ + 0.00022998332292456514, + 4.338612592524882e-07 + ], + [ + 0.00032316666469633937, + 1.2525886490255544e-06 + ], + [ + 0.0002798678919556652, + 3.9128050555170546e-07 + ], + [ + 0.0004226246501187747, + 9.748317657543026e-07 + ], + [ + 0.00040309209637801047, + 1.739156665347963e-07 + ], + [ + 0.000627744935707053, + 1.6514738873096846e-06 + ], + [ + 0.0006274159594540363, + 4.944661746719703e-08 + ], + [ + 0.0011401907478911788, + 3.2940673387882313e-06 + ], + [ + 0.0011100474078472589, + 5.897957344735971e-09 + ], + [ + 0.0011099067699416043, + 1.8119261646631912e-10 + ], + [ + 0.0011098779134295356, + 0.0 + ], + [ + 0.0011098779134295356, + 0.0 + ], + [ + 0.0011098779134295356, + 0.0 + ], + [ + 0.008300213306801418, + 0.005732038495637082 + ], + [ + 0.03318917371815455, + 0.027034692363712698 + ], + [ + 0.02241264162085055, + 0.010501818758305359 + ], + [ + 0.02041253345225913, + 0.009447621123388816 + ], + [ + 0.02400030148710719, + 0.009322197344735828 + ], + [ + 0.04899242765945122, + 0.016579723092248644 + ], + [ + 0.03809524092741068, + 0.0003941462851064781 + ], + [ + 0.038461538461538436, + 0.0 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/W5W5/other_solutions/clean-18-25-0.0385_0.0000.json b/pytheus/graphs/HighlyEntangledStates/W5W5/other_solutions/clean-18-25-0.0385_0.0000.json new file mode 100644 index 00000000..ba3ac94b --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/W5W5/other_solutions/clean-18-25-0.0385_0.0000.json @@ -0,0 +1,581 @@ +{ + "graph": { + "(6, 9, 0, 1)": 1.0, + "(1, 7, 0, 0)": -1.0, + "(1, 2, 1, 0)": 1.0, + "(1, 9, 0, 0)": 1.0, + "(2, 4, 0, 1)": -1.0, + "(6, 8, 0, 1)": 1.0, + "(0, 5, 0, 0)": -1.0, + "(6, 7, 0, 1)": -1.0, + "(6, 9, 1, 0)": 1.0, + "(2, 3, 0, 1)": -1.0, + "(5, 6, 1, 0)": -1.0, + "(2, 3, 1, 0)": -1.0, + "(0, 2, 1, 0)": 1.0, + "(4, 9, 0, 0)": -1.0, + "(4, 5, 0, 0)": 1.0, + "(3, 8, 0, 0)": -1.0, + "(3, 7, 0, 0)": 1.0, + "(0, 8, 0, 0)": 1.0 + }, + "loss": [ + 0.038461538461538436, + 0.0 + ], + "seed": 699770740, + "history": [ + [ + 0.00024980487740522417, + 7.57728118260248e-05 + ], + [ + 0.00024753906555385896, + 7.352427450657562e-05 + ], + [ + 0.00023300028984230003, + 5.942467488639913e-05 + ], + [ + 0.00023260749010178827, + 5.9075093821303604e-05 + ], + [ + 0.0002316985056078913, + 5.816393401902875e-05 + ], + [ + 0.0002312379649059837, + 5.770873872967819e-05 + ], + [ + 0.00023095806580419875, + 5.7435725537846594e-05 + ], + [ + 0.00023079299042849666, + 5.727265679356108e-05 + ], + [ + 0.0002308184470015684, + 5.730428954253686e-05 + ], + [ + 0.00023047085996186212, + 5.695737182320748e-05 + ], + [ + 0.00023099126730530273, + 5.74052760055066e-05 + ], + [ + 0.0002307553328717571, + 5.719517503932625e-05 + ], + [ + 0.00023059133616731842, + 5.7051626162207825e-05 + ], + [ + 0.0002308668442964068, + 5.7342567581608606e-05 + ], + [ + 0.00023074357334607054, + 5.7265911127868385e-05 + ], + [ + 0.0002307189353670802, + 5.7215735313032035e-05 + ], + [ + 0.00023057144816895914, + 5.7072943070002324e-05 + ], + [ + 0.00023058869324943387, + 5.709690778288312e-05 + ], + [ + 0.00023052589656691325, + 5.703782833987869e-05 + ], + [ + 0.00023061778165978097, + 5.7140267799571376e-05 + ], + [ + 0.00023039630891508178, + 5.691794056594812e-05 + ], + [ + 0.00023083970102666385, + 5.7366739520836596e-05 + ], + [ + 0.00023070013556281133, + 5.7234325733901414e-05 + ], + [ + 0.0002306848787354543, + 5.72057535057624e-05 + ], + [ + 0.00023103948865643709, + 5.747397990185643e-05 + ], + [ + 0.00023350330068239167, + 6.004170337692294e-05 + ], + [ + 0.00023358744233803463, + 6.0147036808899657e-05 + ], + [ + 0.0002486296855173098, + 7.517759415420766e-05 + ], + [ + 0.00024628990696107245, + 7.287622033613772e-05 + ], + [ + 0.0002465326187270911, + 7.309751663042707e-05 + ], + [ + 0.0002461935699442641, + 7.279468078813522e-05 + ], + [ + 0.00024652703380600993, + 7.314084035248136e-05 + ], + [ + 0.00025170391559259375, + 7.833821995184564e-05 + ], + [ + 0.00025331935825112506, + 7.996433302215333e-05 + ], + [ + 0.0002533548377200434, + 8.000289666632021e-05 + ], + [ + 0.000253382672884217, + 8.005840971070377e-05 + ], + [ + 0.0002524705386075521, + 7.918088795799694e-05 + ], + [ + 0.00025248160278124043, + 7.916804699048541e-05 + ], + [ + 0.00025308915608723836, + 7.979510735189876e-05 + ], + [ + 0.0002696611914310143, + 9.639706559372296e-05 + ], + [ + 0.00019623246743905032, + 3.3603039538920854e-05 + ], + [ + 0.0001959537500119124, + 3.334650151209928e-05 + ], + [ + 0.00019575013003081398, + 3.315761779709714e-05 + ], + [ + 0.00019553403198169228, + 3.2949448990571284e-05 + ], + [ + 0.00019538132535845687, + 3.281435159185886e-05 + ], + [ + 0.00019519855165828215, + 3.2648937611789997e-05 + ], + [ + 0.00019540849774679625, + 3.2912406232488145e-05 + ], + [ + 0.0002011382667157502, + 3.864361231686875e-05 + ], + [ + 0.0002015347349426655, + 3.8976491913977895e-05 + ], + [ + 0.0002024093943838734, + 3.988222105277828e-05 + ], + [ + 0.0002032741165231, + 4.08032265846181e-05 + ], + [ + 0.00020431888398664277, + 4.1821996611624e-05 + ], + [ + 0.00020549824407667394, + 4.29823303598198e-05 + ], + [ + 0.00020396199334815623, + 4.15424762957306e-05 + ], + [ + 0.0002005967694795885, + 3.8249561214454e-05 + ], + [ + 0.00020118856827200382, + 3.903970093355191e-05 + ], + [ + 0.00020458517984256464, + 4.2468251425176184e-05 + ], + [ + 0.00020635515180733588, + 4.4262818695628425e-05 + ], + [ + 0.00020263530416941844, + 4.083783731911872e-05 + ], + [ + 0.000204261752778212, + 4.245129756086374e-05 + ], + [ + 0.0002067606726441351, + 4.493155234408519e-05 + ], + [ + 0.00020366078375699814, + 4.179429950146307e-05 + ], + [ + 0.00020273988139662968, + 4.091215475776622e-05 + ], + [ + 0.00020852513350066992, + 4.672076595424457e-05 + ], + [ + 0.0002021644145698831, + 4.071557835971795e-05 + ], + [ + 0.00020259709037906415, + 4.113378401071621e-05 + ], + [ + 0.00020182010679203888, + 4.047344194402225e-05 + ], + [ + 0.00020235809658220028, + 4.0993725022753225e-05 + ], + [ + 0.00020508892216708485, + 4.3738837407159004e-05 + ], + [ + 0.0002035868221635928, + 4.232913578394726e-05 + ], + [ + 0.00020256864036050093, + 4.136043069613571e-05 + ], + [ + 0.00020087947495606162, + 3.9777485527192624e-05 + ], + [ + 0.00019161156403313395, + 2.857183875093483e-05 + ], + [ + 0.0001913106678966825, + 2.8251279626023695e-05 + ], + [ + 0.0001932809181044437, + 3.0066277562190713e-05 + ], + [ + 0.0001851955680425288, + 1.6220746271833342e-05 + ], + [ + 0.0001860027861929625, + 1.697675090295281e-05 + ], + [ + 0.0001857350594670626, + 1.6782372503687526e-05 + ], + [ + 0.0001872532327620302, + 1.824345376599812e-05 + ], + [ + 0.00018608768515693264, + 1.719244497944139e-05 + ], + [ + 0.0002023041962772032, + 3.2457178794742525e-05 + ], + [ + 0.00020461753511324954, + 3.4933781922097396e-05 + ], + [ + 0.00020667704314247803, + 3.352132369716099e-05 + ], + [ + 0.0002064303519452304, + 3.323113654563059e-05 + ], + [ + 0.00021457172690675375, + 4.1255198369838375e-05 + ], + [ + 0.0002277707381057592, + 4.8968904492019405e-05 + ], + [ + 0.00018593071318695475, + 7.797308764767585e-06 + ], + [ + 0.00018731731709398236, + 9.19155160639118e-06 + ], + [ + 0.00018717855210104162, + 9.098950913610793e-06 + ], + [ + 0.00018729932977146202, + 9.475408672465768e-06 + ], + [ + 0.0001920524729376316, + 1.4843627338723131e-05 + ], + [ + 0.00018637095069584664, + 9.158827393385138e-06 + ], + [ + 0.0001820670171315264, + 4.048766372388712e-06 + ], + [ + 0.00018172850257680562, + 3.7233915621825986e-06 + ], + [ + 0.0001820920927060321, + 4.074173193480135e-06 + ], + [ + 0.00018076675941547382, + 2.5540079022778883e-06 + ], + [ + 0.00018287650398030042, + 2.665353600050935e-07 + ], + [ + 0.0001811598990723029, + 4.52258334560085e-07 + ], + [ + 0.00018111041256996252, + 4.3214442269068343e-07 + ], + [ + 0.0001814587511526078, + 7.293067834091005e-07 + ], + [ + 0.0001911381440476978, + 6.1746895337888574e-06 + ], + [ + 0.00019663553352022856, + 1.170782201165288e-05 + ], + [ + 0.0001896147937267001, + 4.886100512524472e-06 + ], + [ + 0.00018929494637309752, + 4.5798013246223235e-06 + ], + [ + 0.00018988180758494622, + 3.81996416165542e-06 + ], + [ + 0.0001955171304696135, + 3.2181942312137224e-06 + ], + [ + 0.0001860225662896342, + 7.779214703518278e-07 + ], + [ + 0.00018571565096314746, + 5.081331292400293e-07 + ], + [ + 0.0001855067206540939, + 3.592765628335215e-07 + ], + [ + 0.00018533791813424294, + 2.3556074368880076e-07 + ], + [ + 0.0001880880150283426, + 2.3038326424362765e-07 + ], + [ + 0.00021889838498123648, + 2.3363106560481128e-07 + ], + [ + 0.00021860539095963638, + 9.717547269083582e-07 + ], + [ + 0.00021381185086777332, + 9.366523066045573e-07 + ], + [ + 0.0002278816512498727, + 1.7306951620721378e-06 + ], + [ + 0.00022772696937645165, + 1.7065366509916302e-06 + ], + [ + 0.00023280387621660292, + 2.1117069445297787e-06 + ], + [ + 0.00023260660471935424, + 2.0447673594325977e-06 + ], + [ + 0.00030572347558721624, + 7.303028771721287e-07 + ], + [ + 0.00027946994310690254, + 7.821937819674218e-08 + ], + [ + 0.001627886741430662, + 0.00023852366518095636 + ], + [ + 0.001833253927030598, + 0.00013551080170570717 + ], + [ + 0.0011096236920046243, + 2.734306186469304e-06 + ], + [ + 0.0011084187284596814, + 3.406051421239731e-06 + ], + [ + 0.0011090100269693925, + 1.0284193242560136e-06 + ], + [ + 0.0011098779134295356, + 0.0 + ], + [ + 0.002474529242005863, + 1.8350464748739803e-05 + ], + [ + 0.002489626771443265, + 4.212930859726072e-06 + ], + [ + 0.033189181330316675, + 0.027034373279839374 + ], + [ + 0.02241254539649795, + 0.010482297627519288 + ], + [ + 0.020412708007097047, + 0.00944972621246587 + ], + [ + 0.02400031288593829, + 0.009321684797857999 + ], + [ + 0.048992390536721, + 0.016579696806608313 + ], + [ + 0.038095240976423916, + 0.00039416510720813314 + ], + [ + 0.038461538461538436, + 0.0 + ], + [ + 0.038461538461538436, + 0.0 + ], + [ + 0.038461538461538436, + 0.0 + ], + [ + 0.038461538461538436, + 0.0 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/W5W5/plot_W5W5_clean-18-25-0.0385_0.0000.json b/pytheus/graphs/HighlyEntangledStates/W5W5/plot_W5W5_clean-18-25-0.0385_0.0000.json new file mode 100644 index 00000000..3082cdc8 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/W5W5/plot_W5W5_clean-18-25-0.0385_0.0000.json @@ -0,0 +1,581 @@ +{ + "graph": { + "(0, 8, 0, 0)": 1.0, + "(6, 7, 1, 0)": 1.0, + "(0, 6, 0, 0)": 1.0, + "(7, 8, 0, 1)": 1.0, + "(5, 7, 1, 0)": 1.0, + "(7, 9, 0, 1)": 1.0, + "(7, 9, 1, 0)": 1.0, + "(0, 1, 1, 0)": 1.0, + "(0, 1, 0, 1)": 1.0, + "(1, 2, 0, 1)": 1.0, + "(1, 3, 0, 1)": 1.0, + "(1, 4, 0, 1)": 1.0, + "(4, 9, 0, 0)": 1.0, + "(4, 8, 0, 0)": 1.0, + "(3, 9, 0, 0)": 1.0, + "(3, 5, 0, 0)": 1.0, + "(2, 5, 0, 0)": 1.0, + "(2, 6, 0, 0)": 1.0 + }, + "loss": [ + 0.038461538461538436, + 0.0 + ], + "seed": 699770740, + "history": [ + [ + 0.00024980487740522417, + 7.57728118260248e-05 + ], + [ + 0.00024753906555385896, + 7.352427450657562e-05 + ], + [ + 0.00023300028984230003, + 5.942467488639913e-05 + ], + [ + 0.00023260749010178827, + 5.9075093821303604e-05 + ], + [ + 0.0002316985056078913, + 5.816393401902875e-05 + ], + [ + 0.0002312379649059837, + 5.770873872967819e-05 + ], + [ + 0.00023095806580419875, + 5.7435725537846594e-05 + ], + [ + 0.00023079299042849666, + 5.727265679356108e-05 + ], + [ + 0.0002308184470015684, + 5.730428954253686e-05 + ], + [ + 0.00023047085996186212, + 5.695737182320748e-05 + ], + [ + 0.00023099126730530273, + 5.74052760055066e-05 + ], + [ + 0.0002307553328717571, + 5.719517503932625e-05 + ], + [ + 0.00023059133616731842, + 5.7051626162207825e-05 + ], + [ + 0.0002308668442964068, + 5.7342567581608606e-05 + ], + [ + 0.00023074357334607054, + 5.7265911127868385e-05 + ], + [ + 0.0002307189353670802, + 5.7215735313032035e-05 + ], + [ + 0.00023057144816895914, + 5.7072943070002324e-05 + ], + [ + 0.00023058869324943387, + 5.709690778288312e-05 + ], + [ + 0.00023052589656691325, + 5.703782833987869e-05 + ], + [ + 0.00023061778165978097, + 5.7140267799571376e-05 + ], + [ + 0.00023039630891508178, + 5.691794056594812e-05 + ], + [ + 0.00023083970102666385, + 5.7366739520836596e-05 + ], + [ + 0.00023070013556281133, + 5.7234325733901414e-05 + ], + [ + 0.0002306848787354543, + 5.72057535057624e-05 + ], + [ + 0.00023103948865643709, + 5.747397990185643e-05 + ], + [ + 0.00023350330068239167, + 6.004170337692294e-05 + ], + [ + 0.00023358744233803463, + 6.0147036808899657e-05 + ], + [ + 0.0002486296855173098, + 7.517759415420766e-05 + ], + [ + 0.00024628990696107245, + 7.287622033613772e-05 + ], + [ + 0.0002465326187270911, + 7.309751663042707e-05 + ], + [ + 0.0002461935699442641, + 7.279468078813522e-05 + ], + [ + 0.00024652703380600993, + 7.314084035248136e-05 + ], + [ + 0.00025170391559259375, + 7.833821995184564e-05 + ], + [ + 0.00025331935825112506, + 7.996433302215333e-05 + ], + [ + 0.0002533548377200434, + 8.000289666632021e-05 + ], + [ + 0.000253382672884217, + 8.005840971070377e-05 + ], + [ + 0.0002524705386075521, + 7.918088795799694e-05 + ], + [ + 0.00025248160278124043, + 7.916804699048541e-05 + ], + [ + 0.00025308915608723836, + 7.979510735189876e-05 + ], + [ + 0.0002696611914310143, + 9.639706559372296e-05 + ], + [ + 0.00019623246743905032, + 3.3603039538920854e-05 + ], + [ + 0.0001959537500119124, + 3.334650151209928e-05 + ], + [ + 0.00019575013003081398, + 3.315761779709714e-05 + ], + [ + 0.00019553403198169228, + 3.2949448990571284e-05 + ], + [ + 0.00019538132535845687, + 3.281435159185886e-05 + ], + [ + 0.00019519855165828215, + 3.2648937611789997e-05 + ], + [ + 0.00019540849774679625, + 3.2912406232488145e-05 + ], + [ + 0.0002011382667157502, + 3.864361231686875e-05 + ], + [ + 0.0002015347349426655, + 3.8976491913977895e-05 + ], + [ + 0.0002024093943838734, + 3.988222105277828e-05 + ], + [ + 0.0002032741165231, + 4.08032265846181e-05 + ], + [ + 0.00020431888398664277, + 4.1821996611624e-05 + ], + [ + 0.00020549824407667394, + 4.29823303598198e-05 + ], + [ + 0.00020396199334815623, + 4.15424762957306e-05 + ], + [ + 0.0002005967694795885, + 3.8249561214454e-05 + ], + [ + 0.00020118856827200382, + 3.903970093355191e-05 + ], + [ + 0.00020458517984256464, + 4.2468251425176184e-05 + ], + [ + 0.00020635515180733588, + 4.4262818695628425e-05 + ], + [ + 0.00020263530416941844, + 4.083783731911872e-05 + ], + [ + 0.000204261752778212, + 4.245129756086374e-05 + ], + [ + 0.0002067606726441351, + 4.493155234408519e-05 + ], + [ + 0.00020366078375699814, + 4.179429950146307e-05 + ], + [ + 0.00020273988139662968, + 4.091215475776622e-05 + ], + [ + 0.00020852513350066992, + 4.672076595424457e-05 + ], + [ + 0.0002021644145698831, + 4.071557835971795e-05 + ], + [ + 0.00020259709037906415, + 4.113378401071621e-05 + ], + [ + 0.00020182010679203888, + 4.047344194402225e-05 + ], + [ + 0.00020235809658220028, + 4.0993725022753225e-05 + ], + [ + 0.00020508892216708485, + 4.3738837407159004e-05 + ], + [ + 0.0002035868221635928, + 4.232913578394726e-05 + ], + [ + 0.00020256864036050093, + 4.136043069613571e-05 + ], + [ + 0.00020087947495606162, + 3.9777485527192624e-05 + ], + [ + 0.00019161156403313395, + 2.857183875093483e-05 + ], + [ + 0.0001913106678966825, + 2.8251279626023695e-05 + ], + [ + 0.0001932809181044437, + 3.0066277562190713e-05 + ], + [ + 0.0001851955680425288, + 1.6220746271833342e-05 + ], + [ + 0.0001860027861929625, + 1.697675090295281e-05 + ], + [ + 0.0001857350594670626, + 1.6782372503687526e-05 + ], + [ + 0.0001872532327620302, + 1.824345376599812e-05 + ], + [ + 0.00018608768515693264, + 1.719244497944139e-05 + ], + [ + 0.0002023041962772032, + 3.2457178794742525e-05 + ], + [ + 0.00020461753511324954, + 3.4933781922097396e-05 + ], + [ + 0.00020667704314247803, + 3.352132369716099e-05 + ], + [ + 0.0002064303519452304, + 3.323113654563059e-05 + ], + [ + 0.00021457172690675375, + 4.1255198369838375e-05 + ], + [ + 0.0002277707381057592, + 4.8968904492019405e-05 + ], + [ + 0.00018593071318695475, + 7.797308764767585e-06 + ], + [ + 0.00018731731709398236, + 9.19155160639118e-06 + ], + [ + 0.00018717855210104162, + 9.098950913610793e-06 + ], + [ + 0.00018729932977146202, + 9.475408672465768e-06 + ], + [ + 0.0001920524729376316, + 1.4843627338723131e-05 + ], + [ + 0.00018637095069584664, + 9.158827393385138e-06 + ], + [ + 0.0001820670171315264, + 4.048766372388712e-06 + ], + [ + 0.00018172850257680562, + 3.7233915621825986e-06 + ], + [ + 0.0001820920927060321, + 4.074173193480135e-06 + ], + [ + 0.00018076675941547382, + 2.5540079022778883e-06 + ], + [ + 0.00018287650398030042, + 2.665353600050935e-07 + ], + [ + 0.0001811598990723029, + 4.52258334560085e-07 + ], + [ + 0.00018111041256996252, + 4.3214442269068343e-07 + ], + [ + 0.0001814587511526078, + 7.293067834091005e-07 + ], + [ + 0.0001911381440476978, + 6.1746895337888574e-06 + ], + [ + 0.00019663553352022856, + 1.170782201165288e-05 + ], + [ + 0.0001896147937267001, + 4.886100512524472e-06 + ], + [ + 0.00018929494637309752, + 4.5798013246223235e-06 + ], + [ + 0.00018988180758494622, + 3.81996416165542e-06 + ], + [ + 0.0001955171304696135, + 3.2181942312137224e-06 + ], + [ + 0.0001860225662896342, + 7.779214703518278e-07 + ], + [ + 0.00018571565096314746, + 5.081331292400293e-07 + ], + [ + 0.0001855067206540939, + 3.592765628335215e-07 + ], + [ + 0.00018533791813424294, + 2.3556074368880076e-07 + ], + [ + 0.0001880880150283426, + 2.3038326424362765e-07 + ], + [ + 0.00021889838498123648, + 2.3363106560481128e-07 + ], + [ + 0.00021860539095963638, + 9.717547269083582e-07 + ], + [ + 0.00021381185086777332, + 9.366523066045573e-07 + ], + [ + 0.0002278816512498727, + 1.7306951620721378e-06 + ], + [ + 0.00022772696937645165, + 1.7065366509916302e-06 + ], + [ + 0.00023280387621660292, + 2.1117069445297787e-06 + ], + [ + 0.00023260660471935424, + 2.0447673594325977e-06 + ], + [ + 0.00030572347558721624, + 7.303028771721287e-07 + ], + [ + 0.00027946994310690254, + 7.821937819674218e-08 + ], + [ + 0.001627886741430662, + 0.00023852366518095636 + ], + [ + 0.001833253927030598, + 0.00013551080170570717 + ], + [ + 0.0011096236920046243, + 2.734306186469304e-06 + ], + [ + 0.0011084187284596814, + 3.406051421239731e-06 + ], + [ + 0.0011090100269693925, + 1.0284193242560136e-06 + ], + [ + 0.0011098779134295356, + 0.0 + ], + [ + 0.002474529242005863, + 1.8350464748739803e-05 + ], + [ + 0.002489626771443265, + 4.212930859726072e-06 + ], + [ + 0.033189181330316675, + 0.027034373279839374 + ], + [ + 0.02241254539649795, + 0.010482297627519288 + ], + [ + 0.020412708007097047, + 0.00944972621246587 + ], + [ + 0.02400031288593829, + 0.009321684797857999 + ], + [ + 0.048992390536721, + 0.016579696806608313 + ], + [ + 0.038095240976423916, + 0.00039416510720813314 + ], + [ + 0.038461538461538436, + 0.0 + ], + [ + 0.038461538461538436, + 0.0 + ], + [ + 0.038461538461538436, + 0.0 + ], + [ + 0.038461538461538436, + 0.0 + ] + ] +} diff --git a/theseus/configs/w5_sp.json b/pytheus/graphs/HighlyEntangledStates/W5_sp/config_W5_sp.json similarity index 100% rename from theseus/configs/w5_sp.json rename to pytheus/graphs/HighlyEntangledStates/W5_sp/config_W5_sp.json diff --git a/pytheus/graphs/HighlyEntangledStates/W5_sp/graph_W5_sp.aux b/pytheus/graphs/HighlyEntangledStates/W5_sp/graph_W5_sp.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/W5_sp/graph_W5_sp.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/W5_sp/graph_W5_sp.pdf b/pytheus/graphs/HighlyEntangledStates/W5_sp/graph_W5_sp.pdf new file mode 100644 index 00000000..950f4476 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/W5_sp/graph_W5_sp.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/W5_sp/graph_W5_sp.tex b/pytheus/graphs/HighlyEntangledStates/W5_sp/graph_W5_sp.tex new file mode 100644 index 00000000..191d4ba2 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/W5_sp/graph_W5_sp.tex @@ -0,0 +1,59 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.4270509831248424,1.7633557568774194) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (0.9270509831248424,2.8531695488854605) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-0.927050983124842,2.853169548885461) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-2.427050983124842,1.7633557568774196) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-3.0,3.6739403974420594e-16) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}5}; +\node[vertex] (6) at (-2.4270509831248424,-1.7633557568774192) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}6}; +\node[vertex] (7) at (-0.9270509831248427,-2.8531695488854605) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}7}; +\node[vertex] (8) at (0.9270509831248417,-2.853169548885461) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}8}; +\node[vertex] (9) at (2.427050983124842,-1.7633557568774196) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}9}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (8); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (9); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (8); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (9); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (7); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (6); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/W_5_sp/clean-13-5-0.1667_0.0000.json b/pytheus/graphs/HighlyEntangledStates/W5_sp/plot_W5_sp_clean-13-5-0.1667_0.0000.json similarity index 100% rename from theseus/graphs/W_5_sp/clean-13-5-0.1667_0.0000.json rename to pytheus/graphs/HighlyEntangledStates/W5_sp/plot_W5_sp_clean-13-5-0.1667_0.0000.json diff --git a/theseus/configs/YC.json b/pytheus/graphs/HighlyEntangledStates/YC/config_YC.json similarity index 100% rename from theseus/configs/YC.json rename to pytheus/graphs/HighlyEntangledStates/YC/config_YC.json diff --git a/pytheus/graphs/HighlyEntangledStates/YC/graph_YC.aux b/pytheus/graphs/HighlyEntangledStates/YC/graph_YC.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/YC/graph_YC.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/YC/graph_YC.pdf b/pytheus/graphs/HighlyEntangledStates/YC/graph_YC.pdf new file mode 100644 index 00000000..ab623393 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/YC/graph_YC.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/YC/graph_YC.tex b/pytheus/graphs/HighlyEntangledStates/YC/graph_YC.tex new file mode 100644 index 00000000..313e36f5 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/YC/graph_YC.tex @@ -0,0 +1,52 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [circle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=1.0] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/YC/clean-12-12-0.1111_0.0000.json b/pytheus/graphs/HighlyEntangledStates/YC/other_solutions/clean-12-12-0.1111_0.0000.json similarity index 100% rename from theseus/graphs/YC/clean-12-12-0.1111_0.0000.json rename to pytheus/graphs/HighlyEntangledStates/YC/other_solutions/clean-12-12-0.1111_0.0000.json diff --git a/pytheus/graphs/HighlyEntangledStates/YC/plot_YC_clean-12-12-0.1111_0.0000.json b/pytheus/graphs/HighlyEntangledStates/YC/plot_YC_clean-12-12-0.1111_0.0000.json new file mode 100644 index 00000000..cc4102aa --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/YC/plot_YC_clean-12-12-0.1111_0.0000.json @@ -0,0 +1,58 @@ +{ + "graph": { + "(0, 1, 0, 0)": 1.0, + "(0, 1, 1, 1)": 1.0, + "(0, 2, 0, 0)": -1.0, + "(0, 2, 1, 1)": 1.0, + "(0, 3, 0, 0)": 1.0, + "(0, 3, 1, 1)": 1.0, + "(1, 2, 0, 0)": 1.0, + "(1, 2, 1, 1)": 1.0, + "(1, 3, 0, 0)": 1.0, + "(1, 3, 1, 1)": 1.0, + "(2, 3, 0, 0)": 1.0, + "(2, 3, 1, 1)": -1.0 + }, + "loss": [ + 0.11111111116589112, + 6.933098539718685e-11 + ], + "history": [ + [ + 0.08333683569887995, + 0.0239931583451356 + ], + [ + 0.08333963142782197, + 0.024002482996218544 + ], + [ + 0.10425163459358466, + 0.008435237736449941 + ], + [ + 0.10778108921937868, + 0.0038456526154662107 + ], + [ + 0.1094804292238939, + 0.0019045177795320445 + ], + [ + 0.1102575080160495, + 0.00106849168676737 + ], + [ + 0.11111111267007212, + 1.9254224881137816e-09 + ], + [ + 0.1111111116072222, + 6.126845697451699e-10 + ], + [ + 0.11111111127703022, + 2.0999135763588583e-10 + ] + ] +} diff --git a/theseus/configs/cluster_4.json b/pytheus/graphs/HighlyEntangledStates/cluster_4/config_cluster_4.json similarity index 97% rename from theseus/configs/cluster_4.json rename to pytheus/graphs/HighlyEntangledStates/cluster_4/config_cluster_4.json index 30aa1ca1..491800f4 100644 --- a/theseus/configs/cluster_4.json +++ b/pytheus/graphs/HighlyEntangledStates/cluster_4/config_cluster_4.json @@ -5,7 +5,7 @@ "foldername": "cluster_4", "ftol": 1e-05, "loss_func": "cr", - "num_anc": 0, + "num_anc": 2, "num_pre": 1, "optimizer": "L-BFGS-B", "imaginary": false, diff --git a/pytheus/graphs/HighlyEntangledStates/cluster_4/graph_cluster_4.aux b/pytheus/graphs/HighlyEntangledStates/cluster_4/graph_cluster_4.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/cluster_4/graph_cluster_4.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/cluster_4/graph_cluster_4.pdf b/pytheus/graphs/HighlyEntangledStates/cluster_4/graph_cluster_4.pdf new file mode 100644 index 00000000..b37e4116 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/cluster_4/graph_cluster_4.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/cluster_4/graph_cluster_4.tex b/pytheus/graphs/HighlyEntangledStates/cluster_4/graph_cluster_4.tex new file mode 100644 index 00000000..ffb720ec --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/cluster_4/graph_cluster_4.tex @@ -0,0 +1,50 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=-16.875, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-5.625, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=5.625, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=16.875, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (3) to (4); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/cluster_4/clean-8-16-0.0588_0.0000.json b/pytheus/graphs/HighlyEntangledStates/cluster_4/plot_cluster_4_clean-8-16-0.0588_0.0000.json similarity index 100% rename from theseus/graphs/cluster_4/clean-8-16-0.0588_0.0000.json rename to pytheus/graphs/HighlyEntangledStates/cluster_4/plot_cluster_4_clean-8-16-0.0588_0.0000.json diff --git a/theseus/configs/cluster_5.json b/pytheus/graphs/HighlyEntangledStates/cluster_5/config_cluster_5.json similarity index 100% rename from theseus/configs/cluster_5.json rename to pytheus/graphs/HighlyEntangledStates/cluster_5/config_cluster_5.json diff --git a/pytheus/graphs/HighlyEntangledStates/cluster_5/graph_cluster_5.aux b/pytheus/graphs/HighlyEntangledStates/cluster_5/graph_cluster_5.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/cluster_5/graph_cluster_5.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/cluster_5/graph_cluster_5.pdf b/pytheus/graphs/HighlyEntangledStates/cluster_5/graph_cluster_5.pdf new file mode 100644 index 00000000..8cde8176 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/cluster_5/graph_cluster_5.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/cluster_5/graph_cluster_5.tex b/pytheus/graphs/HighlyEntangledStates/cluster_5/graph_cluster_5.tex new file mode 100644 index 00000000..0fe6ebdf --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/cluster_5/graph_cluster_5.tex @@ -0,0 +1,69 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=-15.0, opacity=0.47925794474985295] (0) to (1); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=0.0, opacity=0.6722306083573556] (0) to (1); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=15.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=0.3653919677342499] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.5640167688366546] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-15.0, opacity=0.4846430629185126] (0) to (4); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=0.40831462226442133] (0) to (4); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=15.0, opacity=0.36417554403901126] (0) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.7558265693956712] (0) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=0.9006765573482468] (0) to (5); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=0.504598131108734] (1) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=0.9574349439342957] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-15.0, opacity=0.3] (1) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=0.5664891275257873] (1) to (3); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=15.0, opacity=0.7084348571633617] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.779757071162143] (1) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.6891844120255562] (1) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.9159081359624185] (2) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-15.0, opacity=0.5922858698762454] (2) to (4); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=0.0, opacity=0.9763594230173287] (2) to (4); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=15.0, opacity=0.7874154191676622] (2) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=0.9091220134627476] (2) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=0.9433687713064738] (3) to (4); +\path[line width=4.0,bicolor={col0}{col1}, bend right=11.25, opacity=0.8444199648341488] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=0.6244183094563414] (3) to (5); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=0.749823581039754] (3) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=0.6864629303090536] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/cluster_5/rough-27-92-0.0689_0.3516.json b/pytheus/graphs/HighlyEntangledStates/cluster_5/plot_cluster_5_rough-27-92-0.0689_0.3516.json similarity index 100% rename from theseus/graphs/cluster_5/rough-27-92-0.0689_0.3516.json rename to pytheus/graphs/HighlyEntangledStates/cluster_5/plot_cluster_5_rough-27-92-0.0689_0.3516.json diff --git a/theseus/configs/complex4qubit.json b/pytheus/graphs/HighlyEntangledStates/complex4qubit/config_complex4qubit.json similarity index 100% rename from theseus/configs/complex4qubit.json rename to pytheus/graphs/HighlyEntangledStates/complex4qubit/config_complex4qubit.json diff --git a/pytheus/graphs/HighlyEntangledStates/complex4qubit/graph_complex4qubit.aux b/pytheus/graphs/HighlyEntangledStates/complex4qubit/graph_complex4qubit.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/complex4qubit/graph_complex4qubit.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/complex4qubit/graph_complex4qubit.pdf b/pytheus/graphs/HighlyEntangledStates/complex4qubit/graph_complex4qubit.pdf new file mode 100644 index 00000000..558c09b8 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/complex4qubit/graph_complex4qubit.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/complex4qubit/graph_complex4qubit.tex b/pytheus/graphs/HighlyEntangledStates/complex4qubit/graph_complex4qubit.tex new file mode 100644 index 00000000..d85dd403 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/complex4qubit/graph_complex4qubit.tex @@ -0,0 +1,51 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [circle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=11.25, opacity=1.0] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/complex4qubit/clean-11-10-0.1678_0.0434.json b/pytheus/graphs/HighlyEntangledStates/complex4qubit/plot_complex4qubit_clean-11-10-0.1678_0.0434.json similarity index 100% rename from theseus/graphs/complex4qubit/clean-11-10-0.1678_0.0434.json rename to pytheus/graphs/HighlyEntangledStates/complex4qubit/plot_complex4qubit_clean-11-10-0.1678_0.0434.json diff --git a/theseus/configs/symmetric33.json b/pytheus/graphs/HighlyEntangledStates/dicke33/config_dicke33.json similarity index 100% rename from theseus/configs/symmetric33.json rename to pytheus/graphs/HighlyEntangledStates/dicke33/config_dicke33.json diff --git a/pytheus/graphs/HighlyEntangledStates/dicke33/graph_dicke33.aux b/pytheus/graphs/HighlyEntangledStates/dicke33/graph_dicke33.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/dicke33/graph_dicke33.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/dicke33/graph_dicke33.pdf b/pytheus/graphs/HighlyEntangledStates/dicke33/graph_dicke33.pdf new file mode 100644 index 00000000..20c658fa Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/dicke33/graph_dicke33.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/dicke33/graph_dicke33.tex b/pytheus/graphs/HighlyEntangledStates/dicke33/graph_dicke33.tex new file mode 100644 index 00000000..08c2532c --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/dicke33/graph_dicke33.tex @@ -0,0 +1,49 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/symmetric33/clean-9-6-0.1429_0.0000.json b/pytheus/graphs/HighlyEntangledStates/dicke33/other_solutions/clean-9-6-0.1429_0.0000.json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/symmetric33/clean-9-6-0.1429_0.0000.json rename to pytheus/graphs/HighlyEntangledStates/dicke33/other_solutions/clean-9-6-0.1429_0.0000.json diff --git a/pytheus/graphs/HighlyEntangledStates/dicke33/plot_dicke33_9edges.json b/pytheus/graphs/HighlyEntangledStates/dicke33/plot_dicke33_9edges.json new file mode 100644 index 00000000..d0c0acb7 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/dicke33/plot_dicke33_9edges.json @@ -0,0 +1,115 @@ +{ + "graph": { + "(0, 1, 0, 1)": 1.0, + "(0, 1, 1, 0)": 1.0, + "(0, 2, 0, 1)": 1.0, + "(0, 2, 1, 0)": 1.0, + "(0, 3, 2, 0)": 1.0, + "(1, 2, 0, 1)": 1.0, + "(1, 2, 1, 0)": 1.0, + "(1, 3, 2, 0)": 1.0, + "(2, 3, 2, 0)": 1.0 + }, + "loss": [ + 0.1428571428571429, + 0.0 + ], + "history": [ + [ + 0.11662204607160498, + 0.022443035560699598 + ], + [ + 0.11805427408213298, + 0.022546362390027053 + ], + [ + 0.11923921823805772, + 0.022678312800693545 + ], + [ + 0.12518601914550698, + 0.019032868338467512 + ], + [ + 0.12576459872718537, + 0.018595072517900824 + ], + [ + 0.12820683154808976, + 0.016697756051236246 + ], + [ + 0.12820525303610397, + 0.016985362908789048 + ], + [ + 0.12820513475945094, + 0.01701293878561949 + ], + [ + 0.12820514518140835, + 0.017010901822349433 + ], + [ + 0.12820512859796096, + 0.017011231178806208 + ], + [ + 0.13888898376925363, + 0.005191919442856019 + ], + [ + 0.13888890299990742, + 0.005184967090130166 + ], + [ + 0.13888901792254604, + 0.0051749823698372666 + ], + [ + 0.13888888933303267, + 0.005176078765314784 + ], + [ + 0.1428571428571448, + 2.55351295663786e-15 + ], + [ + 0.14285714441565245, + 2.1213047984858235e-09 + ], + [ + 0.14285714287826756, + 2.8752999980952154e-11 + ], + [ + 0.14285716456898767, + 2.9552232994056737e-08 + ], + [ + 0.1428571483658152, + 7.497915066601024e-09 + ], + [ + 0.142857142861055, + 5.324962693009638e-12 + ], + [ + 0.1428571428588281, + 2.293831791178036e-12 + ], + [ + 0.14285714285744, + 4.0445424787094453e-13 + ], + [ + 0.14285714285744, + 4.0445424787094453e-13 + ], + [ + 0.14285714285714313, + 3.3306690738754696e-16 + ] + ] +} diff --git a/theseus/configs/symmetric43.json b/pytheus/graphs/HighlyEntangledStates/dicke43/config_dicke43.json similarity index 100% rename from theseus/configs/symmetric43.json rename to pytheus/graphs/HighlyEntangledStates/dicke43/config_dicke43.json diff --git a/pytheus/graphs/HighlyEntangledStates/dicke43/dicke43.json b/pytheus/graphs/HighlyEntangledStates/dicke43/dicke43.json new file mode 100644 index 00000000..703a63fb --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/dicke43/dicke43.json @@ -0,0 +1 @@ +{"(0, 1, 0, 1)": 1.0, "(0, 1, 1, 0)": 1.0, "(0, 2, 0, 1)": 1.0, "(0, 2, 1, 0)": 1.0, "(0, 3, 0, 1)": 1.0, "(0, 3, 1, 0)": 1.0, "(0, 4, 2, 0)": 1.0, "(0, 5, 0, 0)": 1.0, "(1, 2, 0, 1)": 1.0, "(1, 2, 1, 0)": 1.0, "(1, 3, 0, 1)": 1.0, "(1, 3, 1, 0)": 1.0, "(1, 4, 2, 0)": 1.0, "(1, 5, 0, 0)": 1.0, "(2, 3, 0, 1)": 1.0, "(2, 3, 1, 0)": 1.0, "(2, 4, 2, 0)": 1.0, "(2, 5, 0, 0)": 1.0, "(3, 4, 2, 0)": 1.0, "(3, 5, 0, 0)": 1.0} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/dicke43/graph_dicke43.aux b/pytheus/graphs/HighlyEntangledStates/dicke43/graph_dicke43.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/dicke43/graph_dicke43.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/dicke43/graph_dicke43.pdf b/pytheus/graphs/HighlyEntangledStates/dicke43/graph_dicke43.pdf new file mode 100644 index 00000000..19ca6631 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/dicke43/graph_dicke43.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/dicke43/graph_dicke43.tex b/pytheus/graphs/HighlyEntangledStates/dicke43/graph_dicke43.tex new file mode 100644 index 00000000..0332c7b0 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/dicke43/graph_dicke43.tex @@ -0,0 +1,62 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/symmetric43/clean-20-24-0.0204_0.0000.json b/pytheus/graphs/HighlyEntangledStates/dicke43/other_solutions/clean-20-24-0.0204_0.0000.json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/symmetric43/clean-20-24-0.0204_0.0000.json rename to pytheus/graphs/HighlyEntangledStates/dicke43/other_solutions/clean-20-24-0.0204_0.0000.json diff --git a/pytheus/graphs/HighlyEntangledStates/dicke43/plot_dicke43_20edges.json b/pytheus/graphs/HighlyEntangledStates/dicke43/plot_dicke43_20edges.json new file mode 100644 index 00000000..fac780c1 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/dicke43/plot_dicke43_20edges.json @@ -0,0 +1,222 @@ +{ + "graph": { + "(0, 1, 0, 1)": 1.0, + "(0, 1, 1, 0)": 1.0, + "(0, 2, 0, 1)": 1.0, + "(0, 2, 1, 0)": 1.0, + "(0, 3, 0, 1)": 1.0, + "(0, 3, 1, 0)": 1.0, + "(0, 4, 2, 0)": 1.0, + "(0, 5, 0, 0)": 1.0, + "(1, 2, 0, 1)": 1.0, + "(1, 2, 1, 0)": 1.0, + "(1, 3, 0, 1)": 1.0, + "(1, 3, 1, 0)": 1.0, + "(1, 4, 2, 0)": 1.0, + "(1, 5, 0, 0)": 1.0, + "(2, 3, 0, 1)": 1.0, + "(2, 3, 1, 0)": 1.0, + "(2, 4, 2, 0)": 1.0, + "(2, 5, 0, 0)": 1.0, + "(3, 4, 2, 0)": 1.0, + "(3, 5, 0, 0)": 1.0 + }, + "loss": [ + 0.020408163265306145, + 0.0 + ], + "history": [ + [ + 0.020314455210728943, + 0.00011123130500445555 + ], + [ + 0.02031369865631838, + 0.00011058841527644692 + ], + [ + 0.020313370711184775, + 0.00010972549414556276 + ], + [ + 0.020313087827362075, + 0.00010863318325637916 + ], + [ + 0.020312874210615672, + 0.00010796860145745324 + ], + [ + 0.020312743805953715, + 0.00010849721299110993 + ], + [ + 0.02031252273977635, + 0.00010769952251465931 + ], + [ + 0.0203123608589294, + 0.0001077695290763181 + ], + [ + 0.02031222470544458, + 0.00010708679613058436 + ], + [ + 0.02031205924417734, + 0.00010730253043822469 + ], + [ + 0.020312451847463553, + 0.00011231377868237136 + ], + [ + 0.020312308453737993, + 0.0001108927047979158 + ], + [ + 0.020312106068621105, + 0.0001105111862005348 + ], + [ + 0.020312067215468077, + 0.00010949525967718365 + ], + [ + 0.020312137100970795, + 0.00010994946606091016 + ], + [ + 0.020312390658416724, + 0.0001085724413626421 + ], + [ + 0.020312812370356537, + 0.00011296702954122217 + ], + [ + 0.020312742384301363, + 0.00011154920133460422 + ], + [ + 0.020312991910575118, + 0.00011089487248960861 + ], + [ + 0.02031292852607114, + 0.00010966667390943652 + ], + [ + 0.020312786316838416, + 0.00010877717558399613 + ], + [ + 0.020313157390049685, + 0.00010819440075748865 + ], + [ + 0.020312590140920128, + 0.00010713899781134018 + ], + [ + 0.020366212584207344, + 4.690070553514669e-05 + ], + [ + 0.02040921348823066, + 1.0944380145483379e-06 + ], + [ + 0.02040817104035353, + 8.102382209607129e-09 + ], + [ + 0.020408169677473165, + 6.6821237432179714e-09 + ], + [ + 0.0204081695228564, + 6.520997519743332e-09 + ], + [ + 0.020408166220832524, + 3.079956178986265e-09 + ], + [ + 0.020408176277033285, + 1.355952994330778e-08 + ], + [ + 0.020408173886716896, + 1.1068579608419782e-08 + ], + [ + 0.020408172006367686, + 9.109066279044953e-09 + ], + [ + 0.020408170342421816, + 7.375067223591714e-09 + ], + [ + 0.020408171388704432, + 8.465398937396174e-09 + ], + [ + 0.02040817304026754, + 1.01864940926788e-08 + ], + [ + 0.02040816779699961, + 4.722480850816169e-09 + ], + [ + 0.020408164085218616, + 8.544313034875017e-10 + ], + [ + 0.020408232438314244, + 7.208523966628633e-08 + ], + [ + 0.02040829760299101, + 1.3999339432135827e-07 + ], + [ + 0.02040817577978804, + 1.3041350332976265e-08 + ], + [ + 0.020408272904989255, + 1.1425558965605376e-07 + ], + [ + 0.020408310232885696, + 1.531550163358375e-07 + ], + [ + 0.02040828461618993, + 1.2645983993309073e-07 + ], + [ + 0.020408237327382728, + 7.718014138902163e-08 + ], + [ + 0.02040823789334334, + 7.776992938524074e-08 + ], + [ + 0.02040816327145334, + 6.405986852087153e-12 + ], + [ + 0.020408163270734914, + 5.65736346658241e-12 + ], + [ + 0.02040816327220829, + 7.192801909639002e-12 + ] + ] +} \ No newline at end of file diff --git a/theseus/configs/symmetric52.json b/pytheus/graphs/HighlyEntangledStates/dicke52/config_dicke52.json similarity index 100% rename from theseus/configs/symmetric52.json rename to pytheus/graphs/HighlyEntangledStates/dicke52/config_dicke52.json diff --git a/pytheus/graphs/HighlyEntangledStates/dicke52/dicke52.json b/pytheus/graphs/HighlyEntangledStates/dicke52/dicke52.json new file mode 100644 index 00000000..92cc3eb5 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/dicke52/dicke52.json @@ -0,0 +1 @@ +{"(0, 1, 1, 0)": 1.0, "(0, 2, 0, 1)": 1.0, "(0, 3, 0, 1)": 1.0, "(0, 3, 1, 0)": 1.0, "(0, 4, 0, 1)": 1.0, "(1, 2, 1, 0)": 1.0, "(1, 3, 1, 0)": 1.0, "(1, 5, 0, 0)": 1.0, "(2, 3, 1, 0)": 1.0, "(2, 4, 0, 1)": 1.0, "(2, 5, 0, 0)": 1.0, "(3, 4, 1, 0)": 1.0, "(4, 5, 0, 0)": 1.0} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/dicke52/graph_dicke52.aux b/pytheus/graphs/HighlyEntangledStates/dicke52/graph_dicke52.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/dicke52/graph_dicke52.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/dicke52/graph_dicke52.pdf b/pytheus/graphs/HighlyEntangledStates/dicke52/graph_dicke52.pdf new file mode 100644 index 00000000..c281aa97 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/dicke52/graph_dicke52.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/dicke52/graph_dicke52.tex b/pytheus/graphs/HighlyEntangledStates/dicke52/graph_dicke52.tex new file mode 100644 index 00000000..276c3ff5 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/dicke52/graph_dicke52.tex @@ -0,0 +1,55 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/symmetric52/clean-13-10-0.0909_0.0000.json b/pytheus/graphs/HighlyEntangledStates/dicke52/other_solutions/clean-13-10-0.0909_0.0000.json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/symmetric52/clean-13-10-0.0909_0.0000.json rename to pytheus/graphs/HighlyEntangledStates/dicke52/other_solutions/clean-13-10-0.0909_0.0000.json diff --git a/pytheus/graphs/HighlyEntangledStates/dicke52/plot_dicke52_13edges.json b/pytheus/graphs/HighlyEntangledStates/dicke52/plot_dicke52_13edges.json new file mode 100644 index 00000000..90fbdf46 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/dicke52/plot_dicke52_13edges.json @@ -0,0 +1,163 @@ +{ + "graph": { + "(0, 1, 1, 0)": 1.0, + "(0, 2, 0, 1)": 1.0, + "(0, 3, 0, 1)": 1.0, + "(0, 3, 1, 0)": 1.0, + "(0, 4, 0, 1)": 1.0, + "(1, 2, 1, 0)": 1.0, + "(1, 3, 1, 0)": 1.0, + "(1, 5, 0, 0)": 1.0, + "(2, 3, 1, 0)": 1.0, + "(2, 4, 0, 1)": 1.0, + "(2, 5, 0, 0)": 1.0, + "(3, 4, 1, 0)": 1.0, + "(4, 5, 0, 0)": 1.0 + }, + "loss": [ + 0.09090909090909094, + 0.0 + ], + "history": [ + [ + 0.019226812772325297, + 0.0026827867127972027 + ], + [ + 0.01924734276832718, + 0.002660323867125225 + ], + [ + 0.019326689651305573, + 0.002528679974159176 + ], + [ + 0.019789368384983796, + 0.0029653549554038428 + ], + [ + 0.019943383056073016, + 0.002708228131231727 + ], + [ + 0.019938166655110168, + 0.0027699897286251884 + ], + [ + 0.020027236990214026, + 0.0028018703299113046 + ], + [ + 0.02010369386156685, + 0.0028713473295539638 + ], + [ + 0.02115461059793211, + 0.0036410177511790875 + ], + [ + 0.02114765744065039, + 0.0036218009077900737 + ], + [ + 0.023934058678560466, + 0.0035766020730139125 + ], + [ + 0.024308247030957464, + 0.0017208351404975897 + ], + [ + 0.02431310301329115, + 0.0017842165759403006 + ], + [ + 0.024929620243628103, + 0.0015399444463324308 + ], + [ + 0.025437868390201124, + 0.001567446803757644 + ], + [ + 0.025876859427552135, + 0.001371838831860872 + ], + [ + 0.026664087396898073, + 0.0018324312953792443 + ], + [ + 0.027305597591619102, + 0.0022436806492721617 + ], + [ + 0.02730968280595658, + 0.0022394815150685865 + ], + [ + 0.05000248755913117, + 0.02418032389918623 + ], + [ + 0.05000119383992241, + 0.0241762509734178 + ], + [ + 0.0500007322949364, + 0.02418047081557939 + ], + [ + 0.05000077036073036, + 0.02418132395086736 + ], + [ + 0.053139506536533654, + 0.02471688154707652 + ], + [ + 0.05490526893549408, + 0.025391462554602118 + ], + [ + 0.055114037735750965, + 0.02524233926916919 + ], + [ + 0.056269431816489135, + 0.025554574850515377 + ], + [ + 0.050021550850522956, + 0.023465551415417174 + ], + [ + 0.05002069247469376, + 0.023483174789841632 + ], + [ + 0.0666668002915689, + 0.019994256283359046 + ], + [ + 0.07508566397316518, + 0.014662208987001768 + ], + [ + 0.08000002394960615, + 0.01120282207717993 + ], + [ + 0.08000001960895453, + 0.011231363211917977 + ], + [ + 0.08571447772570306, + 0.005828941141180821 + ], + [ + 0.08888888889003865, + 0.0023740001215450945 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/dicke72/config_dicke72.json b/pytheus/graphs/HighlyEntangledStates/dicke72/config_dicke72.json new file mode 100644 index 00000000..847633a6 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/dicke72/config_dicke72.json @@ -0,0 +1,43 @@ +{ + "description": "Creation of dicke state of seven qubits.", + "bulk_thr": 0.01, + "edges_tried": 30, + "foldername": "dicke72cr", + "ftol": 1e-06, + "loss_func": "cr", + "num_anc": 3, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 10, + "target_state": [ + "0000011", + "0000101", + "0000110", + "0001001", + "0001010", + "0001100", + "0010001", + "0010010", + "0010100", + "0011000", + "0100001", + "0100010", + "0100100", + "0101000", + "0110000", + "1000001", + "1000010", + "1000100", + "1001000", + "1010000", + "1100000" + ], + "thresholds": [ + 0.1, + 0.001 + ], + "tries_per_edge": 3, + "unicolor": false +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/dicke72/dicke72.json b/pytheus/graphs/HighlyEntangledStates/dicke72/dicke72.json new file mode 100644 index 00000000..ce65ef25 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/dicke72/dicke72.json @@ -0,0 +1 @@ +{"(0, 3, 0, 1)": 1.0, "(4, 5, 1, 0)": 1.0, "(0, 1, 1, 0)": 1.0, "(4, 5, 0, 1)": 1.0, "(4, 6, 1, 0)": 1.0, "(5, 6, 1, 0)": 1.0, "(5, 9, 0, 0)": 1.0, "(5, 8, 0, 0)": 1.0, "(4, 9, 0, 0)": 1.0, "(4, 7, 0, 0)": 1.0, "(4, 6, 0, 1)": 1.0, "(3, 8, 0, 0)": 1.0, "(3, 6, 0, 1)": 1.0, "(2, 7, 0, 0)": 1.0, "(2, 6, 1, 0)": 1.0, "(2, 5, 1, 0)": 1.0, "(2, 4, 0, 1)": 1.0, "(2, 3, 0, 1)": 1.0, "(1, 8, 0, 0)": 1.0, "(1, 7, 0, 0)": 1.0, "(1, 6, 1, 0)": 1.0, "(1, 5, 0, 1)": 1.0, "(1, 4, 1, 0)": 1.0, "(1, 3, 1, 0)": 1.0, "(0, 6, 1, 0)": 1.0, "(0, 9, 0, 0)": 1.0} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/dicke72/graph_dicke72.aux b/pytheus/graphs/HighlyEntangledStates/dicke72/graph_dicke72.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/dicke72/graph_dicke72.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/dicke72/graph_dicke72.pdf b/pytheus/graphs/HighlyEntangledStates/dicke72/graph_dicke72.pdf new file mode 100644 index 00000000..24859ce8 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/dicke72/graph_dicke72.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/dicke72/graph_dicke72.tex b/pytheus/graphs/HighlyEntangledStates/dicke72/graph_dicke72.tex new file mode 100644 index 00000000..594cf0d8 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/dicke72/graph_dicke72.tex @@ -0,0 +1,72 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.4270509831248424,1.7633557568774194) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (0.9270509831248424,2.8531695488854605) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-0.927050983124842,2.853169548885461) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-2.427050983124842,1.7633557568774196) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}5}; +\node[vertex] (6) at (-2.4270509831248424,-1.7633557568774192) [circle] {\color{fontcolor}6}; +\node[vertex] (7) at (-0.9270509831248427,-2.8531695488854605) [rectangle] {\color{fontcolor}7}; +\node[vertex] (8) at (0.9270509831248417,-2.853169548885461) [rectangle] {\color{fontcolor}8}; +\node[vertex] (9) at (2.427050983124842,-1.7633557568774196) [rectangle] {\color{fontcolor}9}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (9); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (8); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (8); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (4) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (4) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (9); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (8); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (9); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/HighlyEntangledStates/dicke72/other_solutions/clean-26-42-0.0118_0.0000.json b/pytheus/graphs/HighlyEntangledStates/dicke72/other_solutions/clean-26-42-0.0118_0.0000.json new file mode 100644 index 00000000..1671f72d --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/dicke72/other_solutions/clean-26-42-0.0118_0.0000.json @@ -0,0 +1,444 @@ +{ + "graph": { + "(0, 3, 0, 1)": -1.0, + "(4, 5, 1, 0)": 1.0, + "(0, 1, 1, 0)": 1.0, + "(4, 5, 0, 1)": 1.0, + "(4, 6, 1, 0)": 1.0, + "(5, 6, 1, 0)": -1.0, + "(5, 9, 0, 0)": -1.0, + "(5, 8, 0, 0)": 1.0, + "(4, 9, 0, 0)": 1.0, + "(4, 7, 0, 0)": -1.0, + "(4, 6, 0, 1)": 1.0, + "(3, 8, 0, 0)": 1.0, + "(3, 6, 0, 1)": -1.0, + "(2, 7, 0, 0)": 1.0, + "(2, 6, 1, 0)": -1.0, + "(2, 5, 1, 0)": -1.0, + "(2, 4, 0, 1)": 1.0, + "(2, 3, 0, 1)": -1.0, + "(1, 8, 0, 0)": -1.0, + "(1, 7, 0, 0)": -1.0, + "(1, 6, 1, 0)": 1.0, + "(1, 5, 0, 1)": 1.0, + "(1, 4, 1, 0)": -1.0, + "(1, 3, 1, 0)": 1.0, + "(0, 6, 1, 0)": -1.0, + "(0, 9, 0, 0)": -1.0 + }, + "loss": [ + 0.0117647058823529, + 0.0 + ], + "history": [ + [ + 0.00018087166265434718, + 3.683106146701309e-05 + ], + [ + 0.0001725154927162409, + 2.9144426593519235e-05 + ], + [ + 0.00017304281921060038, + 2.9705201726293318e-05 + ], + [ + 0.0001755839677374249, + 3.22963134076204e-05 + ], + [ + 0.0001662542629184971, + 2.625882188722617e-05 + ], + [ + 0.00016140713719059452, + 2.3215884345395565e-05 + ], + [ + 0.00016131160770493924, + 2.5781713073214085e-05 + ], + [ + 0.00016171513618257194, + 2.602649005456481e-05 + ], + [ + 0.0001566976009733656, + 2.248959253536853e-05 + ], + [ + 0.00016176661311773088, + 2.7474692245399446e-05 + ], + [ + 0.00015375752485080607, + 2.0768984633101617e-05 + ], + [ + 0.0001592829458701983, + 2.7094878302325043e-05 + ], + [ + 0.00017145640294047304, + 4.003912127636955e-05 + ], + [ + 0.00016497864659936745, + 3.396800653088228e-05 + ], + [ + 0.00017714957715997404, + 4.553702183185404e-05 + ], + [ + 0.00017119782562680097, + 4.342485585884237e-05 + ], + [ + 0.000164327628079608, + 3.66256158531586e-05 + ], + [ + 0.00017636647248842063, + 4.8579210527699423e-05 + ], + [ + 0.0001746093353341971, + 4.823991504654401e-05 + ], + [ + 0.00017057326471492384, + 4.4356444325988065e-05 + ], + [ + 0.00016257443698053375, + 3.7396002390166494e-05 + ], + [ + 0.00016266858140345786, + 3.822198157155121e-05 + ], + [ + 0.00014986198195676703, + 2.6334131781657888e-05 + ], + [ + 0.0001439675112858696, + 2.187906647388438e-05 + ], + [ + 0.00015159937540054624, + 2.9410849635924663e-05 + ], + [ + 0.00015548864999481715, + 3.4130332205783986e-05 + ], + [ + 0.00015468828965270465, + 3.3326583032344814e-05 + ], + [ + 0.0001460479796268066, + 2.6061904580321205e-05 + ], + [ + 0.0001497095157283468, + 3.001407372849041e-05 + ], + [ + 0.00014778734375708868, + 2.883343174409081e-05 + ], + [ + 0.0001543571072567529, + 3.612929081531213e-05 + ], + [ + 0.00015605940673568686, + 3.802670737096392e-05 + ], + [ + 0.00015114340414323912, + 3.402757552639635e-05 + ], + [ + 0.00015683649506459396, + 4.172096994825569e-05 + ], + [ + 0.00017076147727235202, + 5.544264910051222e-05 + ], + [ + 0.0001709151111812801, + 5.559903738405758e-05 + ], + [ + 0.00018110736346677037, + 6.588884619229685e-05 + ], + [ + 0.00016931945057840903, + 5.479894634163873e-05 + ], + [ + 0.0001711120433800506, + 5.6824819138934224e-05 + ], + [ + 0.00017826018042133018, + 6.370102135011546e-05 + ], + [ + 0.00013245934052996677, + 2.34320987202441e-06 + ], + [ + 0.0001320604886169141, + 1.971052469906809e-06 + ], + [ + 0.0001318839618716927, + 1.8218099552269607e-06 + ], + [ + 0.00013175731500880694, + 1.7200302112607702e-06 + ], + [ + 0.00013170729470546316, + 1.689793617920543e-06 + ], + [ + 0.00013157501829241802, + 1.5792215071197546e-06 + ], + [ + 0.0001315346786371352, + 1.5603558498611392e-06 + ], + [ + 0.0001314790110974462, + 1.5248376040721823e-06 + ], + [ + 0.00013062289045839837, + 9.068084735330828e-07 + ], + [ + 0.00013031369726457243, + 1.362208592037284e-06 + ], + [ + 0.00012873003068802902, + 1.4806558407132187e-06 + ], + [ + 0.00013092974986095296, + 3.006572924846296e-06 + ], + [ + 0.00012391967657443548, + 6.586796373886372e-07 + ], + [ + 0.00013472180812146295, + 6.385771358030645e-06 + ], + [ + 0.00011930719306840754, + 9.741241182581462e-07 + ], + [ + 0.00012604434376339846, + 6.453908575787537e-06 + ], + [ + 0.0001222423682391005, + 1.979735418045081e-06 + ], + [ + 0.0001143023421072975, + 1.182689869039244e-06 + ], + [ + 0.00012693290861642836, + 1.317539556455749e-06 + ], + [ + 0.00012127458466493213, + 2.1080709002863074e-06 + ], + [ + 0.00011961100946822345, + 2.6407842589337704e-06 + ], + [ + 0.00012742881898253344, + 8.114752740651099e-06 + ], + [ + 0.00012760691980595595, + 8.311019049522805e-06 + ], + [ + 0.00012453627057629202, + 6.130682298155499e-06 + ], + [ + 0.00013606282222700106, + 9.416590778910106e-06 + ], + [ + 0.00012959661914857534, + 1.0672941392786406e-05 + ], + [ + 0.00011849174954914332, + 8.713161845252948e-06 + ], + [ + 0.00011163610688569303, + 3.371483226821681e-06 + ], + [ + 0.00011948591324029145, + 1.1239984576194573e-05 + ], + [ + 0.00010963753469328541, + 3.416863318617125e-06 + ], + [ + 0.00011399357161079315, + 2.2240081207769435e-06 + ], + [ + 0.000115522025477377, + 3.770169353711772e-06 + ], + [ + 0.00011098596820535711, + 5.045259584557371e-07 + ], + [ + 0.00011094313599413486, + 4.867117563422951e-07 + ], + [ + 0.0001374849145314716, + 5.128992505154528e-07 + ], + [ + 0.00012760822381341352, + 2.11737844091342e-06 + ], + [ + 0.00015479596328693557, + 1.367083376169198e-06 + ], + [ + 0.0001919107541368259, + 1.1910614130528074e-06 + ], + [ + 0.00016858411239906168, + 5.907320045572817e-06 + ], + [ + 0.00019959303095751224, + 6.497756180112724e-06 + ], + [ + 0.0003244260012057465, + 1.24827025465013e-05 + ], + [ + 0.00032074739709964106, + 2.7649477579827497e-05 + ], + [ + 0.00035292316863300144, + 4.896420632061194e-06 + ], + [ + 0.00034151154993133925, + 5.204617629761543e-06 + ], + [ + 0.0004137013607032891, + 8.784361738123359e-06 + ], + [ + 0.0004708206112430391, + 1.1213929677067469e-05 + ], + [ + 0.0005898185117565458, + 3.290514911247211e-05 + ], + [ + 0.0012957428830039364, + 0.0001290550647793376 + ], + [ + 0.0012639583095531703, + 0.00013775244583602575 + ], + [ + 0.001580428759510144, + 0.0001302859787369881 + ], + [ + 0.004114826806161598, + 0.0008771930760187452 + ], + [ + 0.005329795122392289, + 0.0009446403744547416 + ], + [ + 0.0053747125350448455, + 0.000884594179697662 + ], + [ + 0.005380157521390094, + 0.000913325533689946 + ], + [ + 0.0056740869555496065, + 0.0009716633139631448 + ], + [ + 0.010991121388970848, + 0.0007790252878696613 + ], + [ + 0.01100371955795798, + 0.0007784955296303853 + ], + [ + 0.011246222223572189, + 0.0005177508867404423 + ], + [ + 0.011428586005838293, + 0.0003369133140107561 + ], + [ + 0.011695909641730062, + 6.919142852290783e-05 + ], + [ + 0.011732229169516661, + 3.3238494542509045e-05 + ], + [ + 0.0117647058823529, + 0.0 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/dicke72/plot_dicke72_clean-26-42-0.0118_0.0000.json b/pytheus/graphs/HighlyEntangledStates/dicke72/plot_dicke72_clean-26-42-0.0118_0.0000.json new file mode 100644 index 00000000..0d7c3603 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/dicke72/plot_dicke72_clean-26-42-0.0118_0.0000.json @@ -0,0 +1,444 @@ +{ + "graph": { + "(0, 3, 0, 1)": 1.0, + "(4, 5, 1, 0)": 1.0, + "(0, 1, 1, 0)": 1.0, + "(4, 5, 0, 1)": 1.0, + "(4, 6, 1, 0)": 1.0, + "(5, 6, 1, 0)": 1.0, + "(5, 9, 0, 0)": 1.0, + "(5, 8, 0, 0)": 1.0, + "(4, 9, 0, 0)": 1.0, + "(4, 7, 0, 0)": 1.0, + "(4, 6, 0, 1)": 1.0, + "(3, 8, 0, 0)": 1.0, + "(3, 6, 0, 1)": 1.0, + "(2, 7, 0, 0)": 1.0, + "(2, 6, 1, 0)": 1.0, + "(2, 5, 1, 0)": 1.0, + "(2, 4, 0, 1)": 1.0, + "(2, 3, 0, 1)": 1.0, + "(1, 8, 0, 0)": 1.0, + "(1, 7, 0, 0)": 1.0, + "(1, 6, 1, 0)": 1.0, + "(1, 5, 0, 1)": 1.0, + "(1, 4, 1, 0)": 1.0, + "(1, 3, 1, 0)": 1.0, + "(0, 6, 1, 0)": 1.0, + "(0, 9, 0, 0)": 1.0 + }, + "loss": [ + 0.0117647058823529, + 0.0 + ], + "history": [ + [ + 0.00018087166265434718, + 3.683106146701309e-05 + ], + [ + 0.0001725154927162409, + 2.9144426593519235e-05 + ], + [ + 0.00017304281921060038, + 2.9705201726293318e-05 + ], + [ + 0.0001755839677374249, + 3.22963134076204e-05 + ], + [ + 0.0001662542629184971, + 2.625882188722617e-05 + ], + [ + 0.00016140713719059452, + 2.3215884345395565e-05 + ], + [ + 0.00016131160770493924, + 2.5781713073214085e-05 + ], + [ + 0.00016171513618257194, + 2.602649005456481e-05 + ], + [ + 0.0001566976009733656, + 2.248959253536853e-05 + ], + [ + 0.00016176661311773088, + 2.7474692245399446e-05 + ], + [ + 0.00015375752485080607, + 2.0768984633101617e-05 + ], + [ + 0.0001592829458701983, + 2.7094878302325043e-05 + ], + [ + 0.00017145640294047304, + 4.003912127636955e-05 + ], + [ + 0.00016497864659936745, + 3.396800653088228e-05 + ], + [ + 0.00017714957715997404, + 4.553702183185404e-05 + ], + [ + 0.00017119782562680097, + 4.342485585884237e-05 + ], + [ + 0.000164327628079608, + 3.66256158531586e-05 + ], + [ + 0.00017636647248842063, + 4.8579210527699423e-05 + ], + [ + 0.0001746093353341971, + 4.823991504654401e-05 + ], + [ + 0.00017057326471492384, + 4.4356444325988065e-05 + ], + [ + 0.00016257443698053375, + 3.7396002390166494e-05 + ], + [ + 0.00016266858140345786, + 3.822198157155121e-05 + ], + [ + 0.00014986198195676703, + 2.6334131781657888e-05 + ], + [ + 0.0001439675112858696, + 2.187906647388438e-05 + ], + [ + 0.00015159937540054624, + 2.9410849635924663e-05 + ], + [ + 0.00015548864999481715, + 3.4130332205783986e-05 + ], + [ + 0.00015468828965270465, + 3.3326583032344814e-05 + ], + [ + 0.0001460479796268066, + 2.6061904580321205e-05 + ], + [ + 0.0001497095157283468, + 3.001407372849041e-05 + ], + [ + 0.00014778734375708868, + 2.883343174409081e-05 + ], + [ + 0.0001543571072567529, + 3.612929081531213e-05 + ], + [ + 0.00015605940673568686, + 3.802670737096392e-05 + ], + [ + 0.00015114340414323912, + 3.402757552639635e-05 + ], + [ + 0.00015683649506459396, + 4.172096994825569e-05 + ], + [ + 0.00017076147727235202, + 5.544264910051222e-05 + ], + [ + 0.0001709151111812801, + 5.559903738405758e-05 + ], + [ + 0.00018110736346677037, + 6.588884619229685e-05 + ], + [ + 0.00016931945057840903, + 5.479894634163873e-05 + ], + [ + 0.0001711120433800506, + 5.6824819138934224e-05 + ], + [ + 0.00017826018042133018, + 6.370102135011546e-05 + ], + [ + 0.00013245934052996677, + 2.34320987202441e-06 + ], + [ + 0.0001320604886169141, + 1.971052469906809e-06 + ], + [ + 0.0001318839618716927, + 1.8218099552269607e-06 + ], + [ + 0.00013175731500880694, + 1.7200302112607702e-06 + ], + [ + 0.00013170729470546316, + 1.689793617920543e-06 + ], + [ + 0.00013157501829241802, + 1.5792215071197546e-06 + ], + [ + 0.0001315346786371352, + 1.5603558498611392e-06 + ], + [ + 0.0001314790110974462, + 1.5248376040721823e-06 + ], + [ + 0.00013062289045839837, + 9.068084735330828e-07 + ], + [ + 0.00013031369726457243, + 1.362208592037284e-06 + ], + [ + 0.00012873003068802902, + 1.4806558407132187e-06 + ], + [ + 0.00013092974986095296, + 3.006572924846296e-06 + ], + [ + 0.00012391967657443548, + 6.586796373886372e-07 + ], + [ + 0.00013472180812146295, + 6.385771358030645e-06 + ], + [ + 0.00011930719306840754, + 9.741241182581462e-07 + ], + [ + 0.00012604434376339846, + 6.453908575787537e-06 + ], + [ + 0.0001222423682391005, + 1.979735418045081e-06 + ], + [ + 0.0001143023421072975, + 1.182689869039244e-06 + ], + [ + 0.00012693290861642836, + 1.317539556455749e-06 + ], + [ + 0.00012127458466493213, + 2.1080709002863074e-06 + ], + [ + 0.00011961100946822345, + 2.6407842589337704e-06 + ], + [ + 0.00012742881898253344, + 8.114752740651099e-06 + ], + [ + 0.00012760691980595595, + 8.311019049522805e-06 + ], + [ + 0.00012453627057629202, + 6.130682298155499e-06 + ], + [ + 0.00013606282222700106, + 9.416590778910106e-06 + ], + [ + 0.00012959661914857534, + 1.0672941392786406e-05 + ], + [ + 0.00011849174954914332, + 8.713161845252948e-06 + ], + [ + 0.00011163610688569303, + 3.371483226821681e-06 + ], + [ + 0.00011948591324029145, + 1.1239984576194573e-05 + ], + [ + 0.00010963753469328541, + 3.416863318617125e-06 + ], + [ + 0.00011399357161079315, + 2.2240081207769435e-06 + ], + [ + 0.000115522025477377, + 3.770169353711772e-06 + ], + [ + 0.00011098596820535711, + 5.045259584557371e-07 + ], + [ + 0.00011094313599413486, + 4.867117563422951e-07 + ], + [ + 0.0001374849145314716, + 5.128992505154528e-07 + ], + [ + 0.00012760822381341352, + 2.11737844091342e-06 + ], + [ + 0.00015479596328693557, + 1.367083376169198e-06 + ], + [ + 0.0001919107541368259, + 1.1910614130528074e-06 + ], + [ + 0.00016858411239906168, + 5.907320045572817e-06 + ], + [ + 0.00019959303095751224, + 6.497756180112724e-06 + ], + [ + 0.0003244260012057465, + 1.24827025465013e-05 + ], + [ + 0.00032074739709964106, + 2.7649477579827497e-05 + ], + [ + 0.00035292316863300144, + 4.896420632061194e-06 + ], + [ + 0.00034151154993133925, + 5.204617629761543e-06 + ], + [ + 0.0004137013607032891, + 8.784361738123359e-06 + ], + [ + 0.0004708206112430391, + 1.1213929677067469e-05 + ], + [ + 0.0005898185117565458, + 3.290514911247211e-05 + ], + [ + 0.0012957428830039364, + 0.0001290550647793376 + ], + [ + 0.0012639583095531703, + 0.00013775244583602575 + ], + [ + 0.001580428759510144, + 0.0001302859787369881 + ], + [ + 0.004114826806161598, + 0.0008771930760187452 + ], + [ + 0.005329795122392289, + 0.0009446403744547416 + ], + [ + 0.0053747125350448455, + 0.000884594179697662 + ], + [ + 0.005380157521390094, + 0.000913325533689946 + ], + [ + 0.0056740869555496065, + 0.0009716633139631448 + ], + [ + 0.010991121388970848, + 0.0007790252878696613 + ], + [ + 0.01100371955795798, + 0.0007784955296303853 + ], + [ + 0.011246222223572189, + 0.0005177508867404423 + ], + [ + 0.011428586005838293, + 0.0003369133140107561 + ], + [ + 0.011695909641730062, + 6.919142852290783e-05 + ], + [ + 0.011732229169516661, + 3.3238494542509045e-05 + ], + [ + 0.0117647058823529, + 0.0 + ] + ] +} diff --git a/theseus/graphs/HighlyEntangledStates/ent9_053.json b/pytheus/graphs/HighlyEntangledStates/ent9_053/config_ent9_053.json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/ent9_053.json rename to pytheus/graphs/HighlyEntangledStates/ent9_053/config_ent9_053.json diff --git a/theseus/graphs/HighlyEntangledStates/ent9_071.json b/pytheus/graphs/HighlyEntangledStates/ent9_071/config_ent9_071.json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/ent9_071.json rename to pytheus/graphs/HighlyEntangledStates/ent9_071/config_ent9_071.json diff --git a/theseus/graphs/HighlyEntangledStates/ent9_la4real.json b/pytheus/graphs/HighlyEntangledStates/ent9_la4real/config_ent9_la4real.json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/ent9_la4real.json rename to pytheus/graphs/HighlyEntangledStates/ent9_la4real/config_ent9_la4real.json diff --git a/theseus/configs/ghz_346.json b/pytheus/graphs/HighlyEntangledStates/ghz_346/config_ghz_346.json similarity index 100% rename from theseus/configs/ghz_346.json rename to pytheus/graphs/HighlyEntangledStates/ghz_346/config_ghz_346.json diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_346/graph_ghz_346.aux b/pytheus/graphs/HighlyEntangledStates/ghz_346/graph_ghz_346.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_346/graph_ghz_346.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_346/graph_ghz_346.pdf b/pytheus/graphs/HighlyEntangledStates/ghz_346/graph_ghz_346.pdf new file mode 100644 index 00000000..dcfa8780 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/ghz_346/graph_ghz_346.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_346/graph_ghz_346.tex b/pytheus/graphs/HighlyEntangledStates/ghz_346/graph_ghz_346.tex new file mode 100644 index 00000000..d8dcdf64 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_346/graph_ghz_346.tex @@ -0,0 +1,59 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col2}{col1}, bend right=11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col3}{col3}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-11.25, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col2}{col2}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col3}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/ghz_346/clean-17-22-0.0588_0.0000.json b/pytheus/graphs/HighlyEntangledStates/ghz_346/original_ghz_346_clean-17-22-0.0588_0.0000.json similarity index 94% rename from theseus/graphs/HighlyEntangledStates/ghz_346/clean-17-22-0.0588_0.0000.json rename to pytheus/graphs/HighlyEntangledStates/ghz_346/original_ghz_346_clean-17-22-0.0588_0.0000.json index 8035d2e1..4cfe1051 100644 --- a/theseus/graphs/HighlyEntangledStates/ghz_346/clean-17-22-0.0588_0.0000.json +++ b/pytheus/graphs/HighlyEntangledStates/ghz_346/original_ghz_346_clean-17-22-0.0588_0.0000.json @@ -1,19 +1,19 @@ { "graph": { - "(0, 1, 3, 3)": -1.0, - "(1, 3, 0, 0)": -1.0, + "(0, 1, 3, 3)": 1.0, + "(1, 3, 0, 0)": 1.0, "(2, 5, 1, 0)": 1.0, - "(0, 2, 2, 1)": -0.9999821228666514, + "(0, 2, 2, 1)": -1.0, "(3, 5, 0, 0)": -1.0, - "(4, 5, 0, 0)": -1.0, - "(2, 4, 3, 0)": 1.0, + "(4, 5, 0, 0)": 1.0, + "(2, 4, 3, 0)": -1.0, "(2, 3, 3, 0)": 1.0, "(1, 4, 0, 0)": -1.0, "(1, 4, 1, 0)": 1.0, - "(1, 3, 1, 0)": -1.0, - "(1, 2, 2, 2)": 1.0, - "(0, 4, 2, 0)": -1.0, - "(0, 4, 1, 0)": -1.0, + "(1, 3, 1, 0)": 1.0, + "(1, 2, 2, 2)": -1.0, + "(0, 4, 2, 0)": 1.0, + "(0, 4, 1, 0)": 1.0, "(0, 3, 2, 0)": -1.0, "(0, 2, 0, 0)": 1.0, "(0, 3, 1, 0)": 1.0 diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_346/plot_ghz_346_clean-17-22-0.0588_0.0000.json b/pytheus/graphs/HighlyEntangledStates/ghz_346/plot_ghz_346_clean-17-22-0.0588_0.0000.json new file mode 100644 index 00000000..904ec365 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_346/plot_ghz_346_clean-17-22-0.0588_0.0000.json @@ -0,0 +1,251 @@ +{ + "graph": { + "(0, 1, 0, 0)": -1.0, + "(0, 1, 2, 1)": 1.0, + "(0, 2, 3, 3)": 1.0, + "(0, 3, 1, 0)": 1.0, + "(0, 3, 2, 0)": -1.0, + "(0, 5, 1, 0)": 1.0, + "(0, 5, 2, 0)": 1.0, + "(1, 2, 2, 2)": 1.0, + "(1, 3, 3, 0)": -1.0, + "(1, 4, 1, 0)": 1.0, + "(1, 5, 3, 0)": 1.0, + "(2, 3, 0, 0)": 1.0, + "(2, 3, 1, 0)": 1.0, + "(2, 5, 0, 0)": -1.0, + "(2, 5, 1, 0)": 1.0, + "(3, 4, 0, 0)": 1.0, + "(4, 5, 0, 0)": -1.0 + }, + "loss": [ + 0.05882352948253933, + 7.989786610096417e-11 + ], + "history": [ + [ + 0.03151806223124698, + 0.0024301456683162304 + ], + [ + 0.03151760393523939, + 0.002431527212181983 + ], + [ + 0.03151723885627389, + 0.0024349492206791057 + ], + [ + 0.03151682650631027, + 0.002436172483097354 + ], + [ + 0.031516446200769654, + 0.0024393849911431564 + ], + [ + 0.03151615172860134, + 0.0024403357650544244 + ], + [ + 0.03151589763168028, + 0.002443498904271757 + ], + [ + 0.03151571671856068, + 0.002444028561058853 + ], + [ + 0.031515454293650325, + 0.0024466149384683167 + ], + [ + 0.03151518411695897, + 0.0024469350340432516 + ], + [ + 0.03151493968546193, + 0.002449594348260864 + ], + [ + 0.031514791480827475, + 0.002449968068024555 + ], + [ + 0.03151456622676696, + 0.002452048266998186 + ], + [ + 0.03151438763475356, + 0.0024526829850981535 + ], + [ + 0.0315143410702482, + 0.0024542238307228015 + ], + [ + 0.03151457191393592, + 0.0024538713711546034 + ], + [ + 0.0315146455577594, + 0.0024547872815452454 + ], + [ + 0.031514186159436575, + 0.0024547409958475264 + ], + [ + 0.031514213334177255, + 0.002456221550398041 + ], + [ + 0.03151488889467091, + 0.002452999723607907 + ], + [ + 0.031516331101846484, + 0.0024467171888717942 + ], + [ + 0.031521555981656846, + 0.002451646139103203 + ], + [ + 0.03153657926184228, + 0.00247011160792987 + ], + [ + 0.03153362201523602, + 0.002484342837302478 + ], + [ + 0.031543280269854534, + 0.00243896592566728 + ], + [ + 0.031576229309658976, + 0.00239470088870275 + ], + [ + 0.031504347791683984, + 0.0022041369869015837 + ], + [ + 0.030961893396105222, + 0.0021835737166071567 + ], + [ + 0.03095774823742048, + 0.0021783701603393935 + ], + [ + 0.030957630694019245, + 0.0021758664530536764 + ], + [ + 0.030905424518348212, + 0.0021874507105442698 + ], + [ + 0.030905301061403878, + 0.002187868477830923 + ], + [ + 0.030905217500350357, + 0.002188110213216299 + ], + [ + 0.030906388063929535, + 0.002171369108117882 + ], + [ + 0.03394127165661376, + 0.0038039606333645226 + ], + [ + 0.034090693569497454, + 0.003940638475022462 + ], + [ + 0.03464083904759341, + 0.003683457449552341 + ], + [ + 0.03499488689244823, + 0.003636670041214707 + ], + [ + 0.03575128001115668, + 0.004098969511335926 + ], + [ + 0.04458370602824013, + 0.016773126927729476 + ], + [ + 0.044835601757249766, + 0.01717834167409049 + ], + [ + 0.05333165562039843, + 0.006799757672112938 + ], + [ + 0.05394295400438609, + 0.00558089734372369 + ], + [ + 0.054415154641737296, + 0.0046789432345103465 + ], + [ + 0.058823908506534295, + 4.279624439273988e-07 + ], + [ + 0.05882353112686278, + 1.936184990114498e-09 + ], + [ + 0.05882354508474208, + 1.7693322029721514e-08 + ], + [ + 0.05882353392964068, + 5.100258437806815e-09 + ], + [ + 0.05882352955499326, + 1.6169154903877825e-10 + ], + [ + 0.058823529413682074, + 2.164490808809205e-12 + ], + [ + 0.05882352941344127, + 1.892708212380967e-12 + ], + [ + 0.05882353190883516, + 2.818958400041538e-09 + ], + [ + 0.05882367996782312, + 1.6996367357968722e-07 + ], + [ + 0.058823553032928966, + 2.66660800107843e-08 + ], + [ + 0.058823543806787115, + 1.625063084098599e-08 + ], + [ + 0.05882352948253933, + 7.989786610096417e-11 + ] + ] +} \ No newline at end of file diff --git a/theseus/configs/ghz_358.json b/pytheus/graphs/HighlyEntangledStates/ghz_358/config_ghz_358.json similarity index 100% rename from theseus/configs/ghz_358.json rename to pytheus/graphs/HighlyEntangledStates/ghz_358/config_ghz_358.json diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_358/graph_ghz_358.aux b/pytheus/graphs/HighlyEntangledStates/ghz_358/graph_ghz_358.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_358/graph_ghz_358.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_358/graph_ghz_358.pdf b/pytheus/graphs/HighlyEntangledStates/ghz_358/graph_ghz_358.pdf new file mode 100644 index 00000000..9fc783cd Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/ghz_358/graph_ghz_358.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_358/graph_ghz_358.tex b/pytheus/graphs/HighlyEntangledStates/ghz_358/graph_ghz_358.tex new file mode 100644 index 00000000..1c61559d --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_358/graph_ghz_358.tex @@ -0,0 +1,64 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [rectangle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [rectangle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col3}{col3}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col4}{col4}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col4}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_358/original_ghz_358_clean-20-30-0.0476_0.0000.json b/pytheus/graphs/HighlyEntangledStates/ghz_358/original_ghz_358_clean-20-30-0.0476_0.0000.json new file mode 100644 index 00000000..330cb6d6 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_358/original_ghz_358_clean-20-30-0.0476_0.0000.json @@ -0,0 +1,28 @@ +{ + "graph": { + "(0, 3, 2, 0)": 1.0, + "(0, 2, 1, 1)": 1.0, + "(0, 1, 3, 3)": -1.0, + "(6, 7, 0, 0)": -1.0, + "(5, 7, 0, 0)": 1.0, + "(4, 7, 0, 0)": -1.0, + "(3, 6, 0, 0)": 1.0, + "(3, 5, 0, 0)": 1.0, + "(3, 4, 0, 0)": 1.0, + "(2, 7, 0, 0)": 1.0, + "(2, 6, 2, 0)": 1.0, + "(2, 5, 3, 0)": -1.0, + "(2, 3, 0, 0)": 1.0, + "(1, 6, 0, 0)": -1.0, + "(1, 5, 1, 0)": 1.0, + "(1, 4, 2, 0)": -1.0, + "(1, 2, 4, 4)": 1.0, + "(0, 7, 2, 0)": 1.0, + "(0, 4, 0, 0)": 1.0, + "(0, 5, 4, 0)": 1.0 + }, + "loss": [ + 0.04761904761904767, + 0.0 + ] +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_358/plot_ghz_358_clean-20-30-0.0476_0.0000.json b/pytheus/graphs/HighlyEntangledStates/ghz_358/plot_ghz_358_clean-20-30-0.0476_0.0000.json new file mode 100644 index 00000000..5cc66bfc --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_358/plot_ghz_358_clean-20-30-0.0476_0.0000.json @@ -0,0 +1,28 @@ +{ + "graph": { + "(0, 1, 3, 3)": -1.0, + "(0, 2, 4, 4)": 1.0, + "(0, 3, 1, 0)": 1.0, + "(0, 5, 2, 0)": -1.0, + "(0, 7, 0, 0)": -1.0, + "(1, 2, 1, 1)": 1.0, + "(1, 3, 4, 0)": 1.0, + "(1, 4, 2, 0)": 1.0, + "(1, 5, 0, 0)": 1.0, + "(1, 6, 2, 0)": 1.0, + "(2, 3, 3, 0)": -1.0, + "(2, 4, 0, 0)": 1.0, + "(2, 6, 0, 0)": 1.0, + "(2, 7, 2, 0)": 1.0, + "(3, 4, 0, 0)": 1.0, + "(3, 6, 0, 0)": 1.0, + "(4, 5, 0, 0)": -1.0, + "(4, 7, 0, 0)": -1.0, + "(5, 6, 0, 0)": 1.0, + "(6, 7, 0, 0)": 1.0 + }, + "loss": [ + 0.04761904761904767, + 0.0 + ] +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_3610/config_ghz_3610.json b/pytheus/graphs/HighlyEntangledStates/ghz_3610/config_ghz_3610.json new file mode 100644 index 00000000..021c7dfd --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_3610/config_ghz_3610.json @@ -0,0 +1,41 @@ +{ + "description": "Creation of the three-particle six-dimensional GHZ state. Seven ancillary particles", + "bulk_thr": 0, + "edges_tried": 40, + "foldername": "ghz_3610", + "ftol": 1e-06, + "loss_func": "cr", + "num_anc": 7, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "real": true, + "safe_hist": true, + "samples": 10, + "target_state": [ + "000", + "111", + "222", + "333", + "444", + "555" + ], + "thresholds": [ + 0.3, + 0.1 + ], + "tries_per_edge": 10, + "unicolor": false, + "dimensions": [ + 6, + 6, + 6, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ] +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_3610/graph_ghz_3610.aux b/pytheus/graphs/HighlyEntangledStates/ghz_3610/graph_ghz_3610.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_3610/graph_ghz_3610.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_3610/graph_ghz_3610.pdf b/pytheus/graphs/HighlyEntangledStates/ghz_3610/graph_ghz_3610.pdf new file mode 100644 index 00000000..713b9e2f Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/ghz_3610/graph_ghz_3610.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_3610/graph_ghz_3610.tex b/pytheus/graphs/HighlyEntangledStates/ghz_3610/graph_ghz_3610.tex new file mode 100644 index 00000000..803ad52a --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_3610/graph_ghz_3610.tex @@ -0,0 +1,79 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.4270509831248424,1.7633557568774194) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (0.9270509831248424,2.8531695488854605) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-0.927050983124842,2.853169548885461) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-2.427050983124842,1.7633557568774196) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}5}; +\node[vertex] (6) at (-2.4270509831248424,-1.7633557568774192) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (-0.9270509831248427,-2.8531695488854605) [rectangle] {\color{fontcolor}7}; +\node[vertex] (8) at (0.9270509831248417,-2.853169548885461) [rectangle] {\color{fontcolor}8}; +\node[vertex] (9) at (2.427050983124842,-1.7633557568774196) [rectangle] {\color{fontcolor}9}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col3}{col3}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col4}{col0}, bend right=11.25, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col4}{col0}, bend right=-11.25, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor_neg={col0}{col5}, bend right=11.25, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor={col2}{col0}, bend right=-11.25, opacity=1.0] (0) to (9); +\path[line width=4.0,bicolor_neg={col0}{col5}, bend right=11.25, opacity=1.0] (0) to (9); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col2}{col2}, bend right=11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col4}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col4}{col0}, bend right=0.0, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor={col5}{col0}, bend right=0.0, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=-11.25, opacity=1.0] (1) to (9); +\path[line width=4.0,bicolor={col5}{col0}, bend right=11.25, opacity=1.0] (1) to (9); +\path[line width=4.0,bicolor={col3}{col0}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col4}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col5}{col0}, bend right=0.0, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=-11.25, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor={col4}{col0}, bend right=11.25, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor={col5}{col0}, bend right=0.0, opacity=1.0] (2) to (8); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (7) to (8); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (8) to (9); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_3610/original_ghz_3610_clean-33-118-0.0400_0.0000.json b/pytheus/graphs/HighlyEntangledStates/ghz_3610/original_ghz_3610_clean-33-118-0.0400_0.0000.json new file mode 100644 index 00000000..47632879 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_3610/original_ghz_3610_clean-33-118-0.0400_0.0000.json @@ -0,0 +1,41 @@ +{ + "graph": { + "(0, 1, 3, 3)": 1.0, + "(0, 2, 1, 0)": 1.0, + "(0, 2, 2, 2)": 1.0, + "(0, 3, 4, 0)": 1.0, + "(0, 4, 0, 0)": 1.0, + "(0, 4, 1, 0)": -1.0, + "(0, 5, 5, 0)": 1.0, + "(0, 6, 4, 0)": 1.0, + "(0, 8, 0, 0)": -1.0, + "(0, 9, 1, 0)": -1.0, + "(0, 9, 5, 0)": 1.0, + "(1, 2, 1, 1)": -1.0, + "(1, 4, 0, 0)": -1.0, + "(1, 4, 2, 0)": 1.0, + "(1, 5, 4, 0)": 1.0, + "(1, 5, 5, 0)": -1.0, + "(1, 8, 0, 0)": 1.0, + "(1, 8, 4, 0)": 1.0, + "(1, 9, 2, 0)": 1.0, + "(1, 9, 5, 0)": -1.0, + "(2, 3, 0, 0)": 1.0, + "(2, 4, 3, 0)": 1.0, + "(2, 5, 3, 0)": -1.0, + "(2, 5, 4, 0)": 1.0, + "(2, 6, 5, 0)": 1.0, + "(2, 7, 5, 0)": 1.0, + "(2, 8, 4, 0)": 1.0, + "(3, 4, 0, 0)": 1.0, + "(3, 8, 0, 0)": 1.0, + "(5, 6, 0, 0)": 1.0, + "(5, 7, 0, 0)": -1.0, + "(6, 8, 0, 0)": -1.0, + "(7, 9, 0, 0)": 1.0 + }, + "loss": [ + 0.040000000000000036, + 0.0 + ] +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_3610/plot_ghz_3610_clean-33-118-0.0400_0.0000.json b/pytheus/graphs/HighlyEntangledStates/ghz_3610/plot_ghz_3610_clean-33-118-0.0400_0.0000.json new file mode 100644 index 00000000..51a8bda2 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_3610/plot_ghz_3610_clean-33-118-0.0400_0.0000.json @@ -0,0 +1,41 @@ +{ + "graph": { + "(0, 1, 3, 3)": 1.0, + "(0, 2, 1, 1)": -1.0, + "(0, 3, 0, 0)": -1.0, + "(0, 3, 2, 0)": 1.0, + "(0, 5, 0, 0)": 1.0, + "(0, 5, 4, 0)": 1.0, + "(0, 7, 4, 0)": 1.0, + "(0, 7, 5, 0)": -1.0, + "(0, 9, 2, 0)": 1.0, + "(0, 9, 5, 0)": -1.0, + "(1, 2, 1, 0)": 1.0, + "(1, 2, 2, 2)": 1.0, + "(1, 3, 0, 0)": 1.0, + "(1, 3, 1, 0)": -1.0, + "(1, 4, 4, 0)": 1.0, + "(1, 5, 0, 0)": -1.0, + "(1, 6, 4, 0)": 1.0, + "(1, 7, 5, 0)": 1.0, + "(1, 9, 1, 0)": -1.0, + "(1, 9, 5, 0)": 1.0, + "(2, 3, 3, 0)": 1.0, + "(2, 4, 0, 0)": 1.0, + "(2, 5, 4, 0)": 1.0, + "(2, 6, 5, 0)": 1.0, + "(2, 7, 3, 0)": -1.0, + "(2, 7, 4, 0)": 1.0, + "(2, 8, 5, 0)": 1.0, + "(3, 4, 0, 0)": 1.0, + "(4, 5, 0, 0)": 1.0, + "(5, 6, 0, 0)": -1.0, + "(6, 7, 0, 0)": 1.0, + "(7, 8, 0, 0)": -1.0, + "(8, 9, 0, 0)": 1.0 + }, + "loss": [ + 0.040000000000000036, + 0.0 + ] +} \ No newline at end of file diff --git a/theseus/configs/ghz43_2p2a.json b/pytheus/graphs/HighlyEntangledStates/ghz_43_2p2a/config_ghz43_2p2a.json similarity index 97% rename from theseus/configs/ghz43_2p2a.json rename to pytheus/graphs/HighlyEntangledStates/ghz_43_2p2a/config_ghz43_2p2a.json index bdb22e65..0675ed85 100644 --- a/theseus/configs/ghz43_2p2a.json +++ b/pytheus/graphs/HighlyEntangledStates/ghz_43_2p2a/config_ghz43_2p2a.json @@ -5,7 +5,7 @@ "foldername": "ghz43_sp", "ftol": 1e-06, "loss_func": "cr", - "num_anc": 4, + "num_anc": 2, "num_pre": 1, "optimizer": "L-BFGS-B", "imaginary": false, diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_43_2p2a/graph_ghz_43_2p2a.aux b/pytheus/graphs/HighlyEntangledStates/ghz_43_2p2a/graph_ghz_43_2p2a.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_43_2p2a/graph_ghz_43_2p2a.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_43_2p2a/graph_ghz_43_2p2a.pdf b/pytheus/graphs/HighlyEntangledStates/ghz_43_2p2a/graph_ghz_43_2p2a.pdf new file mode 100644 index 00000000..043dd34b Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/ghz_43_2p2a/graph_ghz_43_2p2a.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_43_2p2a/graph_ghz_43_2p2a.tex b/pytheus/graphs/HighlyEntangledStates/ghz_43_2p2a/graph_ghz_43_2p2a.tex new file mode 100644 index 00000000..1b16cc04 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_43_2p2a/graph_ghz_43_2p2a.tex @@ -0,0 +1,62 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [rectangle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col2}{col2}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (3) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/ghz_43_sp/clean-18-18-0.0769_0.0000.json b/pytheus/graphs/HighlyEntangledStates/ghz_43_2p2a/plot_ghz43_2p2a_clean-18-18-0.0769_0.0000.json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/ghz_43_sp/clean-18-18-0.0769_0.0000.json rename to pytheus/graphs/HighlyEntangledStates/ghz_43_2p2a/plot_ghz43_2p2a_clean-18-18-0.0769_0.0000.json diff --git a/theseus/configs/ghz43_sp.json b/pytheus/graphs/HighlyEntangledStates/ghz_43_sp/config_ghz_43_sp.json similarity index 89% rename from theseus/configs/ghz43_sp.json rename to pytheus/graphs/HighlyEntangledStates/ghz_43_sp/config_ghz_43_sp.json index 1e95742b..f827eeba 100644 --- a/theseus/configs/ghz43_sp.json +++ b/pytheus/graphs/HighlyEntangledStates/ghz_43_sp/config_ghz_43_sp.json @@ -5,7 +5,7 @@ "foldername": "ghz43_sp", "ftol": 1e-06, "loss_func": "cr", - "num_anc": 6, + "num_anc": 2, "num_pre": 1, "optimizer": "L-BFGS-B", "imaginary": false, @@ -13,9 +13,9 @@ "safe_hist": true, "samples": 10, "target_state": [ - "000000", - "111100", - "222200" + "0000", + "1111", + "2222" ], "single_emitters": [ 6,7,8,9,10,11 diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_43_sp/graph_ghz_43_sp.aux b/pytheus/graphs/HighlyEntangledStates/ghz_43_sp/graph_ghz_43_sp.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_43_sp/graph_ghz_43_sp.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_43_sp/graph_ghz_43_sp.pdf b/pytheus/graphs/HighlyEntangledStates/ghz_43_sp/graph_ghz_43_sp.pdf new file mode 100644 index 00000000..e4801cb4 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/ghz_43_sp/graph_ghz_43_sp.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_43_sp/graph_ghz_43_sp.tex b/pytheus/graphs/HighlyEntangledStates/ghz_43_sp/graph_ghz_43_sp.tex new file mode 100644 index 00000000..e9af5e65 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_43_sp/graph_ghz_43_sp.tex @@ -0,0 +1,78 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.598076211353316,1.4999999999999998) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.4999999999999993,2.5980762113533165) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.598076211353316,1.4999999999999998) [rectangle] {\color{fontcolor}5}; +\node[vertex] (6) at (-3.0,3.6739403974420594e-16) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}6}; +\node[vertex] (7) at (-2.5980762113533165,-1.4999999999999993) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}7}; +\node[vertex] (8) at (-1.5000000000000013,-2.598076211353315) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}8}; +\node[vertex] (9) at (-5.51091059616309e-16,-3.0) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}9}; +\node[vertex] (10) at (1.5,-2.598076211353316) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}10}; +\node[vertex] (11) at (2.598076211353315,-1.5000000000000013) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}11}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (8); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-11.25, opacity=1.0] (0) to (9); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (0) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.9999921657159242] (1) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (1) to (8); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (9); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (3) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (3) to (8); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (3) to (9); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (3) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (10); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (11); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (10); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (11); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (7) to (10); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (9) to (10); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (9) to (11); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_43_sp/plot_ghz_43_sp_clean-30-182-0.0769_0.0000.json b/pytheus/graphs/HighlyEntangledStates/ghz_43_sp/plot_ghz_43_sp_clean-30-182-0.0769_0.0000.json new file mode 100644 index 00000000..a7d80edc --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_43_sp/plot_ghz_43_sp_clean-30-182-0.0769_0.0000.json @@ -0,0 +1,34 @@ +{ + "graph": { + "(0, 4, 2, 0)": -1.0, + "(0, 5, 1, 0)": 1.0, + "(0, 6, 1, 0)": 1.0, + "(0, 8, 0, 0)": -1.0, + "(0, 9, 1, 0)": 1.0, + "(0, 9, 2, 0)": 1.0, + "(1, 4, 0, 0)": 0.9999921657159242, + "(1, 4, 1, 0)": 1.0, + "(1, 6, 0, 0)": -1.0, + "(1, 7, 0, 0)": -1.0, + "(1, 8, 2, 0)": -1.0, + "(2, 5, 1, 0)": -1.0, + "(2, 6, 0, 0)": 1.0, + "(2, 6, 1, 0)": -1.0, + "(2, 7, 0, 0)": 1.0, + "(2, 9, 1, 0)": -1.0, + "(3, 4, 2, 0)": 1.0, + "(3, 6, 2, 0)": 1.0, + "(3, 7, 2, 0)": -1.0, + "(3, 9, 0, 0)": 1.0, + "(3, 9, 2, 0)": -1.0, + "(4, 10, 0, 0)": 1.0, + "(5, 11, 0, 0)": -1.0, + "(6, 10, 0, 0)": -1.0, + "(6, 11, 0, 0)": 1.0, + "(7, 10, 0, 0)": 1.0, + "(9, 10, 0, 0)": 1.0, + "(9, 11, 0, 0)": 1.0, + "(3, 8, 1, 0)": 1.0, + "(2, 4, 2, 0)": -1.0 + } +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_446/changes.md b/pytheus/graphs/HighlyEntangledStates/ghz_446/changes.md new file mode 100644 index 00000000..fbff3137 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_446/changes.md @@ -0,0 +1,54 @@ +Starting from the original graph: +``` +original = Graph({ # one must use the Graph class from the PyTheus library + "(0, 3, 1, 1)": 0.5805251177983758, + "(0, 2, 1, 1)": 0.6533326774542422, + "(0, 5, 1, 0)": -0.6748251265948007, + "(1, 3, 1, 1)": -0.7472685678923824, + "(1, 2, 1, 1)": -0.8409916346946469, + "(3, 4, 1, 0)": 0.8591224397438424, + "(1, 5, 1, 0)": 0.8689003332539588, + "(2, 4, 1, 0)": 0.9668921097286931, + "(2, 3, 3, 3)": 0.9756440946097538, + "(1, 2, 0, 0)": -0.9870193848992934, + "(0, 2, 2, 2)": 0.9870337649633187, + "(1, 3, 2, 2)": 0.9883043426479682, + "(0, 3, 0, 0)": -0.9883200702198167, + "(4, 5, 0, 0)": 0.9989906799916807, + "(0, 1, 3, 3)": 0.9999766911035382 + }) +``` +We rescale all weights with `-1`, which leads to the same state: `original.rescale(-1)`. +We remove some negative signs by flipping the edges connected to 3 of the nodes. +``` +original.flipNode(0) +original.flipNode(3) +original.flipNode(5) +``` +Finally, we rename the dimensions for the first 4 nodes. Again, it leads to the same GHZ state. +``` +for nd in range(4): + original.switchColors(nd,1,3) +for nd in range(4): + original.switchColors(nd,0,3) +``` +This leads to the plotted graph: +``` +{ # Analytical solution: +(0, 1, 1, 1): 0.9999766911035382, # 1 +(0, 2, 0, 0): 0.6533326774542422, # 2 ** (-1/2) +(0, 2, 2, 2): 0.9870337649633187, # 1 +(0, 3, 0, 0): -0.5805251177983758, # -2 ** (-1/2) +(0, 3, 3, 3): 0.9883200702198167, # 1 +(0, 5, 0, 0): 0.6748251265948007, # 2 ** (-1/4) +(1, 2, 0, 0): 0.8409916346946469, # 2 ** (-1/2) +(1, 2, 3, 3): 0.9870193848992934, # 1 +(1, 3, 0, 0): -0.7472685678923824, # -2 ** (-1/2) +(1, 3, 2, 2): 0.9883043426479682, # 1 +(1, 5, 0, 0): 0.8689003332539588, # 2 ** (-1/4) +(2, 3, 1, 1): 0.9756440946097538, # 1 +(2, 4, 0, 0): -0.9668921097286931, # -2 ** (-1/4) +(3, 4, 0, 0): 0.8591224397438424, # 2 ** (-1/4) +(4, 5, 0, 0): 0.9989906799916807 # 1 +} +``` \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_446/config_ghz_446.json b/pytheus/graphs/HighlyEntangledStates/ghz_446/config_ghz_446.json new file mode 100644 index 00000000..73628309 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_446/config_ghz_446.json @@ -0,0 +1,62 @@ +{ + "description": "Four particle four-dimensional GHZ state. Two ancillary particles", + "bulk_thr": 0.001, + "edges_tried": 50, + "foldername": "446GHZfid", + "ftol": 1e-06, + "loss_func": "fid", + "num_anc": 2, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 10, + "target_state": [ + "0000", + "1111", + "2222", + "3333" + ], + "thresholds": [ + 0.5, + 0.21 + ], + "tries_per_edge": 10, + "unicolor": false, + "topopt": true, + "seed": 1079550320, + "in_nodes": [], + "out_nodes": [ + 0, + 1, + 2, + 3 + ], + "single_emitters": [], + "removed_connections": [], + "amplitudes": [], + "heralding_out": false, + "number_resolving": false, + "brutal_covers": false, + "save_hist": true, + "dimensions": [ + 4, + 4, + 4, + 4, + 1, + 1 + ], + "verts": [ + 0, + 1, + 2, + 3, + 4, + 5 + ], + "anc_detectors": [ + 4, + 5 + ] +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_446/graph_ghz_446.aux b/pytheus/graphs/HighlyEntangledStates/ghz_446/graph_ghz_446.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_446/graph_ghz_446.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_446/graph_ghz_446.pdf b/pytheus/graphs/HighlyEntangledStates/ghz_446/graph_ghz_446.pdf new file mode 100644 index 00000000..9bf17d9a Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/ghz_446/graph_ghz_446.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_446/graph_ghz_446.tex b/pytheus/graphs/HighlyEntangledStates/ghz_446/graph_ghz_446.tex new file mode 100644 index 00000000..f2fd8c4b --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_446/graph_ghz_446.tex @@ -0,0 +1,57 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.653347906272943] (0) to (2); +\path[line width=4.0,bicolor={col2}{col2}, bend right=11.25, opacity=0.9870567721674232] (0) to (2); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=0.5805386495136494] (0) to (3); +\path[line width=4.0,bicolor={col3}{col3}, bend right=11.25, opacity=0.9883431074069761] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.6748408563904504] (0) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.8410112377385106] (1) to (2); +\path[line width=4.0,bicolor={col3}{col3}, bend right=11.25, opacity=0.9870423917682066] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=0.7472859863040645] (1) to (3); +\path[line width=4.0,bicolor={col2}{col2}, bend right=11.25, opacity=0.9883273794685267] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.8689205868339509] (1) to (5); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=0.975666836327023] (2) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=0.9669146474420978] (2) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.8591424654066145] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.9990139659047759] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_446/original_ghz_446_rough-15-17-0.0000_0.2083.json b/pytheus/graphs/HighlyEntangledStates/ghz_446/original_ghz_446_rough-15-17-0.0000_0.2083.json new file mode 100644 index 00000000..620383c4 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_446/original_ghz_446_rough-15-17-0.0000_0.2083.json @@ -0,0 +1,142 @@ +{ + "graph": { + "(0, 3, 1, 1)": 0.5805251177983758, + "(0, 2, 1, 1)": 0.6533326774542422, + "(0, 5, 1, 0)": -0.6748251265948007, + "(1, 3, 1, 1)": -0.7472685678923824, + "(1, 2, 1, 1)": -0.8409916346946469, + "(3, 4, 1, 0)": 0.8591224397438424, + "(1, 5, 1, 0)": 0.8689003332539588, + "(2, 4, 1, 0)": 0.9668921097286931, + "(2, 3, 3, 3)": 0.9756440946097538, + "(1, 2, 0, 0)": -0.9870193848992934, + "(0, 2, 2, 2)": 0.9870337649633187, + "(1, 3, 2, 2)": 0.9883043426479682, + "(0, 3, 0, 0)": -0.9883200702198167, + "(4, 5, 0, 0)": 0.9989906799916807, + "(0, 1, 3, 3)": 0.9999766911035382 + }, + "loss": [ + 8.761384751032608e-08, + 0.20832820241440786 + ], + "seed": 2032846408, + "history": [ + [ + 7.613520099924997e-07, + 0.20692463252434679 + ], + [ + 4.008553616818844e-07, + 0.20694168384492007 + ], + [ + 3.007189860460002e-07, + 0.20693477268335725 + ], + [ + 2.42433718877777e-07, + 0.20694242761056436 + ], + [ + 2.1541135897251706e-07, + 0.20693947852694983 + ], + [ + 1.9357114144913368e-07, + 0.2069439757389534 + ], + [ + 1.7563388787777967e-07, + 0.20694065586931853 + ], + [ + 1.5956581378429036e-07, + 0.2069446148436075 + ], + [ + 1.4252326951957883e-07, + 0.20694159339515417 + ], + [ + 1.1049753323444378e-07, + 0.20694473744241726 + ], + [ + 1.1249552678282981e-07, + 0.2069380664182695 + ], + [ + 6.138014796430724e-08, + 0.20694474179174793 + ], + [ + 1.1581506864644098e-08, + 0.20694335716941714 + ], + [ + 3.5422797917128435e-07, + 0.20377610490303255 + ], + [ + 1.1636348062893376e-07, + 0.20604625682503808 + ], + [ + 6.360047071996e-06, + 0.20715413379002978 + ], + [ + 3.153384482235122e-05, + 0.20709418146241487 + ], + [ + 1.3458836857216383e-06, + 0.20908668696214505 + ], + [ + 1.4506936253377845e-06, + 0.2090930548924248 + ], + [ + 3.5391844366294833e-07, + 0.2077812878453683 + ], + [ + 2.8564647946982547e-07, + 0.20781663501786984 + ], + [ + 2.1334679478623997e-07, + 0.20783853860952384 + ], + [ + 1.2974054053316308e-08, + 0.20473855025742438 + ], + [ + 9.000687084537162e-09, + 0.20473903016897 + ], + [ + 1.843309803684079e-07, + 0.2059932583437355 + ], + [ + 8.141545083661939e-07, + 0.20537139199150223 + ], + [ + 3.60636922880353e-07, + 0.20530495000956495 + ], + [ + 1.4933436665032218e-07, + 0.20834644466306884 + ], + [ + 8.761384751032608e-08, + 0.20832820241440786 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_446/plot_ghz_446_rough-15-17-0.0000_0.2083.json b/pytheus/graphs/HighlyEntangledStates/ghz_446/plot_ghz_446_rough-15-17-0.0000_0.2083.json new file mode 100644 index 00000000..c7eb31a1 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_446/plot_ghz_446_rough-15-17-0.0000_0.2083.json @@ -0,0 +1,142 @@ +{ + "graph": { + "(0, 1, 1, 1)": 0.9999766911035382, + "(0, 2, 0, 0)": 0.6533326774542422, + "(0, 2, 2, 2)": 0.9870337649633187, + "(0, 3, 0, 0)": -0.5805251177983758, + "(0, 3, 3, 3)": 0.9883200702198167, + "(0, 5, 0, 0)": 0.6748251265948007, + "(1, 2, 0, 0)": 0.8409916346946469, + "(1, 2, 3, 3)": 0.9870193848992934, + "(1, 3, 0, 0)": -0.7472685678923824, + "(1, 3, 2, 2)": 0.9883043426479682, + "(1, 5, 0, 0)": 0.8689003332539588, + "(2, 3, 1, 1)": 0.9756440946097538, + "(2, 4, 0, 0)": -0.9668921097286931, + "(3, 4, 0, 0)": 0.8591224397438424, + "(4, 5, 0, 0)": 0.9989906799916807 + }, + "loss": [ + 8.761384751032608e-08, + 0.20832820241440786 + ], + "seed": 2032846408, + "history": [ + [ + 7.613520099924997e-07, + 0.20692463252434679 + ], + [ + 4.008553616818844e-07, + 0.20694168384492007 + ], + [ + 3.007189860460002e-07, + 0.20693477268335725 + ], + [ + 2.42433718877777e-07, + 0.20694242761056436 + ], + [ + 2.1541135897251706e-07, + 0.20693947852694983 + ], + [ + 1.9357114144913368e-07, + 0.2069439757389534 + ], + [ + 1.7563388787777967e-07, + 0.20694065586931853 + ], + [ + 1.5956581378429036e-07, + 0.2069446148436075 + ], + [ + 1.4252326951957883e-07, + 0.20694159339515417 + ], + [ + 1.1049753323444378e-07, + 0.20694473744241726 + ], + [ + 1.1249552678282981e-07, + 0.2069380664182695 + ], + [ + 6.138014796430724e-08, + 0.20694474179174793 + ], + [ + 1.1581506864644098e-08, + 0.20694335716941714 + ], + [ + 3.5422797917128435e-07, + 0.20377610490303255 + ], + [ + 1.1636348062893376e-07, + 0.20604625682503808 + ], + [ + 6.360047071996e-06, + 0.20715413379002978 + ], + [ + 3.153384482235122e-05, + 0.20709418146241487 + ], + [ + 1.3458836857216383e-06, + 0.20908668696214505 + ], + [ + 1.4506936253377845e-06, + 0.2090930548924248 + ], + [ + 3.5391844366294833e-07, + 0.2077812878453683 + ], + [ + 2.8564647946982547e-07, + 0.20781663501786984 + ], + [ + 2.1334679478623997e-07, + 0.20783853860952384 + ], + [ + 1.2974054053316308e-08, + 0.20473855025742438 + ], + [ + 9.000687084537162e-09, + 0.20473903016897 + ], + [ + 1.843309803684079e-07, + 0.2059932583437355 + ], + [ + 8.141545083661939e-07, + 0.20537139199150223 + ], + [ + 3.60636922880353e-07, + 0.20530495000956495 + ], + [ + 1.4933436665032218e-07, + 0.20834644466306884 + ], + [ + 8.761384751032608e-08, + 0.20832820241440786 + ] + ] +} \ No newline at end of file diff --git a/theseus/configs/ghz_448.json b/pytheus/graphs/HighlyEntangledStates/ghz_448/config_ghz_448.json similarity index 100% rename from theseus/configs/ghz_448.json rename to pytheus/graphs/HighlyEntangledStates/ghz_448/config_ghz_448.json diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_448/graph_ghz_448.aux b/pytheus/graphs/HighlyEntangledStates/ghz_448/graph_ghz_448.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_448/graph_ghz_448.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_448/graph_ghz_448.pdf b/pytheus/graphs/HighlyEntangledStates/ghz_448/graph_ghz_448.pdf new file mode 100644 index 00000000..dc372211 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/ghz_448/graph_ghz_448.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_448/graph_ghz_448.tex b/pytheus/graphs/HighlyEntangledStates/ghz_448/graph_ghz_448.tex new file mode 100644 index 00000000..02edf1bd --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_448/graph_ghz_448.tex @@ -0,0 +1,60 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [rectangle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [rectangle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col2}{col2}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col3}{col3}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col3}{col3}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor={col2}{col2}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/ghz_448/clean16-16-0.0588 .json b/pytheus/graphs/HighlyEntangledStates/ghz_448/plot_ghz_448_clean16-16-0.0588 .json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/ghz_448/clean16-16-0.0588 .json rename to pytheus/graphs/HighlyEntangledStates/ghz_448/plot_ghz_448_clean16-16-0.0588 .json diff --git a/theseus/configs/ghz_538.json b/pytheus/graphs/HighlyEntangledStates/ghz_538/config_ghz_538.json similarity index 100% rename from theseus/configs/ghz_538.json rename to pytheus/graphs/HighlyEntangledStates/ghz_538/config_ghz_538.json diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_538/graph_ghz_538.aux b/pytheus/graphs/HighlyEntangledStates/ghz_538/graph_ghz_538.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_538/graph_ghz_538.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_538/graph_ghz_538.pdf b/pytheus/graphs/HighlyEntangledStates/ghz_538/graph_ghz_538.pdf new file mode 100644 index 00000000..83589fca Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/ghz_538/graph_ghz_538.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_538/graph_ghz_538.tex b/pytheus/graphs/HighlyEntangledStates/ghz_538/graph_ghz_538.tex new file mode 100644 index 00000000..0aa072a6 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_538/graph_ghz_538.tex @@ -0,0 +1,60 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [rectangle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [rectangle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col2}{col2}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col2}{col2}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-11.25, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-11.25, opacity=1.0] (4) to (7); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (4) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_538/original_ghz_538_clean-16-12-0.0769_0.0000.json b/pytheus/graphs/HighlyEntangledStates/ghz_538/original_ghz_538_clean-16-12-0.0769_0.0000.json new file mode 100644 index 00000000..58b3f863 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_538/original_ghz_538_clean-16-12-0.0769_0.0000.json @@ -0,0 +1,24 @@ +{ + "graph": { + "(0, 5, 0, 0)": 1.0, + "(0, 7, 0, 0)": -1.0, + "(1, 3, 0, 0)": 1.0, + "(1, 7, 1, 0)": 1.0, + "(2, 4, 0, 0)": 1.0, + "(4, 5, 2, 0)": 1.0, + "(4, 7, 2, 0)": -1.0, + "(6, 7, 0, 0)": 1.0, + "(0, 6, 1, 0)": 1.0, + "(1, 5, 1, 0)": 1.0, + "(4, 5, 1, 0)": 1.0, + "(5, 6, 0, 0)": -1.0, + "(1, 2, 2, 2)": 1.0, + "(4, 7, 1, 0)": 1.0, + "(2, 3, 1, 1)": 1.0, + "(0, 3, 2, 2)": 1.0 + }, + "loss": [ + 0.07692307692307687, + 0.0 + ] +} diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_538/plot_ghz_538_clean-16-12-0.0769_0.0000.json b/pytheus/graphs/HighlyEntangledStates/ghz_538/plot_ghz_538_clean-16-12-0.0769_0.0000.json new file mode 100644 index 00000000..ec3e5fb6 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_538/plot_ghz_538_clean-16-12-0.0769_0.0000.json @@ -0,0 +1,24 @@ +{ + "graph": { + "(0, 1, 2, 2)": 1.0, + "(0, 5, 0, 0)": 1.0, + "(0, 6, 1, 0)": 1.0, + "(0, 7, 0, 0)": -1.0, + "(1, 2, 0, 0)": 1.0, + "(1, 3, 1, 1)": 1.0, + "(2, 3, 2, 2)": 1.0, + "(2, 5, 1, 0)": 1.0, + "(2, 7, 1, 0)": 1.0, + "(3, 4, 0, 0)": 1.0, + "(4, 5, 1, 0)": 1.0, + "(4, 5, 2, 0)": 1.0, + "(4, 7, 1, 0)": 1.0, + "(4, 7, 2, 0)": -1.0, + "(5, 6, 0, 0)": -1.0, + "(6, 7, 0, 0)": 1.0 + }, + "loss": [ + 0.07692307692307687, + 0.0 + ] +} diff --git a/theseus/configs/ghz_5410.json b/pytheus/graphs/HighlyEntangledStates/ghz_5410/config_ghz_5410.json similarity index 76% rename from theseus/configs/ghz_5410.json rename to pytheus/graphs/HighlyEntangledStates/ghz_5410/config_ghz_5410.json index 2f4032a0..53c94319 100644 --- a/theseus/configs/ghz_5410.json +++ b/pytheus/graphs/HighlyEntangledStates/ghz_5410/config_ghz_5410.json @@ -1,4 +1,5 @@ { + "description": "Creation of the five-particle four-dimensional GHZ state. Five ancillary particles", "bulk_thr": 0, "edges_tried": 40, @@ -22,5 +23,17 @@ 0.1 ], "tries_per_edge": 10, - "unicolor": true + "unicolor": true, + "dimensions": [ + 4, + 4, + 4, + 4, + 4, + 1, + 1, + 1, + 1, + 1 + ] } \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_5410/graph_ghz_5410.aux b/pytheus/graphs/HighlyEntangledStates/ghz_5410/graph_ghz_5410.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_5410/graph_ghz_5410.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_5410/graph_ghz_5410.pdf b/pytheus/graphs/HighlyEntangledStates/ghz_5410/graph_ghz_5410.pdf new file mode 100644 index 00000000..592827d3 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/ghz_5410/graph_ghz_5410.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_5410/graph_ghz_5410.tex b/pytheus/graphs/HighlyEntangledStates/ghz_5410/graph_ghz_5410.tex new file mode 100644 index 00000000..7c5f85de --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_5410/graph_ghz_5410.tex @@ -0,0 +1,70 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.4270509831248424,1.7633557568774194) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (0.9270509831248424,2.8531695488854605) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-0.927050983124842,2.853169548885461) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-2.427050983124842,1.7633557568774196) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}5}; +\node[vertex] (6) at (-2.4270509831248424,-1.7633557568774192) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (-0.9270509831248427,-2.8531695488854605) [rectangle] {\color{fontcolor}7}; +\node[vertex] (8) at (0.9270509831248417,-2.853169548885461) [rectangle] {\color{fontcolor}8}; +\node[vertex] (9) at (2.427050983124842,-1.7633557568774196) [rectangle] {\color{fontcolor}9}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col3}{col0}, bend right=0.0, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (0) to (9); +\path[line width=4.0,bicolor={col2}{col2}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=-11.25, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor={col3}{col0}, bend right=11.25, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col3}{col3}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col2}{col2}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col3}{col0}, bend right=0.0, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-11.25, opacity=1.0] (3) to (7); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=11.25, opacity=1.0] (3) to (7); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (3) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (4) to (8); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (7) to (8); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (8) to (9); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/ghz_5410/clean-24-40-0.0588_0.0000.json b/pytheus/graphs/HighlyEntangledStates/ghz_5410/original_ghz_5410_clean-24-40-0.0588_0.0000.json similarity index 50% rename from theseus/graphs/HighlyEntangledStates/ghz_5410/clean-24-40-0.0588_0.0000.json rename to pytheus/graphs/HighlyEntangledStates/ghz_5410/original_ghz_5410_clean-24-40-0.0588_0.0000.json index 41c25d92..293419a1 100644 --- a/theseus/graphs/HighlyEntangledStates/ghz_5410/clean-24-40-0.0588_0.0000.json +++ b/pytheus/graphs/HighlyEntangledStates/ghz_5410/original_ghz_5410_clean-24-40-0.0588_0.0000.json @@ -1,28 +1,28 @@ {"graph": { "(0, 3, 3, 3)": 1.0, -"(0, 4, 2, 2)": -1.0, -"(0, 6, 0, 0)": -1.0, +"(0, 4, 2, 2)": 1.0, +"(0, 6, 0, 0)": 1.0, "(0, 7, 1, 0)": 1.0, "(0, 9, 0, 0)": 1.0, "(1, 2, 0, 0)": 1.0, "(1, 3, 1, 1)": 1.0, -"(1, 5, 3, 0)": -1.0, -"(1, 6, 2, 0)": -1.0, -"(1, 8, 2, 0)": -1.0, +"(1, 5, 3, 0)": 1.0, +"(1, 6, 2, 0)": 1.0, +"(1, 8, 2, 0)": 1.0, "(2, 3, 2, 2)": 1.0, -"(2, 6, 1, 0)": -1.0, -"(2, 8, 1, 0)": 1.0, -"(2, 8, 3, 0)": -1.0, +"(2, 6, 1, 0)": 1.0, +"(2, 8, 1, 0)": -1.0, +"(2, 8, 3, 0)": 1.0, "(2, 9, 3, 0)": -1.0, -"(3, 4, 0, 0)": -1.0, +"(3, 4, 0, 0)": 1.0, "(4, 6, 1, 0)": -1.0, "(4, 8, 1, 0)": 1.0, "(4, 8, 3, 0)": -1.0, -"(4, 9, 3, 0)": -1.0, +"(4, 9, 3, 0)": 1.0, "(5, 8, 0, 0)": 1.0, -"(5, 9, 0, 0)": -1.0, -"(6, 7, 0, 0)": -1.0, -"(7, 8, 0, 0)": -1.0 +"(5, 9, 0, 0)": 1.0, +"(6, 7, 0, 0)": 1.0, +"(7, 8, 0, 0)": 1.0 }, "loss": [ 0.05882352941176472, diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_5410/plot_ghz_5410_clean-24-40-0.0588_0.0000.json b/pytheus/graphs/HighlyEntangledStates/ghz_5410/plot_ghz_5410_clean-24-40-0.0588_0.0000.json new file mode 100644 index 00000000..a29d8275 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_5410/plot_ghz_5410_clean-24-40-0.0588_0.0000.json @@ -0,0 +1,31 @@ +{"graph": { + "(0, 1, 0, 0)": 1.0, + "(0, 2, 1, 1)": 1.0, + "(0, 6, 3, 0)": 1.0, + "(0, 7, 2, 0)": 1.0, + "(0, 9, 2, 0)": 1.0, + "(1, 2, 2, 2)": 1.0, + "(1, 5, 3, 0)": -1.0, + "(1, 7, 1, 0)": -1.0, + "(1, 7, 3, 0)": 1.0, + "(1, 9, 1, 0)": 1.0, + "(2, 3, 0, 0)": 1.0, + "(2, 4, 3, 3)": 1.0, + "(3, 4, 2, 2)": 1.0, + "(3, 5, 3, 0)": 1.0, + "(3, 7, 1, 0)": 1.0, + "(3, 7, 3, 0)": -1.0, + "(3, 9, 1, 0)": -1.0, + "(4, 5, 0, 0)": 1.0, + "(4, 8, 1, 0)": 1.0, + "(4, 9, 0, 0)": 1.0, + "(5, 6, 0, 0)": 1.0, + "(6, 7, 0, 0)": 1.0, + "(7, 8, 0, 0)": 1.0, + "(8, 9, 0, 0)": 1.0 +}, +"loss": [ +0.05882352941176472, +0.0 +] +} diff --git a/theseus/configs/ent9_a4real.json b/pytheus/graphs/HighlyEntangledStates/ghz_62_sp/config_ghz_62_sp.json similarity index 52% rename from theseus/configs/ent9_a4real.json rename to pytheus/graphs/HighlyEntangledStates/ghz_62_sp/config_ghz_62_sp.json index e5cdc40d..2254de9a 100644 --- a/theseus/configs/ent9_a4real.json +++ b/pytheus/graphs/HighlyEntangledStates/ghz_62_sp/config_ghz_62_sp.json @@ -1,23 +1,26 @@ { - "description": "9 entanglements for 4 qubits, real example of La4.", + "description": "Creation of six particle two-dimensional GHZ state with six single photon emitters.", "bulk_thr": 0, - "edges_tried": 20, - "foldername": "ent9_a4_1", + "edges_tried": 30, + "foldername": "ghz62_sp", "ftol": 1e-06, "loss_func": "cr", "num_anc": 0, "num_pre": 1, "optimizer": "L-BFGS-B", "imaginary": false, + "real": true, "safe_hist": true, "samples": 10, "target_state": [ - "0001", - "0110", - "1000" + "000000", + "111111" + ], + "single_emitters": [ + 6,7,8,9,10,11 ], "thresholds": [ - 0.25, + 0.35, 0.1 ], "tries_per_edge": 5, diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_62_sp/graph_ghz_62_sp.aux b/pytheus/graphs/HighlyEntangledStates/ghz_62_sp/graph_ghz_62_sp.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_62_sp/graph_ghz_62_sp.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_62_sp/graph_ghz_62_sp.pdf b/pytheus/graphs/HighlyEntangledStates/ghz_62_sp/graph_ghz_62_sp.pdf new file mode 100644 index 00000000..4d900a9b Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/ghz_62_sp/graph_ghz_62_sp.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_62_sp/graph_ghz_62_sp.tex b/pytheus/graphs/HighlyEntangledStates/ghz_62_sp/graph_ghz_62_sp.tex new file mode 100644 index 00000000..3e736d32 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_62_sp/graph_ghz_62_sp.tex @@ -0,0 +1,60 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.598076211353316,1.4999999999999998) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.598076211353316,1.4999999999999998) [circle] {\color{fontcolor}5}; +\node[vertex] (6) at (-3.0,3.6739403974420594e-16) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}6}; +\node[vertex] (7) at (-2.5980762113533165,-1.4999999999999993) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}7}; +\node[vertex] (8) at (-1.5000000000000013,-2.598076211353315) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}8}; +\node[vertex] (9) at (-5.51091059616309e-16,-3.0) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}9}; +\node[vertex] (10) at (1.5,-2.598076211353316) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}10}; +\node[vertex] (11) at (2.598076211353315,-1.5000000000000013) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}11}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (8); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (10); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (11); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (3) to (8); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (11); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (4) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (10); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (5) to (9); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/ghz_62_sp/clean-12-2-0.3333_0.0000.json b/pytheus/graphs/HighlyEntangledStates/ghz_62_sp/plot_ghz_62_sp_clean-12-2-0.3333_0.0000.json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/ghz_62_sp/clean-12-2-0.3333_0.0000.json rename to pytheus/graphs/HighlyEntangledStates/ghz_62_sp/plot_ghz_62_sp_clean-12-2-0.3333_0.0000.json diff --git a/theseus/configs/ghz_638.json b/pytheus/graphs/HighlyEntangledStates/ghz_638/config_ghz_638.json similarity index 100% rename from theseus/configs/ghz_638.json rename to pytheus/graphs/HighlyEntangledStates/ghz_638/config_ghz_638.json diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_638/graph_ghz_638.aux b/pytheus/graphs/HighlyEntangledStates/ghz_638/graph_ghz_638.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_638/graph_ghz_638.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_638/graph_ghz_638.pdf b/pytheus/graphs/HighlyEntangledStates/ghz_638/graph_ghz_638.pdf new file mode 100644 index 00000000..54619012 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/ghz_638/graph_ghz_638.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_638/graph_ghz_638.tex b/pytheus/graphs/HighlyEntangledStates/ghz_638/graph_ghz_638.tex new file mode 100644 index 00000000..0867db8a --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_638/graph_ghz_638.tex @@ -0,0 +1,62 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [circle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [rectangle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=-11.25, opacity=0.9928020788928649] (0) to (2); +\path[line width=4.0,bicolor={col2}{col2}, bend right=11.25, opacity=0.9992322500252901] (0) to (2); +\path[line width=4.0,bicolor_neg={col2}{col2}, bend right=0.0, opacity=0.9989601389263416] (0) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor={col2}{col2}, bend right=0.0, opacity=0.9981161971375997] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=-11.25, opacity=0.9928019380525982] (2) to (5); +\path[line width=4.0,bicolor={col2}{col2}, bend right=11.25, opacity=0.9992322904213145] (2) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.995058669647665] (2) to (7); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor_neg={col2}{col2}, bend right=0.0, opacity=0.9989620913997905] (4) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/ghz_638/clean-18-21-0.1946_0.0501.json b/pytheus/graphs/HighlyEntangledStates/ghz_638/plot_ghz_638_clean-18-21-0.1946_0.0501.json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/ghz_638/clean-18-21-0.1946_0.0501.json rename to pytheus/graphs/HighlyEntangledStates/ghz_638/plot_ghz_638_clean-18-21-0.1946_0.0501.json diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_asym446/changes.md b/pytheus/graphs/HighlyEntangledStates/ghz_asym446/changes.md new file mode 100644 index 00000000..6544d3a0 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_asym446/changes.md @@ -0,0 +1,53 @@ +Starting from the original graph: +``` +original = Graph({ # one must use the Graph class from the PyTheus library + "(3, 5, 2, 0)": 0.0004883277677380273, + "(0, 1, 1, 1)": 0.001051425666873128, + "(1, 2, 3, 3)": 0.001067998490104688, + "(0, 2, 0, 0)": -0.00450451217873684, + "(1, 3, 0, 0)": 0.23292250844790044, + "(4, 5, 0, 0)": -0.6034112926239387, + "(2, 4, 2, 0)": 0.6549771937248401, + "(0, 4, 2, 0)": 0.6648696008295439, + "(1, 5, 2, 0)": 0.8981955391748329, + "(1, 2, 2, 2)": 0.9749529126983252, + "(0, 3, 3, 3)": -0.9823837610559265, + "(0, 1, 2, 2)": 0.9896780534447832, + "(2, 3, 1, 1)": -0.9978710974509947 + }) +``` +We rescale all weights with `-1`, which leads to the same state: `original.rescale(-1)`. +We rename the dimensions for the first 4 nodes. Again, it leads to the same GHZ state. +``` +for node in range(4): + original.switchColors(node,0,2) +``` +We rotate the first 4 nodes. +``` +original.permuteNodes(0,1) +original.permuteNodes(1,2) +original.permuteNodes(2,3) +``` +Finally, we flip the signs of the edges connected to the current nodes 1, 2, and 3. +``` +for node in range(1,4): + original.flipNode(node) +``` +This leads to the plotted graph: +``` +{ # Analytical solution: + "(0, 1, 0, 0)": 0.9749529126983252, # 1 + "(0, 1, 3, 3)": 0.001067998490104688, # 2*eps + "(0, 2, 2, 2)": 0.23292250844790044, # 1 + "(0, 3, 0, 0)": 0.9896780534447832, # 1 + "(0, 3, 1, 1)": 0.001051425666873128, # 2*eps + "(0, 5, 0, 0)": -0.8981955391748329, # -1 + "(1, 2, 1, 1)": 0.9978710974509947, # 1 + "(1, 3, 2, 2)": 0.00450451217873684, # 2*eps + "(1, 4, 0, 0)": 0.6549771937248401, # 1 + "(2, 3, 3, 3)": 0.9823837610559265, # 1 + "(2, 5, 0, 0)": 0.0004883277677380273, # eps + "(3, 4, 0, 0)": 0.6648696008295439, # 1 + "(4, 5, 0, 0)": 0.6034112926239387 # 1 +} +``` diff --git a/theseus/configs/ghz_f446.json b/pytheus/graphs/HighlyEntangledStates/ghz_asym446/config_ghz_asym446.json similarity index 100% rename from theseus/configs/ghz_f446.json rename to pytheus/graphs/HighlyEntangledStates/ghz_asym446/config_ghz_asym446.json diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_asym446/graph_ghz_asym446.aux b/pytheus/graphs/HighlyEntangledStates/ghz_asym446/graph_ghz_asym446.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_asym446/graph_ghz_asym446.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_asym446/graph_ghz_asym446.pdf b/pytheus/graphs/HighlyEntangledStates/ghz_asym446/graph_ghz_asym446.pdf new file mode 100644 index 00000000..59ba0ce1 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/ghz_asym446/graph_ghz_asym446.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_asym446/graph_ghz_asym446.tex b/pytheus/graphs/HighlyEntangledStates/ghz_asym446/graph_ghz_asym446.tex new file mode 100644 index 00000000..51237dc2 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_asym446/graph_ghz_asym446.tex @@ -0,0 +1,55 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col1}{col1}, bend right=-11.25, opacity=0.3] (0) to (1); +\path[line width=4.0,bicolor={col2}{col2}, bend right=11.25, opacity=0.9917894765895714] (0) to (1); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=0.3] (0) to (2); +\path[line width=4.0,bicolor_neg={col3}{col3}, bend right=0.0, opacity=0.9844796222331424] (0) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=0.6662880631856316] (0) to (4); +\path[line width=4.0,bicolor={col2}{col2}, bend right=-11.25, opacity=0.977032920573396] (1) to (2); +\path[line width=4.0,bicolor={col3}{col3}, bend right=11.25, opacity=0.3] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.3] (1) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=0.9001117894577993] (1) to (5); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=0.6563745511799494] (2) to (4); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=0.3] (3) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=0.6046986370938278] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/ghz_f446/rough-13-11-0.0000_1.0000.json b/pytheus/graphs/HighlyEntangledStates/ghz_asym446/original_ghz_asym446_rough-13-11-0.0000_1.0000.json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/ghz_f446/rough-13-11-0.0000_1.0000.json rename to pytheus/graphs/HighlyEntangledStates/ghz_asym446/original_ghz_asym446_rough-13-11-0.0000_1.0000.json diff --git a/pytheus/graphs/HighlyEntangledStates/ghz_asym446/plot_ghz_asym446_rough-13-11-0.0000_1.0000.json b/pytheus/graphs/HighlyEntangledStates/ghz_asym446/plot_ghz_asym446_rough-13-11-0.0000_1.0000.json new file mode 100644 index 00000000..d6aea2c3 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/ghz_asym446/plot_ghz_asym446_rough-13-11-0.0000_1.0000.json @@ -0,0 +1,487 @@ +{ + "graph": { + "(0, 1, 0, 0)": 0.9749529126983252, + "(0, 1, 3, 3)": 0.001067998490104688, + "(0, 2, 2, 2)": 0.23292250844790044, + "(0, 3, 0, 0)": 0.9896780534447832, + "(0, 3, 1, 1)": 0.001051425666873128, + "(0, 5, 0, 0)": -0.8981955391748329, + "(1, 2, 1, 1)": 0.9978710974509947, + "(1, 3, 2, 2)": 0.00450451217873684, + "(1, 4, 0, 0)": 0.6549771937248401, + "(2, 3, 3, 3)": 0.9823837610559265, + "(2, 5, 0, 0)": 0.0004883277677380273, + "(3, 4, 0, 0)": 0.6648696008295439, + "(4, 5, 0, 0)": 0.6034112926239387 + }, + "loss": [ + 1.4564014905182887e-07, + 0.9999983967832548 + ], + "history": [ + [ + 8.26969914768938e-09, + 0.23302576605833258 + ], + [ + 8.269699924845497e-09, + 0.23302576605833292 + ], + [ + 8.269710582986534e-09, + 0.23302576605833913 + ], + [ + 8.269706697205947e-09, + 0.23302576605833691 + ], + [ + 8.269683049455523e-09, + 0.23302576605832348 + ], + [ + 8.269688822615251e-09, + 0.2330257660583268 + ], + [ + 8.269681273098684e-09, + 0.23302576605832237 + ], + [ + 8.269651297077019e-09, + 0.23302576605830483 + ], + [ + 8.269634754753952e-09, + 0.2330257660582652 + ], + [ + 8.269582241204887e-09, + 0.23302576605823422 + ], + [ + 8.269524731652211e-09, + 0.23302576605820025 + ], + [ + 8.2692537262119e-09, + 0.2330257660580033 + ], + [ + 8.268772000441516e-09, + 0.23302576605774894 + ], + [ + 8.268671525257787e-09, + 0.23302576605768988 + ], + [ + 8.26837953660231e-09, + 0.2330257660575179 + ], + [ + 8.268117634990801e-09, + 0.23302576605737757 + ], + [ + 8.267910689419011e-09, + 0.233025766057256 + ], + [ + 8.267857176669224e-09, + 0.23302576605722458 + ], + [ + 8.267576734333204e-09, + 0.2330257660573969 + ], + [ + 8.267332485267787e-09, + 0.23302576605725323 + ], + [ + 8.2669092682508e-09, + 0.2330257660570043 + ], + [ + 8.268769335906256e-09, + 0.23302576605809855 + ], + [ + 8.268419948720407e-09, + 0.23302576605789294 + ], + [ + 8.268452922344238e-09, + 0.23302576605791248 + ], + [ + 8.268246309839355e-09, + 0.2330257660577909 + ], + [ + 8.26775781170852e-09, + 0.23302576605750347 + ], + [ + 8.266736961637378e-09, + 0.23302576605690295 + ], + [ + 8.265526929562839e-09, + 0.23302576605650915 + ], + [ + 8.267434403741447e-09, + 0.23302576605763148 + ], + [ + 8.268954632129066e-09, + 0.23302576605852565 + ], + [ + 8.244025906378738e-09, + 0.2330257660438615 + ], + [ + 8.247026617169695e-09, + 0.23302576604562664 + ], + [ + 8.249696703543918e-09, + 0.2330257660471975 + ], + [ + 8.255743422225237e-09, + 0.23302576605075442 + ], + [ + 8.26437007717118e-09, + 0.23302576605582914 + ], + [ + 8.252326821889255e-09, + 0.2330257660487448 + ], + [ + 8.26296298050977e-09, + 0.23302576605500147 + ], + [ + 8.274011586983931e-09, + 0.23302576606150094 + ], + [ + 6.648344097470726e-09, + 0.2330271072345308 + ], + [ + 6.652710049515065e-09, + 0.23302710723709885 + ], + [ + 6.656522111292418e-09, + 0.2330271072393414 + ], + [ + 6.6590803982080615e-09, + 0.2330271072408462 + ], + [ + 6.6629695094633234e-09, + 0.23302710724313414 + ], + [ + 6.678872788157264e-09, + 0.2330271072524892 + ], + [ + 6.691576848183445e-09, + 0.2330271072599004 + ], + [ + 6.707078892276286e-09, + 0.23302710726901932 + ], + [ + 6.729031776231409e-09, + 0.2330271072819332 + ], + [ + 6.721967649170324e-09, + 0.23302710727777753 + ], + [ + 6.754932169172889e-09, + 0.2330271072971689 + ], + [ + 6.8102525840885164e-09, + 0.233027107329711 + ], + [ + 6.8501849748159316e-09, + 0.23302710735320098 + ], + [ + 6.939464891608793e-09, + 0.23302710740571964 + ], + [ + 6.9896830545701505e-09, + 0.23302710743526045 + ], + [ + 7.0774645033466754e-09, + 0.2330271074868978 + ], + [ + 7.206864993669626e-09, + 0.23302710756301726 + ], + [ + 6.995077184157594e-09, + 0.23302755339501147 + ], + [ + 6.995072299176286e-09, + 0.23302755293366884 + ], + [ + 6.774921401664358e-09, + 0.23302777291096255 + ], + [ + 6.770907279296523e-09, + 0.23302777283245224 + ], + [ + 6.878171032731473e-09, + 0.23302792269312933 + ], + [ + 7.096661036598562e-09, + 0.23302792282165496 + ], + [ + 7.335362428584347e-09, + 0.2330279229620703 + ], + [ + 7.641023036519812e-09, + 0.23302792314187393 + ], + [ + 7.953075864541859e-09, + 0.23302792332543787 + ], + [ + 8.355408032123535e-09, + 0.2330279235621081 + ], + [ + 8.800315143275839e-09, + 0.2330279238238231 + ], + [ + 9.287716373762578e-09, + 0.23302792411053508 + ], + [ + 9.820207536037628e-09, + 0.23302792442377063 + ], + [ + 1.0321735355312e-08, + 0.23302782317937276 + ], + [ + 1.1007669997731284e-08, + 0.2330278235828711 + ], + [ + 1.1816544409626317e-08, + 0.23302782405505007 + ], + [ + 1.2703681773196251e-08, + 0.2330278245769053 + ], + [ + 1.3586823111033652e-08, + 0.23302782509641007 + ], + [ + 1.4565168959812524e-08, + 0.2330278256719185 + ], + [ + 1.5643994988323584e-08, + 0.23302898354993284 + ], + [ + 3.4108700308621565e-09, + 0.2330331624931794 + ], + [ + 3.476728016593711e-09, + 0.233033162567425 + ], + [ + 3.4008921234729428e-09, + 0.23303316255396445 + ], + [ + 3.3781475394789595e-09, + 0.2330331921492661 + ], + [ + 3.343560983637417e-09, + 0.23303319205948958 + ], + [ + 3.2922077286556828e-09, + 0.23303327751966152 + ], + [ + 3.28491467360692e-09, + 0.23303327751537162 + ], + [ + 3.1807054767796217e-09, + 0.23303405961936885 + ], + [ + 3.1803991662471276e-09, + 0.2330340533779195 + ], + [ + 3.176706009355712e-09, + 0.233034155506619 + ], + [ + 3.126660486074684e-09, + 0.2330341554771801 + ], + [ + 3.246179103300051e-09, + 0.23303415554748508 + ], + [ + 2.9158250258731755e-09, + 0.23303427617080008 + ], + [ + 2.9155746705811225e-09, + 0.23303427617065275 + ], + [ + 6.2301585002089155e-09, + 0.23303427812041166 + ], + [ + 1.081379430445395e-11, + 0.23305617926277833 + ], + [ + 1.309807817762021e-11, + 0.23305616766883308 + ], + [ + 1.0320522214612993e-11, + 0.23305613680475112 + ], + [ + 2.672845278439695e-10, + 0.2330653702148634 + ], + [ + 7.49489914575463e-10, + 0.2330650831068003 + ], + [ + 1.4886610832931524e-09, + 0.2330651031583545 + ], + [ + 1.5271717224152326e-10, + 0.23220654193034285 + ], + [ + 1.791051751354189e-10, + 0.23220654194589885 + ], + [ + 2.3158919226773378e-10, + 0.23220654197683843 + ], + [ + 3.095015355114583e-10, + 0.23220654202276847 + ], + [ + 5.983684658872335e-10, + 0.23220649066068833 + ], + [ + 9.6603802735018e-10, + 0.23220685717378786 + ], + [ + 7.794832557195264e-10, + 0.23205561197527835 + ], + [ + 7.794166423380489e-10, + 0.23205561197523927 + ], + [ + 1.3068260917847851e-09, + 0.23141719599223642 + ], + [ + 1.305758612346608e-09, + 0.23141719599160593 + ], + [ + 2.0427992630800418e-11, + 0.23039627144007346 + ], + [ + 1.7663870366391166e-11, + 0.23039627143843622 + ], + [ + 1.1195233629024415e-10, + 0.2648396504439209 + ], + [ + 1.5306644840507033e-12, + 0.35620639322260583 + ], + [ + 1.990296816245518e-12, + 0.3562063065299139 + ], + [ + 7.762179237147393e-07, + 0.9999625724247828 + ], + [ + 3.3595877135805807e-06, + 0.9999999869589888 + ], + [ + 1.4483776282769867e-06, + 0.9999981480768394 + ], + [ + 3.248429581437229e-06, + 0.9999983924266272 + ], + [ + 1.4564014905182887e-07, + 0.9999983967832548 + ] + ] +} \ No newline at end of file diff --git a/theseus/configs/heralded_bell_3d_sp.json b/pytheus/graphs/HighlyEntangledStates/heralded_bell_3d_sp/config_heralded_bell_3d_sp.json similarity index 100% rename from theseus/configs/heralded_bell_3d_sp.json rename to pytheus/graphs/HighlyEntangledStates/heralded_bell_3d_sp/config_heralded_bell_3d_sp.json diff --git a/pytheus/graphs/HighlyEntangledStates/heralded_bell_3d_sp/graph_heralded_bell_3d_sp.aux b/pytheus/graphs/HighlyEntangledStates/heralded_bell_3d_sp/graph_heralded_bell_3d_sp.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/heralded_bell_3d_sp/graph_heralded_bell_3d_sp.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/heralded_bell_3d_sp/graph_heralded_bell_3d_sp.pdf b/pytheus/graphs/HighlyEntangledStates/heralded_bell_3d_sp/graph_heralded_bell_3d_sp.pdf new file mode 100644 index 00000000..e4e7ea00 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/heralded_bell_3d_sp/graph_heralded_bell_3d_sp.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/heralded_bell_3d_sp/graph_heralded_bell_3d_sp.tex b/pytheus/graphs/HighlyEntangledStates/heralded_bell_3d_sp/graph_heralded_bell_3d_sp.tex new file mode 100644 index 00000000..41154c20 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/heralded_bell_3d_sp/graph_heralded_bell_3d_sp.tex @@ -0,0 +1,66 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle,dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (2.598076211353316,1.4999999999999998) [circle,dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (1.5000000000000004,2.598076211353316) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}2}; +\node[vertex] (3) at (1.8369701987210297e-16,3.0) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.4999999999999993,2.5980762113533165) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.598076211353316,1.4999999999999998) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}5}; +\node[vertex] (6) at (-3.0,3.6739403974420594e-16) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}6}; +\node[vertex] (7) at (-2.5980762113533165,-1.4999999999999993) [inner sep=0.1em,regular polygon,regular polygon sides=3] {\color{fontcolor}7}; +\node[vertex] (8) at (-1.5000000000000013,-2.598076211353315) [inner sep=0.1em, regular polygon,regular polygon sides=6] {\color{fontcolor}8}; +\node[vertex] (9) at (-5.51091059616309e-16,-3.0) [inner sep=0.1em, regular polygon,regular polygon sides=6] {\color{fontcolor}9}; +\node[vertex] (90) at (1.5,-2.598076211353316) [inner sep=0.1em, regular polygon,regular polygon sides=6] {\color{fontcolor}90}; +\node[vertex] (91) at (2.598076211353315,-1.5000000000000013) [inner sep=0.1em, regular polygon,regular polygon sides=6] {\color{fontcolor}91}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (90); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (8); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (91); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (8); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (90); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (8); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (9); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (91); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (7) to (90); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (7) to (91); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/heralded_bell_3d_sp/clean-18-18-0.0769_0.0000.json .json b/pytheus/graphs/HighlyEntangledStates/heralded_bell_3d_sp/plot_heralded_bell_3d_sp_clean-18-18-0.0769_0.0000.json .json similarity index 99% rename from theseus/graphs/heralded_bell_3d_sp/clean-18-18-0.0769_0.0000.json .json rename to pytheus/graphs/HighlyEntangledStates/heralded_bell_3d_sp/plot_heralded_bell_3d_sp_clean-18-18-0.0769_0.0000.json .json index 60b9cd17..5b7088e4 100644 --- a/theseus/graphs/heralded_bell_3d_sp/clean-18-18-0.0769_0.0000.json .json +++ b/pytheus/graphs/HighlyEntangledStates/heralded_bell_3d_sp/plot_heralded_bell_3d_sp_clean-18-18-0.0769_0.0000.json .json @@ -23,4 +23,4 @@ 0.07692307692307687, 0.0 ] -} \ No newline at end of file +} diff --git a/pytheus/graphs/HighlyEntangledStates/heralded_bell_sp/config_heralded_bell_2d_sp.json b/pytheus/graphs/HighlyEntangledStates/heralded_bell_sp/config_heralded_bell_2d_sp.json new file mode 100644 index 00000000..79ac0a6d --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/heralded_bell_sp/config_heralded_bell_2d_sp.json @@ -0,0 +1,35 @@ +{ + "description": "heralded_bell_2d_sp", + "bulk_thr": 0, + "edges_tried": 30, + "foldername": "heralded_bell_2d_sp", + "ftol": 1e-9, + "loss_func": "fid", + "num_anc": 2, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "safe_hist": true, + "samples": 10, + "target_state": [ + "00", + "11" + ], + "out_nodes": [ + 0, + 1 + ], + "single_emitters": [ + 2, + 3, + 4, + 5 + ], + "heralding_out": true, + "number_resolving": false, + "brutal_covers": true, + "thresholds": [ + 0.01, + 1 + ], + "tries_per_edge": 5 +} \ No newline at end of file diff --git a/pytheus/graphs/HighlyEntangledStates/heralded_bell_sp/graph_heralded_bell_sp.aux b/pytheus/graphs/HighlyEntangledStates/heralded_bell_sp/graph_heralded_bell_sp.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/heralded_bell_sp/graph_heralded_bell_sp.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/HighlyEntangledStates/heralded_bell_sp/graph_heralded_bell_sp.pdf b/pytheus/graphs/HighlyEntangledStates/heralded_bell_sp/graph_heralded_bell_sp.pdf new file mode 100644 index 00000000..fb28c3c8 Binary files /dev/null and b/pytheus/graphs/HighlyEntangledStates/heralded_bell_sp/graph_heralded_bell_sp.pdf differ diff --git a/pytheus/graphs/HighlyEntangledStates/heralded_bell_sp/graph_heralded_bell_sp.tex b/pytheus/graphs/HighlyEntangledStates/heralded_bell_sp/graph_heralded_bell_sp.tex new file mode 100644 index 00000000..e69de29b diff --git a/pytheus/graphs/HighlyEntangledStates/heralded_bell_sp/plot_heralded_bell_sp.json b/pytheus/graphs/HighlyEntangledStates/heralded_bell_sp/plot_heralded_bell_sp.json new file mode 100644 index 00000000..7dac12c5 --- /dev/null +++ b/pytheus/graphs/HighlyEntangledStates/heralded_bell_sp/plot_heralded_bell_sp.json @@ -0,0 +1,16 @@ +{ + "graph": { + "(0, 4, 0, 0)": 1.0, + "(1, 5, 0, 0)": -1.0, + "(2, 7, 0, 0)": 0.1, + "(3, 7, 0, 0)": 0.1, + "(4, 7, 0, 0)": 0.1, + "(5, 7, 0, 0)": -0.1, + "(1, 2, 1, 0)": -1.0, + "(3, 6, 0, 0)": 0.1, + "(5, 6, 0, 0)": 0.1, + "(2, 6, 0, 0)": 0.1, + "(0, 3, 1, 0)": 1.0, + "(4, 6, 0, 0)": -0.1 + } +} \ No newline at end of file diff --git a/theseus/configs/ent_222222_AME.json b/pytheus/graphs/MaxEntanglement/AMEepsilon6qubits/config_AMEepsilon6qubits.json similarity index 100% rename from theseus/configs/ent_222222_AME.json rename to pytheus/graphs/MaxEntanglement/AMEepsilon6qubits/config_AMEepsilon6qubits.json diff --git a/pytheus/graphs/MaxEntanglement/AMEepsilon6qubits/graph_AMEepsilon6qubits.aux b/pytheus/graphs/MaxEntanglement/AMEepsilon6qubits/graph_AMEepsilon6qubits.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/AMEepsilon6qubits/graph_AMEepsilon6qubits.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/MaxEntanglement/AMEepsilon6qubits/graph_AMEepsilon6qubits.pdf b/pytheus/graphs/MaxEntanglement/AMEepsilon6qubits/graph_AMEepsilon6qubits.pdf new file mode 100644 index 00000000..c580063e Binary files /dev/null and b/pytheus/graphs/MaxEntanglement/AMEepsilon6qubits/graph_AMEepsilon6qubits.pdf differ diff --git a/pytheus/graphs/MaxEntanglement/AMEepsilon6qubits/graph_AMEepsilon6qubits.tex b/pytheus/graphs/MaxEntanglement/AMEepsilon6qubits/graph_AMEepsilon6qubits.tex new file mode 100644 index 00000000..c653d550 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/AMEepsilon6qubits/graph_AMEepsilon6qubits.tex @@ -0,0 +1,63 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [circle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.3] (0) to (1); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-11.25, opacity=0.7071067811865475] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=0.7071067811865475] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=0.714177848998413] (0) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=0.700035713374682] (0) to (4); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=0.3] (0) to (5); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-11.25, opacity=0.3] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=0.3] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.700035713374682] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.714177848998413] (1) to (4); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=0.7071067811865475] (1) to (5); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=0.7071067811865475] (1) to (5); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=0.7071067811865475] (2) to (3); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=0.0, opacity=0.7071067811865475] (2) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=0.3] (2) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=0.3] (3) to (4); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=0.3] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=0.7071067811865475] (3) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.7071067811865475] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/ent_222222_fake_AME.json b/pytheus/graphs/MaxEntanglement/AMEepsilon6qubits/plot_AMEepsilon6qubits.json similarity index 75% rename from theseus/graphs/HighlyEntangledStates/ent_222222_fake_AME.json rename to pytheus/graphs/MaxEntanglement/AMEepsilon6qubits/plot_AMEepsilon6qubits.json index d138db01..777ea8e6 100644 --- a/theseus/graphs/HighlyEntangledStates/ent_222222_fake_AME.json +++ b/pytheus/graphs/MaxEntanglement/AMEepsilon6qubits/plot_AMEepsilon6qubits.json @@ -1,26 +1,6 @@ { "graph": { -"(0, 1, 0, 0)": 0.01, -"(0, 1, 1, 1)": 1.4142135623730951, -"(0, 2, 0, 1)": 1, -"(0, 2, 1, 0)": -1, -"(0, 3, 1, 1)": 1.01, -"(0, 4, 1, 1)": -0.99, -"(0, 5, 0, 1)": 0.01, -"(1, 2, 0, 1)": 0.01, -"(1, 2, 1, 0)": -0.028284271247461905, -"(1, 3, 1, 0)": 0.99, -"(1, 4, 1, 0)": -1.01, -"(1, 5, 1, 0)": -1, -"(1, 5, 0, 1)": 1, -"(2, 3, 0, 1)": -1, -"(2, 4, 0, 1)": -1, -"(2, 5, 0, 0)": 1.4142135623730951, -"(2, 5, 1, 1)": -0.01, -"(3, 4, 0, 0)": 0.01, -"(3, 4, 1, 1)": -0.01, -"(3, 5, 0, 0)": -1, -"(4, 5, 0, 0)": -1 +"(0, 1, 0, 0)": 0.0070710678118654745, "(0, 1, 1, 1)": 1.0, "(0, 2, 0, 1)": -0.7071067811865475, "(0, 2, 1, 0)": 0.7071067811865475, "(0, 3, 1, 1)": 0.714177848998413, "(0, 4, 1, 1)": 0.700035713374682, "(0, 5, 0, 1)": 0.0070710678118654745, "(1, 2, 0, 1)": -0.0070710678118654745, "(1, 2, 1, 0)": 0.02, "(1, 3, 1, 0)": 0.700035713374682, "(1, 4, 1, 0)": 0.714177848998413, "(1, 5, 1, 0)": -0.7071067811865475, "(1, 5, 0, 1)": 0.7071067811865475, "(2, 3, 0, 1)": 0.7071067811865475, "(2, 4, 0, 1)": -0.7071067811865475, "(2, 5, 0, 0)": -1.0, "(2, 5, 1, 1)": 0.0070710678118654745, "(3, 4, 0, 0)": -0.0070710678118654745, "(3, 4, 1, 1)": 0.0070710678118654745, "(3, 5, 0, 0)": -0.7071067811865475, "(4, 5, 0, 0)": 0.7071067811865475 }, "loss": [ 0.25000002351268685 @@ -146,4 +126,4 @@ 0.12507716445875788 ] ] -} \ No newline at end of file +} diff --git a/pytheus/graphs/MaxEntanglement/HD/config_HD.json b/pytheus/graphs/MaxEntanglement/HD/config_HD.json new file mode 100644 index 00000000..550826d5 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/HD/config_HD.json @@ -0,0 +1,46 @@ +{ + "description": "Creation of hyperdeterminant state. Four ancillary particles. https://iopscience.iop.org/article/10.1088/1742-6596/698/1/012003/pdf", + "bulk_thr": 0.01, + "edges_tried": 10, + "foldername": "HD", + "ftol": 1e-06, + "loss_func": "cr", + "num_anc": 6, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "safe_hist": true, + "samples": 100, + "target_state": [ + "1000", + "0100", + "0010", + "0001", + "1111" + ], + "amplitudes": [ + 1, + 1, + 1, + 1, + 1.4142135623730951 + ], + "thresholds": [ + 0.2, + 0.1 + ], + "tries_per_edge": 5, + "unicolor": false, + "dimensions": [ + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1 + ] +} \ No newline at end of file diff --git a/pytheus/graphs/MaxEntanglement/HD/graph_HD.aux b/pytheus/graphs/MaxEntanglement/HD/graph_HD.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/HD/graph_HD.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/MaxEntanglement/HD/graph_HD.pdf b/pytheus/graphs/MaxEntanglement/HD/graph_HD.pdf new file mode 100644 index 00000000..74e3373d Binary files /dev/null and b/pytheus/graphs/MaxEntanglement/HD/graph_HD.pdf differ diff --git a/pytheus/graphs/MaxEntanglement/HD/graph_HD.tex b/pytheus/graphs/MaxEntanglement/HD/graph_HD.tex new file mode 100644 index 00000000..40b3a135 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/HD/graph_HD.tex @@ -0,0 +1,63 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.4270509831248424,1.7633557568774194) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (0.9270509831248424,2.8531695488854605) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-0.927050983124842,2.853169548885461) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-2.427050983124842,1.7633557568774196) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}5}; +\node[vertex] (6) at (-2.4270509831248424,-1.7633557568774192) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (-0.9270509831248427,-2.8531695488854605) [rectangle] {\color{fontcolor}7}; +\node[vertex] (8) at (0.9270509831248417,-2.853169548885461) [rectangle] {\color{fontcolor}8}; +\node[vertex] (9) at (2.427050983124842,-1.7633557568774196) [rectangle] {\color{fontcolor}9}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (9); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (8); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (8); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (7) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (8) to (9); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/HD/clean-17-10-0.1333_0.0117.json b/pytheus/graphs/MaxEntanglement/HD/original_HD_clean-17-10-0.1333_0.0117.json similarity index 91% rename from theseus/graphs/HighlyEntangledStates/HD/clean-17-10-0.1333_0.0117.json rename to pytheus/graphs/MaxEntanglement/HD/original_HD_clean-17-10-0.1333_0.0117.json index 6ca477c8..b47d7a93 100644 --- a/theseus/graphs/HighlyEntangledStates/HD/clean-17-10-0.1333_0.0117.json +++ b/pytheus/graphs/MaxEntanglement/HD/original_HD_clean-17-10-0.1333_0.0117.json @@ -1,22 +1,22 @@ { "graph": { - "(0, 4, 1, 0)": -1.0, - "(0, 7, 0, 0)": -1.0, - "(1, 2, 1, 1)": -1.0, - "(1, 3, 1, 1)": -1.0, - "(1, 4, 0, 0)": -1.0, - "(1, 8, 0, 0)": 0.9886648538535594, - "(2, 6, 0, 0)": 1.0, - "(2, 8, 1, 0)": -1.0, - "(3, 5, 0, 0)": 0.9978829933003447, - "(3, 6, 0, 0)": 1.0, - "(3, 8, 1, 0)": -1.0, - "(4, 5, 0, 0)": -0.9956587169558647, - "(4, 8, 0, 0)": 0.9884635501613964, - "(5, 9, 0, 0)": 1.0, - "(6, 7, 0, 0)": 1.0, - "(7, 9, 0, 0)": 0.9925414207552895, - "(0, 1, 0, 1)": -1.0 + "(0, 4, 1, 0)": 1.0, + "(0, 7, 0, 0)": -1.0, + "(1, 2, 1, 1)": 1.0, + "(1, 3, 1, 1)": 1.0, + "(1, 4, 0, 0)": -1.0, + "(1, 8, 0, 0)": 1.0, + "(2, 6, 0, 0)": 1.0, + "(2, 8, 1, 0)": 1.0, + "(3, 5, 0, 0)": 1.0, + "(3, 6, 0, 0)": 1.0, + "(3, 8, 1, 0)": 1.0, + "(4, 5, 0, 0)": 1.0, + "(4, 8, 0, 0)": 1.0, + "(5, 9, 0, 0)": 1.0, + "(6, 7, 0, 0)": 1.0, + "(7, 9, 0, 0)": 1.0, + "(0, 1, 0, 1)": 1.0 }, "loss": [ 0.13333333387640367, @@ -292,4 +292,4 @@ 0.024494108082413035 ] ] -} \ No newline at end of file +} diff --git a/pytheus/graphs/MaxEntanglement/HD/plot_HD_clean-17-10-0.1333_0.0117.json b/pytheus/graphs/MaxEntanglement/HD/plot_HD_clean-17-10-0.1333_0.0117.json new file mode 100644 index 00000000..6657e26e --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/HD/plot_HD_clean-17-10-0.1333_0.0117.json @@ -0,0 +1,295 @@ +{ + "graph": { + "(0, 1, 0, 1)": 1.0, + "(0, 5, 1, 0)": 1.0, + "(0, 9, 0, 0)": -1.0, + "(1, 2, 1, 1)": 1.0, + "(1, 3, 1, 1)": 1.0, + "(1, 4, 0, 0)": 1.0, + "(1, 5, 0, 0)": -1.0, + "(2, 4, 1, 0)": 1.0, + "(2, 8, 0, 0)": 1.0, + "(3, 4, 1, 0)": 1.0, + "(3, 6, 0, 0)": 1.0, + "(3, 8, 0, 0)": 1.0, + "(4, 5, 0, 0)": 1.0, + "(5, 6, 0, 0)": 1.0, + "(6, 7, 0, 0)": 1.0, + "(7, 9, 0, 0)": 1.0, + "(8, 9, 0, 0)": 1.0 + }, + "loss": [ + 0.13333333387640367, + 0.01169140649670719 + ], + "history": [ + [ + 0.00035711853291520157, + 9.491882370094018e-07 + ], + [ + 0.00035187104814926595, + 4.208096008317952e-07 + ], + [ + 0.00035547359957333047, + 3.464515277995517e-07 + ], + [ + 0.00036691744287142836, + 4.796756543079539e-07 + ], + [ + 0.000264459726661892, + 8.421786237278184e-06 + ], + [ + 0.0002888853670153235, + 3.838289314161969e-07 + ], + [ + 0.00028773006551474634, + 3.254914479056126e-07 + ], + [ + 0.00029634941146694516, + 3.5620633187516404e-07 + ], + [ + 0.0003080183111526802, + 1.0196604414147714e-06 + ], + [ + 0.0003223629422380858, + 3.7421832221884443e-07 + ], + [ + 0.0003357866741801052, + 1.2462657934531052e-06 + ], + [ + 0.00036466121257616724, + 5.513123207956383e-07 + ], + [ + 0.00028377253159961313, + 6.602443395342661e-07 + ], + [ + 0.00030393254774985223, + 9.914565289870225e-07 + ], + [ + 0.0002828688466612883, + 5.09300007278668e-07 + ], + [ + 0.00029292362130206584, + 2.399420264698193e-07 + ], + [ + 0.00027969949508299674, + 8.398279086274663e-06 + ], + [ + 0.00028079812462411535, + 2.5785307136150237e-06 + ], + [ + 0.0003331288340999716, + 6.102695250254087e-07 + ], + [ + 0.00035883968180150383, + 2.6680663356426493e-07 + ], + [ + 0.000378867947045336, + 5.51460999109743e-06 + ], + [ + 0.0003031657110420527, + 3.7035238852345387e-06 + ], + [ + 0.00035346302664218676, + 2.0237904714281996e-06 + ], + [ + 0.00036728938082863927, + 5.543256699214183e-07 + ], + [ + 0.000379466054268085, + 1.2658108889951336e-05 + ], + [ + 0.0003018351717695156, + 6.2278474859400745e-06 + ], + [ + 0.0003064124484744024, + 5.389430646207671e-07 + ], + [ + 0.00033084679364259184, + 2.363422883733257e-06 + ], + [ + 0.00039840411078151394, + 7.338659247624335e-06 + ], + [ + 0.0004280936115474976, + 1.388661236245703e-05 + ], + [ + 0.00039970527995092375, + 1.1579453830345976e-05 + ], + [ + 0.00037393476440994444, + 6.27949959908225e-06 + ], + [ + 0.0004985519953272233, + 6.304619483366025e-06 + ], + [ + 0.0005970100084446983, + 2.007777128854027e-05 + ], + [ + 0.0005583611546120526, + 8.216032719277067e-06 + ], + [ + 0.0006117397298800453, + 3.5294690788001404e-05 + ], + [ + 0.0007017549945262935, + 4.7583621338720405e-06 + ], + [ + 0.0007081418533924078, + 4.5400425725206084e-05 + ], + [ + 0.0007497780736094306, + 3.123666141113812e-05 + ], + [ + 0.0007308852856522385, + 1.4891237793857037e-05 + ], + [ + 0.0007732889817666511, + 1.3612009002628156e-05 + ], + [ + 0.0012254890602160229, + 1.0756359412056327e-05 + ], + [ + 0.001655306513038468, + 2.3514927566581356e-05 + ], + [ + 0.002247010760796031, + 0.00015826153642761742 + ], + [ + 0.0025260484805126326, + 8.164715135572376e-05 + ], + [ + 0.002200469382086623, + 5.54678727030522e-05 + ], + [ + 0.0023689882738212598, + 4.5485870955097596e-05 + ], + [ + 0.003284841999028565, + 7.852524879248257e-05 + ], + [ + 0.0035461363743182206, + 6.215185097879772e-05 + ], + [ + 0.005791498009054319, + 0.0005360779556060624 + ], + [ + 0.008610971047714022, + 0.0014231486056052178 + ], + [ + 0.009119085532689919, + 0.0003083223998009421 + ], + [ + 0.011417154124390039, + 0.0012629704729144597 + ], + [ + 0.013663570861843888, + 0.0023674311976751294 + ], + [ + 0.01441493106303715, + 0.0025451583682239987 + ], + [ + 0.025439336301717352, + 0.011160084275422144 + ], + [ + 0.05669041318992285, + 0.02743070604801967 + ], + [ + 0.05434856307493463, + 0.022716489871997037 + ], + [ + 0.06266418976629295, + 0.03530584194366182 + ], + [ + 0.09088911192204863, + 0.02957692245303878 + ], + [ + 0.09097030412056462, + 0.029603088641322994 + ], + [ + 0.09585031825916179, + 0.020156732080547246 + ], + [ + 0.10235377887170094, + 0.020439859406068406 + ], + [ + 0.10398290642819774, + 0.02127760329310535 + ], + [ + 0.10445880937828411, + 0.021542439435940475 + ], + [ + 0.10449864380926877, + 0.02145549201051855 + ], + [ + 0.11157838927287356, + 0.024494108082413035 + ] + ] +} diff --git a/theseus/configs/L_state.json b/pytheus/graphs/MaxEntanglement/Lstate/config_Lstate.json similarity index 58% rename from theseus/configs/L_state.json rename to pytheus/graphs/MaxEntanglement/Lstate/config_Lstate.json index d601e21d..e455ad83 100644 --- a/theseus/configs/L_state.json +++ b/pytheus/graphs/MaxEntanglement/Lstate/config_Lstate.json @@ -2,15 +2,15 @@ "description": "Creation of L-state. Four ancillary particles. https://iopscience.iop.org/article/10.1088/1742-6596/698/1/012003/pdf", "bulk_thr": 0, "edges_tried": 30, - "foldername": "L_state", - "ftol": 1e-06, + "foldername": "L_state_noANC", + "ftol": 1e-05, "loss_func": "cr", - "num_anc": 4, + "num_anc": 0, "num_pre": 1, "optimizer": "L-BFGS-B", "imaginary": "polar", "safe_hist": true, - "samples": 100, + "samples": 20, "target_state": [ "0000", "1111", @@ -23,41 +23,41 @@ ], "amplitudes": [ [ - 1.0000000000000002, - 1.0471975511965976 + -1, + 0 ], [ - 1.0000000000000002, - 1.0471975511965976 + -1, + 0 ], [ 1.7320508075688772, - -0.523598775598299 + 1.5707963267948966 ], [ 1.7320508075688772, - -0.523598775598299 + 1.5707963267948966 ], [ 1.0, - -2.094395102393196 + 0.0 ], [ 1.0, - -2.094395102393196 + 0.0 ], [ 1.0, - -2.094395102393196 + 0.0 ], [ 1.0, - -2.094395102393196 + 0.0 ] ], "thresholds": [ - 0.2, - 0.1 + 0.1, + 0.01 ], "tries_per_edge": 10, "unicolor": false, @@ -65,10 +65,28 @@ 2, 2, 2, - 2, - 1, + 2 + ], + "topopt": true, + "seed": 3267316621, + "in_nodes": [], + "out_nodes": [ + 0, 1, + 2, + 3 + ], + "single_emitters": [], + "removed_connections": [], + "heralding_out": false, + "number_resolving": false, + "brutal_covers": false, + "save_hist": true, + "verts": [ + 0, 1, - 1 - ] + 2, + 3 + ], + "anc_detectors": [] } \ No newline at end of file diff --git a/pytheus/graphs/MaxEntanglement/Lstate/graph_Lstate.aux b/pytheus/graphs/MaxEntanglement/Lstate/graph_Lstate.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/Lstate/graph_Lstate.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/MaxEntanglement/Lstate/graph_Lstate.pdf b/pytheus/graphs/MaxEntanglement/Lstate/graph_Lstate.pdf new file mode 100644 index 00000000..e970bb2c Binary files /dev/null and b/pytheus/graphs/MaxEntanglement/Lstate/graph_Lstate.pdf differ diff --git a/pytheus/graphs/MaxEntanglement/Lstate/graph_Lstate.tex b/pytheus/graphs/MaxEntanglement/Lstate/graph_Lstate.tex new file mode 100644 index 00000000..7020e8ef --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/Lstate/graph_Lstate.tex @@ -0,0 +1,60 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [circle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=-15.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col1}, bend right=15.0, opacity=0.5957874077501101] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-16.875, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-5.625, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=5.625, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=16.875, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-15.0, opacity=0.5982363358919444] (0) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=15.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-15.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=0.5972365011030624] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=15.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-16.875, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-5.625, opacity=0.619565871171784] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=5.625, opacity=0.6251533146035545] (1) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=16.875, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-15.0, opacity=0.6025110665526859] (2) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=15.0, opacity=1.0] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-32-0.0875_0.0056(0).json b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-32-0.0875_0.0056(0).json new file mode 100644 index 00000000..208d2a3e --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-32-0.0875_0.0056(0).json @@ -0,0 +1,107 @@ +{ + "graph": { + "(0, 1, 0, 0)": [ + 1.0, + 2.0330630946442425 + ], + "(1, 3, 1, 1)": [ + -1.0, + -3.0379035477354353 + ], + "(0, 3, 0, 1)": [ + 0.35384509966945116, + -0.30309966313966724 + ], + "(0, 2, 0, 1)": [ + 0.3540977735246441, + -2.7090416890239677 + ], + "(1, 2, 1, 0)": [ + 0.5338946604336303, + 3.114604509158867 + ], + "(1, 3, 1, 0)": [ + 0.5343654487849774, + -0.8534260283153269 + ], + "(0, 1, 1, 1)": [ + -0.6375335996513717, + -2.491807043851326 + ], + "(0, 2, 1, 1)": [ + -0.8223743531889117, + -0.1524031093567599 + ], + "(0, 3, 1, 1)": [ + -0.8252341383731296, + -0.972870842036528 + ], + "(2, 3, 0, 1)": [ + -0.9602224226318548, + 1.6722756937929708 + ], + "(2, 3, 1, 0)": [ + -0.966105498375265, + -1.4757032896934612 + ], + "(2, 3, 1, 1)": [ + 1.0, + -0.5530086666958083 + ], + "(2, 3, 0, 0)": [ + 1.0, + 0.9426764383636583 + ], + "(1, 2, 1, 1)": [ + -1.0, + -2.2470543335576822 + ], + "(1, 2, 0, 1)": [ + -1.0, + -1.4893608437033217 + ], + "(0, 3, 1, 0)": [ + -1.0, + 1.340581816798634 + ], + "(0, 3, 0, 0)": [ + 1.0, + -1.0996402231532478 + ], + "(0, 2, 1, 0)": [ + -1.0, + -0.9900752063332122 + ], + "(0, 2, 0, 0)": [ + 1.0, + -0.27762830267365857 + ], + "(1, 3, 0, 1)": [ + -1.0, + 0.8484804844242383 + ] + }, + "loss": [ + 0.08753798995081075, + 0.005588288017094101 + ], + "seed": 2027196685, + "history": [ + [ + 0.0860484865988469, + 0.0075837548303223645 + ], + [ + 0.0875161675591033, + 0.005927586176223465 + ], + [ + 0.08774156906733843, + 0.005784257331736042 + ], + [ + 0.08753798995081075, + 0.005588288017094101 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-32-0.0875_0.0056.json b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-32-0.0875_0.0056.json new file mode 100644 index 00000000..9281df0b --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-32-0.0875_0.0056.json @@ -0,0 +1,107 @@ +{ + "graph": { + "(0, 1, 0, 0)": [ + -1.0, + -2.856278628041003 + ], + "(1, 3, 1, 1)": [ + 1.0, + -2.930683563119351 + ], + "(0, 1, 1, 1)": [ + 0.36842892598210286, + -1.5661377811783235 + ], + "(0, 2, 1, 0)": [ + 0.3696938115947326, + 0.4274425819945911 + ], + "(2, 3, 1, 1)": [ + -0.5452925735074454, + 1.2338979372408458 + ], + "(1, 3, 0, 1)": [ + 0.5459051452276457, + -0.7951914696629394 + ], + "(0, 3, 0, 1)": [ + -0.6347812490562713, + 0.5875963229716555 + ], + "(0, 1, 0, 1)": [ + -0.8107806337015877, + -1.9692462635100498 + ], + "(0, 2, 0, 0)": [ + -0.8116181194968781, + -3.089572674001906 + ], + "(1, 2, 0, 0)": [ + 0.9670247067376044, + 2.0035880593368876 + ], + "(1, 2, 1, 1)": [ + 0.9689158297725774, + 2.011776945648045 + ], + "(2, 3, 0, 1)": [ + -1.0, + -0.9157626597243194 + ], + "(2, 3, 0, 0)": [ + 1.0, + -0.16599971334289765 + ], + "(1, 2, 1, 0)": [ + 1.0, + 3.0826008358894903 + ], + "(1, 2, 0, 1)": [ + 1.0, + 1.3211878670931252 + ], + "(0, 3, 1, 0)": [ + 1.0, + 1.9123182804429861 + ], + "(0, 2, 1, 1)": [ + 1.0, + 2.9656768940271334 + ], + "(0, 2, 0, 1)": [ + -1.0, + 2.3065374776099685 + ], + "(0, 1, 1, 0)": [ + 1.0, + 0.9404010868019369 + ], + "(1, 3, 1, 0)": [ + -1.0, + 0.9553484379404452 + ] + }, + "loss": [ + 0.08753841440732935, + 0.005573826031063711 + ], + "seed": 1123894206, + "history": [ + [ + 0.05970575407966039, + 0.00701549251759348 + ], + [ + 0.08729242224590494, + 0.006446274782749506 + ], + [ + 0.09080191076017663, + 0.008936671298367727 + ], + [ + 0.08753841440732935, + 0.005573826031063711 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0076.json b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0076.json new file mode 100644 index 00000000..e9524628 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0076.json @@ -0,0 +1,107 @@ +{ + "graph": { + "(0, 1, 0, 0)": [ + 1.0, + -0.4090911447914922 + ], + "(1, 3, 1, 1)": [ + 1.0, + 1.621509333989859 + ], + "(0, 2, 1, 1)": [ + -0.6500731683735343, + 3.141592653589793 + ], + "(1, 3, 0, 0)": [ + -0.6503219849499219, + 0.968576222492261 + ], + "(0, 1, 0, 1)": [ + -0.6504644861136433, + 0.42726921012635033 + ], + "(2, 3, 0, 1)": [ + -0.6510940761137648, + -2.5941923477539754 + ], + "(1, 2, 1, 1)": [ + -0.6744271144482631, + 0.4313482006945175 + ], + "(1, 2, 0, 0)": [ + 0.675843340495758, + 0.4291350463989886 + ], + "(2, 3, 1, 1)": [ + 1.0, + -0.2910180861591591 + ], + "(2, 3, 1, 0)": [ + 1.0, + 1.200662578569202 + ], + "(1, 3, 1, 0)": [ + 1.0, + 0.13117064908872916 + ], + "(1, 2, 1, 0)": [ + 1.0, + 0.3385384919416213 + ], + "(0, 3, 1, 1)": [ + 1.0, + -2.7159495291822635 + ], + "(0, 3, 1, 0)": [ + 1.0, + -0.35750434136486786 + ], + "(0, 3, 0, 1)": [ + -1.0, + -0.35751737703617187 + ], + "(0, 3, 0, 0)": [ + 1.0, + 0.42548270360826757 + ], + "(0, 2, 1, 0)": [ + 1.0, + -0.830761310676498 + ], + "(0, 2, 0, 0)": [ + -1.0, + 0.6613470375616963 + ], + "(0, 1, 1, 0)": [ + -1.0, + 1.0835233377730613 + ], + "(1, 2, 0, 1)": [ + -1.0, + 0.33945259849392617 + ] + }, + "loss": [ + 0.06529459102539548, + 0.007602955647005416 + ], + "seed": 805288097, + "history": [ + [ + 0.06208153574059194, + 0.006595221894821757 + ], + [ + 0.061751654809873546, + 0.005787780475585369 + ], + [ + 0.06508986846861253, + 0.007823296514664069 + ], + [ + 0.06529459102539548, + 0.007602955647005416 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0078(0).json b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0078(0).json new file mode 100644 index 00000000..2ac2b5fb --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0078(0).json @@ -0,0 +1,107 @@ +{ + "graph": { + "(0, 1, 0, 0)": [ + -1.0, + -0.7604541999655148 + ], + "(1, 3, 1, 0)": [ + -1.0, + 1.35943826525184 + ], + "(0, 1, 1, 0)": [ + 0.6488720568856488, + -0.027328229527724558 + ], + "(1, 3, 1, 1)": [ + 0.6490595055666389, + 2.0951221048038247 + ], + "(2, 3, 1, 0)": [ + 0.6508719084181008, + 0.8589320027196188 + ], + "(0, 2, 0, 0)": [ + -0.6518789840901834, + 1.879108301664664 + ], + "(0, 3, 1, 1)": [ + -0.6751119294645168, + -3.1109992933789314 + ], + "(0, 3, 0, 0)": [ + -0.6763172811570024, + 0.03173689019937435 + ], + "(2, 3, 1, 1)": [ + -1.0, + -3.016145522869493 + ], + "(2, 3, 0, 1)": [ + 1.0, + 0.20920095821044027 + ], + "(1, 3, 0, 0)": [ + -1.0, + 1.445508379139335 + ], + "(1, 2, 1, 1)": [ + -1.0, + 0.9192018676160584 + ], + "(1, 2, 0, 1)": [ + -1.0, + 0.13378166800892677 + ], + "(1, 2, 0, 0)": [ + 1.0, + 0.9198573136322862 + ], + "(0, 3, 1, 0)": [ + -1.0, + 1.6999809592798334 + ], + "(0, 3, 0, 1)": [ + 1.0, + -1.441431453525174 + ], + "(0, 2, 1, 1)": [ + 1.0, + 1.2308569100986735 + ], + "(0, 2, 1, 0)": [ + -1.0, + 1.145683928218833 + ], + "(0, 1, 0, 1)": [ + 1.0, + -0.6771744775037808 + ], + "(1, 2, 1, 0)": [ + -1.0, + 0.13414010301660606 + ] + }, + "loss": [ + 0.06529110950996342, + 0.007755679898071799 + ], + "seed": 3662271715, + "history": [ + [ + 0.06172348521884874, + 0.005795747793377659 + ], + [ + 0.06528905933312024, + 0.007854572976267571 + ], + [ + 0.06529482772839912, + 0.007730192298182614 + ], + [ + 0.06529110950996342, + 0.007755679898071799 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0078(1).json b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0078(1).json new file mode 100644 index 00000000..62647044 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0078(1).json @@ -0,0 +1,107 @@ +{ + "graph": { + "(0, 1, 1, 0)": [ + -1.0, + 0.46002608566033004 + ], + "(1, 3, 1, 1)": [ + 1.0, + 0.7443014329465069 + ], + "(1, 3, 0, 0)": [ + 0.6501484695383801, + -1.7512064158510845 + ], + "(2, 3, 0, 1)": [ + 0.6502175121449976, + 0.2005963235637217 + ], + "(0, 1, 0, 1)": [ + 0.6503444306994369, + -2.033566055773349 + ], + "(0, 2, 1, 1)": [ + -0.6513122745016509, + 3.058598303176948 + ], + "(0, 3, 1, 1)": [ + 0.6765571941592822, + 1.1064028279631641 + ], + "(0, 3, 0, 0)": [ + -0.6766365788947554, + 1.1060856406780932 + ], + "(2, 3, 1, 0)": [ + 1.0, + -0.4442342821267602 + ], + "(2, 3, 0, 0)": [ + 1.0, + -0.5285706574048327 + ], + "(1, 3, 0, 1)": [ + 1.0, + 0.6603189560489648 + ], + "(1, 2, 1, 1)": [ + 1.0, + 0.32786864432609336 + ], + "(1, 2, 0, 1)": [ + -1.0, + -0.4625262645180103 + ], + "(1, 2, 0, 0)": [ + -1.0, + 0.3274101967515572 + ], + "(0, 3, 1, 0)": [ + -1.0, + -0.3663176984951715 + ], + "(0, 3, 0, 1)": [ + -1.0, + -0.36560946187427495 + ], + "(0, 2, 0, 1)": [ + 1.0, + -0.8115072909985974 + ], + "(0, 2, 0, 0)": [ + -1.0, + -0.7275596644426665 + ], + "(0, 1, 1, 1)": [ + 1.0, + 0.3771697759588982 + ], + "(1, 2, 1, 0)": [ + -1.0, + -0.46191539213177496 + ] + }, + "loss": [ + 0.06528684320419498, + 0.0077791529782123 + ], + "seed": 1326989667, + "history": [ + [ + 0.06124491989622316, + 0.005862167067303914 + ], + [ + 0.06506216935264275, + 0.007868522541619183 + ], + [ + 0.06513540136270912, + 0.007646672895234907 + ], + [ + 0.06528684320419498, + 0.0077791529782123 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0078(2).json b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0078(2).json new file mode 100644 index 00000000..0b093a7a --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0078(2).json @@ -0,0 +1,107 @@ +{ + "graph": { + "(0, 1, 0, 0)": [ + -1.0, + 0.10566389811006814 + ], + "(1, 3, 1, 1)": [ + -1.0, + 0.9664936480941768 + ], + "(0, 1, 0, 1)": [ + 0.6493548495039945, + 0.9495152875131025 + ], + "(1, 3, 0, 0)": [ + 0.6502755621202038, + 0.3223103143045293 + ], + "(0, 2, 1, 1)": [ + -0.6503156896486826, + 1.8769988142497498 + ], + "(2, 3, 0, 1)": [ + -0.6514150289268715, + 1.2524076170423213 + ], + "(1, 2, 1, 1)": [ + 0.6759976594386744, + -0.5365966383486321 + ], + "(1, 2, 0, 0)": [ + 0.6766708114146402, + 2.6023374184579517 + ], + "(2, 3, 1, 1)": [ + 1.0, + -2.7311338845499087 + ], + "(2, 3, 1, 0)": [ + 1.0, + -1.245484112859111 + ], + "(1, 3, 1, 0)": [ + -1.0, + -0.5179825901811208 + ], + "(1, 2, 1, 0)": [ + -1.0, + -0.638457908254739 + ], + "(0, 3, 1, 1)": [ + 1.0, + 2.6111674784118932 + ], + "(0, 3, 1, 0)": [ + 1.0, + -1.310486207546621 + ], + "(0, 3, 0, 1)": [ + -1.0, + -1.3109973938105097 + ], + "(0, 3, 0, 0)": [ + 1.0, + -0.5287726016876076 + ], + "(0, 2, 1, 0)": [ + -1.0, + 1.0346414243375435 + ], + "(0, 2, 0, 0)": [ + -1.0, + -0.6195973223817083 + ], + "(0, 1, 1, 0)": [ + -1.0, + -1.548199017595527 + ], + "(1, 2, 0, 1)": [ + 1.0, + -0.6379362540686339 + ] + }, + "loss": [ + 0.06528728393329442, + 0.007790783598583539 + ], + "seed": 1544323184, + "history": [ + [ + 0.061276934321079723, + 0.005618080328493202 + ], + [ + 0.06481274130443648, + 0.007853893985474758 + ], + [ + 0.06523612879864549, + 0.00786401649949553 + ], + [ + 0.06528728393329442, + 0.007790783598583539 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0078(3).json b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0078(3).json new file mode 100644 index 00000000..4f362d32 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0078(3).json @@ -0,0 +1,107 @@ +{ + "graph": { + "(0, 1, 0, 0)": [ + 1.0, + 0.1008929675946793 + ], + "(1, 3, 1, 1)": [ + -1.0, + 1.01942307054941 + ], + "(2, 3, 0, 1)": [ + -0.6487243958859249, + 1.4687543074154872 + ], + "(0, 2, 1, 1)": [ + -0.6490423176211193, + 0.6335553916509995 + ], + "(1, 3, 0, 0)": [ + 0.650282986815409, + 1.6634873121468283 + ], + "(0, 1, 0, 1)": [ + -0.6507313981468882, + -2.3086269097323666 + ], + "(1, 2, 0, 0)": [ + -0.6757265169900731, + 0.11362084488131027 + ], + "(1, 2, 1, 1)": [ + 0.6760366433504579, + 0.11419834463272904 + ], + "(2, 3, 1, 1)": [ + -1.0, + -2.401696834409813 + ], + "(2, 3, 1, 0)": [ + 1.0, + -2.317308142463835 + ], + "(1, 3, 1, 0)": [ + -1.0, + 0.9352989397115362 + ], + "(1, 2, 1, 0)": [ + 1.0, + 1.7847985680872245 + ], + "(0, 3, 1, 1)": [ + 1.0, + 2.311211740829994 + ], + "(0, 3, 1, 0)": [ + -1.0, + 1.5212197675439896 + ], + "(0, 3, 0, 1)": [ + -1.0, + 1.521634543042783 + ], + "(0, 3, 0, 0)": [ + 1.0, + -0.8303478575591418 + ], + "(0, 2, 1, 0)": [ + -1.0, + -0.09361164537349768 + ], + "(0, 2, 0, 0)": [ + 1.0, + -0.0086342430318047 + ], + "(0, 1, 1, 0)": [ + 1.0, + 0.18573112498282168 + ], + "(1, 2, 0, 1)": [ + -1.0, + -1.3572329249843427 + ] + }, + "loss": [ + 0.06528757838661137, + 0.007750744330968229 + ], + "seed": 2602645258, + "history": [ + [ + 0.06511405053085384, + 0.007731755242835758 + ], + [ + 0.06498841126437149, + 0.00800372814696082 + ], + [ + 0.06508907702723976, + 0.007839632730956891 + ], + [ + 0.06528757838661137, + 0.007750744330968229 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0078(4).json b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0078(4).json new file mode 100644 index 00000000..ffb1613c --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0078(4).json @@ -0,0 +1,107 @@ +{ + "graph": { + "(0, 1, 0, 0)": [ + -1.0, + -1.9812408270413189 + ], + "(1, 3, 1, 0)": [ + -1.0, + 1.4200976296034102 + ], + "(2, 3, 1, 0)": [ + -0.6502069946664015, + 2.760337431435734 + ], + "(0, 2, 0, 0)": [ + -0.6502138859357878, + 2.501647791299027 + ], + "(0, 1, 1, 0)": [ + 0.6505860033013364, + -1.1409098808760412 + ], + "(1, 3, 1, 1)": [ + 0.6514632435226502, + -0.8796010979354755 + ], + "(0, 3, 1, 1)": [ + -0.6766408622014818, + -1.4653874488732863 + ], + "(0, 3, 0, 0)": [ + 0.6770049670461067, + -1.4653918918814821 + ], + "(2, 3, 1, 1)": [ + -1.0, + 1.920303773854648 + ], + "(2, 3, 0, 1)": [ + 1.0, + 0.2662868865666687 + ], + "(1, 3, 0, 0)": [ + 1.0, + 2.9065592296625824 + ], + "(1, 2, 1, 1)": [ + 1.0, + -0.18112657034588395 + ], + "(1, 2, 0, 1)": [ + 1.0, + -0.9633128434543029 + ], + "(1, 2, 0, 0)": [ + -1.0, + -0.18062052822213956 + ], + "(0, 3, 1, 0)": [ + 1.0, + -1.5640051909849257 + ], + "(0, 3, 0, 1)": [ + -1.0, + -1.5632371221106793 + ], + "(0, 2, 1, 1)": [ + -1.0, + 0.006151267759700266 + ], + "(0, 2, 1, 0)": [ + -1.0, + -1.4831071004924175 + ], + "(0, 1, 0, 1)": [ + -1.0, + 2.646022485185187 + ], + "(1, 2, 1, 0)": [ + -1.0, + -0.9621772682612454 + ] + }, + "loss": [ + 0.06528755898277872, + 0.0077918004746857505 + ], + "seed": 2400346111, + "history": [ + [ + 0.061688009533028776, + 0.00589164841735379 + ], + [ + 0.06515270637394965, + 0.0077867330885906805 + ], + [ + 0.06509288822808812, + 0.007823571455128464 + ], + [ + 0.06528755898277872, + 0.0077918004746857505 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0078.json b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0078.json new file mode 100644 index 00000000..ab16366a --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0078.json @@ -0,0 +1,107 @@ +{ + "graph": { + "(0, 1, 1, 0)": [ + 1.0, + 2.101965604114824 + ], + "(2, 3, 0, 0)": [ + 1.0, + 2.292487597083581 + ], + "(0, 2, 1, 1)": [ + -0.6489136080269146, + 1.8463023669906575 + ], + "(2, 3, 0, 1)": [ + -0.6490568859771764, + -3.141592653589793 + ], + "(0, 1, 0, 1)": [ + 0.6496858501833247, + 1.457522984376694 + ], + "(1, 3, 0, 0)": [ + 0.6503676412821685, + 2.748365702305067 + ], + "(0, 3, 0, 0)": [ + 0.6765627447126841, + 2.826940874695802 + ], + "(0, 3, 1, 1)": [ + 0.6778812109086876, + -0.3128233538892155 + ], + "(0, 2, 0, 0)": [ + -1.0, + -0.6541704950771409 + ], + "(2, 3, 1, 0)": [ + 1.0, + 0.6366055109549639 + ], + "(1, 3, 1, 1)": [ + -1.0, + -2.891696828372125 + ], + "(1, 3, 0, 1)": [ + 1.0, + -1.2344379689401614 + ], + "(1, 2, 1, 0)": [ + 1.0, + -2.2825069196222714 + ], + "(1, 2, 0, 1)": [ + 1.0, + 0.8597423769852514 + ], + "(1, 2, 0, 0)": [ + 1.0, + 1.6390613771473304 + ], + "(0, 3, 1, 0)": [ + -1.0, + 2.7262190657689316 + ], + "(0, 3, 0, 1)": [ + -1.0, + -0.41640272235210946 + ], + "(0, 2, 0, 1)": [ + -1.0, + 1.0039498962229108 + ], + "(0, 1, 1, 1)": [ + -1.0, + -2.523197870762441 + ], + "(1, 2, 1, 1)": [ + 1.0, + -1.5006591502552002 + ] + }, + "loss": [ + 0.06529010271497382, + 0.007835608415117545 + ], + "seed": 227862102, + "history": [ + [ + 0.061528316381406434, + 0.005906303067248597 + ], + [ + 0.0683743570942722, + 0.00804237634542404 + ], + [ + 0.06526071837289504, + 0.008079580102576922 + ], + [ + 0.06529010271497382, + 0.007835608415117545 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0080.json b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0080.json new file mode 100644 index 00000000..350f61ae --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0653_0.0080.json @@ -0,0 +1,107 @@ +{ + "graph": { + "(0, 1, 0, 0)": [ + 1.0, + -0.15348909620364304 + ], + "(1, 3, 1, 0)": [ + 1.0, + -0.8216460641728818 + ], + "(0, 2, 1, 1)": [ + -0.6496757223173453, + -0.7392051728902607 + ], + "(1, 3, 1, 1)": [ + -0.6506474721669908, + 0.02615300657609331 + ], + "(1, 2, 0, 0)": [ + 0.6506847828573437, + 0.5920340494282955 + ], + "(0, 3, 0, 0)": [ + 0.6523684518740728, + -1.3092105007355934 + ], + "(2, 3, 0, 1)": [ + 0.6775356052081106, + -1.47558951460699 + ], + "(2, 3, 1, 0)": [ + 0.67825562459111, + -1.4770068472756 + ], + "(2, 3, 1, 1)": [ + 1.0, + -1.5822346509449052 + ], + "(2, 3, 0, 0)": [ + 1.0, + -1.5806385060656305 + ], + "(1, 3, 0, 0)": [ + -1.0, + -2.4769980972572254 + ], + "(1, 2, 1, 1)": [ + -1.0, + 1.2298798711510637 + ], + "(0, 3, 1, 1)": [ + -1.0, + -0.6734111607011168 + ], + "(0, 3, 0, 1)": [ + 1.0, + 0.9867445629610988 + ], + "(0, 2, 1, 0)": [ + -1.0, + 1.5546176815221873 + ], + "(0, 2, 0, 0)": [ + 1.0, + -0.10326414541812233 + ], + "(0, 1, 1, 1)": [ + 1.0, + -0.15263073266692687 + ], + "(0, 1, 1, 0)": [ + -1.0, + 0.626672941258001 + ], + "(0, 1, 0, 1)": [ + 1.0, + -2.51593128060448 + ], + "(1, 2, 0, 1)": [ + -1.0, + -0.251296446360822 + ] + }, + "loss": [ + 0.06529220746658404, + 0.007952804814983505 + ], + "seed": 3092883267, + "history": [ + [ + 0.06131032900571587, + 0.005832405571493449 + ], + [ + 0.06482609142039719, + 0.007744126278084185 + ], + [ + 0.06525453350221289, + 0.007746278387545935 + ], + [ + 0.06529220746658404, + 0.007952804814983505 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0701_0.0076.json b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0701_0.0076.json new file mode 100644 index 00000000..7e0e743e --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0701_0.0076.json @@ -0,0 +1,107 @@ +{ + "graph": { + "(0, 1, 0, 0)": [ + -1.0, + -1.9154388061415535 + ], + "(2, 3, 0, 0)": [ + 1.0, + 1.0240653644582736 + ], + "(0, 3, 0, 0)": [ + -0.8053133993715544, + 1.3602793606327093 + ], + "(1, 2, 1, 1)": [ + -0.8069150119502118, + -0.7316256796969516 + ], + "(0, 1, 0, 1)": [ + -0.8126332198637809, + 1.6058588451722131 + ], + "(2, 3, 1, 0)": [ + -0.8144606777328346, + -1.7438564728757153 + ], + "(2, 3, 1, 1)": [ + 1.0, + 1.025223084192593 + ], + "(2, 3, 0, 1)": [ + -1.0, + -1.074424074579338 + ], + "(1, 3, 1, 1)": [ + -1.0, + 1.5808112672690215 + ], + "(1, 3, 0, 1)": [ + -1.0, + 0.6853391569178409 + ], + "(1, 3, 0, 0)": [ + -1.0, + -1.5610271459678784 + ], + "(1, 2, 0, 1)": [ + -1.0, + -1.8681911245297873 + ], + "(0, 3, 1, 0)": [ + -1.0, + 0.22395926235326669 + ], + "(0, 3, 0, 1)": [ + 1.0, + 0.2284036380515844 + ], + "(0, 2, 1, 1)": [ + -1.0, + 2.6299097091742447 + ], + "(0, 2, 1, 0)": [ + 1.0, + 1.7393361881143123 + ], + "(0, 2, 0, 0)": [ + -1.0, + -0.5111037479569677 + ], + "(0, 1, 1, 1)": [ + -1.0, + -1.9124994209703337 + ], + "(0, 1, 1, 0)": [ + 1.0, + -0.8705047426638198 + ], + "(1, 2, 1, 0)": [ + -1.0, + 1.2755485598489642 + ] + }, + "loss": [ + 0.07010685101629477, + 0.007551071363243511 + ], + "seed": 1803725163, + "history": [ + [ + 0.06001457444796121, + 0.007010406236400923 + ], + [ + 0.05527025788826456, + 0.0046190601988492785 + ], + [ + 0.0674581288653181, + 0.008502816800854296 + ], + [ + 0.07010685101629477, + 0.007551071363243511 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0777_0.0040(0).json b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0777_0.0040(0).json new file mode 100644 index 00000000..c6c6d484 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0777_0.0040(0).json @@ -0,0 +1,107 @@ +{ + "graph": { + "(0, 1, 0, 1)": [ + 1.0, + -1.5225283599496193 + ], + "(2, 3, 1, 1)": [ + 1.0, + 2.8575963217993983 + ], + "(0, 1, 1, 1)": [ + -0.5957874077501101, + 0.6840842337570046 + ], + "(1, 2, 0, 1)": [ + -0.5972365011030624, + -0.3277014153399833 + ], + "(0, 3, 0, 1)": [ + 0.5982363358919444, + 0.1333650288190396 + ], + "(2, 3, 0, 0)": [ + 0.6025110665526859, + -0.8817767943867301 + ], + "(1, 3, 0, 1)": [ + -0.619565871171784, + 0.7643764974595645 + ], + "(1, 3, 1, 0)": [ + -0.6251533146035545, + 0.7572928573603424 + ], + "(0, 1, 0, 0)": [ + -1.0, + -1.8693051967382368 + ], + "(1, 2, 1, 0)": [ + -1.0, + 0.26551461804072973 + ], + "(2, 3, 1, 0)": [ + -1.0, + 0.058628127431565 + ], + "(1, 3, 1, 1)": [ + 1.0, + -1.4537073290183629 + ], + "(1, 2, 0, 0)": [ + -1.0, + 0.6095144036377527 + ], + "(0, 3, 1, 1)": [ + -1.0, + 1.075649994664613 + ], + "(0, 3, 1, 0)": [ + 1.0, + 0.7261508833071484 + ], + "(0, 2, 1, 1)": [ + -1.0, + -3.141592653589793 + ], + "(0, 2, 1, 0)": [ + -1.0, + 2.799208886267149 + ], + "(0, 2, 0, 1)": [ + -1.0, + 2.7923538729361637 + ], + "(0, 2, 0, 0)": [ + -1.0, + -0.007060845134987609 + ], + "(1, 3, 0, 0)": [ + -1.0, + -1.4566982484891728 + ] + }, + "loss": [ + 0.077698243739444, + 0.003952628736149877 + ], + "seed": 880533129, + "history": [ + [ + 0.06002876408681279, + 0.006682473853684812 + ], + [ + 0.08078528785986039, + 0.009379950788757974 + ], + [ + 0.07307401625338794, + 0.008423131712950949 + ], + [ + 0.077698243739444, + 0.003952628736149877 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0777_0.0040.json b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0777_0.0040.json new file mode 100644 index 00000000..497791ca --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0777_0.0040.json @@ -0,0 +1,107 @@ +{ + "graph": { + "(0, 1, 0, 0)": [ + -1.0, + -0.7009547680088933 + ], + "(1, 3, 1, 1)": [ + -1.0, + -1.215522681064241 + ], + "(0, 3, 1, 0)": [ + -0.5979365910327971, + -1.4043584349816005 + ], + "(1, 3, 0, 1)": [ + 0.5996604130236853, + -2.1481824143373305 + ], + "(0, 2, 0, 1)": [ + 0.6006909017188515, + 1.0324678207784392 + ], + "(1, 2, 1, 0)": [ + -0.6046206311787428, + 0.29196564093541216 + ], + "(2, 3, 1, 1)": [ + 0.6255713089869244, + -2.9467885241980643 + ], + "(2, 3, 0, 0)": [ + 0.625837964681896, + 0.19217183982622463 + ], + "(2, 3, 1, 0)": [ + 1.0, + 1.1241809604848823 + ], + "(2, 3, 0, 1)": [ + -1.0, + -2.02259464150618 + ], + "(1, 3, 1, 0)": [ + -1.0, + 1.5880351611243702 + ], + "(1, 2, 0, 1)": [ + 1.0, + -2.2482348545128508 + ], + "(0, 3, 0, 1)": [ + -1.0, + -0.8160831656369211 + ], + "(0, 3, 0, 0)": [ + 1.0, + 2.6670513634104154 + ], + "(0, 2, 1, 1)": [ + 1.0, + -1.1670764908103484 + ], + "(0, 2, 1, 0)": [ + -1.0, + -1.5102449660718034 + ], + "(0, 1, 1, 1)": [ + 1.0, + -0.6985887446229653 + ], + "(0, 1, 1, 0)": [ + -1.0, + -0.3546718656310831 + ], + "(0, 1, 0, 1)": [ + -1.0, + -0.3604415723564132 + ], + "(1, 2, 0, 0)": [ + -1.0, + 1.2294942009230752 + ] + }, + "loss": [ + 0.07769491428508724, + 0.0039814170134230276 + ], + "seed": 2067809546, + "history": [ + [ + 0.0596580738554906, + 0.0069468555116862785 + ], + [ + 0.061105109532231916, + 0.007092334063070749 + ], + [ + 0.07330319320013168, + 0.007419116602735754 + ], + [ + 0.07769491428508724, + 0.0039814170134230276 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0825_0.0074(0).json b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0825_0.0074(0).json new file mode 100644 index 00000000..4e4920f9 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0825_0.0074(0).json @@ -0,0 +1,107 @@ +{ + "graph": { + "(0, 1, 0, 1)": [ + -1.0, + 0.4293896559531557 + ], + "(2, 3, 1, 1)": [ + 1.0, + 2.601180629927936 + ], + "(1, 2, 1, 0)": [ + -0.4615124066817969, + -3.141592653589793 + ], + "(1, 3, 0, 1)": [ + -0.5330458962888028, + -0.43956632658435607 + ], + "(0, 2, 0, 1)": [ + -0.5346962684378463, + 2.277900424564783 + ], + "(0, 1, 1, 1)": [ + -0.5508297689810698, + -0.3997692251819657 + ], + "(0, 1, 0, 0)": [ + 0.5569125347931408, + -0.420743735867216 + ], + "(0, 3, 1, 0)": [ + 0.598695418498846, + 2.0393212225086312 + ], + "(1, 2, 0, 1)": [ + -1.0, + 3.141592653589793 + ], + "(1, 3, 1, 0)": [ + -1.0, + -0.11569873625593437 + ], + "(2, 3, 1, 0)": [ + -1.0, + -0.10703560434977365 + ], + "(2, 3, 0, 1)": [ + 1.0, + -3.1338307051788084 + ], + "(1, 3, 0, 0)": [ + 1.0, + 0.3020930339265656 + ], + "(1, 2, 1, 1)": [ + 1.0, + 0.5546508338351033 + ], + "(0, 3, 1, 1)": [ + -1.0, + -0.25401137264535084 + ], + "(0, 3, 0, 1)": [ + 1.0, + 2.49531866961617 + ], + "(0, 2, 1, 0)": [ + 1.0, + -0.5373610347012796 + ], + "(0, 2, 0, 0)": [ + -1.0, + -0.005034674730181905 + ], + "(0, 1, 1, 0)": [ + -1.0, + 0.31637198220249535 + ], + "(2, 3, 0, 0)": [ + -1.0, + 2.5854592815534985 + ] + }, + "loss": [ + 0.08247720936669534, + 0.007359963991211194 + ], + "seed": 2173658807, + "history": [ + [ + 0.060386217380810736, + 0.006094007316248651 + ], + [ + 0.060866854946847404, + 0.007115446482667709 + ], + [ + 0.07309749864971804, + 0.008775233583142694 + ], + [ + 0.08247720936669534, + 0.007359963991211194 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0825_0.0074.json b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0825_0.0074.json new file mode 100644 index 00000000..e4bec1df --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0825_0.0074.json @@ -0,0 +1,107 @@ +{ + "graph": { + "(0, 1, 0, 1)": [ + 1.0, + 0.32848674290123614 + ], + "(2, 3, 1, 0)": [ + -1.0, + 0.5521351252266555 + ], + "(2, 3, 1, 1)": [ + -0.46143378315876754, + -3.141592653589793 + ], + "(1, 2, 1, 0)": [ + -0.532915217757144, + -3.002678780084743 + ], + "(0, 3, 1, 0)": [ + -0.5357683007285101, + 2.279228771106617 + ], + "(0, 2, 0, 1)": [ + -0.5508481621283807, + 1.1295158415881856 + ], + "(0, 2, 1, 0)": [ + 0.5570786000053229, + -2.0328373843836642 + ], + "(0, 1, 0, 0)": [ + 0.598747831563609, + -0.523909140949855 + ], + "(1, 2, 0, 1)": [ + 1.0, + 0.4609503445718142 + ], + "(0, 1, 1, 1)": [ + -1.0, + -0.06412939963760561 + ], + "(2, 3, 0, 0)": [ + 1.0, + 3.141592653589793 + ], + "(1, 3, 1, 1)": [ + 1.0, + -0.9430770304432484 + ], + "(1, 3, 0, 1)": [ + -1.0, + -1.506446809338947 + ], + "(1, 3, 0, 0)": [ + -1.0, + -1.0595496276817837 + ], + "(1, 2, 0, 0)": [ + -1.0, + 0.8792358371988582 + ], + "(0, 3, 1, 1)": [ + -1.0, + -3.141592653589793 + ], + "(0, 3, 0, 1)": [ + 1.0, + -0.5318779197933963 + ], + "(0, 2, 1, 1)": [ + -1.0, + -1.1810766764178 + ], + "(0, 2, 0, 0)": [ + -1.0, + 1.8493062138153469 + ], + "(1, 3, 1, 0)": [ + -1.0, + -1.4912881310100858 + ] + }, + "loss": [ + 0.08247898699126888, + 0.007383564411613253 + ], + "seed": 3267316621, + "history": [ + [ + 0.05980111855663184, + 0.006826033387773656 + ], + [ + 0.06740880948654338, + 0.007385758244408902 + ], + [ + 0.07307650357272466, + 0.008475453562345137 + ], + [ + 0.08247898699126888, + 0.007383564411613253 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0832_0.0052.json b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0832_0.0052.json new file mode 100644 index 00000000..009b2314 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-34-0.0832_0.0052.json @@ -0,0 +1,107 @@ +{ + "graph": { + "(0, 1, 0, 0)": [ + -1.0, + -1.5005706868036055 + ], + "(2, 3, 0, 0)": [ + -1.0, + 0.6212058840484297 + ], + "(1, 3, 1, 1)": [ + -0.8377333392979548, + 2.1980628575494934 + ], + "(0, 2, 0, 0)": [ + -0.8400841800216463, + 1.65307433741893 + ], + "(2, 3, 0, 1)": [ + -0.8511545817649465, + 2.346413708092608 + ], + "(0, 1, 0, 1)": [ + 0.8517603700021725, + -2.9151725492862757 + ], + "(1, 2, 0, 1)": [ + 0.9883812289628415, + -1.4497934103803427 + ], + "(1, 2, 0, 0)": [ + 0.9889080005804547, + 1.206404533577907 + ], + "(0, 3, 1, 0)": [ + -0.9934876746165732, + 0.4757827322190899 + ], + "(1, 2, 1, 1)": [ + 0.9975861918457636, + 1.2114648408322302 + ], + "(2, 3, 1, 1)": [ + -1.0, + 0.6168543256212394 + ], + "(2, 3, 1, 0)": [ + -1.0, + -3.116554152043236 + ], + "(1, 3, 0, 1)": [ + -1.0, + 2.3724933706716236 + ], + "(0, 3, 1, 1)": [ + 1.0, + -0.011217044598846643 + ], + "(0, 3, 0, 0)": [ + -1.0, + -3.140679378978738 + ], + "(0, 2, 1, 0)": [ + -1.0, + 1.8227617953895958 + ], + "(0, 2, 0, 1)": [ + 1.0, + -1.313330637282758 + ], + "(0, 1, 1, 1)": [ + -1.0, + -1.5068151410305584 + ], + "(0, 1, 1, 0)": [ + -1.0, + 1.0358643707187352 + ], + "(1, 3, 1, 0)": [ + 1.0, + -0.762847958065063 + ] + }, + "loss": [ + 0.08317035416076701, + 0.005208660951398381 + ], + "seed": 1238292228, + "history": [ + [ + 0.05994909056121189, + 0.007123582977917264 + ], + [ + 0.055346470981262996, + 0.0043661168908905035 + ], + [ + 0.08063101214872304, + 0.006434787910880924 + ], + [ + 0.08317035416076701, + 0.005208660951398381 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-36-0.0600_0.0070(0).json b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-36-0.0600_0.0070(0).json new file mode 100644 index 00000000..b4468ece --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-36-0.0600_0.0070(0).json @@ -0,0 +1,107 @@ +{ + "graph": { + "(0, 1, 0, 0)": [ + 1.0, + -1.7579352909677206 + ], + "(1, 3, 1, 1)": [ + -1.0, + -0.8851622818447689 + ], + "(0, 1, 0, 1)": [ + -0.8204474274076744, + -0.9528042837788802 + ], + "(1, 2, 1, 1)": [ + -0.8215419279290579, + -1.681649355187625 + ], + "(1, 2, 0, 0)": [ + -0.8223790937767419, + 1.4596513686555288 + ], + "(0, 1, 1, 0)": [ + -0.8227886417349718, + -0.9521878366237976 + ], + "(0, 3, 1, 1)": [ + 0.8228099783308604, + -3.141592653589793 + ], + "(2, 3, 0, 1)": [ + 0.8231394760837784, + -0.7345015620510129 + ], + "(0, 3, 0, 0)": [ + 0.8233794264912462, + -0.002699643502879212 + ], + "(2, 3, 1, 0)": [ + -0.8246789453078931, + 2.407515422857656 + ], + "(2, 3, 1, 1)": [ + 1.0, + -1.5421714471343593 + ], + "(2, 3, 0, 0)": [ + 1.0, + -1.539259372495931 + ], + "(1, 2, 1, 0)": [ + 1.0, + -2.4913095291860343 + ], + "(1, 2, 0, 1)": [ + -1.0, + -2.4901518316826694 + ], + "(0, 3, 1, 0)": [ + 1.0, + -0.8103787638601658 + ], + "(0, 3, 0, 1)": [ + 1.0, + 2.3301457523246993 + ], + "(0, 2, 1, 1)": [ + 1.0, + -3.0005997207238995 + ], + "(0, 2, 0, 0)": [ + 1.0, + 0.14201230040269422 + ], + "(0, 1, 1, 1)": [ + -1.0, + 1.380908730078969 + ], + "(1, 3, 0, 0)": [ + 1.0, + -0.8777755225013871 + ] + }, + "loss": [ + 0.060007140892983535, + 0.007003649898106534 + ], + "seed": 2785629424, + "history": [ + [ + 0.05938405607660979, + 0.005822348403784594 + ], + [ + 0.05999863835655095, + 0.006762085177871691 + ], + [ + 0.06000641077701696, + 0.007018577601979437 + ], + [ + 0.060007140892983535, + 0.007003649898106534 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-36-0.0600_0.0070.json b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-36-0.0600_0.0070.json new file mode 100644 index 00000000..5dfb5ec6 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/Lstate/other_solutions/rough-20-36-0.0600_0.0070.json @@ -0,0 +1,107 @@ +{ + "graph": { + "(0, 1, 0, 0)": [ + -1.0, + 1.8509235837655789 + ], + "(1, 3, 1, 0)": [ + 1.0, + -1.2666801736148048 + ], + "(2, 3, 1, 0)": [ + 0.8213853846139592, + 0.001656869287630463 + ], + "(0, 1, 0, 1)": [ + 0.8217363845553016, + 2.6118910991166753 + ], + "(0, 2, 0, 0)": [ + -0.8219836166228509, + -0.025112716045776105 + ], + "(1, 3, 0, 0)": [ + -0.8228368030730328, + -0.5000496845124683 + ], + "(0, 2, 1, 1)": [ + 0.8230264563621146, + -0.024569587545230982 + ], + "(1, 3, 1, 1)": [ + 0.8235674043467928, + -0.502889287494211 + ], + "(2, 3, 0, 1)": [ + -0.8236285771556646, + 3.141592653589793 + ], + "(0, 1, 1, 0)": [ + -0.8244328264274855, + -0.5257585613940987 + ], + "(2, 3, 1, 1)": [ + 1.0, + -0.7605189454826943 + ], + "(2, 3, 0, 0)": [ + -1.0, + -0.7602427937405447 + ], + "(1, 2, 1, 1)": [ + 1.0, + -1.4851470141232803 + ], + "(1, 2, 0, 0)": [ + -1.0, + -1.482092407745096 + ], + "(0, 3, 1, 1)": [ + -1.0, + -3.128581887827166 + ], + "(0, 3, 0, 0)": [ + -1.0, + 0.012076961913385824 + ], + "(0, 2, 1, 0)": [ + -1.0, + 2.356317216501495 + ], + "(0, 2, 0, 1)": [ + 1.0, + -0.7894915002229823 + ], + "(0, 1, 1, 1)": [ + 1.0, + 1.850818424108928 + ], + "(1, 3, 0, 1)": [ + 1.0, + -1.2622119796261202 + ] + }, + "loss": [ + 0.06000648605510006, + 0.0070097689523255235 + ], + "seed": 599540588, + "history": [ + [ + 0.05908580228838234, + 0.0060719996115451425 + ], + [ + 0.06000534677269442, + 0.007028252119609557 + ], + [ + 0.0600043556490103, + 0.006964823533815112 + ], + [ + 0.06000648605510006, + 0.0070097689523255235 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/MaxEntanglement/Lstate/plot_Lstate.json b/pytheus/graphs/MaxEntanglement/Lstate/plot_Lstate.json new file mode 100644 index 00000000..c6c6d484 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/Lstate/plot_Lstate.json @@ -0,0 +1,107 @@ +{ + "graph": { + "(0, 1, 0, 1)": [ + 1.0, + -1.5225283599496193 + ], + "(2, 3, 1, 1)": [ + 1.0, + 2.8575963217993983 + ], + "(0, 1, 1, 1)": [ + -0.5957874077501101, + 0.6840842337570046 + ], + "(1, 2, 0, 1)": [ + -0.5972365011030624, + -0.3277014153399833 + ], + "(0, 3, 0, 1)": [ + 0.5982363358919444, + 0.1333650288190396 + ], + "(2, 3, 0, 0)": [ + 0.6025110665526859, + -0.8817767943867301 + ], + "(1, 3, 0, 1)": [ + -0.619565871171784, + 0.7643764974595645 + ], + "(1, 3, 1, 0)": [ + -0.6251533146035545, + 0.7572928573603424 + ], + "(0, 1, 0, 0)": [ + -1.0, + -1.8693051967382368 + ], + "(1, 2, 1, 0)": [ + -1.0, + 0.26551461804072973 + ], + "(2, 3, 1, 0)": [ + -1.0, + 0.058628127431565 + ], + "(1, 3, 1, 1)": [ + 1.0, + -1.4537073290183629 + ], + "(1, 2, 0, 0)": [ + -1.0, + 0.6095144036377527 + ], + "(0, 3, 1, 1)": [ + -1.0, + 1.075649994664613 + ], + "(0, 3, 1, 0)": [ + 1.0, + 0.7261508833071484 + ], + "(0, 2, 1, 1)": [ + -1.0, + -3.141592653589793 + ], + "(0, 2, 1, 0)": [ + -1.0, + 2.799208886267149 + ], + "(0, 2, 0, 1)": [ + -1.0, + 2.7923538729361637 + ], + "(0, 2, 0, 0)": [ + -1.0, + -0.007060845134987609 + ], + "(1, 3, 0, 0)": [ + -1.0, + -1.4566982484891728 + ] + }, + "loss": [ + 0.077698243739444, + 0.003952628736149877 + ], + "seed": 880533129, + "history": [ + [ + 0.06002876408681279, + 0.006682473853684812 + ], + [ + 0.08078528785986039, + 0.009379950788757974 + ], + [ + 0.07307401625338794, + 0.008423131712950949 + ], + [ + 0.077698243739444, + 0.003952628736149877 + ] + ] +} \ No newline at end of file diff --git a/theseus/configs/ent_22222.json b/pytheus/graphs/MaxEntanglement/ame_5qubit_a/config_ame_5qubit.json similarity index 100% rename from theseus/configs/ent_22222.json rename to pytheus/graphs/MaxEntanglement/ame_5qubit_a/config_ame_5qubit.json diff --git a/pytheus/graphs/MaxEntanglement/ame_5qubit_a/graph_ame_5qubit_a.aux b/pytheus/graphs/MaxEntanglement/ame_5qubit_a/graph_ame_5qubit_a.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/ame_5qubit_a/graph_ame_5qubit_a.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/MaxEntanglement/ame_5qubit_a/graph_ame_5qubit_a.pdf b/pytheus/graphs/MaxEntanglement/ame_5qubit_a/graph_ame_5qubit_a.pdf new file mode 100644 index 00000000..8ad0a853 Binary files /dev/null and b/pytheus/graphs/MaxEntanglement/ame_5qubit_a/graph_ame_5qubit_a.pdf differ diff --git a/pytheus/graphs/MaxEntanglement/ame_5qubit_a/graph_ame_5qubit_a.tex b/pytheus/graphs/MaxEntanglement/ame_5qubit_a/graph_ame_5qubit_a.tex new file mode 100644 index 00000000..32e2f62e --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/ame_5qubit_a/graph_ame_5qubit_a.tex @@ -0,0 +1,54 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=0.9143388883759163] (0) to (1); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.982614832021703] (0) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.8678451648964713] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=0.8733870264515048] (0) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.5708142720958995] (1) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.8890711920967318] (1) to (5); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=0.9490454006171223] (2) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=0.6132913293964021] (2) to (4); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=0.5418814506839277] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.8439170304297858] (3) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.5454885247174287] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/L_0.json b/pytheus/graphs/MaxEntanglement/ame_5qubit_a/plot_ame_5qubit_a.json similarity index 79% rename from theseus/graphs/L_0.json rename to pytheus/graphs/MaxEntanglement/ame_5qubit_a/plot_ame_5qubit_a.json index abea0f47..3587a3d2 100644 --- a/theseus/graphs/L_0.json +++ b/pytheus/graphs/MaxEntanglement/ame_5qubit_a/plot_ame_5qubit_a.json @@ -1,17 +1,6 @@ { "graph": { - "(3, 4, 1, 1)": -0.5240680561712753, - "(4, 5, 0, 0)": -0.5275565540241117, - "(1, 4, 1, 0)": -0.5520497622396141, - "(2, 4, 1, 1)": 0.5931304613911611, - "(3, 5, 0, 0)": 0.8161747503055665, - "(0, 3, 0, 0)": 0.8393162896624381, - "(0, 5, 0, 0)": -0.8446759723182128, - "(1, 5, 1, 0)": 0.8598445487512836, - "(0, 1, 1, 0)": -0.8842816141947402, - "(2, 3, 1, 1)": 0.9178472112155959, - "(0, 2, 1, 0)": -0.950313106921694, - "(1, 2, 0, 0)": -0.9671267682439222 + "(3, 4, 1, 1)": 0.5418814506839277, "(4, 5, 0, 0)": 0.5454885247174287, "(1, 4, 1, 0)": 0.5708142720958995, "(2, 4, 1, 1)": 0.6132913293964021, "(3, 5, 0, 0)": 0.8439170304297858, "(0, 3, 0, 0)": 0.8678451648964713, "(0, 5, 0, 0)": -0.8733870264515048, "(1, 5, 1, 0)": 0.8890711920967318, "(0, 1, 1, 0)": -0.9143388883759163, "(2, 3, 1, 1)": -0.9490454006171223, "(0, 2, 1, 0)": 0.982614832021703, "(1, 2, 0, 0)": 1.0 }, "loss": [ 0.25000001788435006 @@ -132,4 +121,4 @@ 0.25000001788435006 ] ] -} \ No newline at end of file +} diff --git a/theseus/configs/ent_3333_k=2.json b/pytheus/graphs/MaxEntanglement/ame_5qubit_b/config_ame_5qubit.json similarity index 89% rename from theseus/configs/ent_3333_k=2.json rename to pytheus/graphs/MaxEntanglement/ame_5qubit_b/config_ame_5qubit.json index 19d3448e..2c22f2a5 100644 --- a/theseus/configs/ent_3333_k=2.json +++ b/pytheus/graphs/MaxEntanglement/ame_5qubit_b/config_ame_5qubit.json @@ -1,7 +1,7 @@ { - "description": "Maximizing entanglement in k=2 bi-partitions for four qubits.", + "description": "Maximizing entanglement in k=2 bi-partitions for five qubits.", "K": 2, - "dim": 3333, + "dim": 222221, "ftol": 1e-07, "loss_func": "ent", "min_edge": 8, diff --git a/pytheus/graphs/MaxEntanglement/ame_5qubit_b/graph_ame_5qubit_b.aux b/pytheus/graphs/MaxEntanglement/ame_5qubit_b/graph_ame_5qubit_b.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/ame_5qubit_b/graph_ame_5qubit_b.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/MaxEntanglement/ame_5qubit_b/graph_ame_5qubit_b.pdf b/pytheus/graphs/MaxEntanglement/ame_5qubit_b/graph_ame_5qubit_b.pdf new file mode 100644 index 00000000..070f83af Binary files /dev/null and b/pytheus/graphs/MaxEntanglement/ame_5qubit_b/graph_ame_5qubit_b.pdf differ diff --git a/pytheus/graphs/MaxEntanglement/ame_5qubit_b/graph_ame_5qubit_b.tex b/pytheus/graphs/MaxEntanglement/ame_5qubit_b/graph_ame_5qubit_b.tex new file mode 100644 index 00000000..908efdcb --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/ame_5qubit_b/graph_ame_5qubit_b.tex @@ -0,0 +1,54 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.8657859303417555] (0) to (1); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.9425458816348257] (0) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=0.9942854650081381] (0) to (5); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=0.7919949698873074] (1) to (2); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=0.8326837724465304] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.8283912117887688] (1) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.914605278257547] (2) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=0.8622977607026233] (2) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.9099988164648231] (2) to (5); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=0.9070067090452695] (3) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.9023905671404977] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/L_1.json b/pytheus/graphs/MaxEntanglement/ame_5qubit_b/plot_ame_5qubit_b.json similarity index 79% rename from theseus/graphs/L_1.json rename to pytheus/graphs/MaxEntanglement/ame_5qubit_b/plot_ame_5qubit_b.json index b46e8654..d2bb70a5 100644 --- a/theseus/graphs/L_1.json +++ b/pytheus/graphs/MaxEntanglement/ame_5qubit_b/plot_ame_5qubit_b.json @@ -1,17 +1,6 @@ { "graph": { - "(1, 2, 1, 0)": 0.7904897806709007, - "(1, 5, 0, 0)": 0.8268168513870506, - "(1, 3, 1, 0)": -0.8311012540182356, - "(2, 4, 1, 1)": -0.8606589607858436, - "(0, 1, 1, 0)": 0.8641405011463498, - "(4, 5, 1, 0)": 0.9006755707045477, - "(3, 4, 1, 0)": -0.9052829396154487, - "(2, 5, 1, 0)": -0.9082693605243634, - "(2, 3, 0, 0)": -0.9128670677203035, - "(0, 4, 0, 0)": 0.940754569882925, - "(0, 5, 1, 0)": -0.9923958219966765, - "(0, 3, 0, 1)": 0.9980994964947556 + "(1, 2, 1, 0)": -0.7919949698873074, "(1, 5, 0, 0)": 0.8283912117887688, "(1, 3, 1, 0)": -0.8326837724465304, "(2, 4, 1, 1)": 0.8622977607026233, "(0, 1, 1, 0)": 0.8657859303417555, "(4, 5, 1, 0)": 0.9023905671404977, "(3, 4, 1, 0)": -0.9070067090452695, "(2, 5, 1, 0)": 0.9099988164648231, "(2, 3, 0, 0)": 0.914605278257547, "(0, 4, 0, 0)": 0.9425458816348257, "(0, 5, 1, 0)": -0.9942854650081381, "(0, 3, 0, 1)": 1.0 }, "loss": [ 0.25000004619259497 @@ -132,4 +121,4 @@ 0.25000004619259497 ] ] -} \ No newline at end of file +} diff --git a/theseus/configs/bssb4real.json b/pytheus/graphs/MaxEntanglement/bssb4/config_bssb4real.json similarity index 100% rename from theseus/configs/bssb4real.json rename to pytheus/graphs/MaxEntanglement/bssb4/config_bssb4real.json diff --git a/pytheus/graphs/MaxEntanglement/bssb4/graph_bssb4.aux b/pytheus/graphs/MaxEntanglement/bssb4/graph_bssb4.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/bssb4/graph_bssb4.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/MaxEntanglement/bssb4/graph_bssb4.pdf b/pytheus/graphs/MaxEntanglement/bssb4/graph_bssb4.pdf new file mode 100644 index 00000000..0a253dad Binary files /dev/null and b/pytheus/graphs/MaxEntanglement/bssb4/graph_bssb4.pdf differ diff --git a/pytheus/graphs/MaxEntanglement/bssb4/graph_bssb4.tex b/pytheus/graphs/MaxEntanglement/bssb4/graph_bssb4.tex new file mode 100644 index 00000000..2a3f2728 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/bssb4/graph_bssb4.tex @@ -0,0 +1,50 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [circle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/bssb4/bss4real_0anc.json b/pytheus/graphs/MaxEntanglement/bssb4/plot_bssb4real_0anc.json similarity index 79% rename from theseus/graphs/HighlyEntangledStates/bssb4/bss4real_0anc.json rename to pytheus/graphs/MaxEntanglement/bssb4/plot_bssb4real_0anc.json index f8ac6d11..bcce7ff1 100644 --- a/theseus/graphs/HighlyEntangledStates/bssb4/bss4real_0anc.json +++ b/pytheus/graphs/MaxEntanglement/bssb4/plot_bssb4real_0anc.json @@ -1,15 +1,6 @@ { "graph": { - "(0, 1, 1, 1)": -1.0, - "(0, 3, 0, 1)": -1.0, - "(1, 2, 0, 1)": -1.0, - "(1, 3, 0, 0)": -1.0, - "(2, 3, 1, 0)": -1.0, - "(0, 2, 0, 0)": -1.0, - "(1, 2, 1, 0)": -1.0, - "(0, 1, 0, 1)": -1.0, - "(1, 3, 1, 1)": 1.0, - "(0, 3, 1, 1)": -1.0 + "(0, 1, 1, 1)": 1.0, "(0, 3, 0, 1)": 1.0, "(1, 2, 0, 1)": 1.0, "(1, 3, 0, 0)": 1.0, "(2, 3, 1, 0)": 1.0, "(0, 2, 0, 0)": 1.0, "(1, 2, 1, 0)": 1.0, "(0, 1, 0, 1)": 1.0, "(1, 3, 1, 1)": -1.0, "(0, 3, 1, 1)": 1.0 }, "loss": [ 0.16736755360768718, @@ -65,4 +56,4 @@ 0.028595479208968322 ] ] -} \ No newline at end of file +} diff --git a/theseus/configs/bssb5.json b/pytheus/graphs/MaxEntanglement/bssb5/config_bssb5.json similarity index 100% rename from theseus/configs/bssb5.json rename to pytheus/graphs/MaxEntanglement/bssb5/config_bssb5.json diff --git a/pytheus/graphs/MaxEntanglement/bssb5/graph_bssb5.aux b/pytheus/graphs/MaxEntanglement/bssb5/graph_bssb5.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/bssb5/graph_bssb5.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/MaxEntanglement/bssb5/graph_bssb5.pdf b/pytheus/graphs/MaxEntanglement/bssb5/graph_bssb5.pdf new file mode 100644 index 00000000..c2c0e5b6 Binary files /dev/null and b/pytheus/graphs/MaxEntanglement/bssb5/graph_bssb5.pdf differ diff --git a/pytheus/graphs/MaxEntanglement/bssb5/graph_bssb5.tex b/pytheus/graphs/MaxEntanglement/bssb5/graph_bssb5.tex new file mode 100644 index 00000000..88016388 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/bssb5/graph_bssb5.tex @@ -0,0 +1,56 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/bssb5_1anc.json b/pytheus/graphs/MaxEntanglement/bssb5/plot_bssb5_1anc.json similarity index 96% rename from theseus/graphs/HighlyEntangledStates/bssb5_1anc.json rename to pytheus/graphs/MaxEntanglement/bssb5/plot_bssb5_1anc.json index eb314c47..ef7c84e2 100644 --- a/theseus/graphs/HighlyEntangledStates/bssb5_1anc.json +++ b/pytheus/graphs/MaxEntanglement/bssb5/plot_bssb5_1anc.json @@ -2,18 +2,18 @@ "graph": { "(0, 4, 0, 1)": 1.0, "(0, 5, 0, 0)": 1.0, - "(1, 2, 0, 0)": -1.0, + "(1, 2, 0, 0)": 1.0, "(1, 4, 1, 0)": -1.0, - "(2, 4, 0, 0)": -1.0, + "(2, 4, 0, 0)": 1.0, "(4, 5, 1, 0)": 1.0, "(3, 5, 1, 0)": 1.0, "(0, 4, 1, 1)": -1.0, "(1, 3, 1, 0)": 1.0, "(3, 4, 0, 0)": 1.0, "(0, 1, 0, 1)": 1.0, - "(0, 2, 1, 1)": -1.0, + "(0, 2, 1, 1)": 1.0, "(0, 5, 1, 0)": 1.0, - "(2, 3, 0, 0)": -1.0 + "(2, 3, 0, 0)": 1.0 }, "loss": [ 0.11111111111111116, @@ -165,4 +165,4 @@ 0.0 ] ] -} \ No newline at end of file +} diff --git a/theseus/configs/ent_2222_c.json b/pytheus/graphs/MaxEntanglement/k2maximal4qubitsCOMPLEX/config_k2maximal4qubitcomplex.json similarity index 100% rename from theseus/configs/ent_2222_c.json rename to pytheus/graphs/MaxEntanglement/k2maximal4qubitsCOMPLEX/config_k2maximal4qubitcomplex.json diff --git a/pytheus/graphs/MaxEntanglement/k2maximal4qubitsCOMPLEX/graph_k2maximal4qubitsCOMPLEX.aux b/pytheus/graphs/MaxEntanglement/k2maximal4qubitsCOMPLEX/graph_k2maximal4qubitsCOMPLEX.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/k2maximal4qubitsCOMPLEX/graph_k2maximal4qubitsCOMPLEX.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/MaxEntanglement/k2maximal4qubitsCOMPLEX/graph_k2maximal4qubitsCOMPLEX.pdf b/pytheus/graphs/MaxEntanglement/k2maximal4qubitsCOMPLEX/graph_k2maximal4qubitsCOMPLEX.pdf new file mode 100644 index 00000000..a042d9d5 Binary files /dev/null and b/pytheus/graphs/MaxEntanglement/k2maximal4qubitsCOMPLEX/graph_k2maximal4qubitsCOMPLEX.pdf differ diff --git a/pytheus/graphs/MaxEntanglement/k2maximal4qubitsCOMPLEX/graph_k2maximal4qubitsCOMPLEX.tex b/pytheus/graphs/MaxEntanglement/k2maximal4qubitsCOMPLEX/graph_k2maximal4qubitsCOMPLEX.tex new file mode 100644 index 00000000..8d55f181 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/k2maximal4qubitsCOMPLEX/graph_k2maximal4qubitsCOMPLEX.tex @@ -0,0 +1,49 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [circle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=0.9058604576248812] (0) to (1); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=0.7976708244582011] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=0.7854056853481058] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.9333427833794551] (0) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=0.8666000633447879] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=0.8546313516224558] (1) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=0.8928933991786474] (2) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=0.8670351495779686] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/MaxEntanglement/k2maximal4qubitsCOMPLEX/other_solutions/plot_k2maximal4qubitsCOMPLEXabs.json b/pytheus/graphs/MaxEntanglement/k2maximal4qubitsCOMPLEX/other_solutions/plot_k2maximal4qubitsCOMPLEXabs.json new file mode 100644 index 00000000..78a4a8c1 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/k2maximal4qubitsCOMPLEX/other_solutions/plot_k2maximal4qubitsCOMPLEXabs.json @@ -0,0 +1,54 @@ +{ + "graph": {"(0, 2, 1, 0)": 0.7854056853481058, "(0, 2, 0, 1)": 0.7976708244582011, "(1, 2, 1, 0)": 0.8546313516224558, "(1, 2, 0, 1)": 0.8666000633447879, "(2, 3, 1, 0)": 0.8670351495779686, "(2, 3, 0, 1)": 0.8928933991786474, "(0, 1, 0, 1)": 0.9058604576248812, "(0, 3, 1, 0)": 0.9333427833794551, "(1, 3, 0, 1)": 1.0} +, + "loss": [ + 0.33333336802674474 + ], + "history": [ + [ + 0.3333333337895597 + ], + [ + 0.3333333926968941 + ], + [ + 0.33333333344818766 + ], + [ + 0.3333333343084781 + ], + [ + 0.3333333333569163 + ], + [ + 0.33333334693823086 + ], + [ + 0.33333333391084274 + ], + [ + 0.33333333389860315 + ], + [ + 0.333333362495359 + ], + [ + 0.333333342054649 + ], + [ + 0.33333333458122294 + ], + [ + 0.3333333338014991 + ], + [ + 0.33333333419033173 + ], + [ + 0.33333333384214864 + ], + [ + 0.33333336802674474 + ] + ] +} diff --git a/theseus/graphs/HighlyEntangledStates/ent_2222_c.json b/pytheus/graphs/MaxEntanglement/k2maximal4qubitsCOMPLEX/plot_k2maximal4qubitsCOMPLEXabs.json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/ent_2222_c.json rename to pytheus/graphs/MaxEntanglement/k2maximal4qubitsCOMPLEX/plot_k2maximal4qubitsCOMPLEXabs.json diff --git a/theseus/configs/ent_2222.json b/pytheus/graphs/MaxEntanglement/k2maximal4qubitsREAL/config_k2maximal4qubitreal.json similarity index 100% rename from theseus/configs/ent_2222.json rename to pytheus/graphs/MaxEntanglement/k2maximal4qubitsREAL/config_k2maximal4qubitreal.json diff --git a/pytheus/graphs/MaxEntanglement/k2maximal4qubitsREAL/graph_k2maximal4qubitsREAL.aux b/pytheus/graphs/MaxEntanglement/k2maximal4qubitsREAL/graph_k2maximal4qubitsREAL.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/k2maximal4qubitsREAL/graph_k2maximal4qubitsREAL.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/MaxEntanglement/k2maximal4qubitsREAL/graph_k2maximal4qubitsREAL.pdf b/pytheus/graphs/MaxEntanglement/k2maximal4qubitsREAL/graph_k2maximal4qubitsREAL.pdf new file mode 100644 index 00000000..69e482be Binary files /dev/null and b/pytheus/graphs/MaxEntanglement/k2maximal4qubitsREAL/graph_k2maximal4qubitsREAL.pdf differ diff --git a/pytheus/graphs/MaxEntanglement/k2maximal4qubitsREAL/graph_k2maximal4qubitsREAL.tex b/pytheus/graphs/MaxEntanglement/k2maximal4qubitsREAL/graph_k2maximal4qubitsREAL.tex new file mode 100644 index 00000000..981a829d --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/k2maximal4qubitsREAL/graph_k2maximal4qubitsREAL.tex @@ -0,0 +1,47 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [circle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/ent_2222.json b/pytheus/graphs/MaxEntanglement/k2maximal4qubitsREAL/plot_k2maximal4qubitsREAL.json similarity index 75% rename from theseus/graphs/HighlyEntangledStates/ent_2222.json rename to pytheus/graphs/MaxEntanglement/k2maximal4qubitsREAL/plot_k2maximal4qubitsREAL.json index c5e59e94..f1db2119 100644 --- a/theseus/graphs/HighlyEntangledStates/ent_2222.json +++ b/pytheus/graphs/MaxEntanglement/k2maximal4qubitsREAL/plot_k2maximal4qubitsREAL.json @@ -1,12 +1,12 @@ { "graph": { - "(2, 3, 0, 1)": -0.7884319573318165, - "(0, 3, 1, 0)": 0.8633440322229454, - "(0, 3, 0, 1)": -0.8634125436645403, - "(1, 3, 1, 0)": -0.8790304039112744, - "(0, 2, 0, 0)": 0.8874597926113085, - "(1, 2, 0, 1)": 0.9036024609983467, - "(0, 1, 1, 1)": -0.9894704574487918 + "(2, 3, 0, 1)": 1.0, + "(0, 3, 1, 0)": -1.0, + "(0, 3, 0, 1)": 1.0, + "(1, 3, 1, 0)": 1.0, + "(0, 2, 0, 0)": 1.0, + "(1, 2, 0, 1)": 1.0, + "(0, 1, 1, 1)": -1.0 }, "loss": [ 0.33333333456935205 @@ -64,4 +64,4 @@ 0.33333333456935205 ] ] -} \ No newline at end of file +} diff --git a/theseus/configs/ent_222222_k2.json b/pytheus/graphs/MaxEntanglement/k2uniform6qubits/config_k2uniform6qubits.json similarity index 100% rename from theseus/configs/ent_222222_k2.json rename to pytheus/graphs/MaxEntanglement/k2uniform6qubits/config_k2uniform6qubits.json diff --git a/pytheus/graphs/MaxEntanglement/k2uniform6qubits/graph_k2uniform6qubits.aux b/pytheus/graphs/MaxEntanglement/k2uniform6qubits/graph_k2uniform6qubits.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/k2uniform6qubits/graph_k2uniform6qubits.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/MaxEntanglement/k2uniform6qubits/graph_k2uniform6qubits.pdf b/pytheus/graphs/MaxEntanglement/k2uniform6qubits/graph_k2uniform6qubits.pdf new file mode 100644 index 00000000..5105e593 Binary files /dev/null and b/pytheus/graphs/MaxEntanglement/k2uniform6qubits/graph_k2uniform6qubits.pdf differ diff --git a/pytheus/graphs/MaxEntanglement/k2uniform6qubits/graph_k2uniform6qubits.tex b/pytheus/graphs/MaxEntanglement/k2uniform6qubits/graph_k2uniform6qubits.tex new file mode 100644 index 00000000..7341d5e6 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/k2uniform6qubits/graph_k2uniform6qubits.tex @@ -0,0 +1,54 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [circle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=1.0] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/ent_222222_k=2.json b/pytheus/graphs/MaxEntanglement/k2uniform6qubits/plot_k2uniform6qubits.json similarity index 82% rename from theseus/graphs/HighlyEntangledStates/ent_222222_k=2.json rename to pytheus/graphs/MaxEntanglement/k2uniform6qubits/plot_k2uniform6qubits.json index 90212bf5..2649771d 100644 --- a/theseus/graphs/HighlyEntangledStates/ent_222222_k=2.json +++ b/pytheus/graphs/MaxEntanglement/k2uniform6qubits/plot_k2uniform6qubits.json @@ -1,18 +1,17 @@ { "graph": { - "(1, 4, 0, 1)": -0.8178490890046638, - "(4, 5, 0, 1)": 0.8253425425573471, - "(1, 3, 1, 1)": 0.8368357881760891, - "(3, 5, 0, 0)": 0.8443558176577944, - "(2, 4, 0, 0)": -0.9186245363556886, - "(2, 3, 1, 1)": -0.939949519843295, - "(0, 4, 0, 1)": 0.9413414942084609, - "(1, 2, 1, 1)": -0.9504902160285283, - "(2, 5, 0, 1)": -0.9586771242261393, - "(0, 3, 1, 0)": 0.9633073311169448, - "(0, 1, 0, 0)": 0.9737228620092734, - "(0, 5, 1, 0)": 0.9829017661510537 - }, + "(1, 4, 0, 1)": 1.0, + "(4, 5, 0, 1)": 1.0, + "(1, 3, 1, 1)": -1.0, + "(3, 5, 0, 0)": 1.0, + "(2, 4, 0, 0)": 1.0, + "(2, 3, 1, 1)": 1.0, + "(0, 4, 0, 1)": 1.0, + "(1, 2, 1, 1)": -1.0, + "(2, 5, 0, 1)": 1.0, + "(0, 3, 1, 0)": 1.0, + "(0, 1, 0, 0)": -1.0, + "(0, 5, 1, 0)": 1.0}, "loss": [ 0.25000002351268685 ], @@ -162,4 +161,4 @@ 0.25000002351268685 ] ] -} \ No newline at end of file +} diff --git a/theseus/configs/ent_22222221.json b/pytheus/graphs/MaxEntanglement/k2uniform7qubits/config_k2uniform7qubits.json similarity index 95% rename from theseus/configs/ent_22222221.json rename to pytheus/graphs/MaxEntanglement/k2uniform7qubits/config_k2uniform7qubits.json index 2c1da597..1f00eb85 100644 --- a/theseus/configs/ent_22222221.json +++ b/pytheus/graphs/MaxEntanglement/k2uniform7qubits/config_k2uniform7qubits.json @@ -1,6 +1,6 @@ { "description": "Maximizing entanglement in all bi-partitions for seven qubits.", - "K": 'all', + "K": "all", "dim": 22222221, "ftol": 1e-05, "loss_func": "ent", diff --git a/pytheus/graphs/MaxEntanglement/k2uniform7qubits/graph_k2uniform7qubits.aux b/pytheus/graphs/MaxEntanglement/k2uniform7qubits/graph_k2uniform7qubits.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/k2uniform7qubits/graph_k2uniform7qubits.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/MaxEntanglement/k2uniform7qubits/graph_k2uniform7qubits.pdf b/pytheus/graphs/MaxEntanglement/k2uniform7qubits/graph_k2uniform7qubits.pdf new file mode 100644 index 00000000..94a52653 Binary files /dev/null and b/pytheus/graphs/MaxEntanglement/k2uniform7qubits/graph_k2uniform7qubits.pdf differ diff --git a/pytheus/graphs/MaxEntanglement/k2uniform7qubits/graph_k2uniform7qubits.tex b/pytheus/graphs/MaxEntanglement/k2uniform7qubits/graph_k2uniform7qubits.tex new file mode 100644 index 00000000..fcd0e3a1 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/k2uniform7qubits/graph_k2uniform7qubits.tex @@ -0,0 +1,58 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [circle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [circle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [rectangle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=0.8189972007842763] (0) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=0.8276181884103637] (0) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=0.7509809310181267] (0) to (4); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=0.7241569763539614] (0) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=0.7855865699080962] (1) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.8751373709691785] (1) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.8884605194923316] (1) to (7); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=0.9366759975225809] (2) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.8108859104673697] (2) to (5); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=0.9127888749197898] (3) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.9268290207877661] (3) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.8409147392653566] (4) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.7170503071306509] (5) to (6); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/seven_qubits_nearly_2k_uniform.json b/pytheus/graphs/MaxEntanglement/k2uniform7qubits/plot_k2uniform7qubits.json similarity index 89% rename from theseus/graphs/HighlyEntangledStates/seven_qubits_nearly_2k_uniform.json rename to pytheus/graphs/MaxEntanglement/k2uniform7qubits/plot_k2uniform7qubits.json index 7e22a30c..56d9d305 100644 --- a/theseus/graphs/HighlyEntangledStates/seven_qubits_nearly_2k_uniform.json +++ b/pytheus/graphs/MaxEntanglement/k2uniform7qubits/plot_k2uniform7qubits.json @@ -1,19 +1,19 @@ { "graph": { -"(0,2,1,1)": 0.6807952897063437, -"(0,3,0,1)": 0.6879615263709339, -"(0,4,1,1)": 0.6242564443527228, -"(0,6,0,1)": -0.6019589053999976, -"(1,3,0,0)": 0.8312547210837966, -"(1,5,1,1)": 0.653022545056131, -"(1,6,1,0)": 0.7274620712149915, -"(1,7,0,0)": -0.7385370013245631, -"(2,4,1,1)": -0.77861634506652, -"(2,5,0,0)": 0.6740527413363339, -"(3,6,1,1)": -0.7587600616298423, -"(3,7,0,0)": 0.7704309991673028, -"(4,7,0,0)": 0.6990143470432776, -"(5,6,1,0)": 0.5960514530569399 + "(0, 2, 1, 1)": -0.8189972007842763, + "(0, 3, 0, 1)": 0.8276181884103637, + "(0, 4, 1, 1)": 0.7509809310181267, + "(0, 6, 0, 1)": 0.7241569763539614, + "(1, 3, 0, 0)": -1.0, + "(1, 5, 1, 1)": 0.7855865699080962, + "(1, 6, 1, 0)": 0.8751373709691785, + "(1, 7, 0, 0)": 0.8884605194923316, + "(2, 4, 1, 1)": 0.9366759975225809, + "(2, 5, 0, 0)": 0.8108859104673697, + "(3, 6, 1, 1)": 0.9127888749197898, + "(3, 7, 0, 0)": 0.9268290207877661, + "(4, 7, 0, 0)": 0.8409147392653566, + "(5, 6, 1, 0)": 0.7170503071306509 }, "loss": [ 0.08977131096929195 @@ -275,4 +275,4 @@ 0.08092812019107269 ] ] -} \ No newline at end of file +} diff --git a/theseus/configs/ent_22222222.json b/pytheus/graphs/MaxEntanglement/k3maximal8qubits/config_k3maximal8qubits.json similarity index 100% rename from theseus/configs/ent_22222222.json rename to pytheus/graphs/MaxEntanglement/k3maximal8qubits/config_k3maximal8qubits.json diff --git a/pytheus/graphs/MaxEntanglement/k3maximal8qubits/graph_k3maximal8qubits.aux b/pytheus/graphs/MaxEntanglement/k3maximal8qubits/graph_k3maximal8qubits.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/k3maximal8qubits/graph_k3maximal8qubits.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/MaxEntanglement/k3maximal8qubits/graph_k3maximal8qubits.pdf b/pytheus/graphs/MaxEntanglement/k3maximal8qubits/graph_k3maximal8qubits.pdf new file mode 100644 index 00000000..44b2c940 Binary files /dev/null and b/pytheus/graphs/MaxEntanglement/k3maximal8qubits/graph_k3maximal8qubits.pdf differ diff --git a/pytheus/graphs/MaxEntanglement/k3maximal8qubits/graph_k3maximal8qubits.tex b/pytheus/graphs/MaxEntanglement/k3maximal8qubits/graph_k3maximal8qubits.tex new file mode 100644 index 00000000..c574d9c7 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/k3maximal8qubits/graph_k3maximal8qubits.tex @@ -0,0 +1,62 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [circle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [circle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [circle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=0.9733864172732862] (0) to (1); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.8461065045707054] (0) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=0.9828759190509988] (0) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=0.0, opacity=0.9011014148627849] (0) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.7801197924439764] (1) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=0.9179032837709834] (1) to (5); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=0.9326481781851416] (1) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.7614717587307205] (2) to (4); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=0.8795105298884601] (2) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.8511497605636493] (2) to (7); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=0.8450081866821441] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.935295701107168] (3) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.9313116827682751] (3) to (6); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=0.0, opacity=0.8985781916755317] (4) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.9604473200050623] (4) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.9409531213712156] (5) to (6); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=0.0, opacity=0.9587972769763656] (5) to (7); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (6) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/eight_qubits_nearly_3k.json b/pytheus/graphs/MaxEntanglement/k3maximal8qubits/plot_k3maximal8qubits.json similarity index 87% rename from theseus/graphs/HighlyEntangledStates/eight_qubits_nearly_3k.json rename to pytheus/graphs/MaxEntanglement/k3maximal8qubits/plot_k3maximal8qubits.json index b419b429..c10331ae 100644 --- a/theseus/graphs/HighlyEntangledStates/eight_qubits_nearly_3k.json +++ b/pytheus/graphs/MaxEntanglement/k3maximal8qubits/plot_k3maximal8qubits.json @@ -1,29 +1,28 @@ { - "graph": { -"(0,1,1,0)": 0.9670330820649701, -"(0,2,1,0)": 0.8405839308527231, -"(0,3,0,1)": -0.9764606454545114, -"(0,4,0,1)": 0.895219886988841, -"(1,2,0,0)": 0.7750279168475174, -"(1,5,1,1)": 0.9119120893726196, -"(1,7,1,1)": 0.926560743223768, -"(2,4,1,0)": -0.7565015996561419, -"(2,6,1,1)": 0.8737699266537468, -"(2,7,1,0)": -0.8455942692958678, -"(3,4,1,1)": 0.8394927817324819, -"(3,5,0,0)": 0.9291909856492754, -"(3,6,0,0)": -0.9252329711702412, -"(4,6,0,1)": -0.8927131329883665, -"(4,7,0,0)": -0.9541784388437508, -"(5,6,0,0)": 0.9348114796867865, -"(5,7,1,1)": 0.9525391657172054, -"(6,7,1,0)": -0.9934729567871786 + "graph": {"(0, 1, 1, 0)": -0.9733864172732862, + "(0, 2, 1, 0)": 0.8461065045707054, + "(0, 3, 0, 1)": 0.9828759190509988, + "(0, 4, 0, 1)": 0.9011014148627849, + "(1, 2, 0, 0)": 0.7801197924439764, + "(1, 5, 1, 1)": 0.9179032837709834, + "(1, 7, 1, 1)": 0.9326481781851416, + "(2, 4, 1, 0)": 0.7614717587307205, + "(2, 6, 1, 1)": 0.8795105298884601, + "(2, 7, 1, 0)": 0.8511497605636493, + "(3, 4, 1, 1)": 0.8450081866821441, + "(3, 5, 0, 0)": 0.935295701107168, + "(3, 6, 0, 0)": 0.9313116827682751, + "(4, 6, 0, 1)": -0.8985781916755317, + "(4, 7, 0, 0)": 0.9604473200050623, + "(5, 6, 0, 0)": 0.9409531213712156, + "(5, 7, 1, 1)": -0.9587972769763656, + "(6, 7, 1, 0)": -1.0 }, "loss": [ 0.09907826469163183 ], "history": [ - + [ 0.09907826469163183 ], @@ -310,4 +309,4 @@ 0.10671184187226078 ] ] -} \ No newline at end of file +} diff --git a/theseus/configs/randmat_1.json b/pytheus/graphs/MaxEntanglement/randmax1/config_randmax_1.json similarity index 100% rename from theseus/configs/randmat_1.json rename to pytheus/graphs/MaxEntanglement/randmax1/config_randmax_1.json diff --git a/pytheus/graphs/MaxEntanglement/randmax1/graph_randmax1.aux b/pytheus/graphs/MaxEntanglement/randmax1/graph_randmax1.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/randmax1/graph_randmax1.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/MaxEntanglement/randmax1/graph_randmax1.pdf b/pytheus/graphs/MaxEntanglement/randmax1/graph_randmax1.pdf new file mode 100644 index 00000000..bb2203cb Binary files /dev/null and b/pytheus/graphs/MaxEntanglement/randmax1/graph_randmax1.pdf differ diff --git a/pytheus/graphs/MaxEntanglement/randmax1/graph_randmax1.tex b/pytheus/graphs/MaxEntanglement/randmax1/graph_randmax1.tex new file mode 100644 index 00000000..48d67c07 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/randmax1/graph_randmax1.tex @@ -0,0 +1,50 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=0.9996289429352502] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=0.9525005907146138] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=0.9997988098760557] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/MaxEntanglement/randmax1/plot_randmax1_clean-10-8-0.1089_0.0092.json b/pytheus/graphs/MaxEntanglement/randmax1/plot_randmax1_clean-10-8-0.1089_0.0092.json new file mode 100644 index 00000000..0203f43f --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/randmax1/plot_randmax1_clean-10-8-0.1089_0.0092.json @@ -0,0 +1,78 @@ +{ + "graph": { + "(0, 1, 0, 0)": [ + -1.0, + 0.3024615777501983 + ], + "(0, 1, 1, 1)": [ + -0.9996289429352502, + -1.8647597117034123 + ], + "(0, 2, 0, 0)": [ + 1.0, + 1.1859483083737512 + ], + "(0, 2, 1, 1)": [ + -0.9525005907146138, + 1.3361423132703711 + ], + "(0, 3, 1, 0)": [ + 1.0, + 1.3806394309209093 + ], + "(1, 2, 0, 0)": [ + -1.0, + -0.6783525390632765 + ], + "(1, 2, 1, 1)": [ + 0.9997988098760557, + 0.13715452153093194 + ], + "(1, 3, 0, 0)": [ + 1.0, + 2.6577414087611095 + ], + "(1, 3, 1, 0)": [ + -1.0, + -0.48374396783000234 + ], + "(2, 3, 1, 0)": [ + -1.0, + -2.7418402314637285 + ] + }, + "loss": [ + 0.10893138429069815, + 0.009233581432319227 + ], + "history": [ + [ + 0.05472329536285858, + 0.0027637618862969004 + ], + [ + 0.05472348617658995, + 0.0027594029004986975 + ], + [ + 0.054726836960401704, + 0.002733406049853726 + ], + [ + 0.07381159682875305, + 0.012540754550195099 + ], + [ + 0.0811041880493859, + 0.017190428910554112 + ], + [ + 0.09603395595827813, + 0.018190943502972234 + ], + [ + 0.09603007988503665, + 0.018578639410304132 + ] + ] +} \ No newline at end of file diff --git a/theseus/configs/randmat_2.json b/pytheus/graphs/MaxEntanglement/randmax2/config_randmax_2.json similarity index 100% rename from theseus/configs/randmat_2.json rename to pytheus/graphs/MaxEntanglement/randmax2/config_randmax_2.json diff --git a/pytheus/graphs/MaxEntanglement/randmax2/graph_randmax2.aux b/pytheus/graphs/MaxEntanglement/randmax2/graph_randmax2.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/randmax2/graph_randmax2.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/MaxEntanglement/randmax2/graph_randmax2.pdf b/pytheus/graphs/MaxEntanglement/randmax2/graph_randmax2.pdf new file mode 100644 index 00000000..d8a0eedc Binary files /dev/null and b/pytheus/graphs/MaxEntanglement/randmax2/graph_randmax2.pdf differ diff --git a/pytheus/graphs/MaxEntanglement/randmax2/graph_randmax2.tex b/pytheus/graphs/MaxEntanglement/randmax2/graph_randmax2.tex new file mode 100644 index 00000000..c48c62af --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/randmax2/graph_randmax2.tex @@ -0,0 +1,51 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=-15.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col1}, bend right=15.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/MaxEntanglement/randmax2/plot_randmax2_clean-11-10-0.1523_0.0573.json b/pytheus/graphs/MaxEntanglement/randmax2/plot_randmax2_clean-11-10-0.1523_0.0573.json new file mode 100644 index 00000000..f50c5c3e --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/randmax2/plot_randmax2_clean-11-10-0.1523_0.0573.json @@ -0,0 +1,78 @@ +{ + "graph": { + "(0, 1, 0, 0)": [ + 1.0, + 1.8613766130704554 + ], + "(0, 1, 1, 0)": [ + -1.0, + -1.7381897625226277 + ], + "(0, 1, 1, 1)": [ + 1.0, + -0.49553291612229455 + ], + "(0, 2, 0, 0)": [ + 1.0, + 0.5685973803251602 + ], + "(0, 2, 1, 1)": [ + 1.0, + -2.5331919752285064 + ], + "(0, 3, 1, 0)": [ + -1.0, + -1.51177812431906 + ], + "(1, 2, 1, 0)": [ + -1.0, + -1.2242770955645754 + ], + "(1, 2, 1, 1)": [ + 1.0, + -1.6913589861938936 + ], + "(1, 3, 1, 0)": [ + -1.0, + -1.4073131146655171 + ], + "(2, 3, 0, 0)": [ + 1.0, + 0.9013998776721707 + ], + "(2, 3, 1, 0)": [ + 1.0, + 0.4433997628091881 + ] + }, + "loss": [ + 0.15231840908272487, + 0.05734597018188703 + ], + "history": [ + [ + 0.04895281218580594, + 0.0017300877949825155 + ], + [ + 0.04999693720816811, + 0.0007041501158088215 + ], + [ + 0.04950579773143571, + 0.0008192618363630499 + ], + [ + 0.05542056519453997, + 0.004523134006179763 + ], + [ + 0.08034828399488603, + 0.018401537705284188 + ], + [ + 0.08296760292288274, + 0.0179451412358137 + ] + ] +} \ No newline at end of file diff --git a/theseus/configs/srv_554.json b/pytheus/graphs/MaxEntanglement/srv_554/config_srv_554.json similarity index 100% rename from theseus/configs/srv_554.json rename to pytheus/graphs/MaxEntanglement/srv_554/config_srv_554.json diff --git a/pytheus/graphs/MaxEntanglement/srv_554/graph_srv_554.aux b/pytheus/graphs/MaxEntanglement/srv_554/graph_srv_554.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/srv_554/graph_srv_554.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/MaxEntanglement/srv_554/graph_srv_554.pdf b/pytheus/graphs/MaxEntanglement/srv_554/graph_srv_554.pdf new file mode 100644 index 00000000..533d4414 Binary files /dev/null and b/pytheus/graphs/MaxEntanglement/srv_554/graph_srv_554.pdf differ diff --git a/pytheus/graphs/MaxEntanglement/srv_554/graph_srv_554.tex b/pytheus/graphs/MaxEntanglement/srv_554/graph_srv_554.tex new file mode 100644 index 00000000..1511844c --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/srv_554/graph_srv_554.tex @@ -0,0 +1,63 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col1}{col0}, bend right=-16.875, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col2}{col2}, bend right=-5.625, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col3}{col3}, bend right=5.625, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col4}{col4}, bend right=16.875, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=-11.25, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col3}{col0}, bend right=11.25, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/srv_554/clean-21-38-0.0476_0.0000.json b/pytheus/graphs/MaxEntanglement/srv_554/plot_srv_554_clean-21-38-0.0476_0.0000.json similarity index 89% rename from theseus/graphs/HighlyEntangledStates/srv_554/clean-21-38-0.0476_0.0000.json rename to pytheus/graphs/MaxEntanglement/srv_554/plot_srv_554_clean-21-38-0.0476_0.0000.json index 9b4ed88a..22629295 100644 --- a/theseus/graphs/HighlyEntangledStates/srv_554/clean-21-38-0.0476_0.0000.json +++ b/pytheus/graphs/MaxEntanglement/srv_554/plot_srv_554_clean-21-38-0.0476_0.0000.json @@ -1,26 +1,6 @@ { "graph": { - "(0, 1, 1, 0)": -1.0, - "(0, 1, 2, 2)": -0.99999919085221, - "(0, 1, 3, 3)": -1.0, - "(0, 1, 4, 4)": -1.0, - "(0, 2, 0, 0)": -1.0, - "(0, 3, 1, 0)": -1.0, - "(0, 3, 2, 0)": 1.0, - "(0, 4, 2, 0)": -1.0, - "(0, 5, 1, 0)": 1.0, - "(1, 2, 1, 1)": -1.0, - "(1, 3, 0, 0)": -1.0, - "(1, 3, 2, 0)": -1.0, - "(1, 4, 2, 0)": 1.0, - "(1, 5, 0, 0)": 1.0, - "(2, 3, 2, 0)": -1.0, - "(2, 4, 3, 0)": -1.0, - "(2, 5, 2, 0)": -1.0, - "(2, 5, 3, 0)": 1.0, - "(3, 4, 0, 0)": 1.0, - "(3, 5, 0, 0)": -1.0, - "(4, 5, 0, 0)": -1.0 + "(0, 1, 1, 0)": 1.0, "(0, 1, 2, 2)": 1.0, "(0, 1, 3, 3)": 1.0, "(0, 1, 4, 4)": 1.0, "(0, 2, 0, 0)": 1.0, "(0, 3, 1, 0)": 1.0, "(0, 3, 2, 0)": -1.0, "(0, 4, 2, 0)": -1.0, "(0, 5, 1, 0)": 1.0, "(1, 2, 1, 1)": 1.0, "(1, 3, 0, 0)": 1.0, "(1, 3, 2, 0)": 1.0, "(1, 4, 2, 0)": 1.0, "(1, 5, 0, 0)": 1.0, "(2, 3, 2, 0)": 1.0, "(2, 4, 3, 0)": -1.0, "(2, 5, 2, 0)": -1.0, "(2, 5, 3, 0)": 1.0, "(3, 4, 0, 0)": 1.0, "(3, 5, 0, 0)": -1.0, "(4, 5, 0, 0)": 1.0 }, "loss": [ 0.047619047619166355, @@ -276,4 +256,4 @@ 9.293676939137185e-13 ] ] -} \ No newline at end of file +} diff --git a/theseus/configs/srv_632.json b/pytheus/graphs/MaxEntanglement/srv_632/config_srv_632.json similarity index 100% rename from theseus/configs/srv_632.json rename to pytheus/graphs/MaxEntanglement/srv_632/config_srv_632.json diff --git a/pytheus/graphs/MaxEntanglement/srv_632/graph_srv_632.aux b/pytheus/graphs/MaxEntanglement/srv_632/graph_srv_632.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/srv_632/graph_srv_632.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/MaxEntanglement/srv_632/graph_srv_632.pdf b/pytheus/graphs/MaxEntanglement/srv_632/graph_srv_632.pdf new file mode 100644 index 00000000..ec87dc45 Binary files /dev/null and b/pytheus/graphs/MaxEntanglement/srv_632/graph_srv_632.pdf differ diff --git a/pytheus/graphs/MaxEntanglement/srv_632/graph_srv_632.tex b/pytheus/graphs/MaxEntanglement/srv_632/graph_srv_632.tex new file mode 100644 index 00000000..a99cf78a --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/srv_632/graph_srv_632.tex @@ -0,0 +1,65 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col2}{col1}, bend right=-15.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col4}{col2}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor_neg={col2}{col5}, bend right=15.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-16.875, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=-5.625, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=5.625, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor_neg={col1}{col3}, bend right=16.875, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col3}{col0}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col5}{col0}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col3}{col0}, bend right=-11.25, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor_neg={col0}{col5}, bend right=11.25, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col1}{col1}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/srv_632/clean-23-48-0.0400_0.0000.json b/pytheus/graphs/MaxEntanglement/srv_632/plot_srv_632_clean-23-48-0.0400_0.0000.json similarity index 86% rename from theseus/graphs/HighlyEntangledStates/srv_632/clean-23-48-0.0400_0.0000.json rename to pytheus/graphs/MaxEntanglement/srv_632/plot_srv_632_clean-23-48-0.0400_0.0000.json index 9121a56d..3dbeb1b9 100644 --- a/theseus/graphs/HighlyEntangledStates/srv_632/clean-23-48-0.0400_0.0000.json +++ b/pytheus/graphs/MaxEntanglement/srv_632/plot_srv_632_clean-23-48-0.0400_0.0000.json @@ -1,28 +1,6 @@ { "graph": { - "(0, 1, 2, 1)": 1.0, - "(0, 1, 4, 2)": 1.0, - "(0, 1, 5, 2)": -0.9998881131228401, - "(0, 2, 0, 0)": 1.0, - "(0, 2, 1, 1)": 1.0, - "(0, 2, 3, 0)": -1.0, - "(0, 2, 3, 1)": -0.9998537222283602, - "(0, 3, 3, 0)": 1.0, - "(0, 3, 5, 0)": 1.0, - "(0, 5, 3, 0)": -1.0, - "(0, 5, 5, 0)": 1.0, - "(1, 2, 1, 1)": -1.0, - "(1, 3, 0, 0)": -1.0, - "(1, 3, 2, 0)": 1.0, - "(1, 5, 0, 0)": 1.0, - "(1, 5, 2, 0)": 1.0, - "(2, 3, 0, 0)": -1.0, - "(2, 3, 1, 0)": 1.0, - "(2, 4, 0, 0)": 1.0, - "(2, 4, 1, 0)": 1.0, - "(3, 4, 0, 0)": 1.0, - "(3, 5, 0, 0)": 1.0, - "(4, 5, 0, 0)": -1.0 + "(0, 1, 2, 1)": 1.0, "(0, 1, 4, 2)": 1.0, "(0, 1, 5, 2)": -1.0, "(0, 2, 0, 0)": 1.0, "(0, 2, 1, 1)": 1.0, "(0, 2, 3, 0)": -1.0, "(0, 2, 3, 1)": -1.0, "(0, 3, 3, 0)": 1.0, "(0, 3, 5, 0)": 1.0, "(0, 5, 3, 0)": 1.0, "(0, 5, 5, 0)": -1.0, "(1, 2, 1, 1)": 1.0, "(1, 3, 0, 0)": 1.0, "(1, 3, 2, 0)": -1.0, "(1, 5, 0, 0)": 1.0, "(1, 5, 2, 0)": 1.0, "(2, 3, 0, 0)": 1.0, "(2, 3, 1, 0)": -1.0, "(2, 4, 0, 0)": 1.0, "(2, 4, 1, 0)": 1.0, "(3, 4, 0, 0)": 1.0, "(3, 5, 0, 0)": 1.0, "(4, 5, 0, 0)": 1.0 }, "loss": [ 0.04000000250048108, @@ -222,4 +200,4 @@ 1.0184309617855547e-08 ] ] -} \ No newline at end of file +} diff --git a/theseus/configs/srv_655.json b/pytheus/graphs/MaxEntanglement/srv_655/config_srv_655.json similarity index 100% rename from theseus/configs/srv_655.json rename to pytheus/graphs/MaxEntanglement/srv_655/config_srv_655.json diff --git a/pytheus/graphs/MaxEntanglement/srv_655/graph_srv_655.aux b/pytheus/graphs/MaxEntanglement/srv_655/graph_srv_655.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/srv_655/graph_srv_655.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/MaxEntanglement/srv_655/graph_srv_655.pdf b/pytheus/graphs/MaxEntanglement/srv_655/graph_srv_655.pdf new file mode 100644 index 00000000..1ba2d587 Binary files /dev/null and b/pytheus/graphs/MaxEntanglement/srv_655/graph_srv_655.pdf differ diff --git a/pytheus/graphs/MaxEntanglement/srv_655/graph_srv_655.tex b/pytheus/graphs/MaxEntanglement/srv_655/graph_srv_655.tex new file mode 100644 index 00000000..28e74c84 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/srv_655/graph_srv_655.tex @@ -0,0 +1,72 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [rectangle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [rectangle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col3}{col3}, bend right=-11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col5}{col4}, bend right=11.25, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col1}{col1}, bend right=-11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col2}{col4}, bend right=11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col4}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=-11.25, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor={col4}{col0}, bend right=11.25, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor_neg={col4}{col0}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col2}{col2}, bend right=11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col4}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=-11.25, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor={col4}{col0}, bend right=11.25, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col3}{col0}, bend right=11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col4}{col0}, bend right=11.25, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col3}{col0}, bend right=-11.25, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor_neg={col0}{col4}, bend right=11.25, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (6); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/srv_655/clean-28-72-0.0400_0.0000.json b/pytheus/graphs/MaxEntanglement/srv_655/plot_srv_655_clean-28-72-0.0400_0.0000.json similarity index 93% rename from theseus/graphs/HighlyEntangledStates/srv_655/clean-28-72-0.0400_0.0000.json rename to pytheus/graphs/MaxEntanglement/srv_655/plot_srv_655_clean-28-72-0.0400_0.0000.json index 508c6b5c..ddf7cac6 100644 --- a/theseus/graphs/HighlyEntangledStates/srv_655/clean-28-72-0.0400_0.0000.json +++ b/pytheus/graphs/MaxEntanglement/srv_655/plot_srv_655_clean-28-72-0.0400_0.0000.json @@ -1,33 +1,6 @@ { "graph": { - "(0, 1, 3, 3)": 1.0, - "(0, 1, 5, 4)": 1.0, - "(0, 2, 1, 1)": -1.0, - "(0, 2, 2, 4)": -1.0, - "(0, 3, 0, 0)": 1.0, - "(0, 4, 0, 0)": 1.0, - "(0, 4, 2, 0)": 1.0, - "(0, 5, 4, 0)": 1.0, - "(0, 6, 2, 0)": -1.0, - "(0, 6, 4, 0)": 1.0, - "(1, 2, 0, 4)": -0.9997310827423943, - "(1, 2, 2, 2)": 1.0, - "(1, 3, 4, 0)": 1.0, - "(1, 5, 1, 0)": -1.0, - "(1, 6, 1, 0)": 1.0, - "(1, 6, 4, 0)": -1.0, - "(1, 7, 0, 0)": 1.0, - "(2, 3, 0, 0)": -1.0, - "(2, 3, 3, 0)": -1.0, - "(2, 4, 0, 0)": -1.0, - "(2, 4, 4, 0)": 1.0, - "(2, 6, 3, 0)": 1.0, - "(2, 6, 4, 0)": -1.0, - "(3, 5, 0, 0)": -1.0, - "(3, 6, 0, 0)": 1.0, - "(3, 7, 0, 0)": -1.0, - "(4, 7, 0, 0)": 1.0, - "(5, 6, 0, 0)": -1.0 + "(0, 1, 3, 3)": 1.0, "(0, 1, 5, 4)": 1.0, "(0, 2, 1, 1)": 1.0, "(0, 2, 2, 4)": 1.0, "(0, 3, 0, 0)": -1.0, "(0, 4, 0, 0)": 1.0, "(0, 4, 2, 0)": 1.0, "(0, 5, 4, 0)": 1.0, "(0, 6, 2, 0)": -1.0, "(0, 6, 4, 0)": 1.0, "(1, 2, 0, 4)": -1.0, "(1, 2, 2, 2)": 1.0, "(1, 3, 4, 0)": 1.0, "(1, 5, 1, 0)": 1.0, "(1, 6, 1, 0)": -1.0, "(1, 6, 4, 0)": 1.0, "(1, 7, 0, 0)": 1.0, "(2, 3, 0, 0)": 1.0, "(2, 3, 3, 0)": 1.0, "(2, 4, 0, 0)": -1.0, "(2, 4, 4, 0)": 1.0, "(2, 6, 3, 0)": 1.0, "(2, 6, 4, 0)": -1.0, "(3, 5, 0, 0)": -1.0, "(3, 6, 0, 0)": 1.0, "(3, 7, 0, 0)": 1.0, "(4, 7, 0, 0)": 1.0, "(5, 6, 0, 0)": 1.0 }, "loss": [ 0.04000000533141945, @@ -583,4 +556,4 @@ 1.4009396087644177e-08 ] ] -} \ No newline at end of file +} diff --git a/theseus/configs/srv_733.json b/pytheus/graphs/MaxEntanglement/srv_733/config_srv_733.json similarity index 100% rename from theseus/configs/srv_733.json rename to pytheus/graphs/MaxEntanglement/srv_733/config_srv_733.json diff --git a/pytheus/graphs/MaxEntanglement/srv_733/graph_srv_733.aux b/pytheus/graphs/MaxEntanglement/srv_733/graph_srv_733.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/srv_733/graph_srv_733.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/MaxEntanglement/srv_733/graph_srv_733.pdf b/pytheus/graphs/MaxEntanglement/srv_733/graph_srv_733.pdf new file mode 100644 index 00000000..cc9fe764 Binary files /dev/null and b/pytheus/graphs/MaxEntanglement/srv_733/graph_srv_733.pdf differ diff --git a/pytheus/graphs/MaxEntanglement/srv_733/graph_srv_733.tex b/pytheus/graphs/MaxEntanglement/srv_733/graph_srv_733.tex new file mode 100644 index 00000000..8be31bc1 --- /dev/null +++ b/pytheus/graphs/MaxEntanglement/srv_733/graph_srv_733.tex @@ -0,0 +1,62 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [rectangle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [rectangle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [rectangle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col1}{col0}, bend right=-15.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col3}{col1}, bend right=0.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col6}{col2}, bend right=15.0, opacity=1.0] (0) to (1); +\path[line width=4.0,bicolor={col4}{col2}, bend right=-11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col5}{col0}, bend right=11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor_neg={col1}{col1}, bend right=11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/srv_733/clean-20-32-0.0345_0.0000.json b/pytheus/graphs/MaxEntanglement/srv_733/plot_srv_733_clean-20-32-0.0345_0.0000.json similarity index 95% rename from theseus/graphs/HighlyEntangledStates/srv_733/clean-20-32-0.0345_0.0000.json rename to pytheus/graphs/MaxEntanglement/srv_733/plot_srv_733_clean-20-32-0.0345_0.0000.json index 5b24dc12..70abf049 100644 --- a/theseus/graphs/HighlyEntangledStates/srv_733/clean-20-32-0.0345_0.0000.json +++ b/pytheus/graphs/MaxEntanglement/srv_733/plot_srv_733_clean-20-32-0.0345_0.0000.json @@ -3,22 +3,22 @@ "(0, 1, 1, 0)": 1.0, "(0, 1, 3, 1)": 1.0, "(0, 1, 6, 2)": 1.0, - "(0, 2, 4, 2)": -1.0, - "(0, 2, 5, 0)": -1.0, - "(0, 4, 0, 0)": 1.0, - "(0, 4, 2, 0)": -1.0, + "(0, 2, 4, 2)": 1.0, + "(0, 2, 5, 0)": 1.0, + "(0, 4, 0, 0)": -1.0, + "(0, 4, 2, 0)": 1.0, "(0, 5, 0, 0)": -1.0, "(0, 5, 2, 0)": -1.0, - "(1, 2, 0, 0)": 1.0, - "(1, 2, 1, 1)": 1.0, + "(1, 2, 0, 0)": -1.0, + "(1, 2, 1, 1)": -1.0, "(1, 3, 1, 0)": 1.0, - "(1, 4, 2, 0)": -1.0, + "(1, 4, 2, 0)": 1.0, "(1, 5, 2, 0)": 1.0, "(2, 4, 0, 0)": -1.0, "(2, 4, 1, 0)": 1.0, - "(2, 5, 0, 0)": -1.0, - "(2, 5, 1, 0)": -1.0, - "(3, 4, 0, 0)": -1.0, + "(2, 5, 0, 0)": 1.0, + "(2, 5, 1, 0)": 1.0, + "(3, 4, 0, 0)": 1.0, "(3, 5, 0, 0)": 1.0 }, "loss": [ @@ -307,4 +307,4 @@ 8.104628079763643e-15 ] ] -} \ No newline at end of file +} diff --git a/theseus/configs/HS_analyzer.json b/pytheus/graphs/Measurements/HS_measurement/config_HS_analyzer.json similarity index 100% rename from theseus/configs/HS_analyzer.json rename to pytheus/graphs/Measurements/HS_measurement/config_HS_analyzer.json diff --git a/pytheus/graphs/Measurements/HS_measurement/graph_HS_measurement.aux b/pytheus/graphs/Measurements/HS_measurement/graph_HS_measurement.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Measurements/HS_measurement/graph_HS_measurement.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Measurements/HS_measurement/graph_HS_measurement.pdf b/pytheus/graphs/Measurements/HS_measurement/graph_HS_measurement.pdf new file mode 100644 index 00000000..337e0a0c Binary files /dev/null and b/pytheus/graphs/Measurements/HS_measurement/graph_HS_measurement.pdf differ diff --git a/pytheus/graphs/Measurements/HS_measurement/graph_HS_measurement.tex b/pytheus/graphs/Measurements/HS_measurement/graph_HS_measurement.tex new file mode 100644 index 00000000..06f52edb --- /dev/null +++ b/pytheus/graphs/Measurements/HS_measurement/graph_HS_measurement.tex @@ -0,0 +1,52 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [inner sep=0.1em, regular polygon,regular polygon sides=3] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [inner sep=0.1em, regular polygon,regular polygon sides=3] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [inner sep=0.1em, regular polygon,regular polygon sides=3] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [circle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [circle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [circle] {\color{fontcolor}7}; +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (3) to (6); + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/configs/mkp_2d.json b/pytheus/graphs/Measurements/MKP_2d/config_mkp_2d.json similarity index 90% rename from theseus/configs/mkp_2d.json rename to pytheus/graphs/Measurements/MKP_2d/config_mkp_2d.json index bdccf0ef..34f622c9 100644 --- a/theseus/configs/mkp_2d.json +++ b/pytheus/graphs/Measurements/MKP_2d/config_mkp_2d.json @@ -4,14 +4,14 @@ "foldername": "mkp_2d", "ftol": 1e-06, "loss_func": "cr", - "num_anc": 2, + "num_anc": 0, "num_pre": 1, "optimizer": "L-BFGS-B", "imaginary": "polar", "real": true, "safe_hist": true, "samples": 10, - "removed_connections": [[0,1]], + "in_nodes": [0,1], "target_state": [ "00", "01", @@ -24,4 +24,7 @@ ], "tries_per_edge": 5, "unicolor": false -} \ No newline at end of file +} + + + diff --git a/pytheus/graphs/Measurements/MKP_2d/graph_MKP_2d.aux b/pytheus/graphs/Measurements/MKP_2d/graph_MKP_2d.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Measurements/MKP_2d/graph_MKP_2d.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Measurements/MKP_2d/graph_MKP_2d.pdf b/pytheus/graphs/Measurements/MKP_2d/graph_MKP_2d.pdf new file mode 100644 index 00000000..b0a3e345 Binary files /dev/null and b/pytheus/graphs/Measurements/MKP_2d/graph_MKP_2d.pdf differ diff --git a/pytheus/graphs/Measurements/MKP_2d/graph_MKP_2d.tex b/pytheus/graphs/Measurements/MKP_2d/graph_MKP_2d.tex new file mode 100644 index 00000000..b4782a7c --- /dev/null +++ b/pytheus/graphs/Measurements/MKP_2d/graph_MKP_2d.tex @@ -0,0 +1,45 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [circle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/Measurements/MKP_2d/plot_mkp2d_clean-5-3-0.2500_0.0000.json b/pytheus/graphs/Measurements/MKP_2d/plot_mkp2d_clean-5-3-0.2500_0.0000.json new file mode 100644 index 00000000..7f1e8b02 --- /dev/null +++ b/pytheus/graphs/Measurements/MKP_2d/plot_mkp2d_clean-5-3-0.2500_0.0000.json @@ -0,0 +1,47 @@ +{ + "graph": { + "(0, 3, 0, 0)": [ + -1.0, + -1.2869536899040366 + ], + "(1, 2, 0, 0)": [ + 1.0, + 1.353418965035655 + ], + "(0, 2, 0, 0)": [ + 1.0, + -2.5727342546833545 + ], + "(1, 3, 1, 0)": [ + 1.0, + -1.2095030882463549 + ], + "(0, 3, 1, 0)": [ + -1.0, + -0.5798467322609592 + ] + }, + "loss": [ + 0.25000000000178757, + 2.383426789265286e-12 + ], + "seed": 532284847, + "history": [ + [ + 0.2222224021812922, + 0.039363888111421885 + ], + [ + 0.2500000000109458, + 1.8101631305000865e-11 + ], + [ + 0.2500000037077652, + 4.9436869042907006e-09 + ], + [ + 0.25000000000178757, + 2.383426789265286e-12 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/Measurements/MKP_3d/config_mkp_3d.json b/pytheus/graphs/Measurements/MKP_3d/config_mkp_3d.json new file mode 100644 index 00000000..c532e391 --- /dev/null +++ b/pytheus/graphs/Measurements/MKP_3d/config_mkp_3d.json @@ -0,0 +1,34 @@ +{ + "bulk_thr": 0.01, + "edges_tried": 30, + "foldername": "mkp_3", + "ftol": 1e-06, + "loss_func": "cr", + "num_anc": 0, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": "polar", + "real": true, + "safe_hist": true, + "samples": 10, + "in_nodes": [0,1], + "target_state": [ + "00", + "01", + "02", + "10", + "12", + "20", + "21" + ], + "amplitudes": [[1, 0], [-0.5,0.288675134594813], [-0.5,0.288675134594813], [-0.5,0.288675134594813], [0.5,-0.288675134594813], [-0.5,0.288675134594813],[0.5,0.288675134594813]], + "thresholds": [ + 0.3, + 0.1 + ], + "tries_per_edge": 5, + "unicolor": false +} + + + diff --git a/pytheus/graphs/Measurements/MKP_3d/graph_MKP_3d.aux b/pytheus/graphs/Measurements/MKP_3d/graph_MKP_3d.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Measurements/MKP_3d/graph_MKP_3d.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Measurements/MKP_3d/graph_MKP_3d.pdf b/pytheus/graphs/Measurements/MKP_3d/graph_MKP_3d.pdf new file mode 100644 index 00000000..e6a5786d Binary files /dev/null and b/pytheus/graphs/Measurements/MKP_3d/graph_MKP_3d.pdf differ diff --git a/pytheus/graphs/Measurements/MKP_3d/graph_MKP_3d.tex b/pytheus/graphs/Measurements/MKP_3d/graph_MKP_3d.tex new file mode 100644 index 00000000..87c36825 --- /dev/null +++ b/pytheus/graphs/Measurements/MKP_3d/graph_MKP_3d.tex @@ -0,0 +1,48 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [circle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (0) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (1) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/Measurements/MKP_3d/plot_mkp3d_clean-8-8-0.1100_0.0199.json b/pytheus/graphs/Measurements/MKP_3d/plot_mkp3d_clean-8-8-0.1100_0.0199.json new file mode 100644 index 00000000..2443aa43 --- /dev/null +++ b/pytheus/graphs/Measurements/MKP_3d/plot_mkp3d_clean-8-8-0.1100_0.0199.json @@ -0,0 +1,63 @@ +{ + "graph": { + "(0, 2, 2, 0)": [ + 1.0, + 1.9407805571026167 + ], + "(0, 3, 1, 0)": [ + 1.0, + -1.4133592951855638 + ], + "(1, 2, 2, 0)": [ + -1.0, + -0.8510958062926863 + ], + "(1, 3, 1, 0)": [ + -1.0, + 2.5807272468355795 + ], + "(0, 3, 0, 0)": [ + -1.0, + -1.2405299211455967 + ], + "(1, 3, 0, 0)": [ + -1.0, + -0.8153006264033719 + ], + "(1, 2, 0, 0)": [ + 1.0, + -0.6783009820512295 + ], + "(0, 2, 0, 0)": [ + 1.0, + -1.4552379910084345 + ] + }, + "loss": [ + 0.10998843388654234, + 0.019884144369509804 + ], + "seed": 3715860053, + "history": [ + [ + 0.09453223918273934, + 0.021809662056331725 + ], + [ + 0.09998619179896706, + 0.017671453214000876 + ], + [ + 0.10394250049537201, + 0.017398013574307702 + ], + [ + 0.10644072270208349, + 0.01759580558414009 + ], + [ + 0.10998843388654234, + 0.019884144369509804 + ] + ] +} \ No newline at end of file diff --git a/theseus/configs/W_measurement.json b/pytheus/graphs/Measurements/W_measurement/config_W_measurement.json similarity index 100% rename from theseus/configs/W_measurement.json rename to pytheus/graphs/Measurements/W_measurement/config_W_measurement.json diff --git a/pytheus/graphs/Measurements/W_measurement/graph_W_measurement.aux b/pytheus/graphs/Measurements/W_measurement/graph_W_measurement.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Measurements/W_measurement/graph_W_measurement.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Measurements/W_measurement/graph_W_measurement.pdf b/pytheus/graphs/Measurements/W_measurement/graph_W_measurement.pdf new file mode 100644 index 00000000..1aceb1df Binary files /dev/null and b/pytheus/graphs/Measurements/W_measurement/graph_W_measurement.pdf differ diff --git a/pytheus/graphs/Measurements/W_measurement/graph_W_measurement.tex b/pytheus/graphs/Measurements/W_measurement/graph_W_measurement.tex new file mode 100644 index 00000000..8e07aedf --- /dev/null +++ b/pytheus/graphs/Measurements/W_measurement/graph_W_measurement.tex @@ -0,0 +1,49 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [circle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/W_measurement/clean-7-3-0.2500_0.0000.json b/pytheus/graphs/Measurements/W_measurement/plot_W_measurement_clean-7-3-0.2500_0.0000.json similarity index 100% rename from theseus/graphs/W_measurement/clean-7-3-0.2500_0.0000.json rename to pytheus/graphs/Measurements/W_measurement/plot_W_measurement_clean-7-3-0.2500_0.0000.json diff --git a/pytheus/graphs/Measurements/YC_measurement/clean-25-104-0.0088_0.0000.json b/pytheus/graphs/Measurements/YC_measurement/clean-25-104-0.0088_0.0000.json new file mode 100644 index 00000000..1eac9b69 --- /dev/null +++ b/pytheus/graphs/Measurements/YC_measurement/clean-25-104-0.0088_0.0000.json @@ -0,0 +1,88 @@ +{ + "graph": { + "(0, 4, 1, 0)": -1.0, + "(0, 5, 0, 0)": -1.0, + "(0, 6, 0, 0)": 1.0, + "(0, 7, 1, 0)": 1.0, + "(1, 4, 1, 0)": 1.0, + "(1, 5, 0, 0)": 1.0, + "(1, 5, 1, 0)": 1.0, + "(1, 6, 0, 0)": -1.0, + "(1, 6, 1, 0)": -1.0, + "(1, 7, 1, 0)": -1.0, + "(2, 4, 1, 0)": 1.0, + "(2, 5, 0, 0)": 1.0, + "(2, 5, 1, 0)": 1.0, + "(2, 6, 0, 0)": -1.0, + "(2, 6, 1, 0)": 0.9995712680042509, + "(2, 7, 1, 0)": 1.0, + "(3, 4, 0, 0)": 1.0, + "(3, 4, 1, 0)": -1.0, + "(3, 5, 0, 0)": -0.9997098364656934, + "(3, 5, 1, 0)": 1.0, + "(3, 6, 0, 0)": -1.0, + "(3, 6, 1, 0)": -1.0, + "(3, 7, 0, 0)": -1.0, + "(3, 7, 1, 0)": -1.0, + "(5, 6, 0, 0)": -0.9549457696652657 + }, + "loss": [ + 0.008849573885525652, + 1.6764963861604087e-08 + ], + "seed": 3111658902, + "history": [ + [ + 0.01606311252623971, + 0.0028735669392720986 + ], + [ + 0.015036304387682331, + 0.0019473212644244287 + ], + [ + 0.008762138304083678, + 0.00010005928805234543 + ], + [ + 0.008795139914310357, + 6.239419832454463e-05 + ], + [ + 0.008794840009057725, + 6.295552098689594e-05 + ], + [ + 0.00879464163464716, + 6.278595290765132e-05 + ], + [ + 0.008796890156821169, + 5.3382891896047724e-05 + ], + [ + 0.008819124328865224, + 3.709778929028573e-05 + ], + [ + 0.00884440263338937, + 5.097316485902503e-06 + ], + [ + 0.008849650881922133, + 9.553654656269117e-08 + ], + [ + 0.008849617496257123, + 6.139197117338568e-08 + ], + [ + 0.008849596222402889, + 3.9627449321955055e-08 + ], + [ + 0.008849582618683738, + 2.5705389816721436e-08 + ] + ] +} \ No newline at end of file diff --git a/theseus/configs/ent9_053.json b/pytheus/graphs/Measurements/YC_measurement/config_YC_analyzer.json similarity index 54% rename from theseus/configs/ent9_053.json rename to pytheus/graphs/Measurements/YC_measurement/config_YC_analyzer.json index b32c5fa5..481ddb68 100644 --- a/theseus/configs/ent9_053.json +++ b/pytheus/graphs/Measurements/YC_measurement/config_YC_analyzer.json @@ -1,8 +1,8 @@ { - "description": "9 entanglements for 4 qubits, case L0_(5+3).", - "bulk_thr": 0, - "edges_tried": 20, - "foldername": "ent9_053_1", + "description": "Measurement for YC state", + "bulk_thr": 0.01, + "edges_tried": 30, + "foldername": "yc_analyzer", "ftol": 1e-06, "loss_func": "cr", "num_anc": 0, @@ -11,16 +11,25 @@ "imaginary": false, "safe_hist": true, "samples": 10, + "in_nodes": [ + 0, + 1, + 2, + 3 + ], "target_state": [ - "0000", - "0101", + "0011", + "0100", + "0111", "1000", + "1100", + "1101", "1110" ], "thresholds": [ - 0.25, + 0.3, 0.1 ], "tries_per_edge": 5, "unicolor": false -} \ No newline at end of file +} diff --git a/pytheus/graphs/Measurements/YC_measurement/graph_YC_measurement.aux b/pytheus/graphs/Measurements/YC_measurement/graph_YC_measurement.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Measurements/YC_measurement/graph_YC_measurement.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Measurements/YC_measurement/graph_YC_measurement.pdf b/pytheus/graphs/Measurements/YC_measurement/graph_YC_measurement.pdf new file mode 100644 index 00000000..f7cde5e9 Binary files /dev/null and b/pytheus/graphs/Measurements/YC_measurement/graph_YC_measurement.pdf differ diff --git a/pytheus/graphs/Measurements/YC_measurement/graph_YC_measurement.tex b/pytheus/graphs/Measurements/YC_measurement/graph_YC_measurement.tex new file mode 100644 index 00000000..41cba868 --- /dev/null +++ b/pytheus/graphs/Measurements/YC_measurement/graph_YC_measurement.tex @@ -0,0 +1,68 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [circle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [circle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [circle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (2) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=0.9995712680042509] (2) to (6); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=0.9997098364656934] (3) to (5); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (3) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (3) to (7); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (3) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/Measurements/YC_measurement/plot-25-104.json b/pytheus/graphs/Measurements/YC_measurement/plot-25-104.json new file mode 100644 index 00000000..0c376c54 --- /dev/null +++ b/pytheus/graphs/Measurements/YC_measurement/plot-25-104.json @@ -0,0 +1,87 @@ +{ + "graph": { + "(0, 4, 1, 0)": -1.0, + "(0, 5, 0, 0)": -1.0, + "(0, 6, 0, 0)": 1.0, + "(0, 7, 1, 0)": 1.0, + "(1, 4, 1, 0)": 1.0, + "(1, 5, 0, 0)": 1.0, + "(1, 5, 1, 0)": 1.0, + "(1, 6, 0, 0)": -1.0, + "(1, 6, 1, 0)": -1.0, + "(1, 7, 1, 0)": -1.0, + "(2, 4, 1, 0)": 1.0, + "(2, 5, 0, 0)": 1.0, + "(2, 5, 1, 0)": 1.0, + "(2, 6, 0, 0)": -1.0, + "(2, 6, 1, 0)": 0.9995712680042509, + "(2, 7, 1, 0)": 1.0, + "(3, 4, 0, 0)": 1.0, + "(3, 4, 1, 0)": -1.0, + "(3, 5, 0, 0)": -0.9997098364656934, + "(3, 5, 1, 0)": 1.0, + "(3, 6, 0, 0)": -1.0, + "(3, 6, 1, 0)": -1.0, + "(3, 7, 0, 0)": -1.0, + "(3, 7, 1, 0)": -1.0 + }, + "loss": [ + 0.008849573885525652, + 1.6764963861604087e-08 + ], + "seed": 3111658902, + "history": [ + [ + 0.01606311252623971, + 0.0028735669392720986 + ], + [ + 0.015036304387682331, + 0.0019473212644244287 + ], + [ + 0.008762138304083678, + 0.00010005928805234543 + ], + [ + 0.008795139914310357, + 6.239419832454463e-05 + ], + [ + 0.008794840009057725, + 6.295552098689594e-05 + ], + [ + 0.00879464163464716, + 6.278595290765132e-05 + ], + [ + 0.008796890156821169, + 5.3382891896047724e-05 + ], + [ + 0.008819124328865224, + 3.709778929028573e-05 + ], + [ + 0.00884440263338937, + 5.097316485902503e-06 + ], + [ + 0.008849650881922133, + 9.553654656269117e-08 + ], + [ + 0.008849617496257123, + 6.139197117338568e-08 + ], + [ + 0.008849596222402889, + 3.9627449321955055e-08 + ], + [ + 0.008849582618683738, + 2.5705389816721436e-08 + ] + ] +} \ No newline at end of file diff --git a/theseus/configs/ghz_analyzer_2d.json b/pytheus/graphs/Measurements/ghz_analyzer_2d/config_ghz_analyzer_2d.json similarity index 100% rename from theseus/configs/ghz_analyzer_2d.json rename to pytheus/graphs/Measurements/ghz_analyzer_2d/config_ghz_analyzer_2d.json diff --git a/pytheus/graphs/Measurements/ghz_analyzer_2d/graph_ghz_analyzer_2d.aux b/pytheus/graphs/Measurements/ghz_analyzer_2d/graph_ghz_analyzer_2d.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Measurements/ghz_analyzer_2d/graph_ghz_analyzer_2d.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Measurements/ghz_analyzer_2d/graph_ghz_analyzer_2d.pdf b/pytheus/graphs/Measurements/ghz_analyzer_2d/graph_ghz_analyzer_2d.pdf new file mode 100644 index 00000000..2287f551 Binary files /dev/null and b/pytheus/graphs/Measurements/ghz_analyzer_2d/graph_ghz_analyzer_2d.pdf differ diff --git a/pytheus/graphs/Measurements/ghz_analyzer_2d/graph_ghz_analyzer_2d.tex b/pytheus/graphs/Measurements/ghz_analyzer_2d/graph_ghz_analyzer_2d.tex new file mode 100644 index 00000000..4d93341a --- /dev/null +++ b/pytheus/graphs/Measurements/ghz_analyzer_2d/graph_ghz_analyzer_2d.tex @@ -0,0 +1,54 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (1.5000000000000004,2.598076211353316) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (-1.4999999999999993,2.5980762113533165) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}2}; +\node[vertex] (3) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-1.5000000000000013,-2.598076211353315) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (1.5,-2.598076211353316) [circle] {\color{fontcolor}5}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (5); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/HighlyEntangledStates/ghz_analyzer_2d/clean-12-12-0.1111_0.0000.json b/pytheus/graphs/Measurements/ghz_analyzer_2d/plot_ghz_analyzer_2d_clean-12-12-0.1111_0.0000.json similarity index 100% rename from theseus/graphs/HighlyEntangledStates/ghz_analyzer_2d/clean-12-12-0.1111_0.0000.json rename to pytheus/graphs/Measurements/ghz_analyzer_2d/plot_ghz_analyzer_2d_clean-12-12-0.1111_0.0000.json diff --git a/theseus/configs/ghz_analyzer_3d.json b/pytheus/graphs/Measurements/ghz_analyzer_3d/config_ghz_analyzer_3d.json similarity index 100% rename from theseus/configs/ghz_analyzer_3d.json rename to pytheus/graphs/Measurements/ghz_analyzer_3d/config_ghz_analyzer_3d.json diff --git a/pytheus/graphs/Measurements/ghz_analyzer_3d/graph_ghz_analyzer_3d.aux b/pytheus/graphs/Measurements/ghz_analyzer_3d/graph_ghz_analyzer_3d.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Measurements/ghz_analyzer_3d/graph_ghz_analyzer_3d.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Measurements/ghz_analyzer_3d/graph_ghz_analyzer_3d.pdf b/pytheus/graphs/Measurements/ghz_analyzer_3d/graph_ghz_analyzer_3d.pdf new file mode 100644 index 00000000..e407caf5 Binary files /dev/null and b/pytheus/graphs/Measurements/ghz_analyzer_3d/graph_ghz_analyzer_3d.pdf differ diff --git a/pytheus/graphs/Measurements/ghz_analyzer_3d/graph_ghz_analyzer_3d.tex b/pytheus/graphs/Measurements/ghz_analyzer_3d/graph_ghz_analyzer_3d.tex new file mode 100644 index 00000000..add9c965 --- /dev/null +++ b/pytheus/graphs/Measurements/ghz_analyzer_3d/graph_ghz_analyzer_3d.tex @@ -0,0 +1,63 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (2.121320343559643,2.1213203435596424) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (1.8369701987210297e-16,3.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}2}; +\node[vertex] (3) at (-2.1213203435596424,2.121320343559643) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-2.121320343559643,-2.1213203435596424) [circle] {\color{fontcolor}5}; +\node[vertex] (6) at (-5.51091059616309e-16,-3.0) [circle] {\color{fontcolor}6}; +\node[vertex] (7) at (2.1213203435596424,-2.121320343559643) [circle] {\color{fontcolor}7}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (0) to (4); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (0) to (6); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (0) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (2) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (6); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (7); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (5) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (7); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/Measurements/ghz_analyzer_3d/plot_ghz_analyzer_3d_clean-19-24-0.0769_0.0000.json b/pytheus/graphs/Measurements/ghz_analyzer_3d/plot_ghz_analyzer_3d_clean-19-24-0.0769_0.0000.json new file mode 100644 index 00000000..7e9f0d8a --- /dev/null +++ b/pytheus/graphs/Measurements/ghz_analyzer_3d/plot_ghz_analyzer_3d_clean-19-24-0.0769_0.0000.json @@ -0,0 +1,174 @@ +{ + "graph": { + "(0, 5, 0, 0)": -1.0, + "(0, 6, 2, 0)": 1.0, + "(0, 7, 1, 0)": -1.0, + "(1, 4, 0, 0)": 1.0, + "(1, 4, 2, 0)": -1.0, + "(1, 5, 1, 0)": 1.0, + "(1, 6, 0, 0)": 1.0, + "(1, 6, 2, 0)": 1.0, + "(2, 3, 2, 0)": -1.0, + "(2, 4, 1, 0)": -1.0, + "(2, 6, 1, 0)": -1.0, + "(2, 7, 0, 0)": -1.0, + "(2, 7, 2, 0)": -1.0, + "(3, 4, 0, 0)": 1.0, + "(3, 6, 0, 0)": 1.0, + "(4, 7, 0, 0)": -1.0, + "(6, 7, 0, 0)": -1.0, + "(0, 4, 2, 0)": -1.0, + "(5, 7, 0, 0)": 1.0 + }, + "loss": [ + 0.07692307692307798, + 9.992007221626409e-16 + ], + "seed": 205189421, + "history": [ + [ + 0.002991559354219131, + 4.033612442067014e-05 + ], + [ + 0.002967788786691683, + 4.86040743541416e-05 + ], + [ + 0.0034324334622570785, + 0.00021947611894712615 + ], + [ + 0.0036220081294530138, + 0.00020647299565934585 + ], + [ + 0.004282961537718566, + 0.00026219919015701976 + ], + [ + 0.004458935045118739, + 0.00011839566824123349 + ], + [ + 0.004504479511556525, + 9.000150800797524e-05 + ], + [ + 0.004883320132400781, + 0.00042135229344275604 + ], + [ + 0.005416892461828304, + 0.0003496760248116182 + ], + [ + 0.005153302085877609, + 3.4200421164976014e-05 + ], + [ + 0.005163361554606394, + 1.7149404129224166e-05 + ], + [ + 0.005176930848707073, + 4.5257676510868095e-06 + ], + [ + 0.005180530347764223, + 7.521778945251967e-07 + ], + [ + 0.013786265846066459, + 0.0025114269544086465 + ], + [ + 0.015593952889399465, + 0.002029325039388241 + ], + [ + 0.01948481161850646, + 0.0008601748509154961 + ], + [ + 0.019828535365428834, + 0.0005796998835808642 + ], + [ + 0.020108829688066154, + 0.0003046290714969757 + ], + [ + 0.02020332865945751, + 0.0002294116390355594 + ], + [ + 0.0202021730070987, + 0.00021433125752590154 + ], + [ + 0.020408273541678734, + 1.138437679681914e-07 + ], + [ + 0.02040822581647217, + 6.445168954094527e-08 + ], + [ + 0.020408207084272934, + 4.5663775760651504e-08 + ], + [ + 0.020408186014979512, + 2.3707450447219003e-08 + ], + [ + 0.02040838907765996, + 2.3531920956276764e-07 + ], + [ + 0.020408423109567364, + 2.707838835380727e-07 + ], + [ + 0.020408268687798103, + 1.0986085186015515e-07 + ], + [ + 0.020408231303223667, + 7.090236098239444e-08 + ], + [ + 0.020408169469029236, + 6.464904167557961e-09 + ], + [ + 0.020408165096613473, + 1.908406654926864e-09 + ], + [ + 0.020408163351671615, + 9.00014507365654e-11 + ], + [ + 0.02040816326530892, + 2.9976021664879227e-15 + ], + [ + 0.020408163265306145, + 0.0 + ], + [ + 0.07207207207208177, + 0.005250815147098464 + ], + [ + 0.0757575758287764, + 0.0013425837561577003 + ], + [ + 0.07692307692307687, + 0.0 + ] + ] +} \ No newline at end of file diff --git a/theseus/configs/ghz_analyzer_4d.json b/pytheus/graphs/Measurements/ghz_analyzer_4d/config_ghz_analyzer_4d.json similarity index 100% rename from theseus/configs/ghz_analyzer_4d.json rename to pytheus/graphs/Measurements/ghz_analyzer_4d/config_ghz_analyzer_4d.json diff --git a/pytheus/graphs/Measurements/ghz_analyzer_4d/graph_ghz_analyzer_4d.aux b/pytheus/graphs/Measurements/ghz_analyzer_4d/graph_ghz_analyzer_4d.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/Measurements/ghz_analyzer_4d/graph_ghz_analyzer_4d.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/Measurements/ghz_analyzer_4d/graph_ghz_analyzer_4d.pdf b/pytheus/graphs/Measurements/ghz_analyzer_4d/graph_ghz_analyzer_4d.pdf new file mode 100644 index 00000000..ad478d98 Binary files /dev/null and b/pytheus/graphs/Measurements/ghz_analyzer_4d/graph_ghz_analyzer_4d.pdf differ diff --git a/pytheus/graphs/Measurements/ghz_analyzer_4d/graph_ghz_analyzer_4d.tex b/pytheus/graphs/Measurements/ghz_analyzer_4d/graph_ghz_analyzer_4d.tex new file mode 100644 index 00000000..e78fdcd1 --- /dev/null +++ b/pytheus/graphs/Measurements/ghz_analyzer_4d/graph_ghz_analyzer_4d.tex @@ -0,0 +1,69 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}0}; +\node[vertex] (1) at (2.4270509831248424,1.7633557568774194) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}1}; +\node[vertex] (2) at (0.9270509831248424,2.8531695488854605) [inner sep=0.1em, regular polygon,regular polygon sides=3, dashed] {\color{fontcolor}2}; +\node[vertex] (3) at (-0.927050983124842,2.853169548885461) [circle] {\color{fontcolor}3}; +\node[vertex] (4) at (-2.427050983124842,1.7633557568774196) [circle] {\color{fontcolor}4}; +\node[vertex] (5) at (-3.0,3.6739403974420594e-16) [circle] {\color{fontcolor}5}; +\node[vertex] (6) at (-2.4270509831248424,-1.7633557568774192) [circle] {\color{fontcolor}6}; +\node[vertex] (7) at (-0.9270509831248427,-2.8531695488854605) [circle] {\color{fontcolor}7}; +\node[vertex] (8) at (0.9270509831248417,-2.853169548885461) [circle] {\color{fontcolor}8}; +\node[vertex] (9) at (2.427050983124842,-1.7633557568774196) [circle] {\color{fontcolor}9}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=1.0] (0) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (8); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=11.25, opacity=1.0] (0) to (8); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=0.0, opacity=1.0] (0) to (9); +\path[line width=4.0,bicolor={col3}{col0}, bend right=0.0, opacity=1.0] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=1.0] (1) to (4); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (1) to (5); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=-11.25, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor={col3}{col0}, bend right=11.25, opacity=1.0] (1) to (6); +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=1.0] (1) to (8); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=-11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor={col3}{col0}, bend right=11.25, opacity=1.0] (2) to (3); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (2) to (4); +\path[line width=4.0,bicolor_neg={col0}{col2}, bend right=0.0, opacity=1.0] (2) to (7); +\path[line width=4.0,bicolor={col1}{col0}, bend right=-11.25, opacity=1.0] (2) to (8); +\path[line width=4.0,bicolor={col3}{col0}, bend right=11.25, opacity=1.0] (2) to (8); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (3) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (4) to (5); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (7); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=0.0, opacity=1.0] (6) to (9); +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=1.0] (7) to (8); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/ghz_analyzer_4d/clean-23-28-0.0588_0.0000.json b/pytheus/graphs/Measurements/ghz_analyzer_4d/plot_ghz_analyzer_4d_clean-23-28-0.0588_0.0000.json similarity index 100% rename from theseus/graphs/ghz_analyzer_4d/clean-23-28-0.0588_0.0000.json rename to pytheus/graphs/Measurements/ghz_analyzer_4d/plot_ghz_analyzer_4d_clean-23-28-0.0588_0.0000.json diff --git a/theseus/configs/peres.json b/pytheus/graphs/MixedStates/peres/config_peres.json similarity index 100% rename from theseus/configs/peres.json rename to pytheus/graphs/MixedStates/peres/config_peres.json diff --git a/pytheus/graphs/MixedStates/peres/graph_peres.aux b/pytheus/graphs/MixedStates/peres/graph_peres.aux new file mode 100644 index 00000000..e69de29b diff --git a/pytheus/graphs/MixedStates/peres/graph_peres.pdf b/pytheus/graphs/MixedStates/peres/graph_peres.pdf new file mode 100644 index 00000000..4a2bd564 Binary files /dev/null and b/pytheus/graphs/MixedStates/peres/graph_peres.pdf differ diff --git a/pytheus/graphs/MixedStates/peres/graph_peres.tex b/pytheus/graphs/MixedStates/peres/graph_peres.tex new file mode 100644 index 00000000..e62afd9b --- /dev/null +++ b/pytheus/graphs/MixedStates/peres/graph_peres.tex @@ -0,0 +1,63 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [star,star points=10] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=-16.875, opacity=0.956061464798555] (0) to (1); +\path[line width=4.0,bicolor_neg={col1}{col0}, bend right=-5.625, opacity=0.33113589587960923] (0) to (1); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=5.625, opacity=0.6630638218958145] (0) to (1); +\path[line width=4.0,bicolor={col1}{col2}, bend right=16.875, opacity=0.3] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-18.0, opacity=0.3] (0) to (2); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-9.0, opacity=0.5259870187677493] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.9802549531858115] (0) to (2); +\path[line width=4.0,bicolor_neg={col1}{col2}, bend right=9.0, opacity=0.3] (0) to (2); +\path[line width=4.0,bicolor={col2}{col2}, bend right=18.0, opacity=0.3] (0) to (2); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-15.0, opacity=0.30291960306828564] (0) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.5238226567404276] (0) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=15.0, opacity=0.3] (0) to (3); +\path[line width=4.0,bicolor={col0}{col1}, bend right=-19.285714285714285, opacity=0.878884976194355] (1) to (2); +\path[line width=4.0,bicolor={col0}{col2}, bend right=-12.857142857142858, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col3}, bend right=-6.428571428571427, opacity=0.3] (1) to (2); +\path[line width=4.0,bicolor_neg={col2}{col1}, bend right=0.0, opacity=0.8635711203440826] (1) to (2); +\path[line width=4.0,bicolor={col1}{col3}, bend right=6.428571428571427, opacity=0.3] (1) to (2); +\path[line width=4.0,bicolor_neg={col1}{col2}, bend right=12.857142857142854, opacity=0.3] (1) to (2); +\path[line width=4.0,bicolor={col2}{col3}, bend right=19.285714285714285, opacity=0.3] (1) to (2); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.5059030677723023] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=11.25, opacity=0.8754563497549195] (1) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.7478849121494506] (2) to (3); +\path[line width=4.0,bicolor={col2}{col0}, bend right=11.25, opacity=0.7900241872099721] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/theseus/graphs/MixedStates/peres/rough-23-39-0.0001_0.2952.json b/pytheus/graphs/MixedStates/peres/plot_peres_rough-23-39-0.0001_0.2952.json similarity index 78% rename from theseus/graphs/MixedStates/peres/rough-23-39-0.0001_0.2952.json rename to pytheus/graphs/MixedStates/peres/plot_peres_rough-23-39-0.0001_0.2952.json index 90676df1..b7d8f89e 100644 --- a/theseus/graphs/MixedStates/peres/rough-23-39-0.0001_0.2952.json +++ b/pytheus/graphs/MixedStates/peres/plot_peres_rough-23-39-0.0001_0.2952.json @@ -1,28 +1,28 @@ { "graph": { - "(1, 2, 2, 3)": -0.002033840511027692, - "(1, 2, 1, 3)": -0.0045850644054507205, + "(1, 2, 2, 3)": 0.002033840511027692, + "(1, 2, 1, 3)": 0.0045850644054507205, "(0, 1, 1, 2)": 0.007462145230693175, - "(1, 2, 0, 3)": -0.007924877348180794, - "(1, 2, 2, 1)": 0.008980549643377562, - "(0, 2, 2, 2)": -0.132437493299615, + "(1, 2, 0, 3)": 0.007924877348180794, + "(1, 2, 2, 1)": -0.008980549643377562, + "(0, 2, 2, 2)": 0.132437493299615, "(0, 3, 2, 0)": 0.1343331708601069, - "(0, 2, 2, 1)": 0.23379219030377504, - "(0, 2, 0, 0)": -0.2829035521972904, + "(0, 2, 2, 1)": -0.23379219030377504, + "(0, 2, 0, 0)": 0.2829035521972904, "(0, 3, 0, 0)": -0.30291960306828564, "(0, 1, 0, 1)": -0.33113589587960923, "(1, 3, 0, 0)": 0.5059030677723023, "(0, 3, 1, 0)": 0.5238226567404276, - "(0, 2, 0, 1)": -0.5259870187677493, + "(0, 2, 0, 1)": 0.5259870187677493, "(0, 1, 1, 0)": -0.6630638218958145, - "(2, 3, 0, 0)": -0.7478849121494506, - "(2, 3, 2, 0)": -0.7900241872099721, - "(1, 2, 1, 2)": 0.8635711203440826, + "(2, 3, 0, 0)": 0.7478849121494506, + "(2, 3, 2, 0)": 0.7900241872099721, + "(1, 2, 1, 2)": -0.8635711203440826, "(1, 3, 1, 0)": 0.8754563497549195, - "(1, 2, 0, 1)": -0.878884976194355, + "(1, 2, 0, 1)": 0.878884976194355, "(0, 1, 0, 0)": 0.956061464798555, - "(0, 2, 1, 0)": -0.9802549531858115, - "(1, 2, 0, 2)": -1.0 + "(0, 2, 1, 0)": 0.9802549531858115, + "(1, 2, 0, 2)": 1.0 }, "loss": [ 9.425907495963504e-05, @@ -110,4 +110,4 @@ 0.2951644192459323 ] ] -} \ No newline at end of file +} diff --git a/theseus/configs/werner.json b/pytheus/graphs/MixedStates/werner/OtherSolutions/config_werner.json similarity index 100% rename from theseus/configs/werner.json rename to pytheus/graphs/MixedStates/werner/OtherSolutions/config_werner.json diff --git a/pytheus/graphs/MixedStates/werner/OtherSolutions/graph_OtherSolutions.aux b/pytheus/graphs/MixedStates/werner/OtherSolutions/graph_OtherSolutions.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/MixedStates/werner/OtherSolutions/graph_OtherSolutions.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/MixedStates/werner/OtherSolutions/graph_OtherSolutions.pdf b/pytheus/graphs/MixedStates/werner/OtherSolutions/graph_OtherSolutions.pdf new file mode 100644 index 00000000..93cd3e77 Binary files /dev/null and b/pytheus/graphs/MixedStates/werner/OtherSolutions/graph_OtherSolutions.pdf differ diff --git a/pytheus/graphs/MixedStates/werner/OtherSolutions/graph_OtherSolutions.tex b/pytheus/graphs/MixedStates/werner/OtherSolutions/graph_OtherSolutions.tex new file mode 100644 index 00000000..53e22461 --- /dev/null +++ b/pytheus/graphs/MixedStates/werner/OtherSolutions/graph_OtherSolutions.tex @@ -0,0 +1,49 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [star,star points=10] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.8312290374080165] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.9986222539009573] (0) to (2); +\path[line width=4.0,bicolor={col0}{col2}, bend right=11.25, opacity=0.4486519810089067] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.9918336810171423] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-15.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col3}, bend right=0.0, opacity=0.4492725046703934] (1) to (2); +\path[line width=4.0,bicolor={col1}{col4}, bend right=15.0, opacity=0.44927248804724607] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.9931822119367133] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.5360934077852146] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/MixedStates/werner/OtherSolutions/graph_werner.aux b/pytheus/graphs/MixedStates/werner/OtherSolutions/graph_werner.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/MixedStates/werner/OtherSolutions/graph_werner.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/MixedStates/werner/OtherSolutions/graph_werner.pdf b/pytheus/graphs/MixedStates/werner/OtherSolutions/graph_werner.pdf new file mode 100644 index 00000000..3eb3a8c3 Binary files /dev/null and b/pytheus/graphs/MixedStates/werner/OtherSolutions/graph_werner.pdf differ diff --git a/pytheus/graphs/MixedStates/werner/OtherSolutions/graph_werner.tex b/pytheus/graphs/MixedStates/werner/OtherSolutions/graph_werner.tex new file mode 100644 index 00000000..00de5009 --- /dev/null +++ b/pytheus/graphs/MixedStates/werner/OtherSolutions/graph_werner.tex @@ -0,0 +1,45 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [star,star points=10] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}3}; +\path[line width=4.0,bicolor={col0}{col0}, bend right=0.0, opacity=0.8312290374080165] (0) to (1); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=0.9986222539009573] (0) to (2); +\path[line width=4.0,bicolor={col0}{col2}, bend right=11.25, opacity=0.4486519810089067] (0) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.9918336810171423] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-15.0, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col0}{col3}, bend right=0.0, opacity=0.4492725046703934] (1) to (2); +\path[line width=4.0,bicolor={col1}{col4}, bend right=15.0, opacity=0.44927248804724607] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.9931822119367133] (1) to (3); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.5360934077852146] (2) to (3); + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/MixedStates/werner/OtherSolutions/plot_werner_rough-9-6-0.0000_0.2721.json b/pytheus/graphs/MixedStates/werner/OtherSolutions/plot_werner_rough-9-6-0.0000_0.2721.json new file mode 100644 index 00000000..b0a98ec8 --- /dev/null +++ b/pytheus/graphs/MixedStates/werner/OtherSolutions/plot_werner_rough-9-6-0.0000_0.2721.json @@ -0,0 +1,107 @@ +{ + "graph": { + "(0, 2, 0, 2)": 0.4450774437544219, + "(1, 2, 1, 4)": 0.4456930070376479, + "(1, 2, 0, 3)": 0.44569302352835394, + "(2, 3, 1, 0)": 0.5318221999467856, + "(0, 1, 0, 0)": 0.8246064005157355, + "(0, 3, 1, 0)": 0.9839314614948391, + "(1, 3, 1, 0)": 0.9852692482870801, + "(0, 2, 0, 0)": 0.9906659478980295, + "(1, 2, 0, 0)": 0.9920327171041425 + }, + "loss": [ + 1.7446499800399806e-10, + 0.27212994513114297 + ], + "history": [ + [ + 4.900978090027763e-07, + 0.2604882819400781 + ], + [ + 2.700093515439761e-07, + 0.2605089431599227 + ], + [ + 1.592618673607049e-07, + 0.26050901500934465 + ], + [ + 7.845307545828462e-07, + 0.26157087067254214 + ], + [ + 2.207468530190937e-08, + 0.257852872886134 + ], + [ + 7.85518078361136e-08, + 0.2578394541156316 + ], + [ + 4.489935172324877e-06, + 0.2576514489101275 + ], + [ + 8.232048851475327e-07, + 0.27456114560284806 + ], + [ + 8.049803112974985e-08, + 0.27562641243954467 + ], + [ + 2.453055794826575e-06, + 0.29468570043318865 + ], + [ + 2.318257747435659e-06, + 0.2947914196457151 + ], + [ + 1.1580577834457983e-06, + 0.2950318252044578 + ], + [ + 1.0309884608261655e-06, + 0.29501760202306015 + ], + [ + 1.4903794964826744e-07, + 0.2949783939397378 + ], + [ + 4.9387139933187996e-08, + 0.2950042059403065 + ], + [ + 8.226594294669098e-09, + 0.2967246048175006 + ], + [ + 7.497719112237178e-10, + 0.2967287965278044 + ], + [ + 2.998589143654584e-08, + 0.2894319141948376 + ], + [ + 1.189147569302662e-08, + 0.30110666198457736 + ], + [ + 5.963537885733672e-09, + 0.3011238327207142 + ], + [ + 5.243278700106657e-09, + 0.27213449514325005 + ], + [ + 1.7446499800399806e-10, + 0.27212994513114297 + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/MixedStates/werner/config_werner.json b/pytheus/graphs/MixedStates/werner/config_werner.json new file mode 100644 index 00000000..08fcfab8 --- /dev/null +++ b/pytheus/graphs/MixedStates/werner/config_werner.json @@ -0,0 +1,67 @@ +{ + "description": "Werner state (mixed state) corrected for alpha=69", + "bulk_thr": 0.01, + "edges_tried": 30, + "foldername": "werner", + "ftol": 1e-06, + "loss_func": "fid", + "num_anc": 1, + "num_pre": 1, + "optimizer": "L-BFGS-B", + "imaginary": false, + "real": true, + "safe_hist": true, + "samples": 100, + "target_state": [ + "000", + "011", + "100", + "111", + "201", + "310" + ], + "amplitudes": [ + 0.6194755846681934, + 0.6194755846681934, + 0.19685019685029528, + 0.19685019685029528, + 0.2783882181415011, + 0.2783882181415011 + ], + "thresholds": [ + 0.01, + 0.5 + ], + "tries_per_edge": 3, + "unicolor": false, + "topopt": true, + "seed": 3050550828, + "in_nodes": [], + "out_nodes": [ + 0, + 1, + 2 + ], + "single_emitters": [], + "removed_connections": [], + "heralding_out": false, + "number_resolving": false, + "brutal_covers": false, + "bipartite": false, + "save_hist": true, + "dimensions": [ + 4, + 2, + 2, + 1 + ], + "verts": [ + 0, + 1, + 2, + 3 + ], + "anc_detectors": [ + 3 + ] +} \ No newline at end of file diff --git a/pytheus/graphs/MixedStates/werner/graph_werner.aux b/pytheus/graphs/MixedStates/werner/graph_werner.aux new file mode 100644 index 00000000..b6401217 --- /dev/null +++ b/pytheus/graphs/MixedStates/werner/graph_werner.aux @@ -0,0 +1,2 @@ +\relax +\gdef \@abspage@last{1} diff --git a/pytheus/graphs/MixedStates/werner/graph_werner.pdf b/pytheus/graphs/MixedStates/werner/graph_werner.pdf new file mode 100644 index 00000000..f7d9f166 Binary files /dev/null and b/pytheus/graphs/MixedStates/werner/graph_werner.pdf differ diff --git a/pytheus/graphs/MixedStates/werner/graph_werner.tex b/pytheus/graphs/MixedStates/werner/graph_werner.tex new file mode 100644 index 00000000..9e854622 --- /dev/null +++ b/pytheus/graphs/MixedStates/werner/graph_werner.tex @@ -0,0 +1,48 @@ +\documentclass[border=10pt]{standalone} + + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + \usetikzlibrary{backgrounds} + + +\definecolor{vertexcol}{RGB}{250,250,250}\definecolor{col0}{RGB}{0,0,204}\definecolor{col1}{RGB}{204,0,0}\definecolor{col2}{RGB}{0,204,0}\definecolor{col3}{RGB}{255, 165, 0}\definecolor{col4}{RGB}{128,0,128}\definecolor{col5}{RGB}{255, 255, 0}\definecolor{col6}{RGB}{102, 0, 102}\definecolor{fontcolor}{RGB}{0,0,0} + + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + +\node[vertex] (0) at (3.0,0.0) [circle] {\color{fontcolor}0}; +\node[vertex] (1) at (1.8369701987210297e-16,3.0) [circle] {\color{fontcolor}1}; +\node[vertex] (2) at (-3.0,3.6739403974420594e-16) [star,star points=10] {\color{fontcolor}2}; +\node[vertex] (3) at (-5.51091059616309e-16,-3.0) [rectangle] {\color{fontcolor}3}; +\begin{scope}[on background layer] +\path[line width=4.0,bicolor={col2}{col0}, bend right=0.0, opacity=0.94526468005975] (0) to (1); +\path[line width=4.0,bicolor_neg={col0}{col3}, bend right=0.0, opacity=0.8894222076928512] (0) to (2); +\path[line width=4.0,bicolor_neg={col0}{col0}, bend right=-11.25, opacity=1.0] (0) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=11.25, opacity=0.3177660979547773] (0) to (3); +\path[line width=4.0,bicolor={col0}{col0}, bend right=-11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col1}, bend right=11.25, opacity=1.0] (1) to (2); +\path[line width=4.0,bicolor={col1}{col0}, bend right=0.0, opacity=0.5052735184079253] (1) to (3); +\path[line width=4.0,bicolor_neg={col0}{col1}, bend right=0.0, opacity=0.4754119006860716] (2) to (3); + + \end{scope} + + \end{tikzpicture} + + \end{document} + diff --git a/pytheus/graphs/MixedStates/werner/plot_werner_rough-8-6-0.0000_0.2773.json b/pytheus/graphs/MixedStates/werner/plot_werner_rough-8-6-0.0000_0.2773.json new file mode 100644 index 00000000..74912266 --- /dev/null +++ b/pytheus/graphs/MixedStates/werner/plot_werner_rough-8-6-0.0000_0.2773.json @@ -0,0 +1,159 @@ +{ + "graph": { + "(1, 2, 0, 0)": 1.0, + "(0, 3, 1, 0)": -0.3177660979547773, + "(2, 3, 1, 0)": -0.4754119006860716, + "(1, 3, 1, 0)": 0.5052735184079253, + "(0, 2, 3, 0)": -0.8894222076928512, + "(0, 1, 2, 0)": 0.94526468005975, + "(0, 3, 0, 0)": -1.0, + "(1, 2, 1, 1)": 1.0 + }, + "loss": [ + 3.635503009746799e-11, + 0.2773260655628518 + ], + "seed": 3366127666, + "history": [ + [ + "{(0, 1, 0, 0): 0.7881221066996548,\n (0, 1, 0, 1): 0.4472341358411332,\n (0, 1, 1, 0): 0.25550631485709563,\n (0, 1, 1, 1): 0.1587147073803913,\n (0, 1, 2, 0): 0.6370002319320774,\n (0, 1, 2, 1): 0.12439643905979929,\n (0, 1, 3, 0): 0.11483398233766093,\n (0, 1, 3, 1): 0.8222824001532065,\n (0, 2, 0, 0): -0.16022468548430532,\n (0, 2, 0, 1): -0.7232246255959728,\n (0, 2, 1, 0): -0.030778843524838954,\n (0, 2, 1, 1): -0.20897314655838647,\n (0, 2, 2, 0): 0.3761948710755736,\n (0, 2, 2, 1): -0.3932408331690098,\n (0, 2, 3, 0): -0.27927547165973715,\n (0, 2, 3, 1): 0.8572829486476944,\n (0, 3, 0, 0): -0.9950000534236377,\n (0, 3, 1, 0): -0.3161792366983622,\n (0, 3, 2, 0): 0.3182161759603215,\n (0, 3, 3, 0): 0.11656309212070123,\n (1, 2, 0, 0): 0.9818474582628828,\n (1, 2, 0, 1): -0.6163647039463677,\n (1, 2, 1, 0): -0.3428181636492445,\n (1, 2, 1, 1): 0.84247326568657,\n (1, 3, 0, 0): 0.16752663485650962,\n (1, 3, 1, 0): 0.4845043057925111,\n (2, 3, 0, 0): -0.5892787854365988,\n (2, 3, 1, 0): -0.6245071450856293}", + [ + 4.530670499880429e-07, + 0.15109574269879789 + ] + ], + [ + "{(0, 1, 0, 0): 0.786695287281409,\n (0, 1, 0, 1): 0.4444883942443119,\n (0, 1, 1, 0): 0.26309151064187464,\n (0, 1, 1, 1): 0.18003734234472535,\n (0, 1, 2, 0): 0.6363258054981198,\n (0, 1, 2, 1): 0.1255692425493528,\n (0, 1, 3, 0): 0.11469448671100917,\n (0, 1, 3, 1): 0.8209027199514203,\n (0, 2, 0, 0): -0.14838913154748581,\n (0, 2, 0, 1): -0.7319142042380242,\n (0, 2, 1, 1): -0.18255127634378898,\n (0, 2, 2, 0): 0.3766144134919256,\n (0, 2, 2, 1): -0.39436630593193633,\n (0, 2, 3, 0): -0.2780247209121298,\n (0, 2, 3, 1): 0.8572055395578227,\n (0, 3, 0, 0): -0.9940039290538668,\n (0, 3, 1, 0): -0.3163743539632587,\n (0, 3, 2, 0): 0.3190382303343847,\n (0, 3, 3, 0): 0.11647653727637851,\n (1, 2, 0, 0): 0.9836681302868439,\n (1, 2, 0, 1): -0.6161530791592927,\n (1, 2, 1, 0): -0.33623934324395877,\n (1, 2, 1, 1): 0.8423350116027953,\n (1, 3, 0, 0): 0.16728202605349543,\n (1, 3, 1, 0): 0.48291937551205766,\n (2, 3, 0, 0): -0.5920754610259081,\n (2, 3, 1, 0): -0.6243257399037443}", + [ + 7.17958337226321e-08, + 0.15169494384767868 + ] + ], + [ + "{(0, 1, 0, 0): 0.8762247508441695,\n (0, 1, 0, 1): 0.4173726001568484,\n (0, 1, 1, 0): 0.27859169503744247,\n (0, 1, 1, 1): 0.176486382594233,\n (0, 1, 2, 0): 0.6538729148646188,\n (0, 1, 2, 1): 0.135923347631531,\n (0, 1, 3, 1): 0.7476295807287204,\n (0, 2, 0, 0): -0.14667044062409587,\n (0, 2, 0, 1): -0.7267055840465382,\n (0, 2, 1, 1): -0.18239300694960542,\n (0, 2, 2, 0): 0.3831669620214886,\n (0, 2, 2, 1): -0.4100698876393646,\n (0, 2, 3, 0): -0.36591491553674377,\n (0, 2, 3, 1): 0.8389750196230552,\n (0, 3, 0, 0): -0.954053105973682,\n (0, 3, 1, 0): -0.3029059504244297,\n (0, 3, 2, 0): 0.3975270479036797,\n (0, 3, 3, 0): -3.3333311326543946e-05,\n (1, 2, 0, 0): 0.9854326430976689,\n (1, 2, 0, 1): -0.5935222114756838,\n (1, 2, 1, 0): -0.35026730430051944,\n (1, 2, 1, 1): 0.8143209481818483,\n (1, 3, 0, 0): -1.2716320567509134e-05,\n (1, 3, 1, 0): 0.5756660124926538,\n (2, 3, 0, 0): -0.5988781743703684,\n (2, 3, 1, 0): -0.6460650489967644}", + [ + 5.612747200345325e-08, + 0.15169163610779712 + ] + ], + [ + "{(0, 1, 0, 0): 0.8762640416368136,\n (0, 1, 0, 1): 0.4173334425907493,\n (0, 1, 1, 0): 0.2785807038294929,\n (0, 1, 1, 1): 0.17653274550776574,\n (0, 1, 2, 0): 0.6538907672507651,\n (0, 1, 2, 1): 0.13587132258056966,\n (0, 1, 3, 1): 0.7476026800249689,\n (0, 2, 0, 0): -0.14662618713431103,\n (0, 2, 0, 1): -0.7267116680686826,\n (0, 2, 1, 1): -0.18235714674589115,\n (0, 2, 2, 0): 0.38318057335577765,\n (0, 2, 2, 1): -0.4100361146549377,\n (0, 2, 3, 0): -0.3659056562767135,\n (0, 2, 3, 1): 0.8389904739274804,\n (0, 3, 0, 0): -0.9540622653135891,\n (0, 3, 1, 0): -0.3029091256622818,\n (0, 3, 2, 0): 0.3975027895305789,\n (0, 3, 3, 0): -1.2700703753745475e-06,\n (1, 2, 0, 0): 0.9854365621849261,\n (1, 2, 0, 1): -0.5934839309859872,\n (1, 2, 1, 0): -0.3502874326439665,\n (1, 2, 1, 1): 0.814335558716779,\n (1, 3, 1, 0): 0.5756527564298064,\n (2, 3, 0, 0): -0.5989131908043891,\n (2, 3, 1, 0): -0.6460442878263083}", + [ + 4.8488438486593566e-08, + 0.1516899907306476 + ] + ], + [ + "{(0, 1, 0, 0): 0.8762837814020923,\n (0, 1, 0, 1): 0.41731511280860306,\n (0, 1, 1, 0): 0.27856997907506936,\n (0, 1, 1, 1): 0.17657228054969346,\n (0, 1, 2, 0): 0.6539056997503713,\n (0, 1, 2, 1): 0.1358365725998806,\n (0, 1, 3, 1): 0.7475882804324119,\n (0, 2, 0, 0): -0.14659401287104046,\n (0, 2, 0, 1): -0.726725157278364,\n (0, 2, 1, 1): -0.18232034285260545,\n (0, 2, 2, 0): 0.3831880673611978,\n (0, 2, 2, 1): -0.4100121005309024,\n (0, 2, 3, 0): -0.3658956420650261,\n (0, 2, 3, 1): 0.8389940266411413,\n (0, 3, 0, 0): -0.954065118586748,\n (0, 3, 1, 0): -0.3029129004205675,\n (0, 3, 2, 0): 0.3974965167704865,\n (1, 2, 0, 0): 0.9854312220122046,\n (1, 2, 0, 1): -0.5934639802783349,\n (1, 2, 1, 0): -0.35029468240032113,\n (1, 2, 1, 1): 0.814355087539684,\n (1, 3, 1, 0): 0.5756366470938,\n (2, 3, 0, 0): -0.5989268576497535,\n (2, 3, 1, 0): -0.646043921452712}", + [ + 1.1086096513013288e-06, + 0.1523640241146802 + ] + ], + [ + "{(0, 1, 0, 0): 0.8706408687000916,\n (0, 1, 0, 1): 0.4539889104421438,\n (0, 1, 1, 0): 0.27707080764140896,\n (0, 1, 1, 1): 0.19379439483550995,\n (0, 1, 2, 0): 0.6437677621211865,\n (0, 1, 3, 1): 0.7456989929639921,\n (0, 2, 0, 0): -0.1701538551523401,\n (0, 2, 0, 1): -0.7380739110745214,\n (0, 2, 1, 1): -0.18256381851708858,\n (0, 2, 2, 0): 0.2552750354795133,\n (0, 2, 2, 1): -0.504989117521428,\n (0, 2, 3, 0): -0.36454489503907817,\n (0, 2, 3, 1): 0.8393900103321579,\n (0, 3, 0, 0): -0.9500239450576637,\n (0, 3, 1, 0): -0.3005623601319443,\n (0, 3, 2, 0): 0.3849816353611503,\n (1, 2, 0, 0): 0.993480304481554,\n (1, 2, 0, 1): -0.6040022167866885,\n (1, 2, 1, 0): -0.3884762235798042,\n (1, 2, 1, 1): 0.7683478688734736,\n (1, 3, 1, 0): 0.5852486294390924,\n (2, 3, 0, 0): -0.5944653097768166,\n (2, 3, 1, 0): -0.6585541493745094}", + [ + 5.868898489413965e-08, + 0.15044312511418667 + ] + ], + [ + "{(0, 1, 0, 0): 0.8709204466780168,\n (0, 1, 0, 1): 0.5114147925069455,\n (0, 1, 1, 0): 0.2763767826851202,\n (0, 1, 1, 1): 0.16265066867371603,\n (0, 1, 2, 0): 0.6387274621080117,\n (0, 1, 3, 1): 0.7384716683448923,\n (0, 2, 0, 1): -0.7251235367088683,\n (0, 2, 1, 1): -0.2302135822217626,\n (0, 2, 2, 0): 0.228718508549458,\n (0, 2, 2, 1): -0.5192540795877524,\n (0, 2, 3, 0): -0.35696636882558214,\n (0, 2, 3, 1): 0.8386896460964507,\n (0, 3, 0, 0): -0.9374833649590358,\n (0, 3, 1, 0): -0.2980256524421124,\n (0, 3, 2, 0): 0.3946102341376949,\n (1, 2, 0, 0): 0.9978408888931111,\n (1, 2, 0, 1): -0.6113203230914812,\n (1, 2, 1, 0): -0.3361535815055233,\n (1, 2, 1, 1): 0.7627589696757995,\n (1, 3, 1, 0): 0.5795430878862541,\n (2, 3, 0, 0): -0.6161102254428794,\n (2, 3, 1, 0): -0.6582741082312673}", + [ + 7.591979133136917e-07, + 0.15489976600456823 + ] + ], + [ + "{(0, 1, 0, 0): 0.9173454711837078,\n (0, 1, 0, 1): 0.0027470402641993925,\n (0, 1, 1, 0): 0.2917459170885017,\n (0, 1, 2, 0): 0.6922087224134136,\n (0, 1, 3, 1): 0.7949712295741627,\n (0, 2, 0, 1): -0.8288699337271886,\n (0, 2, 1, 1): -0.2605260848919692,\n (0, 2, 2, 0): 0.0016451183124489724,\n (0, 2, 2, 1): -0.5312226908583639,\n (0, 2, 3, 0): -0.4287518462112013,\n (0, 2, 3, 1): 0.8493230309824255,\n (0, 3, 0, 0): -0.9996561099163416,\n (0, 3, 1, 0): -0.3188969595515794,\n (0, 3, 2, 0): 0.3408439853752856,\n (1, 2, 0, 0): 0.996932160886908,\n (1, 2, 0, 1): -0.5937830907066131,\n (1, 2, 1, 0): -0.0015636352553314368,\n (1, 2, 1, 1): 0.9440269162262016,\n (1, 3, 1, 0): 0.6053817030502977,\n (2, 3, 0, 0): -0.4907975131801725,\n (2, 3, 1, 0): -0.6468945878002095}", + [ + 8.688434585124583e-07, + 0.1549238224605175 + ] + ], + [ + "{(0, 1, 0, 0): 0.9174055897601892,\n (0, 1, 0, 1): 0.0024311374047706743,\n (0, 1, 1, 0): 0.2916588756033253,\n (0, 1, 2, 0): 0.6922385652081655,\n (0, 1, 3, 1): 0.795042017393857,\n (0, 2, 0, 1): -0.8288012997401512,\n (0, 2, 1, 1): -0.2607550794931489,\n (0, 2, 2, 0): 0.0014240951127052837,\n (0, 2, 2, 1): -0.531261171188204,\n (0, 2, 3, 0): -0.4288678090061845,\n (0, 2, 3, 1): 0.8493447691491384,\n (0, 3, 0, 0): -0.9995641612459042,\n (0, 3, 1, 0): -0.3186388882093694,\n (0, 3, 2, 0): 0.34077746081161503,\n (1, 2, 0, 0): 0.9968196286816974,\n (1, 2, 0, 1): -0.59366341976739,\n (1, 2, 1, 1): 0.9440125277358747,\n (1, 3, 1, 0): 0.6055320494515369,\n (2, 3, 0, 0): -0.4908691225652985,\n (2, 3, 1, 0): -0.6470039003586648}", + [ + 5.748137753558424e-07, + 0.154937441036898 + ] + ], + [ + "{(0, 1, 0, 0): 0.9173870379335409,\n (0, 1, 0, 1): 0.0021640954606559995,\n (0, 1, 1, 0): 0.2915812821160934,\n (0, 1, 2, 0): 0.6922203575506531,\n (0, 1, 3, 1): 0.7950632670624416,\n (0, 2, 0, 1): -0.8287524166206225,\n (0, 2, 1, 1): -0.26099042457003285,\n (0, 2, 2, 1): -0.531261748504174,\n (0, 2, 3, 0): -0.4289202670441256,\n (0, 2, 3, 1): 0.8493646976523302,\n (0, 3, 0, 0): -0.999562407093534,\n (0, 3, 1, 0): -0.31852658915036947,\n (0, 3, 2, 0): 0.3408155636658402,\n (1, 2, 0, 0): 0.9967512056370336,\n (1, 2, 0, 1): -0.5936688043490324,\n (1, 2, 1, 1): 0.9440553046287986,\n (1, 3, 1, 0): 0.6056320805455531,\n (2, 3, 0, 0): -0.49083582697677247,\n (2, 3, 1, 0): -0.6469735246568638}", + [ + 2.1505886094175253e-07, + 0.15503284615614044 + ] + ], + [ + "{(0, 1, 0, 0): 0.9172882058803854,\n (0, 1, 1, 0): 0.29149980284827326,\n (0, 1, 2, 0): 0.6921470495247055,\n (0, 1, 3, 1): 0.79504976675053,\n (0, 2, 0, 1): -0.828895602083389,\n (0, 2, 1, 1): -0.2611656399678714,\n (0, 2, 2, 1): -0.5312616485841023,\n (0, 2, 3, 0): -0.4288984178549895,\n (0, 2, 3, 1): 0.8493607896673032,\n (0, 3, 0, 0): -0.9996660020034412,\n (0, 3, 1, 0): -0.3183164572383881,\n (0, 3, 2, 0): 0.3407793703952184,\n (1, 2, 0, 0): 0.9964904142498595,\n (1, 2, 0, 1): -0.5936252169933046,\n (1, 2, 1, 1): 0.9443838085179043,\n (1, 3, 1, 0): 0.6058825357564198,\n (2, 3, 0, 0): -0.49054656946978437,\n (2, 3, 1, 0): -0.6469209222902214}", + [ + 2.6953033616106126e-07, + 0.28906442021216083 + ] + ], + [ + "{(0, 1, 0, 0): 0.8649243827627372,\n (0, 1, 1, 0): 0.2750606763370401,\n (0, 1, 2, 0): 0.6337192196534105,\n (0, 1, 3, 1): 0.687562763281858,\n (0, 2, 0, 1): -0.0061247994361168425,\n (0, 2, 2, 1): -0.8979290881697451,\n (0, 2, 3, 0): -0.6206442872914463,\n (0, 2, 3, 1): 0.9995837013368886,\n (0, 3, 0, 0): -0.989217136107312,\n (0, 3, 1, 0): -0.3147975654156711,\n (0, 3, 2, 0): 0.305764061884794,\n (1, 2, 0, 0): 0.6903551893716765,\n (1, 2, 0, 1): -0.4240753326627493,\n (1, 2, 1, 1): 0.9800898984707648,\n (1, 3, 1, 0): 0.333608599817424,\n (2, 3, 0, 0): -0.33354719992261517,\n (2, 3, 1, 0): -0.48452883101456184}", + [ + 3.8295343030014806e-07, + 0.2894738178885826 + ] + ], + [ + "{(0, 1, 0, 0): 0.8649037437168131,\n (0, 1, 1, 0): 0.27498449283305026,\n (0, 1, 2, 0): 0.6334475702851102,\n (0, 1, 3, 1): 0.6876495161085663,\n (0, 2, 2, 1): -0.8979615288863617,\n (0, 2, 3, 0): -0.6206025207014697,\n (0, 2, 3, 1): 0.9994951943578102,\n (0, 3, 0, 0): -0.9896372667021796,\n (0, 3, 1, 0): -0.31432758580463943,\n (0, 3, 2, 0): 0.30566258750028985,\n (1, 2, 0, 0): 0.6897173773494645,\n (1, 2, 0, 1): -0.4235565143408387,\n (1, 2, 1, 1): 0.9810050108964441,\n (1, 3, 1, 0): 0.3333529598636393,\n (2, 3, 0, 0): -0.3326911291523366,\n (2, 3, 1, 0): -0.48480594268165417}", + [ + 2.503209826087982e-07, + 0.3018362252829898 + ] + ], + [ + "{(0, 1, 0, 0): 0.00023883527948118273,\n (0, 1, 2, 0): 1.0,\n (0, 1, 3, 1): 0.7545316571020606,\n (0, 2, 2, 1): -0.8620654118401857,\n (0, 2, 3, 0): -0.6714960610236927,\n (0, 2, 3, 1): 0.997822558876066,\n (0, 3, 0, 0): -0.9679346539340299,\n (0, 3, 1, 0): -0.3072233398915267,\n (0, 3, 2, 0): 0.2838666970106042,\n (1, 2, 0, 0): 0.9730962235510437,\n (1, 2, 0, 1): -0.0003118924126267943,\n (1, 2, 1, 1): 0.9736386421173043,\n (1, 3, 1, 0): 0.3204105234385468,\n (2, 3, 0, 0): -0.2762993875305865,\n (2, 3, 1, 0): -0.42335165186431306}", + [ + 9.143906465336471e-08, + 0.3018164272609839 + ] + ], + [ + "{(0, 1, 2, 0): 0.9999620081682882,\n (0, 1, 3, 1): 0.7545748891864222,\n (0, 2, 2, 1): -0.8621121633315177,\n (0, 2, 3, 0): -0.671427060663059,\n (0, 2, 3, 1): 0.9977447988558119,\n (0, 3, 0, 0): -0.9678719707423745,\n (0, 3, 1, 0): -0.3077873664950239,\n (0, 3, 2, 0): 0.28378329705695043,\n (1, 2, 0, 0): 0.9734131811207514,\n (1, 2, 0, 1): -1.9481872400869168e-05,\n (1, 2, 1, 1): 0.9734133445600492,\n (1, 3, 1, 0): 0.3201495877209318,\n (2, 3, 0, 0): -0.27607659907611776,\n (2, 3, 1, 0): -0.42348446784481886}", + [ + 8.59296112043495e-09, + 0.301820325471055 + ] + ], + [ + "{(0, 1, 2, 0): 0.9999694250801712,\n (0, 1, 3, 1): 0.7545703017331655,\n (0, 2, 2, 1): -0.8621352712383636,\n (0, 2, 3, 0): -0.6714404222159269,\n (0, 2, 3, 1): 0.9977569817982843,\n (0, 3, 0, 0): -0.9679007534400137,\n (0, 3, 1, 0): -0.30766323540621215,\n (0, 3, 2, 0): 0.2836611977813571,\n (1, 2, 0, 0): 0.9733927836209767,\n (1, 2, 1, 1): 0.9733875103725915,\n (1, 3, 1, 0): 0.32027783402518784,\n (2, 3, 0, 0): -0.27616135187866736,\n (2, 3, 1, 0): -0.42343854569137485}", + [ + 1.5737567915508066e-09, + 0.2936844270689277 + ] + ], + [ + "{(0, 1, 2, 0): 0.9384498551406502,\n (0, 1, 3, 1): 0.8413866714835369,\n (0, 2, 2, 1): -3.0221879432977756e-05,\n (0, 2, 3, 0): -1.0,\n (0, 2, 3, 1): 0.8967465197287433,\n (0, 3, 0, 0): -0.988112562819898,\n (0, 3, 1, 0): -0.31399383748921206,\n (0, 3, 2, 0): -2.0906519345255907e-05,\n (1, 2, 0, 0): 0.9722440329057831,\n (1, 2, 1, 1): 0.9722511311411268,\n (1, 3, 1, 0): 0.4316988169950623,\n (2, 3, 1, 0): -0.4600688011747605}", + [ + 6.888528636395108e-10, + 0.2936853455002858 + ] + ], + [ + "{(0, 1, 2, 0): 0.9384406735962827,\n (0, 1, 3, 1): 0.8413976404869651,\n (0, 2, 2, 1): -2.5536738269060344e-05,\n (0, 2, 3, 0): -1.0,\n (0, 2, 3, 1): 0.8967362168591265,\n (0, 3, 0, 0): -0.9881119410950073,\n (0, 3, 1, 0): -0.3139901848554591,\n (1, 2, 0, 0): 0.9722463421696627,\n (1, 2, 1, 1): 0.9722470677248771,\n (1, 3, 1, 0): 0.43170135940579,\n (2, 3, 1, 0): -0.460070188953542}", + [ + 6.383190642722525e-10, + 0.2936853454750755 + ] + ], + [ + "{(0, 1, 2, 0): 0.9384406735962827,\n (0, 1, 3, 1): 0.8413976404869651,\n (0, 2, 3, 0): -1.0,\n (0, 2, 3, 1): 0.8967362168591265,\n (0, 3, 0, 0): -0.9881119410950073,\n (1, 2, 0, 0): 0.9722463421696627,\n (1, 2, 1, 1): 0.9722470677248771,\n (0, 3, 1, 0): -0.3139901848554591,\n (1, 3, 1, 0): 0.43170135940579,\n (2, 3, 1, 0): -0.460070188953542}", + [ + 9.151314150912526e-10, + 0.2773249647762379 + ] + ], + [ + "{(0, 1, 2, 0): 0.9452528561845971,\n (0, 2, 3, 0): -0.889435663595842,\n (0, 2, 3, 1): 4.943221709909068e-06,\n (0, 3, 0, 0): -1.0,\n (1, 2, 0, 0): 1.0,\n (1, 2, 1, 1): 1.0,\n (0, 3, 1, 0): -0.31777738892294366,\n (1, 3, 1, 0): 0.5052971550560008,\n (2, 3, 1, 0): -0.4753883750601674}", + [ + 3.635503009746799e-11, + 0.2773260655628518 + ] + ] + ] +} \ No newline at end of file diff --git a/pytheus/graphs/plots/graph_2pES_3d.pdf b/pytheus/graphs/plots/graph_2pES_3d.pdf new file mode 100644 index 00000000..b309a7ad Binary files /dev/null and b/pytheus/graphs/plots/graph_2pES_3d.pdf differ diff --git a/pytheus/graphs/plots/graph_3pES.pdf b/pytheus/graphs/plots/graph_3pES.pdf new file mode 100644 index 00000000..0199203c Binary files /dev/null and b/pytheus/graphs/plots/graph_3pES.pdf differ diff --git a/pytheus/graphs/plots/graph_AMEepsilon6qubits.pdf b/pytheus/graphs/plots/graph_AMEepsilon6qubits.pdf new file mode 100644 index 00000000..27f70134 Binary files /dev/null and b/pytheus/graphs/plots/graph_AMEepsilon6qubits.pdf differ diff --git a/pytheus/graphs/plots/graph_BellGem3D.pdf b/pytheus/graphs/plots/graph_BellGem3D.pdf new file mode 100644 index 00000000..66795d6f Binary files /dev/null and b/pytheus/graphs/plots/graph_BellGem3D.pdf differ diff --git a/pytheus/graphs/plots/graph_ES3d_sp.pdf b/pytheus/graphs/plots/graph_ES3d_sp.pdf new file mode 100644 index 00000000..079c8d7b Binary files /dev/null and b/pytheus/graphs/plots/graph_ES3d_sp.pdf differ diff --git a/pytheus/graphs/plots/graph_ES_246.pdf b/pytheus/graphs/plots/graph_ES_246.pdf new file mode 100644 index 00000000..27694b8a Binary files /dev/null and b/pytheus/graphs/plots/graph_ES_246.pdf differ diff --git a/pytheus/graphs/plots/graph_HD.pdf b/pytheus/graphs/plots/graph_HD.pdf new file mode 100644 index 00000000..d38533aa Binary files /dev/null and b/pytheus/graphs/plots/graph_HD.pdf differ diff --git a/pytheus/graphs/plots/graph_HS_measurement.pdf b/pytheus/graphs/plots/graph_HS_measurement.pdf new file mode 100644 index 00000000..337e0a0c Binary files /dev/null and b/pytheus/graphs/plots/graph_HS_measurement.pdf differ diff --git a/pytheus/graphs/plots/graph_Laflamme.pdf b/pytheus/graphs/plots/graph_Laflamme.pdf new file mode 100644 index 00000000..2da41476 Binary files /dev/null and b/pytheus/graphs/plots/graph_Laflamme.pdf differ diff --git a/pytheus/graphs/plots/graph_Lstate.pdf b/pytheus/graphs/plots/graph_Lstate.pdf new file mode 100644 index 00000000..605fc701 Binary files /dev/null and b/pytheus/graphs/plots/graph_Lstate.pdf differ diff --git a/pytheus/graphs/plots/graph_MKP_2d.pdf b/pytheus/graphs/plots/graph_MKP_2d.pdf new file mode 100644 index 00000000..c39cd2db Binary files /dev/null and b/pytheus/graphs/plots/graph_MKP_2d.pdf differ diff --git a/pytheus/graphs/plots/graph_MKP_3d.pdf b/pytheus/graphs/plots/graph_MKP_3d.pdf new file mode 100644 index 00000000..037aad3b Binary files /dev/null and b/pytheus/graphs/plots/graph_MKP_3d.pdf differ diff --git a/pytheus/graphs/plots/graph_Shor.pdf b/pytheus/graphs/plots/graph_Shor.pdf new file mode 100644 index 00000000..4f10ef7e Binary files /dev/null and b/pytheus/graphs/plots/graph_Shor.pdf differ diff --git a/pytheus/graphs/plots/graph_Steane.pdf b/pytheus/graphs/plots/graph_Steane.pdf new file mode 100644 index 00000000..740bd047 Binary files /dev/null and b/pytheus/graphs/plots/graph_Steane.pdf differ diff --git a/pytheus/graphs/plots/graph_W3W3.pdf b/pytheus/graphs/plots/graph_W3W3.pdf new file mode 100644 index 00000000..b2ab7dee Binary files /dev/null and b/pytheus/graphs/plots/graph_W3W3.pdf differ diff --git a/pytheus/graphs/plots/graph_W3_sp.pdf b/pytheus/graphs/plots/graph_W3_sp.pdf new file mode 100644 index 00000000..7e673ed6 Binary files /dev/null and b/pytheus/graphs/plots/graph_W3_sp.pdf differ diff --git a/pytheus/graphs/plots/graph_W4_sp.pdf b/pytheus/graphs/plots/graph_W4_sp.pdf new file mode 100644 index 00000000..62c232bc Binary files /dev/null and b/pytheus/graphs/plots/graph_W4_sp.pdf differ diff --git a/pytheus/graphs/plots/graph_W5W5.pdf b/pytheus/graphs/plots/graph_W5W5.pdf new file mode 100644 index 00000000..473cf8e2 Binary files /dev/null and b/pytheus/graphs/plots/graph_W5W5.pdf differ diff --git a/pytheus/graphs/plots/graph_W5_sp.pdf b/pytheus/graphs/plots/graph_W5_sp.pdf new file mode 100644 index 00000000..a15a98e0 Binary files /dev/null and b/pytheus/graphs/plots/graph_W5_sp.pdf differ diff --git a/pytheus/graphs/plots/graph_W_measurement.pdf b/pytheus/graphs/plots/graph_W_measurement.pdf new file mode 100644 index 00000000..be7b2a0e Binary files /dev/null and b/pytheus/graphs/plots/graph_W_measurement.pdf differ diff --git a/pytheus/graphs/plots/graph_YC.pdf b/pytheus/graphs/plots/graph_YC.pdf new file mode 100644 index 00000000..d31bb4ee Binary files /dev/null and b/pytheus/graphs/plots/graph_YC.pdf differ diff --git a/pytheus/graphs/plots/graph_YC_measurement.pdf b/pytheus/graphs/plots/graph_YC_measurement.pdf new file mode 100644 index 00000000..7c3470ef Binary files /dev/null and b/pytheus/graphs/plots/graph_YC_measurement.pdf differ diff --git a/pytheus/graphs/plots/graph_aklt3spin1.pdf b/pytheus/graphs/plots/graph_aklt3spin1.pdf new file mode 100644 index 00000000..7584a423 Binary files /dev/null and b/pytheus/graphs/plots/graph_aklt3spin1.pdf differ diff --git a/pytheus/graphs/plots/graph_aklt3spin2.pdf b/pytheus/graphs/plots/graph_aklt3spin2.pdf new file mode 100644 index 00000000..1f4fa3be Binary files /dev/null and b/pytheus/graphs/plots/graph_aklt3spin2.pdf differ diff --git a/pytheus/graphs/plots/graph_aklt4spin1.pdf b/pytheus/graphs/plots/graph_aklt4spin1.pdf new file mode 100644 index 00000000..ae78152a Binary files /dev/null and b/pytheus/graphs/plots/graph_aklt4spin1.pdf differ diff --git a/pytheus/graphs/plots/graph_ame_5qubit_a.pdf b/pytheus/graphs/plots/graph_ame_5qubit_a.pdf new file mode 100644 index 00000000..80b3bf3c Binary files /dev/null and b/pytheus/graphs/plots/graph_ame_5qubit_a.pdf differ diff --git a/pytheus/graphs/plots/graph_ame_5qubit_b.pdf b/pytheus/graphs/plots/graph_ame_5qubit_b.pdf new file mode 100644 index 00000000..0d7a76c7 Binary files /dev/null and b/pytheus/graphs/plots/graph_ame_5qubit_b.pdf differ diff --git a/pytheus/graphs/plots/graph_bssb4.pdf b/pytheus/graphs/plots/graph_bssb4.pdf new file mode 100644 index 00000000..cb1f6390 Binary files /dev/null and b/pytheus/graphs/plots/graph_bssb4.pdf differ diff --git a/pytheus/graphs/plots/graph_bssb5.pdf b/pytheus/graphs/plots/graph_bssb5.pdf new file mode 100644 index 00000000..cd0421c6 Binary files /dev/null and b/pytheus/graphs/plots/graph_bssb5.pdf differ diff --git a/pytheus/graphs/plots/graph_cluster_4.pdf b/pytheus/graphs/plots/graph_cluster_4.pdf new file mode 100644 index 00000000..05cd1811 Binary files /dev/null and b/pytheus/graphs/plots/graph_cluster_4.pdf differ diff --git a/pytheus/graphs/plots/graph_cluster_5.pdf b/pytheus/graphs/plots/graph_cluster_5.pdf new file mode 100644 index 00000000..cfc8b25d Binary files /dev/null and b/pytheus/graphs/plots/graph_cluster_5.pdf differ diff --git a/pytheus/graphs/plots/graph_cnot22_sp.pdf b/pytheus/graphs/plots/graph_cnot22_sp.pdf new file mode 100644 index 00000000..3ceb7b5c Binary files /dev/null and b/pytheus/graphs/plots/graph_cnot22_sp.pdf differ diff --git a/pytheus/graphs/plots/graph_cnot23.pdf b/pytheus/graphs/plots/graph_cnot23.pdf new file mode 100644 index 00000000..b86b3e70 Binary files /dev/null and b/pytheus/graphs/plots/graph_cnot23.pdf differ diff --git a/pytheus/graphs/plots/graph_cnot23_post.pdf b/pytheus/graphs/plots/graph_cnot23_post.pdf new file mode 100644 index 00000000..e03ed920 Binary files /dev/null and b/pytheus/graphs/plots/graph_cnot23_post.pdf differ diff --git a/pytheus/graphs/plots/graph_cnot23_sp.pdf b/pytheus/graphs/plots/graph_cnot23_sp.pdf new file mode 100644 index 00000000..eb3d5154 Binary files /dev/null and b/pytheus/graphs/plots/graph_cnot23_sp.pdf differ diff --git a/pytheus/graphs/plots/graph_cnot23_sp_post.pdf b/pytheus/graphs/plots/graph_cnot23_sp_post.pdf new file mode 100644 index 00000000..f5386a46 Binary files /dev/null and b/pytheus/graphs/plots/graph_cnot23_sp_post.pdf differ diff --git a/pytheus/graphs/plots/graph_cnot24_post.pdf b/pytheus/graphs/plots/graph_cnot24_post.pdf new file mode 100644 index 00000000..bffabee0 Binary files /dev/null and b/pytheus/graphs/plots/graph_cnot24_post.pdf differ diff --git a/pytheus/graphs/plots/graph_cnot33_0.pdf b/pytheus/graphs/plots/graph_cnot33_0.pdf new file mode 100644 index 00000000..23f289fb Binary files /dev/null and b/pytheus/graphs/plots/graph_cnot33_0.pdf differ diff --git a/pytheus/graphs/plots/graph_cnot33_post.pdf b/pytheus/graphs/plots/graph_cnot33_post.pdf new file mode 100644 index 00000000..a5ef0ffa Binary files /dev/null and b/pytheus/graphs/plots/graph_cnot33_post.pdf differ diff --git a/pytheus/graphs/plots/graph_cnot33_sp.pdf b/pytheus/graphs/plots/graph_cnot33_sp.pdf new file mode 100644 index 00000000..1aebe0a6 Binary files /dev/null and b/pytheus/graphs/plots/graph_cnot33_sp.pdf differ diff --git a/pytheus/graphs/plots/graph_cnot44_0.pdf b/pytheus/graphs/plots/graph_cnot44_0.pdf new file mode 100644 index 00000000..ade69bb2 Binary files /dev/null and b/pytheus/graphs/plots/graph_cnot44_0.pdf differ diff --git a/pytheus/graphs/plots/graph_complex4qubit.pdf b/pytheus/graphs/plots/graph_complex4qubit.pdf new file mode 100644 index 00000000..e723ec68 Binary files /dev/null and b/pytheus/graphs/plots/graph_complex4qubit.pdf differ diff --git a/pytheus/graphs/plots/graph_controlled_z.pdf b/pytheus/graphs/plots/graph_controlled_z.pdf new file mode 100644 index 00000000..3664b93a Binary files /dev/null and b/pytheus/graphs/plots/graph_controlled_z.pdf differ diff --git a/pytheus/graphs/plots/graph_controlled_z_post_sp.pdf b/pytheus/graphs/plots/graph_controlled_z_post_sp.pdf new file mode 100644 index 00000000..1cd86fc6 Binary files /dev/null and b/pytheus/graphs/plots/graph_controlled_z_post_sp.pdf differ diff --git a/pytheus/graphs/plots/graph_controlled_z_sp.pdf b/pytheus/graphs/plots/graph_controlled_z_sp.pdf new file mode 100644 index 00000000..14a2fb7f Binary files /dev/null and b/pytheus/graphs/plots/graph_controlled_z_sp.pdf differ diff --git a/pytheus/graphs/plots/graph_cube.pdf b/pytheus/graphs/plots/graph_cube.pdf new file mode 100644 index 00000000..697b1c8c Binary files /dev/null and b/pytheus/graphs/plots/graph_cube.pdf differ diff --git a/pytheus/graphs/plots/graph_dicke33.pdf b/pytheus/graphs/plots/graph_dicke33.pdf new file mode 100644 index 00000000..5fc51b6a Binary files /dev/null and b/pytheus/graphs/plots/graph_dicke33.pdf differ diff --git a/pytheus/graphs/plots/graph_dicke43.pdf b/pytheus/graphs/plots/graph_dicke43.pdf new file mode 100644 index 00000000..c09c9532 Binary files /dev/null and b/pytheus/graphs/plots/graph_dicke43.pdf differ diff --git a/pytheus/graphs/plots/graph_dicke52.pdf b/pytheus/graphs/plots/graph_dicke52.pdf new file mode 100644 index 00000000..65a900de Binary files /dev/null and b/pytheus/graphs/plots/graph_dicke52.pdf differ diff --git a/pytheus/graphs/plots/graph_dicke72.pdf b/pytheus/graphs/plots/graph_dicke72.pdf new file mode 100644 index 00000000..1fadaeda Binary files /dev/null and b/pytheus/graphs/plots/graph_dicke72.pdf differ diff --git a/pytheus/graphs/plots/graph_dyck6.pdf b/pytheus/graphs/plots/graph_dyck6.pdf new file mode 100644 index 00000000..93819359 Binary files /dev/null and b/pytheus/graphs/plots/graph_dyck6.pdf differ diff --git a/pytheus/graphs/plots/graph_dyck8.pdf b/pytheus/graphs/plots/graph_dyck8.pdf new file mode 100644 index 00000000..50485186 Binary files /dev/null and b/pytheus/graphs/plots/graph_dyck8.pdf differ diff --git a/pytheus/graphs/plots/graph_fredkin_0.pdf b/pytheus/graphs/plots/graph_fredkin_0.pdf new file mode 100644 index 00000000..5fc287fc Binary files /dev/null and b/pytheus/graphs/plots/graph_fredkin_0.pdf differ diff --git a/pytheus/graphs/plots/graph_fredkin_post.pdf b/pytheus/graphs/plots/graph_fredkin_post.pdf new file mode 100644 index 00000000..40594e3f Binary files /dev/null and b/pytheus/graphs/plots/graph_fredkin_post.pdf differ diff --git a/pytheus/graphs/plots/graph_fredkin_post_sp.pdf b/pytheus/graphs/plots/graph_fredkin_post_sp.pdf new file mode 100644 index 00000000..3242ba74 Binary files /dev/null and b/pytheus/graphs/plots/graph_fredkin_post_sp.pdf differ diff --git a/pytheus/graphs/plots/graph_ghz_346.pdf b/pytheus/graphs/plots/graph_ghz_346.pdf new file mode 100644 index 00000000..18e970c7 Binary files /dev/null and b/pytheus/graphs/plots/graph_ghz_346.pdf differ diff --git a/pytheus/graphs/plots/graph_ghz_358.pdf b/pytheus/graphs/plots/graph_ghz_358.pdf new file mode 100644 index 00000000..706eec79 Binary files /dev/null and b/pytheus/graphs/plots/graph_ghz_358.pdf differ diff --git a/pytheus/graphs/plots/graph_ghz_3610.pdf b/pytheus/graphs/plots/graph_ghz_3610.pdf new file mode 100644 index 00000000..71fc739c Binary files /dev/null and b/pytheus/graphs/plots/graph_ghz_3610.pdf differ diff --git a/pytheus/graphs/plots/graph_ghz_43_2p2a.pdf b/pytheus/graphs/plots/graph_ghz_43_2p2a.pdf new file mode 100644 index 00000000..9f8c5d46 Binary files /dev/null and b/pytheus/graphs/plots/graph_ghz_43_2p2a.pdf differ diff --git a/pytheus/graphs/plots/graph_ghz_43_sp.pdf b/pytheus/graphs/plots/graph_ghz_43_sp.pdf new file mode 100644 index 00000000..884de2e3 Binary files /dev/null and b/pytheus/graphs/plots/graph_ghz_43_sp.pdf differ diff --git a/pytheus/graphs/plots/graph_ghz_448.pdf b/pytheus/graphs/plots/graph_ghz_448.pdf new file mode 100644 index 00000000..2b81a8a4 Binary files /dev/null and b/pytheus/graphs/plots/graph_ghz_448.pdf differ diff --git a/pytheus/graphs/plots/graph_ghz_538.pdf b/pytheus/graphs/plots/graph_ghz_538.pdf new file mode 100644 index 00000000..89381c29 Binary files /dev/null and b/pytheus/graphs/plots/graph_ghz_538.pdf differ diff --git a/pytheus/graphs/plots/graph_ghz_5410.pdf b/pytheus/graphs/plots/graph_ghz_5410.pdf new file mode 100644 index 00000000..ea4c2e1c Binary files /dev/null and b/pytheus/graphs/plots/graph_ghz_5410.pdf differ diff --git a/pytheus/graphs/plots/graph_ghz_62_sp.pdf b/pytheus/graphs/plots/graph_ghz_62_sp.pdf new file mode 100644 index 00000000..90aac99f Binary files /dev/null and b/pytheus/graphs/plots/graph_ghz_62_sp.pdf differ diff --git a/pytheus/graphs/plots/graph_ghz_638.pdf b/pytheus/graphs/plots/graph_ghz_638.pdf new file mode 100644 index 00000000..41939752 Binary files /dev/null and b/pytheus/graphs/plots/graph_ghz_638.pdf differ diff --git a/pytheus/graphs/plots/graph_ghz_analyzer_2d.pdf b/pytheus/graphs/plots/graph_ghz_analyzer_2d.pdf new file mode 100644 index 00000000..82178f1e Binary files /dev/null and b/pytheus/graphs/plots/graph_ghz_analyzer_2d.pdf differ diff --git a/pytheus/graphs/plots/graph_ghz_analyzer_3d.pdf b/pytheus/graphs/plots/graph_ghz_analyzer_3d.pdf new file mode 100644 index 00000000..0a127d7b Binary files /dev/null and b/pytheus/graphs/plots/graph_ghz_analyzer_3d.pdf differ diff --git a/pytheus/graphs/plots/graph_ghz_analyzer_4d.pdf b/pytheus/graphs/plots/graph_ghz_analyzer_4d.pdf new file mode 100644 index 00000000..3b492dcf Binary files /dev/null and b/pytheus/graphs/plots/graph_ghz_analyzer_4d.pdf differ diff --git a/pytheus/graphs/plots/graph_ghz_f446.pdf b/pytheus/graphs/plots/graph_ghz_f446.pdf new file mode 100644 index 00000000..13ba7934 Binary files /dev/null and b/pytheus/graphs/plots/graph_ghz_f446.pdf differ diff --git a/pytheus/graphs/plots/graph_haldaneA_3.pdf b/pytheus/graphs/plots/graph_haldaneA_3.pdf new file mode 100644 index 00000000..d6f336e0 Binary files /dev/null and b/pytheus/graphs/plots/graph_haldaneA_3.pdf differ diff --git a/pytheus/graphs/plots/graph_haldaneB_3.pdf b/pytheus/graphs/plots/graph_haldaneB_3.pdf new file mode 100644 index 00000000..f78ff631 Binary files /dev/null and b/pytheus/graphs/plots/graph_haldaneB_3.pdf differ diff --git a/pytheus/graphs/plots/graph_haldaneC_3.pdf b/pytheus/graphs/plots/graph_haldaneC_3.pdf new file mode 100644 index 00000000..8a77e2cf Binary files /dev/null and b/pytheus/graphs/plots/graph_haldaneC_3.pdf differ diff --git a/pytheus/graphs/plots/graph_heralded_bell_3d_sp.pdf b/pytheus/graphs/plots/graph_heralded_bell_3d_sp.pdf new file mode 100644 index 00000000..552e73a4 Binary files /dev/null and b/pytheus/graphs/plots/graph_heralded_bell_3d_sp.pdf differ diff --git a/pytheus/graphs/plots/graph_k2maximal4qubitsCOMPLEX.pdf b/pytheus/graphs/plots/graph_k2maximal4qubitsCOMPLEX.pdf new file mode 100644 index 00000000..565f898f Binary files /dev/null and b/pytheus/graphs/plots/graph_k2maximal4qubitsCOMPLEX.pdf differ diff --git a/pytheus/graphs/plots/graph_k2maximal4qubitsREAL.pdf b/pytheus/graphs/plots/graph_k2maximal4qubitsREAL.pdf new file mode 100644 index 00000000..100c0d50 Binary files /dev/null and b/pytheus/graphs/plots/graph_k2maximal4qubitsREAL.pdf differ diff --git a/pytheus/graphs/plots/graph_k2uniform6qubits.pdf b/pytheus/graphs/plots/graph_k2uniform6qubits.pdf new file mode 100644 index 00000000..fd6a1022 Binary files /dev/null and b/pytheus/graphs/plots/graph_k2uniform6qubits.pdf differ diff --git a/pytheus/graphs/plots/graph_k2uniform7qubits.pdf b/pytheus/graphs/plots/graph_k2uniform7qubits.pdf new file mode 100644 index 00000000..155cdef7 Binary files /dev/null and b/pytheus/graphs/plots/graph_k2uniform7qubits.pdf differ diff --git a/pytheus/graphs/plots/graph_k3maximal8qubits.pdf b/pytheus/graphs/plots/graph_k3maximal8qubits.pdf new file mode 100644 index 00000000..0be6138c Binary files /dev/null and b/pytheus/graphs/plots/graph_k3maximal8qubits.pdf differ diff --git a/pytheus/graphs/plots/graph_majumdar4.pdf b/pytheus/graphs/plots/graph_majumdar4.pdf new file mode 100644 index 00000000..c7be07d9 Binary files /dev/null and b/pytheus/graphs/plots/graph_majumdar4.pdf differ diff --git a/pytheus/graphs/plots/graph_majumdar6.pdf b/pytheus/graphs/plots/graph_majumdar6.pdf new file mode 100644 index 00000000..9828eedb Binary files /dev/null and b/pytheus/graphs/plots/graph_majumdar6.pdf differ diff --git a/pytheus/graphs/plots/graph_motzkin3.pdf b/pytheus/graphs/plots/graph_motzkin3.pdf new file mode 100644 index 00000000..4fb6e8a3 Binary files /dev/null and b/pytheus/graphs/plots/graph_motzkin3.pdf differ diff --git a/pytheus/graphs/plots/graph_motzkin4.pdf b/pytheus/graphs/plots/graph_motzkin4.pdf new file mode 100644 index 00000000..dcdb7b0f Binary files /dev/null and b/pytheus/graphs/plots/graph_motzkin4.pdf differ diff --git a/pytheus/graphs/plots/graph_nbody3.pdf b/pytheus/graphs/plots/graph_nbody3.pdf new file mode 100644 index 00000000..33d7add5 Binary files /dev/null and b/pytheus/graphs/plots/graph_nbody3.pdf differ diff --git a/pytheus/graphs/plots/graph_nbody4.pdf b/pytheus/graphs/plots/graph_nbody4.pdf new file mode 100644 index 00000000..a7a6a0cd Binary files /dev/null and b/pytheus/graphs/plots/graph_nbody4.pdf differ diff --git a/pytheus/graphs/plots/graph_nbody5.pdf b/pytheus/graphs/plots/graph_nbody5.pdf new file mode 100644 index 00000000..73470bbd Binary files /dev/null and b/pytheus/graphs/plots/graph_nbody5.pdf differ diff --git a/pytheus/graphs/plots/graph_nbody6.pdf b/pytheus/graphs/plots/graph_nbody6.pdf new file mode 100644 index 00000000..42a9d89a Binary files /dev/null and b/pytheus/graphs/plots/graph_nbody6.pdf differ diff --git a/pytheus/graphs/plots/graph_noon2m3ph1anc.pdf b/pytheus/graphs/plots/graph_noon2m3ph1anc.pdf new file mode 100644 index 00000000..ec988c6c Binary files /dev/null and b/pytheus/graphs/plots/graph_noon2m3ph1anc.pdf differ diff --git a/pytheus/graphs/plots/graph_noon2m4ph2anc.pdf b/pytheus/graphs/plots/graph_noon2m4ph2anc.pdf new file mode 100644 index 00000000..72f99ce8 Binary files /dev/null and b/pytheus/graphs/plots/graph_noon2m4ph2anc.pdf differ diff --git a/pytheus/graphs/plots/graph_noon2m5ph3anc.pdf b/pytheus/graphs/plots/graph_noon2m5ph3anc.pdf new file mode 100644 index 00000000..08a1cc4d Binary files /dev/null and b/pytheus/graphs/plots/graph_noon2m5ph3anc.pdf differ diff --git a/pytheus/graphs/plots/graph_noon2m6ph4anc.pdf b/pytheus/graphs/plots/graph_noon2m6ph4anc.pdf new file mode 100644 index 00000000..a31cb946 Binary files /dev/null and b/pytheus/graphs/plots/graph_noon2m6ph4anc.pdf differ diff --git a/pytheus/graphs/plots/graph_noon2m7ph5anc.pdf b/pytheus/graphs/plots/graph_noon2m7ph5anc.pdf new file mode 100644 index 00000000..8b8b8d60 Binary files /dev/null and b/pytheus/graphs/plots/graph_noon2m7ph5anc.pdf differ diff --git a/pytheus/graphs/plots/graph_noon2m8ph6anc.pdf b/pytheus/graphs/plots/graph_noon2m8ph6anc.pdf new file mode 100644 index 00000000..1c175f00 Binary files /dev/null and b/pytheus/graphs/plots/graph_noon2m8ph6anc.pdf differ diff --git a/pytheus/graphs/plots/graph_noon3m3ph3anc.pdf b/pytheus/graphs/plots/graph_noon3m3ph3anc.pdf new file mode 100644 index 00000000..055d658b Binary files /dev/null and b/pytheus/graphs/plots/graph_noon3m3ph3anc.pdf differ diff --git a/pytheus/graphs/plots/graph_noon3m4ph4anc.pdf b/pytheus/graphs/plots/graph_noon3m4ph4anc.pdf new file mode 100644 index 00000000..f8b1b3a6 Binary files /dev/null and b/pytheus/graphs/plots/graph_noon3m4ph4anc.pdf differ diff --git a/pytheus/graphs/plots/graph_noon4m3ph5anc.pdf b/pytheus/graphs/plots/graph_noon4m3ph5anc.pdf new file mode 100644 index 00000000..0b5992ac Binary files /dev/null and b/pytheus/graphs/plots/graph_noon4m3ph5anc.pdf differ diff --git a/pytheus/graphs/plots/graph_noon5m3ph7anc.pdf b/pytheus/graphs/plots/graph_noon5m3ph7anc.pdf new file mode 100644 index 00000000..4f65ca33 Binary files /dev/null and b/pytheus/graphs/plots/graph_noon5m3ph7anc.pdf differ diff --git a/pytheus/graphs/plots/graph_octahedron.pdf b/pytheus/graphs/plots/graph_octahedron.pdf new file mode 100644 index 00000000..84f28ee2 Binary files /dev/null and b/pytheus/graphs/plots/graph_octahedron.pdf differ diff --git a/pytheus/graphs/plots/graph_oneDspinhalfwire.pdf b/pytheus/graphs/plots/graph_oneDspinhalfwire.pdf new file mode 100644 index 00000000..9ca35fb6 Binary files /dev/null and b/pytheus/graphs/plots/graph_oneDspinhalfwire.pdf differ diff --git a/pytheus/graphs/plots/graph_oneDspinhalfwire4.pdf b/pytheus/graphs/plots/graph_oneDspinhalfwire4.pdf new file mode 100644 index 00000000..438b818f Binary files /dev/null and b/pytheus/graphs/plots/graph_oneDspinhalfwire4.pdf differ diff --git a/pytheus/graphs/plots/graph_onsager6.pdf b/pytheus/graphs/plots/graph_onsager6.pdf new file mode 100644 index 00000000..32e3933b Binary files /dev/null and b/pytheus/graphs/plots/graph_onsager6.pdf differ diff --git a/pytheus/graphs/plots/graph_onsager8.pdf b/pytheus/graphs/plots/graph_onsager8.pdf new file mode 100644 index 00000000..37daa56a Binary files /dev/null and b/pytheus/graphs/plots/graph_onsager8.pdf differ diff --git a/pytheus/graphs/plots/graph_peres.pdf b/pytheus/graphs/plots/graph_peres.pdf new file mode 100644 index 00000000..522e1ab1 Binary files /dev/null and b/pytheus/graphs/plots/graph_peres.pdf differ diff --git a/pytheus/graphs/plots/graph_pxp6.pdf b/pytheus/graphs/plots/graph_pxp6.pdf new file mode 100644 index 00000000..aa82d182 Binary files /dev/null and b/pytheus/graphs/plots/graph_pxp6.pdf differ diff --git a/pytheus/graphs/plots/graph_pxp8.pdf b/pytheus/graphs/plots/graph_pxp8.pdf new file mode 100644 index 00000000..4bc9753e Binary files /dev/null and b/pytheus/graphs/plots/graph_pxp8.pdf differ diff --git a/pytheus/graphs/plots/graph_randmax1.pdf b/pytheus/graphs/plots/graph_randmax1.pdf new file mode 100644 index 00000000..b277f906 Binary files /dev/null and b/pytheus/graphs/plots/graph_randmax1.pdf differ diff --git a/pytheus/graphs/plots/graph_randmax2.pdf b/pytheus/graphs/plots/graph_randmax2.pdf new file mode 100644 index 00000000..3d030825 Binary files /dev/null and b/pytheus/graphs/plots/graph_randmax2.pdf differ diff --git a/pytheus/graphs/plots/graph_spin1.pdf b/pytheus/graphs/plots/graph_spin1.pdf new file mode 100644 index 00000000..8a2e6907 Binary files /dev/null and b/pytheus/graphs/plots/graph_spin1.pdf differ diff --git a/pytheus/graphs/plots/graph_spin32letter.pdf b/pytheus/graphs/plots/graph_spin32letter.pdf new file mode 100644 index 00000000..cce2509f Binary files /dev/null and b/pytheus/graphs/plots/graph_spin32letter.pdf differ diff --git a/pytheus/graphs/plots/graph_spin3halfsMINUS.pdf b/pytheus/graphs/plots/graph_spin3halfsMINUS.pdf new file mode 100644 index 00000000..bf9987dd Binary files /dev/null and b/pytheus/graphs/plots/graph_spin3halfsMINUS.pdf differ diff --git a/pytheus/graphs/plots/graph_spin3halfsPLUS.pdf b/pytheus/graphs/plots/graph_spin3halfsPLUS.pdf new file mode 100644 index 00000000..75223735 Binary files /dev/null and b/pytheus/graphs/plots/graph_spin3halfsPLUS.pdf differ diff --git a/pytheus/graphs/plots/graph_spin3minus_3.pdf b/pytheus/graphs/plots/graph_spin3minus_3.pdf new file mode 100644 index 00000000..b2a20f81 Binary files /dev/null and b/pytheus/graphs/plots/graph_spin3minus_3.pdf differ diff --git a/pytheus/graphs/plots/graph_spin3plus_3.pdf b/pytheus/graphs/plots/graph_spin3plus_3.pdf new file mode 100644 index 00000000..469781ab Binary files /dev/null and b/pytheus/graphs/plots/graph_spin3plus_3.pdf differ diff --git a/pytheus/graphs/plots/graph_spinhalf4.pdf b/pytheus/graphs/plots/graph_spinhalf4.pdf new file mode 100644 index 00000000..3892fb4f Binary files /dev/null and b/pytheus/graphs/plots/graph_spinhalf4.pdf differ diff --git a/pytheus/graphs/plots/graph_srv_554.pdf b/pytheus/graphs/plots/graph_srv_554.pdf new file mode 100644 index 00000000..273dd009 Binary files /dev/null and b/pytheus/graphs/plots/graph_srv_554.pdf differ diff --git a/pytheus/graphs/plots/graph_srv_632.pdf b/pytheus/graphs/plots/graph_srv_632.pdf new file mode 100644 index 00000000..a1011905 Binary files /dev/null and b/pytheus/graphs/plots/graph_srv_632.pdf differ diff --git a/pytheus/graphs/plots/graph_srv_655.pdf b/pytheus/graphs/plots/graph_srv_655.pdf new file mode 100644 index 00000000..585ff5aa Binary files /dev/null and b/pytheus/graphs/plots/graph_srv_655.pdf differ diff --git a/pytheus/graphs/plots/graph_srv_733.pdf b/pytheus/graphs/plots/graph_srv_733.pdf new file mode 100644 index 00000000..020490a1 Binary files /dev/null and b/pytheus/graphs/plots/graph_srv_733.pdf differ diff --git a/pytheus/graphs/plots/graph_tetrahedron.pdf b/pytheus/graphs/plots/graph_tetrahedron.pdf new file mode 100644 index 00000000..bfdc7591 Binary files /dev/null and b/pytheus/graphs/plots/graph_tetrahedron.pdf differ diff --git a/pytheus/graphs/plots/graph_toffoli.pdf b/pytheus/graphs/plots/graph_toffoli.pdf new file mode 100644 index 00000000..aa705115 Binary files /dev/null and b/pytheus/graphs/plots/graph_toffoli.pdf differ diff --git a/pytheus/graphs/plots/graph_toffoli_post.pdf b/pytheus/graphs/plots/graph_toffoli_post.pdf new file mode 100644 index 00000000..343b47fa Binary files /dev/null and b/pytheus/graphs/plots/graph_toffoli_post.pdf differ diff --git a/pytheus/graphs/plots/graph_wAF1_3.pdf b/pytheus/graphs/plots/graph_wAF1_3.pdf new file mode 100644 index 00000000..48888e19 Binary files /dev/null and b/pytheus/graphs/plots/graph_wAF1_3.pdf differ diff --git a/pytheus/graphs/plots/graph_wAF2_3.pdf b/pytheus/graphs/plots/graph_wAF2_3.pdf new file mode 100644 index 00000000..4a0bd899 Binary files /dev/null and b/pytheus/graphs/plots/graph_wAF2_3.pdf differ diff --git a/pytheus/graphs/plots/graph_wAF3_3.pdf b/pytheus/graphs/plots/graph_wAF3_3.pdf new file mode 100644 index 00000000..5d471880 Binary files /dev/null and b/pytheus/graphs/plots/graph_wAF3_3.pdf differ diff --git a/pytheus/graphs/plots/graph_wAF4_3.pdf b/pytheus/graphs/plots/graph_wAF4_3.pdf new file mode 100644 index 00000000..8d0533d2 Binary files /dev/null and b/pytheus/graphs/plots/graph_wAF4_3.pdf differ diff --git a/pytheus/graphs/plots/graph_wAF_NOsym.pdf b/pytheus/graphs/plots/graph_wAF_NOsym.pdf new file mode 100644 index 00000000..672b7019 Binary files /dev/null and b/pytheus/graphs/plots/graph_wAF_NOsym.pdf differ diff --git a/pytheus/graphs/plots/graph_wAF_sym.pdf b/pytheus/graphs/plots/graph_wAF_sym.pdf new file mode 100644 index 00000000..18594f6c Binary files /dev/null and b/pytheus/graphs/plots/graph_wAF_sym.pdf differ diff --git a/pytheus/graphs/plots/graph_werner.pdf b/pytheus/graphs/plots/graph_werner.pdf new file mode 100644 index 00000000..3eb3a8c3 Binary files /dev/null and b/pytheus/graphs/plots/graph_werner.pdf differ diff --git a/theseus/help_functions.py b/pytheus/help_functions.py similarity index 95% rename from theseus/help_functions.py rename to pytheus/help_functions.py index 89cd4857..a9bb5303 100644 --- a/theseus/help_functions.py +++ b/pytheus/help_functions.py @@ -1,183 +1,183 @@ -import itertools -import numpy as np - - -def flatten_lists(the_lists): - """ - takes a list as argument return flatten one - - """ - result = [] - for _list in the_lists: - result += _list - return result - - -def stateToString(state, ket=False): - ''' - for readability, turn state array into string - ''' - termlist = np.array(state)[:, :, 1] - termstringlist = [] - for term in termlist: - termstringlist.append(''.join([str(item) for item in term])) - if ket: - termstringlist = ['|' + term + '>' for term in termstringlist] - return '+'.join(termstringlist) - - -def readableState(state): - readable_dict = {} - for key in state.kets: - readable_dict[stateToString([key], ket=True)] = state[key] - return readable_dict - - -def stringToTerm(termstring): - ''' - used by makeState. turn ket given by string into tuples representing creator operators. - example: - input: "0210" - output: ((0, 0), (1, 2), (2, 1), (3, 0)) - ''' - return tuple([tuple([i, int(col)]) for i, col in enumerate(termstring)]) - - -def makeState(statestring: str) -> list: - ''' - turn state given as string into state to be used by theseus - example: - input: "0000+1111+2222" - output: [((0, 0), (1, 0), (2, 0), (3, 0)), - ((0, 1), (1, 1), (2, 1), (3, 1)), - ((0, 2), (1, 2), (2, 2), (3, 2))] - ''' - terms = statestring.split('+') - return [stringToTerm(filter(str.isdigit, term)) for term in terms] - - -def makeUnicolor(edge_list, num_nodes): - ''' - simplify edge list by deleting all multicolor edges between data nodes - ''' - return [edge for edge in edge_list if - (((edge[0] not in range(num_nodes)) or (edge[1] not in range(num_nodes))) or (edge[2] == edge[3]))] - - -def removeConnections(edge_list, connection_list): - ''' - removes all edges that connect certain pairs of vertices. - - example: - input: edge_list, [[0,1],[3,5]] - output: edge_list without any edges that connect 0-1 or 3-5. - ''' - new_edge_list = edge_list - for connection in connection_list: - new_edge_list = [edge for edge in new_edge_list if (edge[0] != connection[0] or edge[1] != connection[1])] - return new_edge_list - - -def prepEdgeList(edge_list, cnfg): - """ - Restrict starting graph as given by config. - """ - try: - if cnfg['unicolor']: - num_data_nodes = len(cnfg['target_state'][0]) - edge_list = makeUnicolor(edge_list, num_data_nodes) - except KeyError: - pass - - removed_connections = [] - disjoint_nodes = [] - try: - disjoint_nodes += cnfg['in_nodes'] - except KeyError: - pass - try: - disjoint_nodes += cnfg['single_emitters'] - except KeyError: - pass - removed_connections += list(itertools.combinations(disjoint_nodes,2)) - try: - removed_connections += cnfg['removed_connections'] - except KeyError: - pass - edge_list = removeConnections(edge_list,removed_connections) - return edge_list - - -def get_all_bi_partions(num_par: int, lenght=None): - - """ - returns all bi-partions as a generator for a given number of particles: - - e.g. : num_par = 3 : [([0], [1, 2]), ([1], [0, 2]), ([2], [0, 1])] - - """ - if lenght is None or lenght == 'all': - def check_len(bipar): - return True - else: - assert (type(lenght) is int and int(num_par / 2) >= lenght), \ - "invalid lenght given(or Typeerror): int(num_par/2) > given lenght" - - def check_len(bipar): - return len(bipar) == lenght - - S = {i for i in range(num_par)} - doubles = [] - for ll in range(1, int(len(S) / 2) + 1): - combinations = set(itertools.combinations(S, ll)) - for oneC in combinations: - if sorted(list(oneC)) not in doubles: - bipar = sorted(list(oneC)) - if check_len(bipar): - yield (bipar, sorted(list(S - set(oneC)))) - doubles.append(sorted(list(S - set(oneC)))) - - -def get_all_kets_for_given_dim(dimension: list, type_return=int): - """ - get all possible kets for given dimension (1=ancilla) - e.g: input = [2,2,1,1] -> [0, 1, 10, 11] for int - -> ['00', '01', '10', '11'] for str - """ - if dimension.count(1) != 0: - dimension = dimension[:-dimension.count(1)] - if type_return == int: - return list([int("".join(map(str, x))) for x in - itertools.product(*[[t for t in range(i)] - for i in dimension])]) - if type_return == str: - return list(["".join(map(str, x)) for x in itertools.product( - *[[t for t in range(i)] for i in dimension])]) - - -def get_complement(ls: tuple, whole_list: list): - return tuple(set([x for x in whole_list]) - set(ls)) - - -def get_sysdict(dimensions_of_H: list, bipar_for_opti='all', imaginary = False): - """ - a dict to store - - number of particles: sysdict['num_particles'] - - all possible bipartions: sysdict['all_biparations'] - - all dimension for each particle: sysdict['dimensions'] - - how many solution should be produced: sysdict["samples"] - """ - sysdict = dict() - sysdict['dimensions'] = dimensions_of_H - sysdict['num_ancillas'] = dimensions_of_H.count(1) - sysdict['num_particles'] = len(dimensions_of_H) - sysdict['num_ancillas'] - sysdict['all_states'] = [tuple([(idx, int(ket[idx])) for idx in - range(sysdict['num_particles'])]) - for ket in - get_all_kets_for_given_dim(dimensions_of_H, str)] - - sysdict['dim_total'] = np.product(dimensions_of_H) - sysdict['bipar_for_opti'] = list( - get_all_bi_partions(sysdict['num_particles'], bipar_for_opti)) - sysdict['imaginary'] = imaginary - return sysdict +import itertools +import numpy as np + + +def flatten_lists(the_lists): + """ + takes a list as argument return flatten one + + """ + result = [] + for _list in the_lists: + result += _list + return result + + +def stateToString(state, ket=False): + ''' + for readability, turn state array into string + ''' + termlist = np.array(state)[:, :, 1] + termstringlist = [] + for term in termlist: + termstringlist.append(''.join([str(item) for item in term])) + if ket: + termstringlist = ['|' + term + '>' for term in termstringlist] + return '+'.join(termstringlist) + + +def readableState(state): + readable_dict = {} + for key in state.kets: + readable_dict[stateToString([key], ket=True)] = state[key] + return readable_dict + + +def stringToTerm(termstring): + ''' + used by makeState. turn ket given by string into tuples representing creator operators. + example: + input: "0210" + output: ((0, 0), (1, 2), (2, 1), (3, 0)) + ''' + return tuple([tuple([i, int(col)]) for i, col in enumerate(termstring)]) + + +def makeState(statestring: str) -> list: + ''' + turn state given as string into state to be used by pytheus + example: + input: "0000+1111+2222" + output: [((0, 0), (1, 0), (2, 0), (3, 0)), + ((0, 1), (1, 1), (2, 1), (3, 1)), + ((0, 2), (1, 2), (2, 2), (3, 2))] + ''' + terms = statestring.split('+') + return [stringToTerm(filter(str.isdigit, term)) for term in terms] + + +def makeUnicolor(edge_list, num_nodes): + ''' + simplify edge list by deleting all multicolor edges between data nodes + ''' + return [edge for edge in edge_list if + (((edge[0] not in range(num_nodes)) or (edge[1] not in range(num_nodes))) or (edge[2] == edge[3]))] + + +def removeConnections(edge_list, connection_list): + ''' + removes all edges that connect certain pairs of vertices. + + example: + input: edge_list, [[0,1],[3,5]] + output: edge_list without any edges that connect 0-1 or 3-5. + ''' + new_edge_list = edge_list + for connection in connection_list: + new_edge_list = [edge for edge in new_edge_list if (edge[0] != connection[0] or edge[1] != connection[1])] + return new_edge_list + + +def prepEdgeList(edge_list, cnfg): + """ + Restrict starting graph as given by config. + """ + try: + if cnfg['unicolor']: + num_data_nodes = len(cnfg['target_state'][0]) + edge_list = makeUnicolor(edge_list, num_data_nodes) + except KeyError: + pass + + removed_connections = [] + disjoint_nodes = [] + try: + disjoint_nodes += cnfg['in_nodes'] + except KeyError: + pass + try: + disjoint_nodes += cnfg['single_emitters'] + except KeyError: + pass + removed_connections += list(itertools.combinations(disjoint_nodes,2)) + try: + removed_connections += cnfg['removed_connections'] + except KeyError: + pass + edge_list = removeConnections(edge_list,removed_connections) + return edge_list + + +def get_all_bi_partions(num_par: int, lenght=None): + + """ + returns all bi-partions as a generator for a given number of particles: + + e.g. : num_par = 3 : [([0], [1, 2]), ([1], [0, 2]), ([2], [0, 1])] + + """ + if lenght is None or lenght == 'all': + def check_len(bipar): + return True + else: + assert (type(lenght) is int and int(num_par / 2) >= lenght), \ + "invalid lenght given(or Typeerror): int(num_par/2) > given lenght" + + def check_len(bipar): + return len(bipar) == lenght + + S = {i for i in range(num_par)} + doubles = [] + for ll in range(1, int(len(S) / 2) + 1): + combinations = set(itertools.combinations(S, ll)) + for oneC in combinations: + if sorted(list(oneC)) not in doubles: + bipar = sorted(list(oneC)) + if check_len(bipar): + yield (bipar, sorted(list(S - set(oneC)))) + doubles.append(sorted(list(S - set(oneC)))) + + +def get_all_kets_for_given_dim(dimension: list, type_return=int): + """ + get all possible kets for given dimension (1=ancilla) + e.g: input = [2,2,1,1] -> [0, 1, 10, 11] for int + -> ['00', '01', '10', '11'] for str + """ + if dimension.count(1) != 0: + dimension = dimension[:-dimension.count(1)] + if type_return == int: + return list([int("".join(map(str, x))) for x in + itertools.product(*[[t for t in range(i)] + for i in dimension])]) + if type_return == str: + return list(["".join(map(str, x)) for x in itertools.product( + *[[t for t in range(i)] for i in dimension])]) + + +def get_complement(ls: tuple, whole_list: list): + return tuple(set([x for x in whole_list]) - set(ls)) + + +def get_sysdict(dimensions_of_H: list, bipar_for_opti='all', imaginary = False): + """ + a dict to store + - number of particles: sysdict['num_particles'] + - all possible bipartions: sysdict['all_biparations'] + - all dimension for each particle: sysdict['dimensions'] + - how many solution should be produced: sysdict["samples"] + """ + sysdict = dict() + sysdict['dimensions'] = dimensions_of_H + sysdict['num_ancillas'] = dimensions_of_H.count(1) + sysdict['num_particles'] = len(dimensions_of_H) - sysdict['num_ancillas'] + sysdict['all_states'] = [tuple([(idx, int(ket[idx])) for idx in + range(sysdict['num_particles'])]) + for ket in + get_all_kets_for_given_dim(dimensions_of_H, str)] + + sysdict['dim_total'] = np.product(dimensions_of_H) + sysdict['bipar_for_opti'] = list( + get_all_bi_partions(sysdict['num_particles'], bipar_for_opti)) + sysdict['imaginary'] = imaginary + return sysdict diff --git a/pytheus/leiwand.py b/pytheus/leiwand.py new file mode 100644 index 00000000..94751d2e --- /dev/null +++ b/pytheus/leiwand.py @@ -0,0 +1,347 @@ +import os + +import sys +import itertools +import numpy as np +import subprocess +from shutil import which + +docstring = """ +Use this script like this + +Or get the data into a file which list the data of the edges like: +weight vertex1 mode1 vertex2 mode2 +weight vertex1 mode1 vertex2 mode2 + +python leiwand.py in=filename + +You can call the script with several options like this +python leiwand.py in=filename key1=value1 key2=value2 + +option keys are the following +""" + +variables = { + "line_width": 4.0, + "radius": 3, + "col0": "{RGB}{0,0,204}", + "col1": "{RGB}{204,0,0}", + "col2": "{RGB}{0,204,0}", + "col3": "{RGB}{255, 165, 0}", + "col4": "{RGB}{128,0,128}", + "col5": "{RGB}{255, 255, 0}", + "col6": "{RGB}{102, 0, 102}", + "vertexcolor": "{RGB}{250,250,250}", + "fontcolor": "{RGB}{0,0,0}", + "angle": 0, + "vertices": None, + "whitespace": "10pt" +} + + +def leiwand(data, name='graph'): + poly = {} + output = name + numcolors = 7 + + external_vertices = None + if variables['vertices'] is not None: + external_vertices = variables["vertices"].split(' ') + # reverse order (drawing is counter-clockwise) + external_vertices = list(reversed(external_vertices)) + # print("got vertices: ", external_vertices) + + whitespace = None + if variables["whitespace"] is not None: + whitespace = variables["whitespace"] + with open(output + ".tex", "w") as outf: + optionmap = {tuple([c1, c2, True]): f"bicolor={{col{c1}}}{{col{c2}}}" for c1, c2 in + itertools.permutations(range(numcolors), 2)} + for ii in range(numcolors): + optionmap[(ii, ii, True)] = f"bicolor={{col{ii}}}{{col{ii}}}" + optionmap.update({tuple([c1, c2, False]): f"bicolor_neg={{col{c2}}}{{col{c1}}}" for c1, c2 in + itertools.product(range(numcolors), repeat=2)}) + # if use f"bicolor_neg={{col{c1}}}{{col{c2}}}" will inverse the color for the negitive edges, don't know why; + # print(optionmap) + if whitespace is not None: + print("\documentclass[border={}]{}".format(whitespace, r"{standalone}"), file=outf) + else: + print(r"\documentclass{standalone}", file=outf) + print(r""" + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + + """, file=outf) + + colors = r"\definecolor{vertexcol}" + variables["vertexcolor"] + for ii in range(numcolors): + colors += f"\definecolor{{col{ii}}}" + variables[f"col{ii}"] + colors += r"\definecolor{fontcolor}" + variables["fontcolor"] + print(colors, file=outf) + + print(r""" + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + """, file=outf) + + vertices = [] + weights = [] + for d in data: + weights.append(abs(d[0])) + vertices.append(d[1]) + vertices.append(d[3]) + vertices = list(set(vertices)) + max_weight = max(weights) + + # check if vertices where specified manually + if external_vertices is not None: + print("replacing: ", vertices) + print("with external vertices: ", external_vertices) + vertices = external_vertices + else: + # sort vertices alphabetically + vertices = list(sorted(vertices)) + + if len(poly) < len(vertices): + # poly = Polygon.regular(len(vertices), radius=variables["radius"], angle=float(180)) + angles = [2 * np.pi * ii / len(vertices) for ii in range(len(vertices))] + poly = [tuple([variables["radius"] * np.cos(theta - variables["angle"]), + variables["radius"] * np.sin(theta - variables["angle"])]) for theta in angles] + else: + # sort alphabetically + poly = reversed(list(dict(sorted(poly.items(), key=lambda x: x[0])).values())) + for i, coord in enumerate(poly): + print(r"\node[vertex] ({name}) at ({x},{y}) {xname};".format(name=vertices[i], + xname=r"{\color{fontcolor}" + str(vertices[ + i]) + "}", x=coord[0], y=coord[1]), + file=outf) + + # edge_string = r"\path ({v1}) edge[{options}, opacity={opacity}] ({v2});" + edge_string = r"\path[{options}, opacity={opacity}] ({v1}) to ({v2});" + + for d in data: + assert (len(d) == 6) + weight = d[0] + v1 = d[1] + t1 = d[2] + v2 = d[3] + t2 = d[4] + b = d[5] + opacity = max(0.3, abs(weight) / max_weight) + angles = [360 * ii / len(vertices) for ii in range(len(vertices))] + weight_pos = (weight > 0) + if v1 == v2: # loop + angle1 = angles[int(v1)] + 30 + angle2 = angles[int(v1)] - 30 + + print(edge_string.format(v1=v1, v2=v2, + options="line width={lw},".format(lw=variables["line_width"]) + optionmap[ + (t1, t2, weight_pos)] + ", looseness=" + str( + b) + f",right,out={angle1},in={angle2}", + opacity=opacity), file=outf) + else: + print(edge_string.format(v1=v1, v2=v2, + options="line width={lw},".format(lw=variables["line_width"]) + optionmap[ + (t1, t2, weight_pos)] + ", bend right=" + str(b), + opacity=opacity), file=outf) + print(r""" + \end{tikzpicture} + + \end{document} + """, file=outf) + + # Get the current working directory + cwd = os.getcwd() + + # Print the current working directory + print("Current working directory: {0}".format(cwd)) + + print("created {}.tex".format(output)) + print("trying to compile with pdflatex ... might be caught in endless loop") + + import subprocess + from shutil import which + + system_has_pdflatex = which("pdflatex") is not None + if not system_has_pdflatex: + raise Exception("You need pdflatex in order to export circuits to pdfs") + + with open(output + ".log", "w") as file: + subprocess.call(["pdflatex", output + ".tex"], stdout=file) + + print("created {}.pdf".format(output)) + + +def leiwandBulk(data, cnfg, name='graph', root=""): + #go into directory where graph should be saved + os.chdir(os.path.join(os.getcwd(), root)) + poly = {} + output = name + numcolors = 7 + # defining shapes for different kinds of vertices + shape_dict = {'in': 'inner sep=0.1em, regular polygon,regular polygon sides=3', 'out': "circle", "anc": "rectangle", 'sps': 'inner sep=0.1em,regular polygon,regular polygon sides=3', + 'mix': 'star,star points=10'} + + external_vertices = None + if variables['vertices'] is not None: + external_vertices = variables["vertices"].split(' ') + # reverse order (drawing is counter-clockwise) + external_vertices = list(reversed(external_vertices)) + # print("got vertices: ", external_vertices) + + whitespace = None + if variables["whitespace"] is not None: + whitespace = variables["whitespace"] + with open(output + ".tex", "w") as outf: + optionmap = {tuple([c1, c2, True]): f"bicolor={{col{c1}}}{{col{c2}}}" for c1, c2 in + itertools.permutations(range(numcolors), 2)} + for ii in range(numcolors): + optionmap[(ii, ii, True)] = f"bicolor={{col{ii}}}{{col{ii}}}" + optionmap.update({tuple([c1, c2, False]): f"bicolor_neg={{col{c2}}}{{col{c1}}}" for c1, c2 in + itertools.product(range(numcolors), repeat=2)}) + # if use f"bicolor_neg={{col{c1}}}{{col{c2}}}" will inverse the color for the negitive edges, don't know why; + # print(optionmap) + if whitespace is not None: + print("\documentclass[border={}]{}".format(whitespace, r"{standalone}"), file=outf) + else: + print(r"\documentclass{standalone}", file=outf) + print(r""" + + \usepackage{tikz} + \usetikzlibrary{decorations.markings, shapes.geometric} + + """, file=outf) + + colors = r"\definecolor{vertexcol}" + variables["vertexcolor"] + for ii in range(numcolors): + colors += f"\definecolor{{col{ii}}}" + variables[f"col{ii}"] + colors += r"\definecolor{fontcolor}" + variables["fontcolor"] + print(colors, file=outf) + + print(r""" + \begin{document} + + \tikzset{ + bicolor/.style n args={2}{ + postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + }, + bicolor_neg/.style n args={2}{ + postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, + postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, + }, + vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, + } + + \begin{tikzpicture} + + """, file=outf) + + vertices = [] + weights = [] + for d in data: + weights.append(abs(d[0])) + vertices.append(d[1]) + vertices.append(d[3]) + vertices = list(set(vertices)) + max_weight = max(weights) + + # check if vertices where specified manually + if external_vertices is not None: + print("replacing: ", vertices) + print("with external vertices: ", external_vertices) + vertices = external_vertices + else: + # sort vertices alphabetically + vertices = list(sorted(vertices)) + + if len(poly) < len(vertices): + # poly = Polygon.regular(len(vertices), radius=variables["radius"], angle=float(180)) + angles = [2 * np.pi * ii / len(vertices) for ii in range(len(vertices))] + poly = [tuple([variables["radius"] * np.cos(theta - variables["angle"]), + variables["radius"] * np.sin(theta - variables["angle"])]) for theta in angles] + else: + # sort alphabetically + poly = reversed(list(dict(sorted(poly.items(), key=lambda x: x[0])).values())) + for i, coord in enumerate(poly): + print(r"\node[vertex] ({name}) at ({x},{y}) [{shape}] {xname};".format(name=vertices[i], shape=shape_dict[ + cnfg["vert_types"][i]], xname=r"{\color{fontcolor}" + vertices[i] + "}", x=coord[0], y=coord[1]), + file=outf) + + # edge_string = r"\path ({v1}) edge[{options}, opacity={opacity}] ({v2});" + edge_string = r"\path[{options}, opacity={opacity}] ({v1}) to ({v2});" + + for d in data: + assert (len(d) == 6) + weight = d[0] + v1 = d[1] + t1 = d[2] + v2 = d[3] + t2 = d[4] + b = d[5] + opacity = max(0.3, abs(weight) / max_weight) + angles = [360 * ii / len(vertices) for ii in range(len(vertices))] + weight_pos = (weight > 0) + if v1 == v2: # loop + angle1 = angles[int(v1)] + 30 + angle2 = angles[int(v1)] - 30 + + print(edge_string.format(v1=v1, v2=v2, + options="line width={lw},".format(lw=variables["line_width"]) + optionmap[ + (t1, t2, weight_pos)] + ", looseness=" + str( + b) + f",right,out={angle1},in={angle2}", + opacity=opacity), file=outf) + else: + print(edge_string.format(v1=v1, v2=v2, + options="line width={lw},".format(lw=variables["line_width"]) + optionmap[ + (t1, t2, weight_pos)] + ", bend right=" + str(b), + opacity=opacity), file=outf) + print(r""" + \end{tikzpicture} + + \end{document} + """, file=outf) + + # Get the current working directory + cwd = os.getcwd() + + # Print the current working directory + # print("Current working directory: {0}".format(cwd)) + + # print("created {}.tex".format(output)) + # print("trying to compile with pdflatex ... might be caught in endless loop") + + system_has_pdflatex = which("pdflatex") is not None + if not system_has_pdflatex: + raise Exception("You need pdflatex in order to export circuits to pdfs") + + with open(output + ".log", "w") as file: + subprocess.call(["pdflatex", output + ".tex"], stdout=file) + + print("created {}.pdf".format(output)) + + +if __name__ == "__main__": + print(docstring) + for k, v in variables.items(): + print("{}={}".format(k, v)) + + print("calling with: ", sys.argv) + leiwand(sys.argv) diff --git a/pytheus/lossfunctions.py b/pytheus/lossfunctions.py new file mode 100644 index 00000000..96b015a0 --- /dev/null +++ b/pytheus/lossfunctions.py @@ -0,0 +1,453 @@ +# -*- coding: utf-8 -*- +""" +Created on Tue Jul 12 11:54:12 2022 + +@author: janpe +""" + +import pytheus.theseus as th +from collections import Counter +import itertools +import numpy as np +from itertools import combinations, product +from itertools import combinations_with_replacement +from pytheus.custom_loss.assembly_index import assembly_index, top_n_assembly +import logging + +log = logging.getLogger(__name__) + + +def brutal_covers_heralding_sps(cnfg, graph): + # this function finds heralding edgecovers for a bipartite graph + in_verts = cnfg["single_emitters"] + out_verts = cnfg["out_nodes"] + cnfg["anc_detectors"] + + avail_colors = th.edgeBleach(graph.edges) + + sep_edges = [] + for node in in_verts: + group = [edge for edge in list(avail_colors.keys()) if node in edge[:2]] + sep_edges.append(group) + tmp_raw_covers = list(product(*sep_edges)) + + raw_covers = [] + for cover in tmp_raw_covers: + counter = Counter(list(itertools.chain(*cover))) + keep = True + + if cnfg['number_resolving']: + for vert in cnfg["anc_detectors"]: + if counter[vert] != 1: + keep = False + else: + for vert in cnfg["anc_detectors"]: + if counter[vert] == 0: + keep = False + # if all conditions are met, use edgecover for norm + if keep: + raw_covers.append(cover) + + painted_covers = [] + for cover in raw_covers: + for coloring in itertools.product(*[avail_colors[edge] for edge in cover]): + color_cover = [edge + color for edge, color in zip(cover, coloring)] + painted_covers.append(sorted(color_cover)) + return [[tuple(ed) for ed in graph] for graph in painted_covers] + + +def brutal_covers(cnfg, graph): + # this function is sometimes used instead of findEdgecovers, should be much slower in general, but faster at + # applying topological constraints atm + + non_output_verts = [vert for vert in cnfg["verts"] if vert not in cnfg["out_nodes"]] + # minimum number of edges that can cover non output vertices + min_edges = len(non_output_verts) // 2 + # maximum number of edges, perfect matching order of whole graph + max_edges = len(cnfg["verts"]) // 2 + orders = list(range(min_edges, max_edges + 1)) + + avail_colors = th.edgeBleach(graph.edges) + tmp_raw_covers = [] + for num_edges in orders: + tmp_raw_covers += combinations_with_replacement(list(avail_colors.keys()), num_edges) + + raw_covers = [] + ii = 0 + for cover in tmp_raw_covers: + ii += 1 + keep = True + counter = Counter(list(itertools.chain(*cover))) + + # check inputs and single emitters + for vert in cnfg["in_nodes"] + cnfg["single_emitters"]: + # if any are covered more than once, don't keep edge cover + if counter[vert] != 1: + keep = False + + if cnfg['number_resolving']: + for vert in cnfg["anc_detectors"]: + if counter[vert] != 1: + keep = False + else: + for vert in cnfg["anc_detectors"]: + if counter[vert] == 0: + keep = False + + # # if in maximum order, we select for events where the correct total number of photons go into output paths + if cnfg['novac']: + if len(cover) == max_edges: + sum = 0 + for vert in cnfg["out_nodes"]: + sum += counter[vert] + if sum != len(cnfg["out_nodes"]): + keep = False + else: + keep = False + + # if all conditions are met, use edgecover for norm + if keep: + raw_covers.append(cover) + painted_covers = [] + for cover in raw_covers: + for coloring in itertools.product(*[avail_colors[edge] for edge in cover]): + color_cover = [edge + color for edge, color in zip(cover, coloring)] + painted_covers.append(sorted(color_cover)) + final_list = [] + for order in orders: + painted_covers_order = [graph for graph in painted_covers if len(graph) == order] + final_list += [tuple([tuple(ed) for ed in gg]) for gg in np.unique(painted_covers_order, axis=0)] + return final_list + + +def heralded_covers(cnfg, graph): + # calls findEdgecovers and applies topological constraints + + non_output_verts = [vert for vert in cnfg["verts"] if vert not in cnfg["out_nodes"]] + # minimum number of edges that can cover non output vertices + min_edges = len(non_output_verts) // 2 + # maximum number of edges, perfect matching order of whole graph + max_edges = len(cnfg["verts"]) // 2 + orders = list(range(min_edges, max_edges + 1)) + try: + if cnfg["novac"]: + orders = [max_edges] + except KeyError: + pass + # find edge suitable edge covers for all possible numbers of edges + tmp_edgecovers = [] + for num_edges in orders: + tmp_edgecovers += th.findEdgeCovers(graph.edges, nodes_left=non_output_verts, edges_left=num_edges) + # select for edgecovers that fulfill conditions + edgecovers = [] + for cover in tmp_edgecovers: + keep = True + bleached_cover = [e[:2] for e in cover] + concat_cover = list(itertools.chain(*bleached_cover)) + counter = Counter(concat_cover) + # check inputs and single emitters + for vert in cnfg["in_nodes"] + cnfg["single_emitters"]: + # if any are covered more than once, don't keep edge cover + if counter[vert] != 1: + keep = False + + if cnfg['number_resolving']: + for vert in cnfg["anc_detectors"]: + if counter[vert] != 1: + keep = False + else: + for vert in cnfg["anc_detectors"]: + if counter[vert] == 0: + keep = False + + # if in maximum order, we select for events where the correct total number of photons go into output paths + if cnfg['novac']: + if len(cover) == max_edges: + sum = 0 + for vert in cnfg["out_nodes"]: + sum += counter[vert] + if sum != len(cnfg["out_nodes"]): + keep = False + + # if all conditions are met, use edgecover for norm + if keep: + edgecovers.append(cover) + return edgecovers + + +def count_rate(graph, target_state, cnfg): + # can be used for state-creation/measurements/gates, post-selected/heralded + + new_loss = cnfg.get("new_loss", False) + if not new_loss: + # set up target equation + # get variable names + variables = th.stringEdges(graph.edges, imaginary=cnfg["imaginary"]) + + # non-heralded, post-selection case + if not cnfg["heralding_out"]: + # only looking at perfect matchings + target = target_state.targetEquation(state_catalog=graph.state_catalog, imaginary=cnfg["imaginary"]) + graph.getNorm() + norm = graph.norm + # heralded case, more complicated selection rules + else: + if not cnfg["brutal_covers"]: + edgecovers = heralded_covers(cnfg, graph) + elif cnfg["bipartite"]: + edgecovers = brutal_covers_heralding_sps(cnfg, graph) + else: + edgecovers = brutal_covers(cnfg, graph) + cat = th.stateCatalog(edgecovers) + norm = th.writeNorm(cat, imaginary=cnfg["imaginary"]) + target = target_state.targetEquation(state_catalog=cat, imaginary=cnfg["imaginary"]) + lambdaloss = "".join(["1-", target, "/(1+", norm, ")"]) + func, lossstring = th.buildLossString(lambdaloss, variables) + else: + kets = list(graph._state_catalog.keys()) + target_unnormed = np.array([(key in target_state.kets)*1.0 for key in kets]) + target_normed = target_unnormed / np.linalg.norm(target_unnormed) + + state_catalog_tensor = np.array(graph._state_catalog_tensor) + target_normed = np.array(target_normed) + + # print(state_catalog_tensor) + def graph_state(edges): + result = edges[state_catalog_tensor].prod(axis=-1).sum(axis=-1) + return result + + def normed_state(state): + print(f"[normed_state] Input shape: {state.shape}") + norm_val = np.linalg.norm(state, axis=-1) + result = state / (1 + norm_val) + return result + + def count_rate(state): + result = abs(state @ target_normed) ** 2 + return result + + def func0(x): + state = graph_state(x) + normalized_state = normed_state(state) + return 1 - count_rate(normalized_state) + #matrix that transforms weights of length len(graph.edges) to weights of length len(graph.complete_graph_edges) + mat = np.zeros((len(graph.complete_graph_edges), len(graph.edges))) + for i, edge in enumerate(graph.edges): + mat[graph.complete_graph_edges.index(edge),i] = 1 + + def func(x): + return func0(mat @ x) + + print('count rate done', flush=True) + return func + + +def fidelity(graph, target_state, cnfg): + # can be used for state-creation/measurements/gates, post-selected/heralded + new_loss = cnfg.get("new_loss", False) + + if not new_loss: + # get variable names + variables = th.stringEdges(graph.edges, imaginary=cnfg["imaginary"]) + + # non-heralded, post-selection case + if not cnfg["heralding_out"]: + # only looking at perfect matchings + graph.getNorm() + norm = graph.norm + target = target_state.targetEquation(state_catalog=graph.state_catalog, imaginary=cnfg["imaginary"]) + # heralded case, more complicated selection rules + else: + if not cnfg["brutal_covers"]: + edgecovers = heralded_covers(cnfg, graph) + elif cnfg["bipartite"]: + edgecovers = brutal_covers_heralding_sps(cnfg, graph) + else: + edgecovers = brutal_covers(cnfg, graph) + cat = th.stateCatalog(edgecovers) + norm = th.writeNorm(cat, imaginary=cnfg["imaginary"]) + target = target_state.targetEquation(state_catalog=cat, imaginary=cnfg["imaginary"]) + lambdaloss = "".join(["1-", target, "/(0+", norm, ")"]) + func, lossstring = th.buildLossString(lambdaloss, variables) + + else: + kets = list(graph._state_catalog.keys()) + target_unnormed = np.array([(key in target_state.kets)*1.0 for key in kets]) + target_normed = target_unnormed / np.linalg.norm(target_unnormed) + + state_catalog_tensor = np.array(graph._state_catalog_tensor) + target_normed = np.array(target_normed) + + graph_state = lambda edges: edges[state_catalog_tensor].prod(axis=-1).sum(axis=-1) + normed_state = lambda state: state / (np.linalg.norm(state, axis=-1)) + count_rate = lambda state: abs(state @ target_normed)**2 + func0 = lambda x: 1 - count_rate(normed_state(graph_state(x))) + + #matrix that transforms weights of length len(graph.edges) to weights of length len(graph.complete_graph_edges) + mat = np.zeros((len(graph.complete_graph_edges), len(graph.edges))) + for i, edge in enumerate(graph.edges): + mat[graph.complete_graph_edges.index(edge),i] = 1 + + func = lambda x: func0(mat @ x) + print('fidelity done', flush=True) + return func + + +""" +Number states in Fock basis +""" + + +def fock_fidelity(graph, target_state, num_anc, amplitudes, imaginary=False): # num_anc_pre + + # original ket is in the form: [((0,m),(1,n),(2,k1),(3,k2)...]; + # here the m, n, k1, k2 are the number of particles instead of dimensions + + # make the ket in the correct form + # [((0,0),(0,0)...,(1,0),(1,0),... (2,0),(2,0),...,(3,0),(3,0),...] + # m times (0,0); n times (1,0); k1 times (2,0); k2 times (3,0), etc. + # target_kets_temp = target_state.kets + # target_kets=[] + # accum = [sum([[(i,0)]*max(0,n) for i,n in k ],[]) for k in target_kets_temp] + # for ii in accum: + # target_kets.append(tuple(ii)) + + # all_verts= range(graph.num_nodes)#np.unique(list(itertools.chain(*th.edgeBleach(graph.edges).keys()))) + # anc_each_num=[int(i) for i in num_anc_pre] + # state_each_num=[int(i) for i in target_state_str[0]] # all terms have the same photon number + + total_particle_num = len(target_state.kets[0]) + # total_particle_num=sum(state_each_num)+num_anc #sum(anc_each_num) + + # anc_position=all_verts[len(all_verts)-num_anc:] + # anc_kets=[] + # for jj in anc_position: + # anc_kets.append((jj,0)) + + anc_nodes = list(range(graph.num_nodes - num_anc, graph.num_nodes)) + + edgecover_target = list(itertools.combinations_with_replacement(graph.edges, int(total_particle_num / 2))) + cat = th.stateCatalog(edgecover_target) + + if len(anc_nodes) > 0: + for ket in list(cat.keys()): + shopping = Counter(ket) + if all(shopping[(ii, 0)] == 1 for ii in anc_nodes): + pass + else: + del cat[ket] + + # this cause a problem in the optimizer as it actually does not use len(useful_deges) + # useful_edges = sorted(set(sum(sum(cat.values(),[]), ()))) + # variables = th.stringEdges(useful_edges) + + variables = th.stringEdges(graph.edges, imaginary=imaginary) + + target = th.targetEquation(target_state.kets, amplitudes=amplitudes, state_catalog=cat) + norm = th.writeNorm(cat) + + # epsilon = 1e-10 + epsilon = 0 + lambdaloss = f'1-({target})/({epsilon} + {norm})' + # lambdaloss="".join(["1-", target, "/(0+", norm, ")"]) + + func, lossstring = th.buildLossString(lambdaloss, variables) + return func + + +def fock_countrate(graph, target_state, num_anc, amplitudes, imaginary=False): # num_anc_pre + + total_particle_num = len(target_state.kets[0]) + + anc_nodes = list(range(graph.num_nodes - num_anc, graph.num_nodes)) + + edgecover_target = list(itertools.combinations_with_replacement(graph.edges, int(total_particle_num / 2))) + cat = th.stateCatalog(edgecover_target) + + if len(anc_nodes) > 0: + for ket in list(cat.keys()): + shopping = Counter(ket) + if all(shopping[(ii, 0)] == 1 for ii in anc_nodes): + pass + else: + del cat[ket] + + # this cause a problem in the optimizer as it actually does not use len(useful_deges) + # useful_edges = sorted(set(sum(sum(cat.values(),[]), ()))) + # variables = th.stringEdges(useful_edges) + + variables = th.stringEdges(graph.edges, imaginary=imaginary) + + target = th.targetEquation(target_state.kets, amplitudes=amplitudes, state_catalog=cat) + norm = th.writeNorm(cat) + + # epsilon = 1e-10 + epsilon = 1 + lambdaloss = f'1-({target})/({epsilon} + {norm})' + # lambdaloss="".join(["1-", target, "/(1+", norm, ")"]) + + func, lossstring = th.buildLossString(lambdaloss, variables) + return func + + +def make_lossString_entanglement(graph, sys_dict: dict, imaginary=False, + var_factor=0): + """ + get the loss functions of a graph for the concurrence: + C( |Psi> ) = √( 2 * ( 1 - TR_M( ) ) ) + where TR_M is partial trace (in subsystem M) + and return is sum over all possible bi-partition + + Parameters + ---------- + edge_list : list + list of all edges + sys_dict : dict + that stores essential information about the quantuum system (see hf.get_sysdict) + + Returns + ------- + func : function as object + loss function in concurrence as lambda object of current graph. + lossstring : String + loss function as string + + """ + + cat = graph.state_catalog + target = th.entanglement_fast(cat, sys_dict, var_factor) + # norm = th.Norm.fromDictionary(cat, real=sys_dict['real']) + variables = th.stringEdges(graph.edges, imaginary=imaginary) + + lambdaloss = "".join(["", target]) + func, lossstring = th.buildLossString(lambdaloss, variables) + + return func + + +def sum_of_weights(inputgraph, cnfg): + # test function for an arbitrary loss function (cnfg["loss_func"] = "lff", cnfg["lff_name"] = "sum_of_weights") + return sum(np.abs(inputgraph.weights)) + + +def loss_from_function(graph, cnfg=[]): + # takes a graph and returns a function of a parameter vector + def func(vector): + inputgraph = graph + for ii, edge in enumerate(graph.edges): + inputgraph[edge] = vector[ii] + # get function (defined in this module) + function = globals()[cnfg["lff_name"]] + return function(inputgraph, cnfg) + + return func + + +# optimizer optimizes first function in list +# at each optimization step, all functions in list are checked if they satisfy the thresholds +loss_dic = {'ent': [make_lossString_entanglement], + 'fid': [fidelity, count_rate], + 'cr': [count_rate, fidelity], + 'lff': [loss_from_function], + 'fockfid': [fock_fidelity, fock_countrate], + 'fockcr': [fock_countrate, fock_fidelity] + } diff --git a/theseus/main.py b/pytheus/main.py similarity index 61% rename from theseus/main.py rename to pytheus/main.py index 0a4e77db..6c2921e9 100644 --- a/theseus/main.py +++ b/pytheus/main.py @@ -1,407 +1,520 @@ -# -*- coding: utf-8 -*- -""" -Created on Tue Jul 12 12:24:53 2022 - -@author: janpe -""" - -import json -import os.path -import sys -from pathlib import Path - -import pkg_resources -import logging -log = logging.getLogger(__name__) - -import theseus -import theseus.help_functions as hf -import theseus.saver as saver -import theseus.theseus as th -from theseus.fancy_classes import Graph, State -from theseus.optimizer import topological_opti -import itertools -import numpy as np - - -def run_main(filename, example): - """Run the Theseus algorithm on a given input file. - - Parameters - ---------- - filename: str - case name or input file path - example: bool - flag indicating whether to run included example case or external file. - - - Raises - ------ - IOError - if filename is not valid. - """ - # step 1: read in config file - cnfg, filename = read_config(example, filename) - logging.basicConfig(stream=sys.stdout, level=logging.INFO) - logging.info(filename) - if 'description' in cnfg.keys(): - logging.info(cnfg['description']) - - sys.setrecursionlimit(1000000000) - - # step 2: build up target and starting graph - if cnfg['loss_func'] == 'ent': # optimization for entanglement requires specific setup - dimensions, sys_dict, start_graph = setup_for_ent(cnfg) - target_state = None - elif cnfg['loss_func'] == 'lff': #optimization of a custom loss function - edge_list = th.buildAllEdges(cnfg["dimensions"], imaginary=cnfg['imaginary']) - print(f'start graph has {len(edge_list)} edges.') - start_graph = Graph(edge_list, imaginary=cnfg['imaginary']) - dimensions = cnfg["dimensions"] - target_state = None - sys_dict = None - elif cnfg['loss_func'] in ['fockcr','fockfid']: - #ADD SETUP FOR FOCK OPTIMIZATION HERE - #start_graph, target_state, dimensions = setup_for_fockbasis() - sys_dict = None - target_state, dimensions, sys_dict, start_graph = setup_for_fockbasis(cnfg) - - else: #optimization for target given in config - #read out target and starting graph from cnfg - #modifies cnfg to incorporate topological constraints - target_state, start_graph, cnfg = setup_for_target(cnfg) - #target_state is state object - #start_graph is graph object - dimensions = cnfg["dimensions"] - sys_dict = None - - # step 3: start optimization - optimize_graph(cnfg, dimensions, filename, start_graph, sys_dict, target_state) - - -def optimize_graph(cnfg, dimensions, filename, start_graph, sys_dict, target_state): - ''' - main optimization routine - - Parameters - ---------- - cnfg - dimensions - filename - start_graph - sys_dict - target_state - - Returns - ------- - result graph - ''' - # initialize saver object, keeps track of loss history, writes solutions to files, writes best/summary file - sv = saver.saver(config=cnfg, name_config_file=filename, dim=dimensions) - # iterate over number samples - for i in range(cnfg['samples']): - # initialize optimizer object, do preoptimization on complete graph, truncate graph according to bulk_thr - optimizer = topological_opti(start_graph, sv, ent_dic=sys_dict, target_state=target_state, config=cnfg) - if cnfg['topopt']: - # topological optimization (deleting edges one by one) - graph_res = optimizer.topologicalOptimization() - else: - # if topological optimization not wanted, return graph after optimization on complete graph - graph_res = optimizer.graph - # write solution to file - sv.save_graph(optimizer) - # compute state of result graph - graph_res.getState() - print(f'finished with graph with {len(graph_res.edges)} edges.') - print(graph_res.state.state) - return graph_res - - -def setup_for_fockbasis(cnfg): - - try: - if cnfg["amplitudes"]: - print('amplitudes = ', cnfg["amplitudes"]) - else: - print('amplitudes left empty, assuming constant values of one') - except KeyError: - print('amplitudes not given, assuming constant values of one') - cnfg["amplitudes"] = [] - - try: - if cnfg["imaginary"]: - print('imaginary given: ', cnfg["imaginary"]) - else: - print('real numbers used') - except KeyError: - print('imaginary not given, assuming real numbers.') - cnfg["imaginary"] = False - - sys_dict = None - - #term_list = [term + cnfg['num_anc'] * '1' for term in cnfg["target_state"]] - term_list = [] - for term in cnfg["target_state"]: - ket = [] - for ii, tt in enumerate(term): - ket += [(ii,0)]*tt - #ket = [ for ii, tt in enumerate(term)] - for ii in range(cnfg['num_anc']): - ket.append((len(term) + ii, 0)) - term_list.append(tuple(ket)) - #print(np.shape(term_list)) - - # not the corrected target_state but has been modified in the loss function - # this can be changed afterwards - target_state = State(term_list, amplitudes=cnfg['amplitudes'], imaginary=cnfg['imaginary']) - - #print(hf.readableState(target_state)) - num_mode_particle = len(cnfg["target_state"][0]) - dimensions = [1]*(num_mode_particle +cnfg['num_anc']) # only one dimension at the moment - - edge_list = th.buildAllEdges(dimensions, imaginary=cnfg["imaginary"],loops=cnfg["loops"]) - edge_list = hf.prepEdgeList(edge_list, cnfg) - print(f'start graph has {len(edge_list)} edges.') - start_graph = Graph(edge_list, imaginary=cnfg['imaginary']) - - return target_state, dimensions, sys_dict, start_graph - - -def setup_for_ent(cnfg): - # concurrence optimization - # define local dimensions - dimensions = [int(ii) for ii in str(cnfg['dim'])] - if len(dimensions) % 2 != 0: - dimensions.append(1) - target_state = None - # compute sys_dict - sys_dict = hf.get_sysdict(dimensions, bipar_for_opti=cnfg['K'], imaginary=cnfg['imaginary']) - # build starting graph - edge_list = th.buildAllEdges(dimensions, imaginary=cnfg['imaginary']) - edge_list = hf.prepEdgeList(edge_list, cnfg) - print(f'start graph has {len(edge_list)} edges.') - start_graph = Graph(edge_list, imaginary=cnfg['imaginary']) - return dimensions, sys_dict, start_graph - - -def setup_for_target(cnfg): - # default values - try: - cnfg["in_nodes"] - except KeyError: - cnfg["in_nodes"] = [] - - try: - cnfg["out_nodes"] - except KeyError: - cnfg["out_nodes"] = [] - - if not cnfg["in_nodes"]: - if not cnfg["out_nodes"]: - print('no in/out nodes given. assuming that target terms correspond to out_nodes. state creation mode') - cnfg["out_nodes"] = list(range(len(cnfg["target_state"][0]))) - else: - print('no in_nodes given. state creation mode.') - else: - if not cnfg["out_nodes"]: - print('no out_nodes given. assuming that target terms correspond to in_nodes. measurement mode') - else: - print('in_nodes and out_nodes given. target terms are read as a logic table for a quantum gate') - - if len(cnfg["out_nodes"]) + len(cnfg["in_nodes"]) != len(cnfg["target_state"][0]): - print('TARGET DOES NOT MATCH IN_NODES AND cnfg.out_nodes') - - # num_anc gives the number of photons that go into detectors that are not cnfg.out_nodes (including those coming from single photon sources) - try: - print(f'number of ancillary photons = {cnfg["num_anc"]}') - except KeyError: - print('num_anc not given, assuming that number of ancillary photons = 0') - cnfg["num_anc"] = 0 - - try: - if cnfg["single_emitters"]: - print('single_emitters given. nodes corresponding to single photon sources: ', cnfg["single_emitters"]) - else: - print('single_emitters not given. no single photon sources in setup.') - except KeyError: - print('no single photon emitters used') - cnfg["single_emitters"] = [] - - # add num_anc+len(single_emitters) vertices to graph (every ancillary detector and every single emitter needs a node) - if cnfg["num_anc"] + len(cnfg["out_nodes"]) < len(cnfg["in_nodes"]) + len(cnfg["single_emitters"]): - print('not enough ancillas given') - additional_nodes = cnfg["num_anc"] + len(cnfg["single_emitters"]) - if not cnfg["out_nodes"]: - additional_nodes += len(cnfg["in_nodes"]) - - try: - if cnfg["removed_connections"]: - print('removed_connections given. additional constraints on the graph.') - print('removed_connections = ', cnfg["removed_connections"]) - else: - print('removed_connections not given. no additional constraints on the graph') - except KeyError: - print('removed_connections not given. assuming no additional constraints') - cnfg["removed_connections"] = [] - - try: - if cnfg["unicolor"]: - print("unicolor simplification used.") - except KeyError: - cnfg["unicolor"] = False - - try: - if cnfg["amplitudes"]: - print('amplitudes = ', cnfg["amplitudes"]) - else: - print('amplitudes left empty, assuming constant values of one') - except KeyError: - print('amplitudes not given, assuming constant values of one') - cnfg["amplitudes"] = [] - - try: - if cnfg["imaginary"]: - print('imaginary given: ', cnfg["imaginary"]) - else: - print('real numbers used') - except KeyError: - print('imaginary not given, assuming real numbers.') - cnfg["imaginary"] = False - - try: - if cnfg["heralding_out"]: - print("heralding_out = True. out_nodes are not detected. ancillary detectors herald the outgoing state") - else: - print("heralding_out = False. out_nodes are detected. outgoing state is post-selected.") - except KeyError: - print('heralding_out not given, assuming post-selection') - cnfg["heralding_out"] = False - - try: - if cnfg["number_resolving"]: - print('number resolving detectors used.') - else: - print('no number resolving detectors used') - except KeyError: - print('no information about photon-number resolving detectors given, assuming none are used') - cnfg["number_resolving"] = False - - try: - cnfg["brutal_covers"] - except KeyError: - cnfg["brutal_covers"] = False - - try: - cnfg["bulk_thr"] - except KeyError: - cnfg["bulk_thr"] = 0 - - try: - cnfg["save_hist"] - except KeyError: - cnfg["save_hist"] = True - - try: - cnfg["num_pre"] - except KeyError: - cnfg["num_pre"] = 1 - - # define target - target = [term + additional_nodes * '0' for term in cnfg["target_state"]] - target_state = State(target, amplitudes=cnfg["amplitudes"], imaginary=cnfg["imaginary"]) - # print readable expression of the target state - print(hf.readableState(target_state)) - - # build starting graph - # local dimensions necessary for each node to produce target - cnfg["dimensions"] = th.stateDimensions(target_state.kets) - # get complete starting graph according to local dimensions - edge_list = th.buildAllEdges(cnfg["dimensions"], imaginary=cnfg["imaginary"]) - - # introduce topological constraints - # start with explicitly removed connections - removed_connections = cnfg["removed_connections"] - # add other restrictions imposed by specific kinds of nodes - disjoint_nodes = cnfg["single_emitters"] + cnfg["in_nodes"] - removed_connections += [sorted(con) for con in list(itertools.combinations(disjoint_nodes, 2))] - edge_list = hf.removeConnections(edge_list, removed_connections) - #apply unicolor simplification - if cnfg['unicolor']: - num_data_nodes = len(cnfg['target_state'][0]) - edge_list = hf.makeUnicolor(edge_list, num_data_nodes) - print(f'start graph has {len(edge_list)} edges.') - - cnfg["verts"] = np.unique(list(itertools.chain(*th.edgeBleach(edge_list).keys()))) - cnfg["anc_detectors"] = [ii for ii in cnfg["verts"] if - ii not in cnfg["out_nodes"] + cnfg["single_emitters"] + cnfg["in_nodes"]] - - # turn edge list into graph - graph = Graph(edge_list) - graph.imaginary = cnfg["imaginary"] - - return target_state, graph, cnfg - - -def build_starting_graph(cnfg, dimensions): - # build starting graph - edge_list = th.buildAllEdges(dimensions, imaginary=cnfg['imaginary']) - edge_list = hf.prepEdgeList(edge_list, cnfg) - print(f'start graph has {len(edge_list)} edges.') - start_graph = Graph(edge_list, imaginary=cnfg['imaginary']) - return start_graph - - -def get_dimensions_and_target_state(cnfg): - # check if we are optimizing for entanglement - # there is not a concrete target state and you have to define sys_dict - if cnfg['loss_func'] == 'ent': - # concurrence optimization - # define local dimensions - dimensions = [int(ii) for ii in str(cnfg['dim'])] - if len(dimensions) % 2 != 0: - dimensions.append(1) - target_state = None - # compute sys_dict - sys_dict = hf.get_sysdict(dimensions, bipar_for_opti=cnfg['K'], - imaginary=cnfg['imaginary']) - else: - # target state optimization - sys_dict = None - # add ancillas - term_list = [term + cnfg['num_anc'] * '0' for term in cnfg['target_state']] - # include amplitudes in target state if given - if 'amplitudes' in cnfg: - target_state = State(term_list, amplitudes=cnfg['amplitudes'], imaginary=cnfg['imaginary']) - else: - target_state = State(term_list, imaginary=cnfg['imaginary']) - # print readable expression of the target state - print(hf.readableState(target_state)) - target_kets = target_state.kets - # define local dimensions - dimensions = th.stateDimensions(target_kets) - return dimensions, sys_dict, target_state - - -def read_config(is_example, filename): - '''' - read config json and output cnfg dict - ''' - # check if filename ends in json, add extension if needed - if not filename.endswith('.json'): - filename += '.json' - # option for running files from example folder - if is_example: - examples_dir = pkg_resources.resource_filename(theseus.__name__, "configs") - filename = Path(examples_dir) / filename - # error if file does not exist - if not os.path.exists(filename) or os.path.isdir(filename): - raise IOError(f'File does not exist: {filename}') - # load json into dict - with open(filename) as input_file: - cnfg = json.load(input_file) - # set some default value for some keys of dict - if 'topopt' not in cnfg: - cnfg['topopt'] = True - if not cnfg['topopt']: - cnfg['bulk_thr'] = 0 - return cnfg, filename +# -*- coding: utf-8 -*- +""" +Created on Tue Jul 12 12:24:53 2022 + +@author: janpe +""" + +import json +import os.path +import sys +from pathlib import Path + +import pkg_resources +import logging + +log = logging.getLogger(__name__) + +import pytheus +import pytheus.help_functions as hf +import pytheus.saver as saver +import pytheus.theseus as th +from pytheus.fancy_classes import Graph, State +from pytheus.optimizer import topological_opti +import itertools +import numpy as np +import random + + +def run_main(filename, example, run_opt=True, state_cat=True): + """Run the Theseus algorithm on a given input file. + + Parameters + ---------- + filename: str + case name or input file path + example: bool + flag indicating whether to run included example case or external file. + + + Raises + ------ + IOError + if filename is not valid. + """ + # step 1: read in config file + cnfg, filename = read_config(example, filename) + logging.basicConfig(stream=sys.stdout, level=logging.INFO) + logging.info(filename) + if 'description' in cnfg.keys(): + logging.info(cnfg['description']) + + sys.setrecursionlimit(1000000000) + + if 'loss_func' not in cnfg: + raise ValueError("Loss function not specified in config file. Needs to be specified by 'loss_func' key.") + + # step 2: build up target and starting graph + if cnfg['loss_func'] == 'ent': # optimization for entanglement requires specific setup + dimensions, sys_dict, start_graph = setup_for_ent(cnfg) + target_state = None + elif cnfg['loss_func'] == 'lff': # optimization of a custom loss function + edge_list = th.buildAllEdges(cnfg["dimensions"], imaginary=cnfg['imaginary']) + print(f'start graph has {len(edge_list)} edges.') + start_graph = Graph(edge_list, imaginary=cnfg['imaginary']) + if 'dimensions' in cnfg: + dimensions = cnfg["dimensions"] + else: + raise ValueError("Dimensions not specified in config file. For custom loss functions defined by 'lff' this needs to be specified by 'dimensions' key.") + target_state = None + sys_dict = None + elif cnfg['loss_func'] in ['fockcr', 'fockfid']: + # ADD SETUP FOR FOCK OPTIMIZATION HERE + # start_graph, target_state, dimensions = setup_for_fockbasis() + sys_dict = None + target_state, dimensions, sys_dict, start_graph = setup_for_fockbasis(cnfg) + + else: # optimization for target given in config + # read out target and starting graph from cnfg + # modifies cnfg to incorporate topological constraints + target_state, start_graph, cnfg = setup_for_target(cnfg, state_cat=state_cat) + # target_state is state object + # start_graph is graph object + dimensions = cnfg["dimensions"] + sys_dict = None + + # step 3: start optimization + if run_opt: + optimize_graph(cnfg, dimensions, filename, start_graph, sys_dict, target_state) + else: + return cnfg, target_state + + +def optimize_graph(cnfg, dimensions, filename, start_graph, sys_dict, target_state): + ''' + main optimization routine + + Parameters + ---------- + cnfg + dimensions + filename + start_graph + sys_dict + target_state + + Returns + ------- + result graph + ''' + # initialize saver object, keeps track of loss history, writes solutions to files, writes best/summary file + sv = saver.saver(config=cnfg, name_config_file=filename, dim=dimensions) + # iterate over number samples + for i in range(cnfg['samples']): + if i == 0: + seed = cnfg['seed'] + else: + random.seed() + seed = random.randrange(1, 2 ** 32 - 1) + + random.seed(seed) + np.random.seed(seed=seed) + cnfg['seed'] = seed + + # initialize optimizer object, do preoptimization on complete graph, truncate graph according to bulk_thr + optimizer = topological_opti(start_graph, sv, ent_dic=sys_dict, target_state=target_state, config=cnfg) + if cnfg['topopt']: + # topological optimization (deleting edges one by one) + graph_res = optimizer.topologicalOptimization() + else: + # if topological optimization not wanted, return graph after optimization on complete graph + graph_res = optimizer.graph + # write solution to file + sv.save_graph(optimizer) + # compute state of result graph + graph_res.getState() + print(f'finished with graph with {len(graph_res.edges)} edges.') + print(graph_res.state.state) + return graph_res + + +def setup_for_fockbasis(cnfg): + try: + if cnfg["amplitudes"]: + print('amplitudes = ', cnfg["amplitudes"]) + else: + print('amplitudes left empty, assuming constant values of one') + except KeyError: + print('amplitudes not given, assuming constant values of one') + cnfg["amplitudes"] = [] + + try: + if cnfg["imaginary"]: + print('imaginary given: ', cnfg["imaginary"]) + else: + print('real numbers used') + except KeyError: + print('imaginary not given, assuming real numbers.') + cnfg["imaginary"] = False + + if 'loops' not in cnfg: + cnfg['loops'] = False + + sys_dict = None + + # term_list = [term + cnfg['num_anc'] * '1' for term in cnfg["target_state"]] + term_list = [] + for term in cnfg["target_state"]: + ket = [] + for ii, tt in enumerate(term): + ket += [(ii, 0)] * tt + # ket = [ for ii, tt in enumerate(term)] + for ii in range(cnfg['num_anc']): + ket.append((len(term) + ii, 0)) + term_list.append(tuple(ket)) + # print(np.shape(term_list)) + num_out = len(cnfg["target_state"][0]) + cnfg["out_nodes"] = list(range(num_out)) + cnfg["in_nodes"] = [] + cnfg["single_emitters"] = [] + cnfg["verts"] = list(range(num_out + cnfg["num_anc"])) + + # not the corrected target_state but has been modified in the loss function + # this can be changed afterwards + target_state = State(term_list, amplitudes=cnfg['amplitudes'], imaginary=cnfg['imaginary']) + + # print(hf.readableState(target_state)) + num_mode_particle = len(cnfg["target_state"][0]) + dimensions = [1] * (num_mode_particle + cnfg['num_anc']) # only one dimension at the moment + + edge_list = th.buildAllEdges(dimensions, imaginary=cnfg["imaginary"], loops=cnfg["loops"]) + edge_list = hf.prepEdgeList(edge_list, cnfg) + print(f'start graph has {len(edge_list)} edges.') + start_graph = Graph(edge_list, imaginary=cnfg['imaginary']) + print(dimensions) + return target_state, dimensions, sys_dict, start_graph + + +def setup_for_ent(cnfg): + # concurrence optimization + # define local dimensions + dimensions = [int(ii) for ii in str(cnfg['dim'])] + cnfg['dimensions'] = dimensions + if len(dimensions) % 2 != 0: + dimensions.append(1) + target_state = None + # compute sys_dict + sys_dict = hf.get_sysdict(dimensions, bipar_for_opti=cnfg['K'], imaginary=cnfg['imaginary']) + # build starting graph + edge_list = th.buildAllEdges(dimensions, imaginary=cnfg['imaginary']) + edge_list = hf.prepEdgeList(edge_list, cnfg) + print(f'start graph has {len(edge_list)} edges.') + start_graph = Graph(edge_list, imaginary=cnfg['imaginary']) + return dimensions, sys_dict, start_graph + + +def setup_for_target(cnfg, state_cat=True): + # default values + try: + cnfg["target_state"] + except KeyError: + print('no target state given') + + try: + cnfg["in_nodes"] + except KeyError: + cnfg["in_nodes"] = [] + + try: + cnfg["out_nodes"] + except KeyError: + cnfg["out_nodes"] = [] + + if not cnfg["in_nodes"]: + if not cnfg["out_nodes"]: + print('no in/out nodes given. assuming that target terms correspond to out_nodes. state creation mode') + cnfg["out_nodes"] = list(range(len(cnfg["target_state"][0]))) + else: + print('no in_nodes given. state creation mode.') + else: + if not cnfg["out_nodes"]: + print('no out_nodes given. assuming that target terms correspond to in_nodes. measurement mode') + else: + print('in_nodes and out_nodes given. target terms are read as a logic table for a quantum gate') + + if set(cnfg["in_nodes"]).intersection(set(cnfg["out_nodes"])): + raise ValueError('in_nodes and out_nodes must be disjoint.') + + if len(cnfg["out_nodes"]) + len(cnfg["in_nodes"]) != len(cnfg["target_state"][0]): + raise ValueError(f"Number of target nodes ({len(cnfg['target_state'][0])}) does not match number of in/out nodes ({len(cnfg['out_nodes'])} in + {len(cnfg['in_nodes'])} out).") + + # num_anc gives the number of photons that go into detectors that are not cnfg.out_nodes (including those coming from single photon sources) + try: + print(f'number of ancillary photons = {cnfg["num_anc"]}') + except KeyError: + print('num_anc not given, assuming that number of ancillary photons = 0') + cnfg["num_anc"] = 0 + + try: + if cnfg["single_emitters"]: + print('single_emitters given. nodes corresponding to single photon sources: ', cnfg["single_emitters"]) + else: + print('single_emitters not given. no single photon sources in setup.') + except KeyError: + print('no single photon emitters used') + cnfg["single_emitters"] = [] + + if set(cnfg["in_nodes"]).intersection(set(cnfg["single_emitters"])): + raise ValueError('in_nodes and single_emitters must be disjoint.') + if set(cnfg["out_nodes"]).intersection(set(cnfg["single_emitters"])): + raise ValueError('out_nodes and single_emitters must be disjoint.') + + non_ancs = cnfg["in_nodes"] + cnfg["single_emitters"] + cnfg["out_nodes"] + if sorted(non_ancs) != list(range(len(non_ancs))): + raise ValueError('the union set of nodes from in_nodes, single_emitters, and out_nodes must be contiguous and start at zero (0, 1, 2, ... N where N is the number of nodes or the length of a ket in the target state).') + + # add num_anc+len(single_emitters) vertices to graph (every ancillary detector and every single emitter needs a node) + if cnfg["num_anc"] + len(cnfg["out_nodes"]) < len(cnfg["in_nodes"]) + len(cnfg["single_emitters"]): + raise ValueError('num_anc < (len(in_nodes) + len(single_emitters) - len(out_nodes)). Not enough ancillary detectors for the number of in_nodes and single_emitters. Each path entering via in_node or single_emitter needs to exit the setup somehow (in an out node or an ancillary detector).') + additional_nodes = cnfg["num_anc"] + len(cnfg["single_emitters"]) + if not cnfg["out_nodes"]: + additional_nodes += len(cnfg["in_nodes"]) + + try: + if cnfg["removed_connections"]: + print('removed_connections given. additional constraints on the graph.') + print('removed_connections = ', cnfg["removed_connections"]) + else: + print('removed_connections not given. no additional constraints on the graph') + except KeyError: + print('removed_connections not given. assuming no additional constraints') + cnfg["removed_connections"] = [] + + try: + if cnfg["unicolor"]: + print("unicolor simplification used.") + except KeyError: + cnfg["unicolor"] = False + + try: + if cnfg["amplitudes"]: + print('amplitudes = ', cnfg["amplitudes"]) + else: + print('amplitudes left empty, assuming constant values of one') + except KeyError: + print('amplitudes not given, assuming constant values of one') + cnfg["amplitudes"] = [] + + try: + if cnfg["imaginary"]: + print('imaginary given: ', cnfg["imaginary"]) + else: + print('real numbers used') + except KeyError: + print('imaginary not given, assuming real numbers.') + cnfg["imaginary"] = False + + try: + if cnfg["heralding_out"]: + print("heralding_out = True. out_nodes are not detected. ancillary detectors herald the outgoing state") + try: + if cnfg["novac"] == True: + print("novac = True. we assume the correct number of photons is leaving the setup") + else: + print("novac = False. we assume that the number of photons leaving the setup is not fixed") + except KeyError: + print("novac not given, that the number of photons leaving the setup is not fixed") + cnfg["novac"] = False + else: + print("heralding_out = False. out_nodes are detected. outgoing state is post-selected.") + except KeyError: + print('heralding_out not given, assuming post-selection') + cnfg["heralding_out"] = False + + try: + if cnfg["number_resolving"]: + print('number resolving detectors used.') + else: + print('no number resolving detectors used') + except KeyError: + print('no information about photon-number resolving detectors given, assuming none are used') + cnfg["number_resolving"] = False + + try: + cnfg["brutal_covers"] + except KeyError: + cnfg["brutal_covers"] = False + + try: + cnfg["bipartite"] + except KeyError: + cnfg["bipartite"] = False + + try: + cnfg["bulk_thr"] + except KeyError: + cnfg["bulk_thr"] = 0 + + try: + cnfg["save_hist"] + except KeyError: + cnfg["save_hist"] = True + + try: + cnfg["num_pre"] + except KeyError: + cnfg["num_pre"] = 1 + + try: + # define target + for term in cnfg["target_state"]: + if len(term) != len(cnfg["target_state"][0]): + raise ValueError('Target state entries need to have the same length.') + target = [term + additional_nodes * '0' for term in cnfg["target_state"]] + target_state = State(target, amplitudes=cnfg["amplitudes"], imaginary=cnfg["imaginary"]) + # print readable expression of the target state + print(hf.readableState(target_state)) + except: + raise ValueError('Target state had invalid format and could not be created.') + + + # build starting graph + # local dimensions necessary for each node to produce target + cnfg["dimensions"] = th.stateDimensions(target_state.kets) + # get complete starting graph according to local dimensions + edge_list = th.buildAllEdges(cnfg["dimensions"], imaginary=cnfg["imaginary"]) + cnfg["verts"] = np.unique(list(itertools.chain(*th.edgeBleach(edge_list).keys()))) + cnfg["anc_detectors"] = [ii for ii in cnfg["verts"] if + ii not in cnfg["out_nodes"] + cnfg["single_emitters"] + cnfg["in_nodes"]] + + + # create complete graph + graph = Graph('full', imaginary=cnfg["imaginary"],dimensions=cnfg["dimensions"]) + graph.getStateCatalog(full=True) + + # introduce topological constraints + # apply unicolor simplification + if cnfg['unicolor']: + num_data_nodes = len(cnfg['target_state'][0]) + for edge in graph.edges.keys(): + if edge[0] < num_data_nodes and edge[1] < num_data_nodes and edge[2] != edge[3]: + graph.remove(edge) + + # explicitly removed connections + removed_connections = cnfg["removed_connections"] + removed_connections = [sorted(con) for con in removed_connections] + # add other restrictions imposed by specific kinds of nodes + disjoint_nodes = cnfg["single_emitters"] + cnfg["in_nodes"] + incoming_removed_connections = [sorted(con) for con in list(itertools.combinations(disjoint_nodes, 2))] + for con in incoming_removed_connections: + if con in removed_connections: + raise ValueError('removed_connections explicitly specified that a connection between two nodes should be removed, but the nodes are also in in_nodes or single_emitters. removed_connections is reserved for nodes that correspond to detectors (out_nodes or ancillary detectors).') + removed_connections += incoming_removed_connections + if cnfg['bipartite']: + disjoint_nodes = cnfg["out_nodes"] + cnfg['anc_detectors'] + removed_connections += [sorted(con) for con in list(itertools.combinations(disjoint_nodes, 2))] + + for connection in removed_connections: + for edge in graph.edges: + if edge[0] == connection[0] and edge[1] == connection[1]: + graph.remove(edge) + if edge[0] == connection[1] and edge[1] == connection[0]: + graph.remove(edge) + + print(f'start graph has {len(graph.edges)} edges.') + + if not 'init_graph' in cnfg: + num_to_remove=int(0.0*random.random()*len(graph.edges)) + for ii in range(num_to_remove): + curr_edge = random.choice(graph.edges) + graph.remove(curr_edge) + print(f'start graph has {len(graph.edges)} edges after removing.') + + return target_state, graph, cnfg + + +def build_starting_graph(cnfg, dimensions): + # build starting graph + edge_list = th.buildAllEdges(dimensions, imaginary=cnfg['imaginary']) + edge_list = hf.prepEdgeList(edge_list, cnfg) + print(f'start graph has {len(edge_list)} edges.') + start_graph = Graph(edge_list, imaginary=cnfg['imaginary']) + return start_graph + + +def get_dimensions_and_target_state(cnfg): + # check if we are optimizing for entanglement + # there is not a concrete target state and you have to define sys_dict + if cnfg['loss_func'] == 'ent': + # concurrence optimization + # define local dimensions + dimensions = [int(ii) for ii in str(cnfg['dim'])] + if len(dimensions) % 2 != 0: + dimensions.append(1) + target_state = None + # compute sys_dict + sys_dict = hf.get_sysdict(dimensions, bipar_for_opti=cnfg['K'], + imaginary=cnfg['imaginary']) + else: + # target state optimization + sys_dict = None + # add ancillas + term_list = [term + cnfg['num_anc'] * '0' for term in cnfg['target_state']] + # include amplitudes in target state if given + if 'amplitudes' in cnfg: + target_state = State(term_list, amplitudes=cnfg['amplitudes'], imaginary=cnfg['imaginary']) + else: + target_state = State(term_list, imaginary=cnfg['imaginary']) + # print readable expression of the target state + print(hf.readableState(target_state)) + target_kets = target_state.kets + # define local dimensions + dimensions = th.stateDimensions(target_kets) + return dimensions, sys_dict, target_state + + +def read_config(is_example, filename): + '''' + read config json and output cnfg dict + ''' + + # option for running files from example folder + if is_example: + configs_dir = pkg_resources.resource_filename(pytheus.__name__, "graphs") + walk = os.walk(configs_dir) + for root, dirs, files in walk: + if os.path.basename(root) == filename: + for file in files: + if file.startswith('config'): + filename = os.path.join(root, file) + break + + # check if filename ends in json, add extension if needed + if not filename.endswith('.json'): + filename += '.json' + + # error if file does not exist + if not os.path.exists(filename) or os.path.isdir(filename): + raise IOError(f'File does not exist: {filename}') + # load json into dict + with open(filename) as input_file: + cnfg = json.load(input_file) + # set some default value for some keys of dict + if 'topopt' not in cnfg: + cnfg['topopt'] = True + if 'seed' not in cnfg: + cnfg['seed'] = random.randrange(1, 2 ** 32 - 1) + if not cnfg['topopt']: + cnfg['bulk_thr'] = 0 + + if 'optimizer' not in cnfg: + print('optimizer not specified, using L-BFGS-B') + cnfg['optimizer'] = 'L-BFGS-B' + if 'ftol' not in cnfg: + print('ftol not specified, using 1e-6') + cnfg['ftol'] = 1e-6 + if 'samples' not in cnfg: + print('number of samples not specified, using 1') + cnfg['samples'] = 1 + + return cnfg, filename diff --git a/theseus/optimizer.py b/pytheus/optimizer.py similarity index 57% rename from theseus/optimizer.py rename to pytheus/optimizer.py index dba20db4..334e8555 100644 --- a/theseus/optimizer.py +++ b/pytheus/optimizer.py @@ -1,445 +1,496 @@ -# -*- coding: utf-8 -*- -""" -Created on Tue Jul 12 09:07:40 2022 - -@author: janpe -""" - -from .fancy_classes import Graph -from .saver import saver -from .lossfunctions import loss_dic -import numpy as np -from scipy import optimize - -import logging -log = logging.getLogger(__name__) - -class topological_opti: - - def __init__(self, start_graph: Graph, saver: saver, ent_dic=None, target_state=None, - config=None, safe_history=True): - - self.config = config - self.imaginary = self.config['imaginary'] - if self.config['loss_func'] == 'ent': - self.ent_dic = ent_dic - else: - self.target = target_state # object of State class - - # do preoptimization on complete starting graph, this might already take some time - self.graph = self.pre_optimize_start_graph(start_graph) - self.saver = saver - self.save_hist = safe_history - self.history = [] - - def check(self, result: object, lossfunctions: object): - """ - check if all loss functions fulfill conditions for success. mostly defined through thresholds. - - Parameters - ---------- - result : object - from scipy.mimnimizer class - lossfunctions : object - list of all loss functions - - Returns - ------- - bool - False if we keep Graph or True if we can delete edge - - """ - - if self.config['loss_func'] == 'ent': - if abs(result.fun) - abs(self.loss_val[0]) > self.config['thresholds'][0]: - return False - else: - # uncomment to see where checks fail - # print(result.fun, self.config['thresholds'][0]) - if result.fun > self.config['thresholds'][0]: - #if check fails return false - return False - # check if all loss functions are under the corresponding threshold - for ii in range(1, len(lossfunctions)): - if lossfunctions[ii](result.x) > self.config['thresholds'][ii]: - # if check fails return false - return False - # when no check fails return True = success - return True - - def weights_to_valid_input(self, weights: list) -> list: - """ - need to change weights from scip optimizer to proper input - if one optimize with complexe values - - Parameters - ---------- - weights : list - list of weights - - Raises - ------ - ValueError - if imaginary is not defined correctly in config file - - Returns - ------- - list - ordered list according to imaginary - - """ - if self.imaginary == 'cartesian': - - if len(weights) % 2 == 0: - ll2 = int(len(weights)/2) - else: - raise ValueError( - 'odd number of weights for complex optimization') - - return [complex(real, imag) for real, imag in - zip(weights[:ll2], weights[ll2:])] - - elif self.imaginary == 'polar': - - if len(weights) % 2 == 0: - ll2 = int(len(weights)/2) - else: - raise ValueError( - 'odd number of weights for complex optimization') - return [(radius, phase) for radius, phase in - zip(weights[:ll2], weights[ll2:])] - elif self.imaginary is False: - return weights - else: - raise ValueError('imaginary: only: polar,cartesian,false') - - def get_loss_functions(self, current_graph: Graph): - """ - get a list of all loss functions mentioned in config - - Parameters - ---------- - current_graph - - Returns - ------- - callable_loss - list of callable functions - - """ - # get loss function acc. to config - lossfunctions = loss_dic[self.config['loss_func']] - - # entanglement loss function - if self.config['loss_func'] == 'ent': # we optimize for entanglement - loss_specs = {'sys_dict': self.ent_dic, - 'imaginary': self.imaginary, - 'var_factor': self.config['var_factor']} - - # CR and FID - elif self.config['loss_func'] in ['cr', 'fid']: - loss_specs = {'target_state': self.target, - 'cnfg': self.config} - - # fock basis - elif self.config['loss_func'] in ['fockcr','fockfid']: - #loss_specs = {'target_state': self.target, - # 'cnfg': self.config} - loss_specs = {'target_state': self.target, - 'num_anc':self.config['num_anc'], - 'amplitudes':self.config['amplitudes'], - 'imaginary': self.imaginary} - - # custom loss functions - elif self.config['loss_func'] == 'lff': - loss_specs = {'cnfg': self.config} - callable_loss = [func(current_graph, **loss_specs) - for func in lossfunctions] - return callable_loss - - def update_losses(self, result, losses): - """ - updates the losses for next steps - - Parameters - ---------- - result : scipy.minimizer object - minimize object from optimizaiton step - losses : list - list of loss functions - - Returns - ------- - list of losses for corrosponding weights stored in result.x - - """ - loss_values = [result.fun] - for ii in range(1, len(losses)): - loss_values.append(losses[ii](result.x)) - return loss_values - - def pre_optimize_start_graph(self, graph) -> Graph: - """ - first optimization of complete starting graph - - Parameters - ---------- - graph - - Returns - ------- - preopt_graph - - """ - # losses is a list of callable lossfunctions, e.g. [countrate(x), fidelity(x)], where x is a vector of edge weights - # that can be given to scipy.optimize - losses = self.get_loss_functions(graph) - valid = False - counter = 0 - # repeat optimization of complete graph until a good solution is found (which satifies self.check()) - while not valid: - # prepare optimizer - initial_values, bounds = self.prepOptimizer(len(graph)) - # optimization with scipy - best_result = optimize.minimize(losses[0], x0=initial_values, - bounds=bounds, - method=self.config['optimizer'], - options={'ftol': self.config['ftol']}) - self.loss_val = self.update_losses(best_result, losses) - #check if solution is valid - valid = self.check(best_result, losses) - counter += 1 - #print a warning if preoptimization is stuck in a loop - if counter % 10 == 0: - print('10 invalid preoptimization, consider changing parameters.') - log.info('10 invalid preoptimization, consider changing parameters.') - - # if num_pre is set to larger than 1 in config, do num_pre preoptimization and choose the best one. - # for optimizations with concrete target state, num_pre = 1 is enough - for __ in range(self.config['num_pre'] - 1): - initial_values, bounds = self.prepOptimizer(len(graph)) - result = optimize.minimize(losses[0], x0=initial_values, - bounds=bounds, - method=self.config['optimizer'], - options={'ftol': self.config['ftol']}) - - if result.fun < best_result.fun: - best_result = result - self.loss_val = self.update_losses(best_result, losses) - print(f'best result from pre-opt: {abs(best_result.fun)}') - log.info(f'best result from pre-opt: {abs(best_result.fun)}') - - preopt_graph = Graph(graph.edges, - weights=self.weights_to_valid_input( - best_result.x), - imaginary=self.imaginary) - - try: - bulk_thr = self.config['bulk_thr'] - except: - bulk_thr = 0 - if bulk_thr > 0: - # cut all edges smaller than bulk_thr and optimize again - # this can save a lot of time - cont = True - num_deleted = 0 - while cont: - # delete smallest edges one by one - idx_of_edge = preopt_graph.minimum() - amplitude = preopt_graph[idx_of_edge] - if self.imaginary == 'polar': - amplitude = amplitude[0] - if abs(amplitude) < bulk_thr: - preopt_graph.remove(idx_of_edge) - num_deleted += 1 - else: - cont = False - print(f'{num_deleted} edges deleted') - log.info(f'{num_deleted} edges deleted') - valid = False - while not valid: - # it is necessary that the truncated graph passes the checks - initial_values, bounds = self.prepOptimizer(len(preopt_graph)) - losses = self.get_loss_functions(preopt_graph) - trunc_result = optimize.minimize(losses[0], x0=initial_values, - bounds=bounds, - method=self.config['optimizer'], - options={'ftol': self.config['ftol']}) - self.loss_val = self.update_losses(trunc_result, losses) - print(f'result after truncation: {abs(trunc_result.fun)}') - log.info(f'result after truncation: {abs(trunc_result.fun)}') - valid = self.check(trunc_result, losses) - preopt_graph = Graph(preopt_graph.edges, - weights=self.weights_to_valid_input( - trunc_result.x), - imaginary=self.imaginary) - - return preopt_graph - - def prepOptimizer(self, numweights, x=[]): - """ - returns initial values and bounds for use in optimization. - - Parameters - ---------- - numweights - x - - Returns - ------- - initial_values - bounds - """ - - if not self.imaginary: - bounds = numweights * [(-1, 1)] - if len(x) == 0: - initial_values = 2 * np.random.random(numweights) - 1 - else: - initial_values = x - else: - bounds = numweights * [(-1, 1)] + numweights * [(-np.pi, np.pi)] - if len(x) == 0: - rands_r = 2 * np.random.random(numweights) - 1 - rands_th = 2 * np.pi * np.random.random(numweights) - np.pi - initial_values = np.concatenate([rands_r, rands_th]) - else: - initial_values = x - - return initial_values, bounds - - def continuationCondition(self, num_edge) -> bool: - """ - conditions that stop optimization - - Parameters - ---------- - num_edge - - Returns - ------- - cont: bool - if True, topological optimization is continued - """ - if self.config['loss_func'] == 'ent': - cont = len(self.graph) > self.config['min_edge'] and num_edge < len( - self.graph) - else: - # if num_edge is higher than total number of edges in the graph - # or higher than edges_tried, return False - cont = num_edge < min(len(self.graph), self.config['edges_tried']) - return cont - - def optimize_one_edge(self, num_edge: int, - num_tries_one_edge: int) -> (Graph, bool): - """ - delete the num_edge-th smallest edge and optimize num_tries_one_edge times - and check if corresponding loss function fulfills checks - - Parameters - ---------- - num_edge - num_tries_one_edge - - Returns - ------- - new_graph - if edge is successfully deleted, reduced graph is returned. else graph is not modified. - success - """ - # copy current Graph and delete num_edge´s smallest weight - # set up reduced graph - reduced_graph = self.graph.copy() - #find index of num_edge smallest edge - idx_of_edge = reduced_graph.minimum(num_edge) - #store amplitude in case edge fails and needs to be put back in - amplitude = reduced_graph[idx_of_edge] - #remove smallest edge - reduced_graph.remove(idx_of_edge, update=False) - #update state catalog of reduced graph - reduced_graph.getStateCatalog() - #try a given number of times to delete this edge - for ii in range(num_tries_one_edge): - # if edge is tried for the first time, update loss function and other optimization parameters - # also the weights of the old graph are used as initial values (this is much faster) - if ii == 0: - try: - # redefine loss functions for reduced graph - losses = self.get_loss_functions(reduced_graph) - # use initial values x0 from previous Graph - x0 = reduced_graph.weights - initial_values, bounds = self.prepOptimizer(len(reduced_graph), - x=x0) - # optimize with scipy - result = optimize.minimize(losses[0], x0=initial_values, - bounds=bounds, - method=self.config['optimizer'], - options={'ftol': self.config['ftol']}) - except KeyError: - # if the target kets can not be produced with the given graph we can give up on this edge - # it wont work - reduced_graph[idx_of_edge] = amplitude - print('edge necessary for producing all kets') - log.info('edge necessary for producing all kets') - return reduced_graph, False # no success keep current Graph - # if edge has been tried before, reuse loss function etc. and use random initial values - else: - # random initial values - initial_values, bounds = self.prepOptimizer(len(reduced_graph)) - # optimize with scipy - result = optimize.minimize(losses[0], x0=initial_values, - bounds=bounds, - method=self.config['optimizer'], - options={'ftol': self.config['ftol']}) - # check if solution is valid - valid = self.check(result, losses) - - if valid: # if criterion is reached then save reduced graph as graph, else leave graph as is - # compute values for all losses - self.loss_val = self.update_losses(result, losses) - # if clean solution is encountered before optimization finishes, save that too - # all weights are +-1 and solution is pretty good, it is interesting enough to be saved - # to a file even if topological optimization can be continued - if all(np.array(abs(self.graph)) > 0.95): - self.saver.save_graph(self) - if self.save_hist: - self.history.append(self.loss_val) - # return updated result graph - return Graph(reduced_graph.edges, - weights=self.weights_to_valid_input(result.x), - imaginary=self.imaginary), True - # all tries failed keep current Graph - reduced_graph[idx_of_edge] = amplitude - return reduced_graph, False - - def topologicalOptimization(self, save_hist=True) -> Graph: - """ - does the topological main loop. deletes edges until continuation condition fails. - Returns - ------- - solution_graph - result of optimization - """ - #start with smallest edge - num_edge = 0 - graph_history = [] - # if num_edge becomes too large, optimization is stopped - while self.continuationCondition(num_edge): - # try if num_edge smallest edge can be removed - # if successful, return optimized graph after deletion - # if not successful, return old graph - self.graph, success = self.optimize_one_edge( - num_edge, self.config['tries_per_edge']) - #iterate num_edge to try next smallest edge - num_edge += 1 - log.info(f'deleting edge {num_edge}') - print(f'deleting edge {num_edge}') - if success: - print( - f"deleted: {len(self.graph)} edges left with loss {self.loss_val[0]:.3f}") - log.info(f"deleted: {len(self.graph)} edges left with loss {self.loss_val[0]:.3f}") - #reset to try smallest edge again for next iteration - num_edge = 0 - graph_history.append(self.graph) - - return self.graph +# -*- coding: utf-8 -*- +""" +Created on Tue Jul 12 09:07:40 2022 + +@author: janpe +""" + +from .fancy_classes import Graph +from .saver import saver +from .lossfunctions import loss_dic +import numpy as np +from scipy import optimize +import json + +import logging +import time +log = logging.getLogger(__name__) + + +class topological_opti: + + def __init__(self, start_graph: Graph, saver: saver, ent_dic=None, target_state=None, + config=None, safe_history=True): + + self.config = config + self.imaginary = self.config['imaginary'] + if self.config['loss_func'] == 'ent': + self.ent_dic = ent_dic + else: + self.target = target_state # object of State class + + self.best_loss = np.inf + # do preoptimization on complete starting graph, this might already take some time + self.graph = self.pre_optimize_start_graph(start_graph) + + self.save_hist = safe_history + self.history = [] + + self.saver = saver + #save preoptimized graph to file + self.saver.save_graph(self) + + def check(self, result: object, lossfunctions: object): + """ + check if all loss functions fulfill conditions for success. mostly defined through thresholds. + + Parameters + ---------- + result : object + from scipy.mimnimizer class + lossfunctions : object + list of all loss functions + + Returns + ------- + bool + False if we keep Graph or True if we can delete edge + + """ + + if self.config['loss_func'] == 'ent': + if abs(result.fun) - abs(self.loss_val[0]) > self.config['thresholds'][0]: + return False + else: + # check if all loss functions are under the corresponding threshold + for ii in range(len(lossfunctions)): + print(f'loss {ii}: {lossfunctions[ii](result.x):.4f}, threshold: {self.config["thresholds"][ii]:.4f}') + if lossfunctions[ii](result.x) > self.config['thresholds'][ii]: + # if check fails return false + return False + # when no check fails return True = success + return True + + def weights_to_valid_input(self, weights: list) -> list: + """ + need to change weights from scip optimizer to proper input + if one optimize with complexe values + + Parameters + ---------- + weights : list + list of weights + + Raises + ------ + ValueError + if imaginary is not defined correctly in config file + + Returns + ------- + list + ordered list according to imaginary + + """ + if self.imaginary == 'cartesian': + + if len(weights) % 2 == 0: + ll2 = int(len(weights) / 2) + else: + raise ValueError( + 'odd number of weights for complex optimization') + + return [complex(real, imag) for real, imag in + zip(weights[:ll2], weights[ll2:])] + + elif self.imaginary == 'polar': + + if len(weights) % 2 == 0: + ll2 = int(len(weights) / 2) + else: + raise ValueError( + 'odd number of weights for complex optimization') + return [(radius, phase) for radius, phase in + zip(weights[:ll2], weights[ll2:])] + elif self.imaginary is False: + return weights + else: + raise ValueError('imaginary: only: polar,cartesian,false') + + def get_loss_functions(self, current_graph: Graph): + """ + get a list of all loss functions mentioned in config + + Parameters + ---------- + current_graph + + Returns + ------- + callable_loss + list of callable functions + + """ + # get loss function acc. to config + lossfunctions = loss_dic[self.config['loss_func']] + + # entanglement loss function + if self.config['loss_func'] == 'ent': # we optimize for entanglement + loss_specs = {'sys_dict': self.ent_dic, + 'imaginary': self.imaginary, + 'var_factor': self.config['var_factor']} + + # CR and FID + elif self.config['loss_func'] in ['cr', 'fid']: + loss_specs = {'target_state': self.target, + 'cnfg': self.config} + + # fock basis + elif self.config['loss_func'] in ['fockcr', 'fockfid']: + # loss_specs = {'target_state': self.target, + # 'cnfg': self.config} + loss_specs = {'target_state': self.target, + 'num_anc': self.config['num_anc'], + 'amplitudes': self.config['amplitudes'], + 'imaginary': self.imaginary} + + # custom loss functions + elif self.config['loss_func'] == 'lff': + loss_specs = {'cnfg': self.config} + callable_loss = [func(current_graph, **loss_specs) + for func in lossfunctions] + + if 'thresholds' not in self.config: + raise ValueError(f'thresholds not defined in config file. Please define thresholds as list of floats (length = {len(callable_loss)}).') + + testinit, _ = self.prepOptimizer(len(current_graph)) + for loss in callable_loss: + try: + loss(testinit) + except Exception as e: + print(f'Error in loss function {loss}: {e}') + raise RuntimeError('Loss function gives error for a test input, so it is not properly defined. This could be due to configuration parameters given for the optimization. Trying to compute perfect matchings for an odd number of total particles (main+ancilla) will lead to a meaningless loss function (0/0 --> division by zero).') + return callable_loss + + def update_losses(self, result, losses): + """ + updates the losses for next steps + + Parameters + ---------- + result : scipy.minimizer object + minimize object from optimizaiton step + losses : list + list of loss functions + + Returns + ------- + list of losses for corrosponding weights stored in result.x + + """ + loss_values = [result.fun] + for ii in range(1, len(losses)): + loss_values.append(losses[ii](result.x)) + return loss_values + + def pre_optimize_start_graph(self, graph) -> Graph: + """ + first optimization of complete starting graph + + Parameters + ---------- + graph + + Returns + ------- + preopt_graph + + """ + if 'init_graph' in self.config: + print('SKIPPING PREOPTIMIZATION, USING INIT_GRAPH FROM CONFIG', flush=True) + init_edges = self.config['init_graph'] + init_edges = {eval(k): v for k, v in init_edges.items()} + print(init_edges) + print(graph.edges) + for edge in list(graph.edges): + if edge in init_edges: + graph[edge] = init_edges[edge] + else: + graph.remove(edge) + print(graph) + preopt_graph = graph.copy() + callable_loss = self.get_loss_functions(preopt_graph) + self.loss_val = [] + for loss in callable_loss: + try:self.loss_val.append(loss(preopt_graph.weights)) + except Exception as e: + print('warning: init_graph from config leads to error in loss function:', e) + self.loss_val.append(np.inf) + else: + # losses is a list of callable lossfunctions, e.g. [countrate(x), fidelity(x)], where x is a vector of edge weights + # that can be given to scipy.optimize + log.info('loading losses') + losses = self.get_loss_functions(graph) + log.info('losses done') + valid = False + counter = 0 + # repeat optimization of complete graph until a good solution is found (which satifies self.check()) + while not valid: + # prepare optimizer + initial_values, bounds = self.prepOptimizer(len(graph)) + # optimization with scipy + log.info('begin preopt') + self.tt = time.time() + def callback(xk): + print(f'preopt step with loss {losses[0](xk):.3f}', flush=True) + print(f'time for last step: {time.time()-self.tt:.1f}s', flush=True) + self.tt = time.time() + best_result = optimize.minimize(losses[0], x0=initial_values, + bounds=bounds, + method=self.config['optimizer'], + options={'ftol': self.config['ftol']}, + callback=callback) + log.info('end preopt') + self.loss_val = self.update_losses(best_result, losses) + # check if solution is valid + valid = self.check(best_result, losses) + counter += 1 + # print a warning if preoptimization is stuck in a loop + if counter % 10 == 0: + print('10 invalid preoptimization, consider changing parameters.') + log.info('10 invalid preoptimization, consider changing parameters.') + if counter % 100 == 0: + print('100 invalid preoptimization, state cannot be found.') + log.info('100 invalid preoptimization, state cannot be found.') + raise ValueError('100 invalid preoptimization steps. Conclusion: State cannot be created with provides parameters. Consider adding more ancillas or using less restrictions if possible (e.g. removed_connections).') + + # if num_pre is set to larger than 1 in config, do num_pre preoptimization and choose the best one. + # for optimizations with concrete target state, num_pre = 1 is enough + for __ in range(self.config['num_pre'] - 1): + initial_values, bounds = self.prepOptimizer(len(graph)) + result = optimize.minimize(losses[0], x0=initial_values, + bounds=bounds, + method=self.config['optimizer'], + options={'ftol': self.config['ftol']}) + + if result.fun < best_result.fun: + best_result = result + self.loss_val = self.update_losses(best_result, losses) + print(f'best result from pre-opt: {abs(best_result.fun)}') + log.info(f'best result from pre-opt: {abs(best_result.fun)}') + self.best_loss = best_result.fun + + for ii, edge in enumerate(graph.edges): + graph[edge] = best_result.x[ii] + preopt_graph = graph.copy() + + try: + bulk_thr = self.config['bulk_thr'] + except: + bulk_thr = 0 + if bulk_thr > 0: + # cut all edges smaller than bulk_thr and optimize again + # this can save a lot of time + cont = True + num_deleted = 0 + while cont: + # delete smallest edges one by one + min_edge = preopt_graph.minimum() + amplitude = preopt_graph[min_edge] + if self.imaginary == 'polar': + amplitude = amplitude[0] + if abs(amplitude) < bulk_thr: + preopt_graph.remove(min_edge, update=True) + num_deleted += 1 + else: + cont = False + print(f'{num_deleted} edges deleted') + log.info(f'{num_deleted} edges deleted') + valid = False + while not valid: + # it is necessary that the truncated graph passes the checks + initial_values, bounds = self.prepOptimizer(len(preopt_graph)) + losses = self.get_loss_functions(preopt_graph) + trunc_result = optimize.minimize(losses[0], x0=initial_values, + bounds=bounds, + method=self.config['optimizer'], + options={'ftol': self.config['ftol']}) + self.loss_val = self.update_losses(trunc_result, losses) + print(f'result after truncation: {abs(trunc_result.fun)}') + log.info(f'result after truncation: {abs(trunc_result.fun)}') + valid = self.check(trunc_result, losses) + + for ii, edge in enumerate(preopt_graph.edges): + preopt_graph[edge] = trunc_result.x[ii] + + return preopt_graph + + def prepOptimizer(self, numweights, x=[]): + """ + returns initial values and bounds for use in optimization. + + Parameters + ---------- + numweights + x + + Returns + ------- + initial_values + bounds + """ + + if not self.imaginary: + bounds = numweights * [(-1, 1)] + if len(x) == 0: + initial_values = 2 * np.random.random(numweights) - 1 + else: + initial_values = x + else: + bounds = numweights * [(-1, 1)] + numweights * [(-np.pi, np.pi)] + if len(x) == 0: + rands_r = 2 * np.random.random(numweights) - 1 + rands_th = 2 * np.pi * np.random.random(numweights) - np.pi + initial_values = np.concatenate([rands_r, rands_th]) + else: + initial_values = x + + return initial_values, bounds + + def continuationCondition(self, num_edge) -> bool: + """ + conditions that stop optimization + + Parameters + ---------- + num_edge + + Returns + ------- + cont: bool + if True, topological optimization is continued + """ + if self.config['loss_func'] == 'ent': + cont = len(self.graph) > self.config['min_edge'] and num_edge < len( + self.graph) + else: + # if num_edge is higher than total number of edges in the graph + # or higher than edges_tried, return False + cont = num_edge < min(len(self.graph), self.config['edges_tried']) + return cont + + def optimize_one_edge(self, num_edge: int, + num_tries_one_edge: int) -> (Graph, bool): + """ + delete the num_edge-th smallest edge and optimize num_tries_one_edge times + and check if corresponding loss function fulfills checks + + Parameters + ---------- + num_edge + num_tries_one_edge + + Returns + ------- + new_graph + if edge is successfully deleted, reduced graph is returned. else graph is not modified. + success + """ + # copy current Graph and delete num_edge´s smallest weight + # set up reduced graph + reduced_graph = self.graph.copy() + # find index of num_edge smallest edge + min_edge = reduced_graph.minimum(num_edge) + # store amplitude in case edge fails and needs to be put back in + amplitude = reduced_graph[min_edge] + # remove smallest edge + reduced_graph.remove(min_edge, update=True) + # try a given number of times to delete this edge + for ii in range(num_tries_one_edge): + # if edge is tried for the first time, update loss function and other optimization parameters + # also the weights of the old graph are used as initial values (this is much faster) + if ii == 0: + try: + # redefine loss functions for reduced graph + losses = self.get_loss_functions(reduced_graph) + # use initial values x0 from previous Graph + x0 = reduced_graph.weights + initial_values, bounds = self.prepOptimizer(len(reduced_graph), + x=x0) + # optimize with scipy + result = optimize.minimize(losses[0], x0=initial_values, + bounds=bounds, + method=self.config['optimizer'], + options={'ftol': self.config['ftol']}) + except Exception as e: + # if the target kets can not be produced with the given graph we can give up on this edge + # it wont work + reduced_graph[min_edge] = amplitude + print('edge necessary for producing all kets') + log.info('edge necessary for producing all kets') + return reduced_graph, False # no success keep current Graph + # if edge has been tried before, reuse loss function etc. and use random initial values + else: + # random initial values + initial_values, bounds = self.prepOptimizer(len(reduced_graph)) + # optimize with scipy + result = optimize.minimize(losses[0], x0=initial_values, + bounds=bounds, + method=self.config['optimizer'], + options={'ftol': self.config['ftol']}) + # check if solution is valid + valid = self.check(result, losses) + + if valid: # if criterion is reached then save reduced graph as graph, else leave graph as is + # compute values for all losses + self.loss_val = self.update_losses(result, losses) + # if clean solution is encountered before optimization finishes, save that too + # all weights are +-1 and solution is pretty good, it is interesting enough to be saved + # to a file even if topological optimization can be continued + if all(np.array(abs(self.graph)) > 0.95): + self.saver.save_graph(self) + elif result.fun < self.best_loss: + self.best_loss = result.fun + self.saver.save_graph(self) + if self.save_hist: + self.history.append([str(self.graph),self.loss_val]) + # return updated result graph + result_graph = reduced_graph.copy() + for ii, edge in enumerate(reduced_graph.edges): + result_graph[edge] = result.x[ii] + return result_graph, True + # all tries failed keep current Graph + reduced_graph[min_edge] = amplitude + return reduced_graph, False + + def topologicalOptimization(self, save_hist=True) -> Graph: + """ + does the topological main loop. deletes edges until continuation condition fails. + Returns + ------- + solution_graph + result of optimization + """ + # start with smallest edge + num_edge = 0 + graph_history = [] + # if num_edge becomes too large, optimization is stopped + while self.continuationCondition(num_edge): + # try if num_edge smallest edge can be removed + # if successful, return optimized graph after deletion + # if not successful, return old graph + self.graph, success = self.optimize_one_edge( + num_edge, self.config['tries_per_edge']) + # iterate num_edge to try next smallest edge + num_edge += 1 + log.info(f'deleting edge {num_edge}') + print(f'deleting edge {num_edge}') + if success: + print( + f"deleted: {len(self.graph)} edges left with loss {self.loss_val[0]:.3f}") + log.info(f"deleted: {len(self.graph)} edges left with loss {self.loss_val[0]:.3f}") + # reset to try smallest edge again for next iteration + num_edge = 0 + graph_history.append(self.graph) + + return self.graph diff --git a/theseus/saver.py b/pytheus/saver.py similarity index 98% rename from theseus/saver.py rename to pytheus/saver.py index 1dcb563c..195a8760 100644 --- a/theseus/saver.py +++ b/pytheus/saver.py @@ -183,6 +183,7 @@ def get_dictonary_storing_in_json(self,topo_obj): safe_dic = {'graph': self.convert_graph_keys_in_str(topo_obj.graph.graph), 'loss': topo_obj.loss_val, + 'seed': self.config['seed'], 'history': topo_obj.history} try: @@ -227,7 +228,7 @@ def get_file_name(self, graph: Graph, loss: float) -> str: else: clean = 'rough' file_name = clean + '-' + str(len(graph.graph)) + '-' - graph.getStateCatalog() + # graph.getStateCatalog() file_name += str(len(graph.perfect_matchings)) + '-' for lo in loss: file_name += f'{lo:.4f}_' diff --git a/theseus/theseus.py b/pytheus/theseus.py similarity index 64% rename from theseus/theseus.py rename to pytheus/theseus.py index bf37fb14..861df241 100644 --- a/theseus/theseus.py +++ b/pytheus/theseus.py @@ -3,11 +3,17 @@ """ @author: cruizgo, soerenarlt, janpe """ -import itertools +import itertools, numbers, random from math import factorial from collections import Counter -import random import numpy as np +import warnings +import math + + +import logging + +log = logging.getLogger(__name__) # # Auxiliary Functions @@ -30,7 +36,7 @@ def allPairSplits(lst): From selfgatoatigrado: https://stackoverflow.com/a/13020502 ''' N = len(lst) - choice_indices = itertools.product(*[range(k) for k in reversed(range(1, N, 2))]) + choice_indices = itertools.product(*[range(k) for k in range(N-1, 0, -2)]) for choice in choice_indices: # calculate the list corresponding to the choices @@ -41,11 +47,14 @@ def allPairSplits(lst): yield result # use yield and then turn it into a list is faster than append -def targetEdges(nodes, graph): +def targetEdges(nodes, graph, isolate=False): ''' Returns all graph's edges which connect to the input nodes. ''' - return [edge for edge in graph if (edge[0] in nodes) or (edge[1] in nodes)] + if isolate: + return [edge for edge in graph if (edge[0] in nodes) and (edge[1] in nodes)] + else: + return [edge for edge in graph if (edge[0] in nodes) or (edge[1] in nodes)] def removeNodes(nodes, graph): @@ -88,6 +97,34 @@ def edgeBleach(color_edges): return bleached_edges +def edgePainting(graph_list, avail_colors): + ''' + Takes a list of uncolored graphs and 'paint them' with the + dictionary of `avail_colors`. + + Parameters + ---------- + graph_list : list of tuples + List of subgraphs: perfect matchings, edge covers... + The colors of the edges, if any, are ignored. + avail_colors : dictionary + Dictionary with the color combinations available for each edge (see edgeBleach). + {(node1, node2): [(color1, color2), ...], (node1, node3): [(color2, color1), ...], ...} + + Returns + ------- + colored_graphs : list of tuples + List of graphs with all possible color combinations. + ''' + graph_list = np.unique(np.array(graph_list)[:,:,:2],axis=0) + painted_subgraphs = [] + for subgraph in graph_list: + for coloring in itertools.product(*[avail_colors[tuple(edge)] for edge in subgraph]): + color_subgraph = [tuple(edge) + color for edge, color in zip(subgraph, coloring)] + painted_subgraphs.append(sorted(color_subgraph)) + return [tuple(map(tuple,graph)) for graph in np.unique(painted_subgraphs, axis=0)] + + def allColorGraphs(color_nodes, loops=False): ''' Given a list of colored nodes, i.e., an state. It uses AllPairSplits to generate all graphs that @@ -117,8 +154,7 @@ def allColorGraphs(color_nodes, loops=False): color_graph = [[[nd[0][0], nd[1][0], nd[0][1], nd[1][1]] for nd in graph if nd[0][0] != nd[1][0]] for graph in color_graph] color_graph = [graph for graph in color_graph if len(graph) == len(color_nodes) / 2] - return [tuple(tuple(ed) for ed in graph) for graph in np.unique(color_graph, axis=0)] - + return [tuple(map(tuple,graph)) for graph in np.unique(color_graph, axis=0)] # # Informative Functions @@ -155,6 +191,18 @@ def nodeDegrees(edge_list, nodes_list=[], increasing=True): return [(k, v) for k, v in links.items()] +def creatorList(edge_list, allow_rep = False): + ''' + From a list of edges, returns a list of the employed creator operators. + ''' + creator_list = [] + for ed in edge_list: creator_list += [(ed[0], ed[2]), (ed[1], ed[3])] + if allow_rep: + return sorted(creator_list) + else: + return sorted(set(creator_list)) + + def graphDimensions(edge_list): ''' Estimate the dimensions of a graph based on its edges. @@ -172,19 +220,9 @@ def graphDimensions(edge_list): dimensions : list List with the dimensions accessible to each node in decreasing order. ''' - color_nodes = set() - for edge in edge_list: - color_nodes.add((edge[0], edge[2])) - color_nodes.add((edge[1], edge[3])) - color_nodes = sorted(color_nodes, reverse=True) - max_node = color_nodes[0][0] - max_dim = color_nodes[0][1] - dimensions = np.array([max_dim + 1] * (max_node + 1)) - for node in color_nodes: - if node[1] > max_dim: - max_dim = node[1] - dimensions[:(node[0] + 1)] = max_dim + 1 - return list(dimensions) + color_nodes = np.array(creatorList(edge_list)) + num_nodes = color_nodes[-1,0] + 1 + return [1 + color_nodes[color_nodes[:,0]==ii,1].max() for ii in range(num_nodes)] def stateDimensions(ket_list): @@ -239,6 +277,34 @@ def stateCatalog(graph_list): return state_catalog +def mixedCatalog(traced_nodes, state_catalog): + ''' + Given a catalog of states, it groups them based on the state on the traced nodes. + This function helps in the computation of mixed states. + + Parameters + ---------- + traced_nodes : list of integers + List of the nodes which are traced out. + state_catalog : dictionary, optional + Dictionary with all the kets created by each graph as keys. If more than one graph leads to + the same state, they are listed together in the corresponding entrance of the dictionary. + + Returns + ------- + mixed_catalog : dictionary + Dictionary of state_catalogs grouped by the state of the traced nodes. + ''' + mixed_catalog = dict() + for ket, graph_list in state_catalog.items(): + traced_ket = tuple(node for node in ket if node[0] in traced_nodes) + try: + mixed_catalog[traced_ket][ket] = graph_list + except KeyError: + mixed_catalog[traced_ket] = {ket:graph_list} + return mixed_catalog + + def buildAllEdges(dimensions, string=False, imaginary=False, loops=False): ''' Given a collection of nodes, each with several possible colors/dimensions, returns all possible @@ -347,7 +413,7 @@ def buildRandomGraph(dimensions, num_edges, cover_all=True, loops=False): def allPerfectMatchings(dimensions): ''' Given a collection of nodes with different dimensions/colors available, it produces all possible - states that erase from these and the different graphs that can produce such states. + states that arises from these and the different graphs that can produce such states. The graphs nodes can present different colors/dimensions and be connected by more than one edge. A fully connected (uncolored) graph with 2n nodes has (2n)!/((2**n)⋅n!) perfect matchings. @@ -436,11 +502,60 @@ def allEdgeCovers(dimensions, order=0, loops=False): # This function should repl return color_dict +def allFockStates(photons_per_modes, ancillas=None): + ''' + Generation of all possible Fock states. Loops are allowed. + + Parameters + ---------- + photons_per_modes : list of lists of integers + List of the photons to create in different modes: + [[N1 ph, M1 modes], [N2 ph, M2 modes], [N3 ph, M3 modes], ...] + ancillas : int, optional + Ancilla detectors reached by one photon each. + + Returns + ------- + fock_dict : dictionary + Dictionary of available Fock states. For each or state, the dictionary + stores a list of all possible graphs that produce such state. + The notation employed for the nodes is: (node, color/dimension). + The notation employed for the edges is: (node1, node2, color1, color2). + Node2 cannot be lower than Node1. + We keep the notation of other dictionaries, but the color is always 0. + ''' + assert all(isinstance(num,numbers.Integral) for num in sum(photons_per_modes, [])) + total_photons = sum(pair[0] for pair in photons_per_modes) + total_modes = sum(pair[1] for pair in photons_per_modes) + if ancillas is None: + ancillas = total_photons % 2 + elif (total_photons + ancillas) % 2 == 0: + pass # all good + else: + raise ValueError('The total number of photons must be even. Modify photons/ancillas.') + ancilla_nodes = tuple(range(total_modes,total_modes + ancillas)) + ancilla_nodes_long = tuple((anc,0) for anc in ancilla_nodes) + + prod_states = [] + mode_count = 0 + for photons, modes in photons_per_modes: + prod_states.append(list(itertools.combinations_with_replacement(range(mode_count,mode_count+modes), photons))) + mode_count += modes + + fock_dict = dict() + for prod in itertools.product(*prod_states): + state = sum(prod,()) + terms = sorted(sorted(graph) for graph in allPairSplits(list(state+ancilla_nodes))) + terms = [tuple(tuple(edge)+(0,0) for edge in graph) for graph in np.unique(terms,axis=0)] + fock_dict[tuple((node,0) for node in state) + ancilla_nodes_long] = terms + return fock_dict + + def recursivePerfectMatchings(graph, store, matches=[], edges_left=None): ''' The heavy lifting of findPerfectMatchings. ''' - if edges_left == None: edges_left = len(np.unique(np.array(graph)[:, :2])) / 2 + if edges_left is None: edges_left = len(np.unique(np.array(graph)[:, :2])) / 2 if len(graph) > 0: for edge in targetEdges([nodeDegrees(graph)[0][0]], graph): recursivePerfectMatchings(removeNodes(edge[:2], graph), store, @@ -479,70 +594,7 @@ def findPerfectMatchings(graph): return painted_matchings -def recursiveEdgeCover(graph, store, matches=[], edges_left=None, nodes_left=[], order=1, loops=False): - ''' - Pseudorecursive function that append all possible edge covers of a - graph in a given list 'store'. - It does the heavy lifting of findEdgeCovers. - - Parameters - ---------- - graph : list - List of all available edges. - store : list - List to store the edge covers. - matches : list, optional - List of edges to build a perfect matching. If it fulfils all - requirements it will end up in store - edges_left : int, optional - Total number of edges of each edge cover. If None, this is computed - as the minimum edges required to cover all nodes plus the order. - nodes_left : list, optional - List of all nodes to be covered. By default, the list is obtained - from the nodes covered in graph but it can be set to target - specific nodes. - order : int, optional - Orders above the minimum required to cover all nodes. If 0, the - output are only perfect machings, with all nodes having degree 1. - loops : boolean, optional - Allow edges to connect twice the same node. These cannot appear for - perfect matchings. - - Returns - ------- - None, but now the input list 'store' contains all possible edge covers. - ''' - if len(nodes_left) == 0: nodes_left = np.unique(np.array(graph)[:, :2]) - if edges_left == None: edges_left = order + len(nodes_left) / 2 - case = 2 * edges_left - len(nodes_left) - if case > 1: - for edge in graph: - recursiveEdgeCover(graph, store, matches + [edge], edges_left - 1, - [node for node in nodes_left if node not in edge[:2]], loops=loops) - elif case == 1: - for edge in targetEdges(nodes_left, graph): - if edges_left > 1: - new_nodes_left = [node for node in nodes_left if node not in edge[:2]] - recursiveEdgeCover(targetEdges(new_nodes_left, graph), store, - matches + [edge], edges_left - 1, new_nodes_left, loops=loops) - if edges_left == 1 and not (sorted(matches + [edge]) in store): - store.append(sorted(matches + [edge])) - elif case == 0: # We are in the perfect matching situation - subgraph = [ed for ed in graph if (ed[0] in nodes_left) & (ed[1] in nodes_left)] - if loops: subgraph = [edge for edge in subgraph if edge[0] != edge[1]] - perfect_matchings = [] - recursivePerfectMatchings(subgraph, perfect_matchings, edges_left=edges_left) - for pm in perfect_matchings: - if not (sorted(matches + pm) in store): - store.append(sorted(matches + pm)) - else: - pass - - -# for large orders we could compute a first pack of edges at once using itertools - - -def findEdgeCovers(graph, edges_left=None, nodes_left=[], order=1, loops=False): +def findEdgeCovers(graph, edges_left=None, nodes_left=None, order=1, loops=False): ''' Given a list of edges, returns all possible edge covers, up to a certain order or using a certain number of edges. @@ -554,14 +606,14 @@ def findEdgeCovers(graph, edges_left=None, nodes_left=[], order=1, loops=False): edges_left : int, optional Total number of edges of each edge cover. If None, this is computed as the minimum edges required to cover all nodes plus the order. - nodes_left : list, optional + nodes_left : iterable of int, optional List of all nodes to be covered. By default, the list is obtained from the nodes covered in graph but it can be set to target specific nodes. order : int, optional Orders above the minimum required to cover all nodes. If 0, the output are only perfect machings, with all nodes having degree 1. - loops : boolean, optional + loops : boolean, optional NOT USED ANYMORE Allow edges to connect twice the same node. These cannot appear for perfect matchings. @@ -570,16 +622,28 @@ def findEdgeCovers(graph, edges_left=None, nodes_left=[], order=1, loops=False): covers : list List of graphs with all nodes having, at least, degree 1. ''' + # We ignore the edge colors until the very end avail_colors = edgeBleach(graph) - raw_covers = [] - recursiveEdgeCover(list(avail_colors.keys()), raw_covers, edges_left=edges_left, - nodes_left=nodes_left, order=order, loops=loops) - painted_covers = [] + raw_edges = sorted(avail_colors.keys()) + + if nodes_left is None: + nodes_left = set(np.array(raw_edges)[:, :2].flat) + if edges_left is None: + edges_left = order + (len(nodes_left) // 2) + + # Create a set of all possible subsets of edges + raw_covers = set() + for subgraph in itertools.combinations_with_replacement(raw_edges, edges_left): + nodes_covered = set(sum(subgraph, ())) + if all(node in nodes_covered for node in nodes_left): + raw_covers.add(subgraph) + + painted_covers = set() for cover in raw_covers: for coloring in itertools.product(*[avail_colors[edge] for edge in cover]): - color_cover = [edge + color for edge, color in zip(cover, coloring)] - painted_covers.append(sorted(color_cover)) - return [[tuple(ed) for ed in graph] for graph in np.unique(painted_covers, axis=0)] + painted_covers.add(tuple(sorted(edge + color + for edge, color in zip(cover, coloring)))) + return sorted(painted_covers) # # String Expressions @@ -633,9 +697,9 @@ def weightProduct(edge_list, imaginary=False): # This expression could also be UNlambdified so we add some check for the Counter -factProduct = lambda lst: np.product([factorial(ii) for ii in Counter(lst).values()]) +factorialProduct = lambda lst: np.prod([factorial(ii) for ii in Counter(lst).values()]) -def writeNorm(state_catalog, imaginary=False): +def writeNorm(state_catalog, imaginary=False, hot=False): ''' Write a normalization function with all the states of a dictionary. @@ -644,10 +708,11 @@ def writeNorm(state_catalog, imaginary=False): state_catalog : dictionary Dictionary with all the kets created by each graph as keys. If more than one graph leads to the same state, they are listed together in the corresponding entrance of the dictionary. - imaginary : boolean, str ('cartesian' or 'polar'), optional If False, the final expression uses only real weights. If 'cartesian' or 'polar', the weights are complex values written in the corresponding notation. + hot : boolean, optional + Higher Order Terms. If True, it computes the coefficients derived from edge/node repetition. Returns ------- @@ -655,38 +720,53 @@ def writeNorm(state_catalog, imaginary=False): Norm string with the contributions of each perfect matching to their corresponding ket. ''' norm_sum = [] - for key, values in state_catalog.items(): - # The division with factProduct comes from combinatoric reasons: wikipedia.org/wiki/Multinomial_theorem - term_sum = [f'{weightProduct(graph, imaginary)}/{factProduct(graph)}' for graph in values] - term_sum = ' + '.join(term_sum) - if imaginary == False: - # The multiplication with factProduct from creator operators: wikipedia.org/wiki/Creation_operators - # The factor should be squared or, in this case, left outside the square - norm_sum.append(f'{factProduct(key)}*(({term_sum})**2)') - else: - norm_sum.append(f'{factProduct(key)}*(abs({term_sum})**2)') - return ' + '.join(norm_sum).replace('/1 +', ' +').replace('/1)', ')').replace('+ 1*', '+ ') + if hot: + for key, values in state_catalog.items(): + # The division with factorialProduct comes from combinatoric reasons: wikipedia.org/wiki/Multinomial_theorem + term_sum = [f'{weightProduct(graph, imaginary)}/{factorialProduct(graph)}' for graph in values] + term_sum = ' + '.join(term_sum) + if imaginary == False: + # The multiplication with factorialProduct from creator operators: wikipedia.org/wiki/Creation_operators + # The factor should be squared or, in this case, left outside the square + norm_sum.append(f'{factorialProduct(key)}*(({term_sum})**2)') + else: + norm_sum.append(f'{factorialProduct(key)}*(abs({term_sum})**2)') + return ' + '.join(norm_sum).replace('/1 +', ' +').replace('/1)', ')').replace('+ 1*', '+ ') + else: + for key, values in state_catalog.items(): + term_sum = f"math.fsum([{', '.join([f'{weightProduct(graph, imaginary)}/{factorialProduct(graph)}' for graph in values])}])" + if term_sum == '': + term_sum = '0' + if imaginary == False: + # The multiplication with factorialProduct from creator operators: wikipedia.org/wiki/Creation_operators + # The factor should be squared or, in this case, left outside the square + norm_sum.append(f'(({term_sum})**2)') + else: + norm_sum.append(f'(abs({term_sum})**2)') + # norm_sum = ' + '.join(norm_sum) + terms = [t for t in norm_sum if t != '0'] + print(f'total number of target terms {len(terms)}') + norm_sum = ( + "0.0" if not terms else f"math.fsum([{', '.join(terms)}])" + ) + return norm_sum -def targetEquation(ket_list, amplitudes=None, state_catalog=None, imaginary=False): +def targetEquation(ket_list, amplitudes=None, state_catalog=None, imaginary=False, ignore_missing_kets=False): ''' - Introducing the amplitudes for each ket, it writes a non-normalized fidelity function with all - the ways the state can be build stored in state_catalog. + Given a list of target kets, it writes a non-normalized fidelity function. If no state_catalog is introduced it builds all possible graphs that generate the desired kets. Parameters ---------- ket_list : list of tuples - List of kets written as: [((node1, dimension1), (node2, dimension2), ...), ...]. - + List of target kets written as: [((node1, dimension1), (node2, dimension2), ...), ...]. amplitudes : list, optional List of the amplitudes we aim for each ket. If None, all will be the same. - state_catalog : dictionary, optional Dictionary with all the kets created by each graph as keys. If more than one graph leads to the same state, they are listed together in the corresponding entrance of the dictionary. - imaginary : boolean, str ('cartesian' or 'polar'), optional If False, the final expression uses only real weights. If 'cartesian' or 'polar', the weights are complex values written in the corresponding notation. @@ -696,43 +776,150 @@ def targetEquation(ket_list, amplitudes=None, state_catalog=None, imaginary=Fals str Non-normalized fidelity string with all the contributing weights. ''' - if amplitudes == None: + if amplitudes is None: amplitudes = [1] * len(ket_list) else: if len(amplitudes) != len(ket_list): - raise ValueError('The number of amplitudes and states should be the same') + raise ValueError('The number of amplitudes and kets should be the same') if imaginary == 'polar': amplitudes = [amp[0] * np.exp(1j * amp[1]) for amp in amplitudes] norm2 = abs(np.conjugate(amplitudes) @ amplitudes) - if norm2 != 1: # Is this useless? I think so (Carlos) - norm2 = str(norm2) - if state_catalog == None: - state_catalog = {tuple(ket): allColorGraphs(ket) for ket in ket_list} + # if norm2 != 1: # Is this useless? I think so (Carlos) + # norm2 = str(norm2) + non_zero_state_catalog = {key: value for key, value in state_catalog.items() if len(value) > 0} equation_sum = [] for coef, ket in zip(np.conjugate(amplitudes), ket_list): - # The division with factProduct comes from combinatoric reasons: wikipedia.org/wiki/Multinomial_theorem - term_sum = [f'{weightProduct(graph, imaginary)}/{factProduct(graph)}' for graph in state_catalog[tuple(ket)]] - term_sum = ' + '.join(term_sum) - # The multiplication with factProduct from creator operators: wikipedia.org/wiki/Creation_operators - creation_term = factProduct(ket) + # The division with factorialProduct comes from combinatoric reasons: wikipedia.org/wiki/Multinomial_theorem + if tuple(ket) not in non_zero_state_catalog: + if ignore_missing_kets: + equation_sum.append('0') + log.info(f'The ket {tuple(ket)} of the target state was not available in the state catalog, it was set to 0. This could be because there is no perfect matching or edgecover that produces this ket.') + else: + truncated_non_zero_state_catalog_keys = list(non_zero_state_catalog.keys())[0:min(10, len(non_zero_state_catalog))] + truncated_non_zero_state_catalog = {key: value for key, value in non_zero_state_catalog.items() if key in truncated_non_zero_state_catalog_keys} + raise ValueError(f"At least one of the target kets can not be produced by the setup. This could be because there is no perfect matching or edgecover that produces this ket. The target kets are {ket_list}. There are {len(non_zero_state_catalog)} total kets with non-zero contributions. Examples: {truncated_non_zero_state_catalog_keys} ... (truncated to max. 10 entries, (position, mode) tuples). If there are no kets with non-zero contributions, it could be because the number of total particles (main+ancilla) is odd and the target (e.g. fidelity or count rate) relies on finding perfect matchings of a graph with an odd number of nodes, which is not possible by definition.") + term_sum = [f'{weightProduct(graph, imaginary)}/{factorialProduct(graph)}' for graph in state_catalog[tuple(ket)]] + term_sum = f"math.fsum([{', '.join(term_sum)}])" + # The multiplication with factorialProduct from creator operators: wikipedia.org/wiki/Creation_operators + creation_term = factorialProduct(ket) if (creation_term**.5) % 1 == 0: creation_term = int(creation_term**.5) else: creation_term = f'{creation_term}**.5' equation_sum.append(f'({coef})*({creation_term})*({term_sum})') - equation_sum = ' + '.join(equation_sum) - if imaginary == False: + + # equation_sum = ' + '.join(equation_sum).replace('0 + ','').replace(' + 0','') + # if equation_sum == '0': + # equation_sum = ' + '.join(term for term in equation_sum if term != '0') + terms = [t for t in equation_sum if t != '0'] + print(f'total number of target terms {len(terms)}') + equation_sum = f"math.fsum([{', '.join(terms)}])" + if len(terms)==0: + return "0.0" + elif imaginary == False: return f'(({equation_sum})**2)/{norm2}'.replace('/1 +', ' +').replace('/1)', ')').replace('(1)*', '') else: - return f'(abs({equation_sum})**2)/{norm2}'.replace('/1 +', ' +').replace('/1)', ')').replace('(1)*', '') + return f'(abs({equation_sum})**2)/{norm2}'.replace('/1 +', ' +').replace('/1)', ')').replace('(1)*', '') + + +def mixedTarget(ket_list, mixed_catalog, amplitudes=None, imaginary=False, target_dict=False): + ''' + Given a list of target kets which were NOT traced out in the mixed catalog. It produces the + target equation for the different possible states which were traced. + + Parameters + ---------- + ket_list : list of tuples + List of target kets written as: [((node1, dimension1), (node2, dimension2), ...), ...]. + The kets must include ALL nodes which are NOT traced out. + mixed_catalog : dictionary + Dictionary of state_catalogs that produce the kets from ket_list. The catalogs are splitted by + the ancilla creators, which are the keys of the mixed_catalog. + It can be obtained from the input `state_catalog`. + amplitudes : list, optional + List of the amplitudes we aim for each ket. If None, all will be the same. + imaginary : boolean, str ('cartesian' or 'polar'), optional + If False, the final expression uses only real weights. If 'cartesian' or 'polar', the weights + are complex values written in the corresponding notation. + target_dict : boolean, optional + If True, it returns a dictionary with target equations as values. Else, it returns one str. + + Returns + ------- + str (if target_dict False) + Non-normalized fidelity string with all the contributions from the reduced density matrix. + dictinary of str (if target_dict True) + Dictionary whose values are non-normalized fidelity string with all the contributions from the + reduced density matrix. + + ''' + mixed_target = dict() + for traced_ket, catalog in mixed_catalog.items(): + full_kets = [tuple(sorted(ket+traced_ket)) for ket in ket_list] + mixed_target[traced_ket] = targetEquation(full_kets, amplitudes=amplitudes, + state_catalog=catalog, imaginary=imaginary) + if target_dict: + return mixed_target + else: + return ' + '.join(target for target in mixed_target.values() if target != '0') -def buildLossString(loss_function, variables): +def buildLossString_old(loss_function, variables): loss_string = 'lambda ' + ', '.join(variables) + f': {loss_function}' loss_string = f'func = lambda inputs: ({loss_string})(*inputs) ' exec(loss_string, globals()) return func, loss_string # we can keep the second as a security check +def buildLossString(loss_expr: str, variables): + """ + loss_expr: a Python expression string using names in `variables`. + variables: iterable of variable names, e.g. ['x0','x1',...] + Returns: (func, debug_string) where func(inputs) -> value. + """ + import ast + + def ast_max_depth(expr: str) -> int: + node = ast.parse(expr, mode="eval") + def depth(n): + kids = list(ast.iter_child_nodes(n)) + return 1 + (max(map(depth, kids)) if kids else 0) + return depth(node.body) + + print(f'estimated AST depth of loss expression {ast_max_depth(loss_expr)}') + + code = loss_expr + variables = tuple(variables) # ensure stable order + + def func(inputs, debug=False): + if len(inputs) != len(variables): + raise ValueError(f"Expected {len(variables)} inputs, got {len(inputs)}") + # Build the local namespace mapping names -> values + local_ns = dict(zip(variables, inputs)) + if debug: + print(code) + #print code replaced with values + code_ = code + for var, val in local_ns.items(): + print(f" {var} = {val}") + code_ = code_.replace(var, repr(val)) + print(code_) + return eval(code, {"__builtins__": {}, "math": math}, local_ns) + + debug = f"eval({loss_expr}) with {{{', '.join(variables)}}}" + return func, debug + + +def stringFunction(str_function, variables): + ''' + Turn a string into a function, given a list of variables (strings). + + It does the same than buildLossString. + ''' + func_string = 'lambda ' + ', '.join(variables) + f': {str_function}' + func_string = f'func = lambda inputs: ({func_string})(*inputs) ' + exec(func_string, globals()) + return func + # # String Expressions # Write the string expressions used in the optimization. diff --git a/setup.py b/setup.py index 7b354908..b64ff508 100644 --- a/setup.py +++ b/setup.py @@ -7,21 +7,17 @@ from setuptools import setup, find_packages author = 'artificial-scientist-lab' -email = '' # TODO: insert email -description = 'Theseus, a highly-efficient inverse-design algorithm for quantum optical experiments' -dist_name = 'theseuslab' -package_name = 'theseus' -year = '2022' -url = 'https://github.com/artificial-scientist-lab/Theseus' # TODO: insert public repo URL +email = 'cruizgo@proton.me, soeren.arlt@mpl.mpg.de, mario.krenn@mpl.mpg.de' +description = 'PyTheus, a highly-efficient inverse-design algorithm for quantum optical experiments' +dist_name = 'pytheusQ' +package_name = 'pytheus' +year = '2024' +url = 'https://github.com/artificial-scientist-lab/Pytheus' def get_version(): content = open(Path(package_name) / '__init__.py').readlines() - for line in content: - match = re.match('^ *__version__ *= *[\'"]([^\'"]+)', line) - if match: - return match.group(0) - raise Exception('Cannot extract version string.') + return "1.2.21" setup( @@ -40,7 +36,7 @@ def get_version(): install_requires=[ 'sphinx', 'numpy', 'scipy', 'matplotlib', 'termcolor', 'Click' ], - python_requires=">=3.6", + python_requires=">=3.8", classifiers=['Operating System :: OS Independent', 'Programming Language :: Python :: 3', ], @@ -48,7 +44,7 @@ def get_version(): py_modules=[package_name], entry_points={ 'console_scripts': [ - 'theseus = theseus.cli:cli', + 'pytheus = pytheus.cli:cli', ], } ) diff --git a/tests/fast/test_fancyclasses.py b/tests/fast/test_fancyclasses.py index d5c605c3..f6013f75 100644 --- a/tests/fast/test_fancyclasses.py +++ b/tests/fast/test_fancyclasses.py @@ -2,8 +2,8 @@ from pathlib import Path from tests.fast.config import GHZ_346, BELL -from theseus.fancy_classes import Graph, defaultValues -from theseus.main import run_main, read_config +from pytheus.fancy_classes import Graph, defaultValues +from pytheus.main import run_main, read_config class TestFancyClassesModule(unittest.TestCase): diff --git a/tests/fast/test_help_functions.py b/tests/fast/test_help_functions.py index d45a63d9..77e78fb9 100644 --- a/tests/fast/test_help_functions.py +++ b/tests/fast/test_help_functions.py @@ -1,10 +1,10 @@ import unittest from tokenize import String -from theseus.fancy_classes import State -from theseus.help_functions import readableState, prepEdgeList, removeConnections, makeUnicolor, flatten_lists, \ +from pytheus.fancy_classes import State +from pytheus.help_functions import readableState, prepEdgeList, removeConnections, makeUnicolor, flatten_lists, \ get_all_kets_for_given_dim, makeState, stringToTerm -from theseus.main import run_main, read_config +from pytheus.main import run_main, read_config class TestHelpFunctionsModule(unittest.TestCase): diff --git a/tests/fast/test_main.py b/tests/fast/test_main.py index 9eb3fe7a..0a53b86b 100644 --- a/tests/fast/test_main.py +++ b/tests/fast/test_main.py @@ -5,20 +5,21 @@ import unittest from filecmp import cmp from typing import List +from pathlib import Path import numpy as np from numpy import array -from theseus import main -from theseus.help_functions import readableState -from theseus.main import read_config, get_dimensions_and_target_state, build_starting_graph, setup_for_ent, \ +from pytheus import main +from pytheus.help_functions import readableState +from pytheus.main import read_config, get_dimensions_and_target_state, build_starting_graph, setup_for_ent, \ setup_for_target, setup_for_fockbasis, optimize_graph, run_main class TestMainModule(unittest.TestCase): - + @unittest.skip # i think this is not necessary anymore def test_read_config_from_example_dir_with_json_ending(self): - config, filename = read_config(is_example=True, filename='ghz_346.json') + config, filename = read_config(is_example=True, filename='config_ghz_346.json') self.assertEqual( config['target_state'], ["000", "111", "222", "333"] @@ -30,7 +31,7 @@ def test_read_config_from_example_dir_without_json_ending(self): self.assertEqual( config['target_state'], ["000", "111", "222", "333"] ) - self.assertEqual('ghz_346.json', filename.name) + self.assertEqual('config_ghz_346', Path(filename).stem) def test_build_starting_graph(self): cnfg, filename = read_config(is_example=True, filename='ghz_346') @@ -75,6 +76,7 @@ def test_get_dimensions_and_target_state(self): self.assertEqual(list(exp[2].values()), actual[2].amplitudes) self.assertEqual(list(exp[2].keys()), actual[2].kets) + @unittest.skip #does not exist anymore def test_setup_for_ent(self): cnfg, filename = read_config(is_example=True, filename='conc_4-3') exp = ([2, 2, 2, 2], {'dimensions': [2, 2, 2, 2], 'num_ancillas': 0, 'num_particles': 4, @@ -103,6 +105,9 @@ def test_setup_for_ent(self): self.assertEqual(list(exp[2].values()), actual[2].weights) self.assertEqual(list(exp[2].keys()), actual[2].edges) + @unittest.skip + #added some features to the config. is it possible to check if config contains out_config, so we dont get failing + #tests if we expand the config features more in the future def test_setup_for_target(self): cnfg, filename = read_config(is_example=True, filename='cnot_22.json') read_state = {'|000000>': True, '|010100>': True, '|101100>': True, '|111000>': True} @@ -135,6 +140,7 @@ def test_setup_for_target(self): self.assertSetEqual(set(map(type, out_config.values())), set(map(type, actual[2].values()))) self.assertEqual(all(out_config.values()), all(actual[2].values())) + @unittest.skip #does not exist anymore def test_setup_for_fockbasis(self): cnfg, filename = read_config(is_example=True, filename='fock_tetrahedron_short.json') actual = setup_for_fockbasis(cnfg) @@ -146,6 +152,9 @@ def test_setup_for_fockbasis(self): actual[3].edges) self.assertTrue(all(actual[3].weights)) + @unittest.skip + #this fails because the results will generally vary with every run. we did implement a 'seed' option for the config files. + #when seed is set the result of the first sample will always be the same def test_optimize_graph(self): cnfg, filename = read_config(is_example=True, filename='werner.json') dimension = [2, 2, 5, 1] diff --git a/tests/fast/test_saver.py b/tests/fast/test_saver.py index 44dede8f..fd5108e2 100644 --- a/tests/fast/test_saver.py +++ b/tests/fast/test_saver.py @@ -1,6 +1,6 @@ import unittest -from theseus.saver import saver +from pytheus.saver import saver class MyTestCase(unittest.TestCase): def test_something(self): diff --git a/tests/fast/test_theseus.py b/tests/fast/test_theseus.py index 5359a663..e934a104 100644 --- a/tests/fast/test_theseus.py +++ b/tests/fast/test_theseus.py @@ -7,7 +7,7 @@ from build.lib.theseus.main import read_config from tests.fast.config import GHZ_346 -from theseus.theseus import stateDimensions, buildAllEdges, graphDimensions, findPerfectMatchings, stateCatalog, \ +from pytheus.theseus import stateDimensions, buildAllEdges, graphDimensions, findPerfectMatchings, stateCatalog, \ stringEdges, allPerfectMatchings, allEdgeCovers, allColorGraphs, buildRandomGraph, nodeDegrees, edgeBleach, \ targetEdges, removeNodes, recursiveEdgeCover, findEdgeCovers, edgeWeight, weightProduct, writeNorm, targetEquation, \ compute_entanglement, buildLossString diff --git a/tests/test_functional.py b/tests/test_functional.py index 40a992e2..18cd20e5 100644 --- a/tests/test_functional.py +++ b/tests/test_functional.py @@ -5,7 +5,7 @@ from click.testing import CliRunner -from theseus.cli import run +from pytheus.cli import run class FunctionalTests(unittest.TestCase): @@ -21,21 +21,13 @@ def setUp(self): def tearDown(self): self.directory.cleanup() - def test_input_with_json_ending_from_example_dir(self): - runner = CliRunner() - result = runner.invoke(run, ['--example', 'ghz_346.json']) - assert result.exit_code == 0 - assert "{'|000000>': True, '|111000>': True, '|222000>': True, '|333000>': True}" in result.output - assert os.path.exists('output/ghz_346/ghz_346/best.json') - assert os.path.exists('output/ghz_346/ghz_346/summary.json') - def test_input_without_json_ending_from_example_dir(self): runner = CliRunner() result = runner.invoke(run, ['--example', 'ghz_346']) assert result.exit_code == 0 assert "{'|000000>': True, '|111000>': True, '|222000>': True, '|333000>': True}" in result.output - assert os.path.exists('output/ghz_346/ghz_346/best.json') - assert os.path.exists('output/ghz_346/ghz_346/summary.json') + assert os.path.exists('output/config_ghz_346/ghz_346/best.json') + assert os.path.exists('output/config_ghz_346/ghz_346/summary.json') def test_input_with_json_ending_from_custom_dir(self): input_file = Path(__file__).parent / 'fixtures' / 'ghz_346.json' @@ -69,21 +61,22 @@ def test_bell_state(self): def test_lossfunc_ent(self): runner = CliRunner() - result = runner.invoke(run, ['--example', 'conc_4-3']) + result = runner.invoke(run, ['--example', 'k2maximal4qubitsREAL']) assert result.exit_code == 0 - assert os.path.exists('output/conc_4-3/try/best.json') - assert os.path.exists('output/conc_4-3/try/summary.json') + assert os.path.exists('output/config_k2maximal4qubitreal/try/best.json') + assert os.path.exists('output/config_k2maximal4qubitreal/try/summary.json') - def test_input_with_json_ending_from_example_director_removeConnections(self): + def test_input_without_json_ending_from_example_director_removeConnections(self): runner = CliRunner() - result = runner.invoke(run, ['--example', 'cnot_22.json']) + result = runner.invoke(run, ['--example', 'toffoli_post']) assert result.exit_code == 0 - def test_input_with_json_ending_from_example_director_startinggraph(self): + def test_input_without_json_ending_from_example_director_startinggraph(self): runner = CliRunner() - result = runner.invoke(run, ['--example', 'spin3plus_3.json']) + result = runner.invoke(run, ['--example', 'nbody3']) assert result.exit_code == 0 + @unittest.skip #does not exist anymore def test_input_with_json_ending_from_example1_director(self): runner = CliRunner() result = runner.invoke(run, ['--example', 'werner.json']) diff --git a/theseus/README.md b/theseus/README.md deleted file mode 100644 index 7a5802dd..00000000 --- a/theseus/README.md +++ /dev/null @@ -1,401 +0,0 @@ -# Pytheus - -# Outline for Chapter 1 - -## 1. Graphs & Experiments (2 pages) - -### 1.1 Crystals (Probabilistic 2 photon sources) - -* Equation & graph example with experiment & more general equation -* Perfect matchings (Post-selection) -* Heralding - -### 1.2 Single Photon Sources - -### 1.3 Number-resolving Detectors - -### 1.4 Quantum Communication - -### 1.5 Measurements - -### 1.6 Quantum Gates - -### 1.7 Fock Basis - -# Ideas for Outline of Chapter 2 (not fixed) (2 pages) - -## 2. Implementation of Pytheus - -### 2.1 Fidelity and Count Rate - -### 2.2 Other Loss Functions - -* Entanglement -* Assembly Index & IIT - -### 2.3 Topological Rules - -* see documentation below - -### 2.4 Post-selections Rules - -* see documentation below - -### 2.5 Running Config Files - -* flowchart -* key classes: Graph, State, Optimizer, Saver - -## Discovery for Diverse Experimental Resources - -Our package allows for the discovery of quantum experiments for a range of experimental goals, constraints and -resources. Experiments that can be produced include: - -* state creation (heralded or post-selected) -* quantum gates (heralded or post-selected) -* measurements of quantum states -* entanglement swapping -* (covered elsewhere: mixed state creation) - -Sources for photons in these experiments can be SPDC sources, deterministic single-photon sources or a mix of the two. - -Detectors can be photon-number-resolving or not. - -Each of these experiments can be described with a graph. The interpretation of nodes and edges varies with the kind of -experiment. - -### Rules for Loss Functions - -With these varying interpretations (e.g. for single photon sources, input photons, entanglement swapping), different -constraints apply on what kind of graph can correspond to an experiment (Topological Rules). - -With the different ways of performing the experiments (heralded/post-selected & number-resolving/non-number-resolving), -different events are selected out of all possibilities (post-selection rules). - -#### Topological Rules - -All experiments that our package is applied to can be described by a graph. When describing state creation using SPDC -each edge can be interpreted as a pair-creation. In this case all edges of the complete graph can be considered -physically legitimate. When describing other experiments edges can be interpreted differently. Not every edge will be -physically meaningful. Consequentially there are constraints on which connections of the complete graph are used in the -optimization. - -*(A) Single Photon Sources and Input Photons* - -Deterministic single photon sources and input photons (such as in gates) are described as (input) vertices in a graph. -An edge connecting an input vertex to a detector describes a path in which a photon can travel from the input into the -detector. This interpretation stems from the [Klyshko picture](https://arxiv.org/pdf/1805.06484.pdf). From this a -constraint on the graph follows. Two input vertices can not be connected by an edge. It could not be interpreted -physically. - -*(B) Entanglement Swapping and Teleportation* - -In entanglement swapping, photons are entangled that have not interacted before. If we want to design an entanglement -swapping experiment of two photons, the target is to discover a graph that produces an entangled state between the two -photons. However any edge between the corresponding vertices would translate into a common source crystal. A constraint -that ensures legitimate entanglement swapping is to remove any edge between the two parties - -#### Post-Selection Rules - -The rules for post-selecting coincidence events have been described in the -[Theseus paper](https://journals.aps.org/prx/abstract/10.1103/PhysRevX.11.031044). Here, post-selection projects the -space of possibilities containing arbitrary combinations of crystals firing into the space of possibilities where only -crystals fire for which all detectors at the end of the experiment click. In the graph picture these combinations -correspond to the perfect matchings. A state is produced with fidelity one in post-selection if all possibilities of -coincidence events contribute to that state. - -Other experimental settings (such as heralding) and additional experimental resources (such as number-resolving -detectors) -perform a different kind of projection on the space of possibilities by selecting for different events. This different -selection is reflected in the fidelity of the state. The products of the edge weights belonging to each possibility -contribute to the norm of the fidelity. - -*(A) Heralding* - -Heralding is a less strict form of selecting events. Instead of putting a detector in every path and selecting for -coincidence, only a subset of the paths are detected _heralding_ an output state in the unmeasured paths. This selection -rule not only allows for possibilities where one photon is in every path (perfect matchings) but also for other -possibilities (edge covers) as long as they cover the heralding detectors. This can lead to cross-terms that are not -present when post-selecting for coincidence in all paths. Consequentially it is more difficult to find a graph with -fidelity one, also requiring more experimental resources. - -*(B) Single Photon Sources and Input Photons* - -When describing heralded experiments (above) one has to consider edge covers instead of perfect matchings in the graph -for possible events. These possibilities include one edge being included twice in an edge cover, corresponding to a -crystal firing twice in an experiment. For single photon sources and other deterministic input photons such -possibilities do not exist. Only edge covers that cover the input vertices exactly once are considered for the norm of -the fidelity. - -*(C) Photon Number-Resolving Detectors* - -Photon number-resolving detectors are a valuable resource that can restrict the space of possibilities more than a -regular detector. When one can be certain that exactly one photon, and not two, has entered a detector it reduces the -number of events that could have led to this outcome, eliminating cross terms. - -*(D) States in Fock Basis* - -... - -## Loss Functions For Target State Optimization - -As explained above, the loss function depend largely on the different experimental conditions. Independent of these -conditions they fall into two categories. - -* Fidelity -* Count Rate - -A Fidelity of one ensures that an experiment has no unwanted cross terms. Every possibility that is selected for -contributes directly to the target outcome. - -However, we have come to find that optimizing exclusively for fidelity in some cases can lead the optimization to scale -down the weights of the entire graph to minimize the contributions of crossterms. While the fidelity will be very close -to one in those cases the generally low edge weights would lead to very low count rates of successful events in actual -experiments. - -To find solutions with higher weights we have introduced the _simplified count rate_ as a loss function. - -# Config Examples - -This section gives examples for config files showcasing the features for different kinds of experiments that can -searched for. - -## Target State Optimization - -This is used when the in- and out-going states can be clearly defined by a state functions. For those, the loss -functions `cr` and `fid` are used. - -Below are some examples to give an idea of the scope. - -For further details, refer to the definition of the function `setup_for_target` in `main.py`. - -### Post-selected State creation - -Here is an example for a config file optimizing for a graph that creates a three particle four-dimensional GHZ state. - -```json -{ - "description": "Finding a setup for the creation of the three-particle four-dimensional GHZ state. It can be realized with three ancillary particles", - "foldername": "ghz_346", - "target_state": [ - "000", - "111", - "222", - "333" - ], - "num_anc": 3, - "loss_func": "cr", - "thresholds": [ - 0.25, - 0.1 - ], - "samples": 10, - "optimizer": "L-BFGS-B", - "ftol": 1e-06, - "edges_tried": 20, - "tries_per_edge": 5 -} - -``` - -General info is given by `description`. With `foldername` one can give a custom name for the subfolder where solutions -are saved. - -In the simple case of post-selected state creation with SPDC crystals, `target_state`, `num_anc` and `loss_func` are all -that are needed to define the objective of the optimization. - -`thresholds` is necessary to decide whether a topological optimization step has been successful. In this case, -when `1-countrate < 0.25` and `1-fidelity < 0.1`. - -### Post-Selected Quantum Gates - -For an example how topological constraints on the starting graph of the optimization are dealt with, consider the -example of a post-selected CNOT(2,3) quantum gate. - -```json -{ - "description": "Postselected CNOT between a qubit (control) and a qutrit (target). Two ancillary photons from SPDC.", - "foldername": "cnot_23", - "target_state": [ - "0000", - "0101", - "0202", - "1011", - "1112", - "1210" - ], - "in_nodes": [ - 0, - 1 - ], - "out_nodes": [ - 2, - 3 - ], - "num_anc": 2, - "loss_func": "cr", - "thresholds": [ - 0.3, - 0.1 - ], - "samples": 10, - "optimizer": "L-BFGS-B", - "ftol": 1e-06, - "edges_tried": 30, - "tries_per_edge": 5 -} -``` - -Here, `target_state` defines a logic table. It is defined through `in_nodes` and `out_nodes`, which entries belong to -incoming photons and which belong to outgoing photons. These definitions suffice to automatically put constraints on the -starting graph. - -### Heralded Quantum Gates with Single Photon Sources - -Two additional features are heralding and single photon sources. A simple example is a CNOT gate between two qubits -heralding on two ancillary detectors. - -```json -{ - "description": "Heralded CNOT gate between two qubits with two single photon sources. Similar has been done: https://journals.aps.org/prl/pdf/10.1103/PhysRevLett.126.140501 could this have a better success probability?", - "foldername": "cnot22sp", - "target_state": [ - "0000", - "0101", - "1011", - "1110" - ], - "num_anc": 2, - "in_nodes": [ - 0, - 1 - ], - "out_nodes": [ - 2, - 3 - ], - "single_emitters": [ - 4, - 5 - ], - "heralding_out": true, - "loss_func": "cr", - "thresholds": [ - 1, - 0.1 - ], - "samples": 10, - "optimizer": "L-BFGS-B", - "ftol": 1e-06, - "edges_tried": 30, - "tries_per_edge": 5 -} -``` - -Here, the two single photon sources given by `single_emitters` introduce further topological constraints on the starting -graph. As they have the role of ancillary photons in this case, we need to set `num_anc` accordingly. The graph -corresponding to this optimization will have a total of eight nodes. Two for incoming, two for outgoing, two for single -photon sources and two for ancillary detectors. - -If `num_anc` is larger than the sum of lengths of `in_nodes` and `single_emitters`, the necessary amount of particles is -created through SPDC. - -Additionaly `heralding_out` is set to `true` here. The photons corresponding to `out_nodes` will not be detected. - -### Measurement - -```json -{ - "description": "Measurement for three particle W state", - "foldername": "W_measurement", - "target_state": [ - "001", - "010", - "100" - ], - "in_nodes": [ - 0, - 1, - 2 - ], - "num_anc": 0, - "loss_func": "cr", - "samples": 10, - "optimizer": "L-BFGS-B", - "ftol": 1e-06, - "thresholds": [ - 0.3, - 0.1 - ], - "tries_per_edge": 5, - "edges_tried": 30 -} - -``` - -## Entanglement Optimization - -When `loss_func` is set to `"ent"`, no target state is set. Instead the optimizer maximizes the entanglement that can be -achieved by a graph with the local dimensions given by `dim`. - -```json -{ - "description": "Maximizing entanglement in k=2 bi-partitions for four qubits.", - "K": 2, - "dim": 2222, - "ftol": 1e-07, - "loss_func": "ent", - "min_edge": 4, - "num_pre": 5, - "optimizer": "SLSQP", - "imaginary": false, - "samples": 10, - "thresholds": [ - 0.000001 - ], - "tries_per_edge": 3, - "var_factor": 0 -} -``` - -## Optimizing for Arbitrary Functions of the Graph - -There is also the option to define an arbitrary loss function, which should be defined or imported in `lossfunctions.py` -. - -Here is an example for optimizing the assembly index of the graph. - -```json -{ - "foldername": "assembly", - "loss_func": "lff", - "lff_name": "top_n_assembly", - "dimensions": [ - 2, - 2, - 2, - 2 - ], - "num_vertices": 4, - "num_cols": 2, - "size_of_graph": 8, - "optimizer": "L-BFGS-B", - "ftol": 1e-06, - "samples": 1, - "thresholds": [ - 99999 - ], - "topopt": false, - "edges_tried": 30, - "tries_per_edge": 5, - "unicolor": false, - "imaginary": false, - "num_pre": 1, - "save_history": true -} -``` - -To use a custom defined loss function `loss_func` should be set to `"lff"` (loss from function). - -The name of the loss function is given as a string to `lff_name`. This function should be defined or imported -in `lossfunctions.py`. It should take a `Graph` object and a `cnfg` dictionary as arguments and return a real number. \ No newline at end of file diff --git a/theseus/__init__.py b/theseus/__init__.py deleted file mode 100644 index 99c4176c..00000000 --- a/theseus/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__version__ = '0.0.1' \ No newline at end of file diff --git a/theseus/configs/HD.json b/theseus/configs/HD.json deleted file mode 100644 index 29a79fe0..00000000 --- a/theseus/configs/HD.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "description": "Creation of hyperdeterminant state. Four ancillary particles. https://iopscience.iop.org/article/10.1088/1742-6596/698/1/012003/pdf", - "bulk_thr": 0, - "edges_tried": 30, - "foldername": "HD", - "ftol": 1e-06, - "loss_func": "cr", - "num_anc": 4, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "safe_hist": true, - "samples": 100, - "target_state": [ - "1000", - "0100", - "0010", - "0001", - "1111" - ], - "amplitudes": [ - 1,1,1,1,1.4142135623730951 - ], - "thresholds": [ - 0.2, - 0.1 - ], - "tries_per_edge": 10, - "unicolor": false -} \ No newline at end of file diff --git a/theseus/configs/PXPscar_6.json b/theseus/configs/PXPscar_6.json deleted file mode 100644 index 39568be6..00000000 --- a/theseus/configs/PXPscar_6.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "description": "PXP scar of six particles.", - "bulk_thr": 0.01, - "edges_tried": 10, - "foldername": "PXPcr", - "ftol": 1e-05, - "loss_func": "cr", - "num_anc": 0, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "safe_hist": true, - "samples": 30, - "target_state": ["000000", "000010", "010000", "010100", - "100000", "100100", "101000", "101010"], - "amplitudes": [1,-1, 1.4142135623730951, -2, - -1, 1.4142135623730951, -1, 1], - "thresholds": [ - 0.1, - 0.01 - ], - "tries_per_edge": 5, - "unicolor": false -} \ No newline at end of file diff --git a/theseus/configs/README.md b/theseus/configs/README.md deleted file mode 100644 index 9ca14e88..00000000 --- a/theseus/configs/README.md +++ /dev/null @@ -1,271 +0,0 @@ -### config files - -The config file collects all information necessary for setting up and running the optimization as well as for saving the -results to a file. The content of the config file is saved into the same directory as the results produced by its run. -Automatically keeping track of all optimization settings allows users to reproduce results more easily. - -#### keywords of config files - -`description` Description of the experiment that the optimization aims to discover. Is printed at the start of the run. - -`foldername` Name of the subfolder. By default, files are saved in _output/configfilename/foldername_. When name is taken, numbers are added. - -`samples` Number of optimizations done. - -`loss_func` Loss function used. Check _loss_dic_ in _theseus.lossfunctions.py_ for values. - -`thresholds` In each optimization step, the loss functions have to be below the thresholds to be considered successful. - -`target_state` Target state for state creation, logic table for quantum gates. - -`amplitudes` amplitudes of the kets in the target states. If not given all amplitudes are set to one. - -`num_anc` Number of ancillas. - -`unicolor` Starting graph is restricted to have only mono-colored edges between target nodes. Less edges mean faster optimization, but it can be a gamble. If your solution is not possible without two-colored edges between target nodes (such as ghz_346) it will not be found. - -`removed_connections` list of connections that are removed from complete starting graph before optimization. Can be applied e.g. for entanglement swapping. - -`single_emitters` Defines nodes corresponding to single emitters. Automatically introduces constraints on connections in starting graph (no connections to other single_emitters or in_nodes). - -`in_nodes` Defines nodes corresponding to incoming particles, e.g. for measurements and gates. Automatically introduces constraints on connections in starting graph (no connections to other in_nodes or single_emitters). - -`out_nodes` Defines nodes corresponding to outgoing particles that are not measured, e.g. for heralded state creation and heralded gates. - -`heralding_out` set to true means that `out_nodes` are not detected. - -`novac` set to true means that heralded `out_nodes` are guaranteed, no vacuum. - -`imaginary` Set false for real number optimization. Set to 'polar' for complex number optimization in polar format. - -`optimizer` Optimizer used by scipy.optimize.minimize - -`ftol` convergence tolerance for scipy.optimize.minimize - -`num_pre` Number of preoptimization done before starting topological optimization on the best result. For target state optimization 1 is good. For entanglement optimization higher values can be better. - -`bulk_thr` After preoptimization some edge weights can already be very small. Setting this value to e.g. 0.01 will delete all edges that have a weight smaller than this in absolute value. This can save a lot of time for very big starting graphs, where optimization of many parameters is slow. To skip this step set value to 0. - -`topopt` defines if topological optimization is performed. If not given, default value is true. If false, no topological optimization is done (bulk_thr is also overwritten to 0). - -`tries_per_edge` During topological optimization, this value sets how often optimization is attempted after deleting one edge. If all tries fail, the next smallest edge is attempted. - -`edges_tried` During topological optimization, this value sets how many of the smallest edges are attempted to be deleted. If the optimizer fails to delete all of these edges, topological optimization is terminated. - -`safe_hist` If set to true, the history of the loss function values for each topological optimization step is tracked and saved into the result file. - -#### for loss_func = 'ent' - -`K` - -`dim` Vector defining local dimensions - -`min_edge` - -`var_factor` - -## Naming Conventions for config files -#### Gates -* postselected: `_post` -* single photon sources: `_sp` -* target photon starts in mode 0: `_0` - -#### GHZ States -The file `ghz_346` is for a `3` particle `4` dimensional GHZ state produced with a total of `6` photons (in this case this means that 3 ancilla photons are used) - -#### Condensed Matter States -File name ending in `_n` identifies that the `n` particle version of that state is produced. - - -# The List - -✅✅✅ ... found, config prepared, written about - -✅✅ ... found and saved in configs, counted as list contribution - -✅🤔 ... exists but config not ready - -🤔 ... not found (not sure if it works) - -### GHZ - -* 3 particle, 4 dimension ✅✅✅ -* 3 particle, 5 dimension ✅✅✅ -* 3 particle, 6 dimension ✅✅✅ -* 4 particle, 4 dimension ("fake") ✅✅✅ -* 4 particle, 4 dimension (HALO) -* 5 particle, 4 dimension ✅✅✅ -* 6 particle, 3 dimension (HALO) - -### Quantum Info - -* BSSB4 state (real and complex versions) ✅✅✅ -* BSSB5 state ✅✅✅ -* Cluster states - * 4 particle ✅✅ - * 5 particle ✅✅ - * 6 particle ✅✅ -* random matrix state 1 (3 qubits) ✅✅✅ -* random matrix state 2 (3 qubits) ✅✅✅ -* symmetric state - * 3 particle, 3 dimension ✅✅ - * 4 particle, 3 dimension ✅✅ - * 5 particle, 2 dimension ✅✅ - * 6 particle, 2 dimension (rough, but no anc) ✅✅ -* Schmidt rank vector - * (5,5,4) ✅✅✅ - * (6,3,2) ✅✅✅ - * (6,5,5) ✅✅✅ - * (7,3,3) ✅✅✅ -* W state x W state ✅✅ -* Quantum Error Correction - * Laflamme Code ✅✅✅ - * Steane Code ✅✅✅ - * Shor Code ✅✅✅ -* Hyperdeterminant State ✅✅✅ -* L state ✅✅✅ -* Yeo Chua state ✅✅✅ -* 9 entanglements in 4 qubits - * La4 (with real amplitudes) ✅✅✅ - * L053 ✅✅✅ - * L071 ✅✅✅ - * Other trivial states (stored, but they do not count) -* Bell gem - * 4 particles ✅✅✅ - * 8 particles 🤔 - -### k-uniform and AME states - -* 4 qubit real coefficients ✅✅✅ -* 4 qubit complex coefficients (Higuchi Sudbery) ✅✅✅ -* 5 particle, 2 dimension AME ✅✅✅, ✅✅✅ -* 6 particle, 2 dimension AME (epsilon) ✅✅✅ -* 6 particle, 2 dimension, k=2 uniform ✅✅✅ -* dim = (3,3,3,1) (GHZ state) -* 4 particle, 3 dimension, k=2 uniform ✅✅ -* 7 particle, 2 dimension, 'almost' k=2 ✅✅✅ -* 8 particle, 2 dimension, 'almost' k=3 ✅✅✅ - -### Mixed States - -* Werner State ✅✅✅ -* Peres State (epsilon) ✅✅✅ -* more ? - -### Measurements / Quantum Comm - -* GHZ analyzer - * 3 particle, 2 dimension ✅✅ (done previously) check if the same? - * 3 particle, 3 dimension ✅✅✅ - * 3 particle, 4 dimension ✅✅✅ -* Mean King - * 2d ✅✅✅ - * 3d ✅✅✅ - * 4d 🤔 -* W analyzer ✅✅✅ -* HS analyzer ✅✅✅ -* 4d Entanglement swapping (HALO) -* 3 qubit entanglement swapping ✅✅✅ -* 2 qutrit entanglement swapping ✅✅✅ - -### Gates - -* CNOT(2,2) (known) -* CNOT(2,3) heralded by 2 ancillas ✅✅✅ -* CNOT(2,3) postselected with 2 ancillas ✅✅✅ -* CNOT(2,4) postselected with 2 ancillas ✅✅✅ -* CNOT(3,3) postselected with 2 ancillas ✅✅✅ -* Toffoli postselected without ancillas ✅✅✅ -* Fredkin postselected with 2 ancillas ✅✅ -* CNOT(3,3) on 0 ✅✅✅ -* CNOT(4,4) on 0 ✅✅✅ -* Toffoli ✅✅✅ -* Toffoli on 0 ✅🤔 -* controlled Z with 4 ancillas ✅✅✅ -* controlled Z postselected with 2 ancillas ✅✅✅ -* Fredkin on 0 ✅✅✅ -* more ? - -### Single Photon Sources as a Resource - -* GHZ 4 particle, 3 dimension, 2 single photon sources, 2 ancilla ✅✅✅ -* GHZ 4 particle, 3 dimension, 6 single photon sources ✅✅✅ -* GHZ 6 particle, 2 dimension, 6 single photon sources ✅✅✅ -* W states - * 3 particle ✅✅✅ - * 4 particle ✅✅✅ - * 5 particle ✅✅✅ -* heralded 3d Bell state, 6 single photon sources ✅✅✅ -* CNOT(2,2) with two single photon sources ✅✅✅ (different from known experiment, better successrate?) -* CNOT(2,3) postselected with three single photon sources ✅✅✅ -* CNOT(3,3) postselected with four single photon sources ✅✅ -* Fredkin postselected with one single photon source ✅✅ (done in experiment already?) -* controlled Z with three single photon sources ✅✅✅ -* controlled Z postselected with one single photon source ✅✅✅ -* 3d Entanglement Swapping with single photon sources ✅✅✅ - -### Condensed Matter - -* AKLT spin 1 - * 3 particle ✅✅✅ - * 4 particle 🤔 -* AKLT spin 2 - * 3 particle ✅✅✅ - * 4 particle 🤔 -* Haldane states - * 3 particle A ✅✅✅ - * 3 particle B ✅✅✅ - * 3 particle C (same than previous) -* Majumdar Gosh states - * 4 particle ✅✅✅ - * 6 particle ✅✅✅ -* N body - * 3 particle ✅✅✅ - * 4 particle ✅✅✅ - * 5 particle ✅✅✅ - * 6 particle ✅✅✅ -* weak Antiferrometric - * 1 - 3 particle ~~(rough)~~ ✅✅✅ - * 2 - 3 particle ~~(rough)~~ (same than previous) - * 3 - 3 particle ✅✅✅ - * 4 - 3 particle (same than previous) -* 3 particle spin3- ✅✅✅ -* 3 particle spin3+ (same than previous, only color changes) -* 4 particle spin half ✅✅✅ -* 3 particle spin1 ~~("fake")~~ ✅✅✅ -* 1d spin half wire ✅✅✅ -* Onsager scar for 6 qubits ✅✅✅ -* Onsager scar for 8 qubits 🤔 -* PXP scar for 6 qubits ✅✅✅ -* PXP scar for 8 qubits 🤔 - -### Other - -* 4 qubit state that needs complex numbers ✅✅ - -### Fock States -* Noon 2 modes 2 particles (not new, but pedagogic) -* Noon 2 modes 3 particles (not new, but pedagogic?) -* Noon 3 modes 3 particles (3 ancillas) (can it be generalized?) ✅✅✅ -* Noon 4 modes 3 particles (5 ancillas) (can it be generalized?) ✅✅✅ -* Noon 3 modes 4 particles (5 ancillas) (can it be generalized?) ✅✅✅ -* Tetrahedron, either 30+03 or 40+13 (different coefs, new?) ✅✅ -* Cube 80+44+08 ✅✅✅ -* Octahedron, either 04-40 or 51-15 - * epsilon with 2 ancillas ✅✅✅ - * clean with 4 ancillas ✅✅✅ - * check 40+04 from xuemei (it was epsilon) - -### More ideas/inspiration - -* maximize properties of mixed states -* graph theoretical properties, assembly index, etc. -* optimize quantum info inequalities (similar to CHSH) -* maximize robustness (similar to HS state) -* GKP states -* Heralded states -* experiments with interesting restrictions - -```python - -``` diff --git a/theseus/configs/bssb4.json b/theseus/configs/bssb4.json deleted file mode 100644 index 8c0ecdbb..00000000 --- a/theseus/configs/bssb4.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "description": "Creation of BSSB4 state of three particles. https://iopscience.iop.org/article/10.1088/1742-6596/698/1/012003/pdf", - "bulk_thr": 0.01, - "edges_tried": 10, - "foldername": "bssb4", - "ftol": 1e-06, - "loss_func": "cr", - "num_anc": 2, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": "polar", - "safe_hist": true, - "samples": 100, - "target_state": [ - "0110", - "1011", - "0010", - "1111", - "0101", - "1000" - ], - "amplitudes": [ - [1,0], - [1,0], - [1,1.5707963267948966], - [1,1.5707963267948966], - [1.4142135623730951,0.7853981633974483], - [1.4142135623730951,0.7853981633974483] - ], - "thresholds": [ - 0.2, - 0.1 - ], - "tries_per_edge": 5, - "unicolor": false -} \ No newline at end of file diff --git a/theseus/configs/cluster_6.json b/theseus/configs/cluster_6.json deleted file mode 100644 index 207b87ca..00000000 --- a/theseus/configs/cluster_6.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "description": "Creation of six particle cluster state.", - "bulk_thr": 0, - "edges_tried": 30, - "foldername": "cluster_6", - "ftol": 1e-05, - "loss_func": "cr", - "num_anc": 4, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "safe_hist": true, - "samples": 100, - "target_state": ["000000","000001","000010","000011","000100","000101","000110","000111","001000","001001","001010","001011","001100","001101","001110","001111","010000","010001","010010","010011","010100","010101","010110","010111","011000","011001","011010","011011","011100","011101","011110","011111","100000","100001","100010","100011","100100","100101","100110","100111","101000","101001","101010","101011","101100","101101","101110","101111","110000","110001","110010","110011","110100","110101","110110","110111","111000","111001","111010","111011","111100","111101","111110","111111"], - "coefficients":[1, -1, -1, -1, -1, 1, -1, -1, -1, 1, 1, 1, -1, 1, -1, -1, -1, 1, 1, 1, 1, -1, 1, 1, -1, 1, 1, 1, -1, 1, -1, -1, -1, -1, 1, -1, 1, 1, 1, -1, 1, 1, -1, 1, 1, 1, 1, -1, -1, -1, 1, -1, 1, 1, 1, -1, -1, -1, 1, -1, -1, -1, -1, 1], - "thresholds": [ - 0.2, - 0.1 - ], - "tries_per_edge": 10, - "unicolor": false -} diff --git a/theseus/configs/cnot23_sp_post.json b/theseus/configs/cnot23_sp_post.json deleted file mode 100644 index c7a87b09..00000000 --- a/theseus/configs/cnot23_sp_post.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "description": "Postselected CNOT gate between qubit (control) and qutrit (target) with two single photon sources.", - "edges_tried": 30, - "foldername": "cnot23_post_sp", - "ftol": 1e-08, - "loss_func": "cr", - "num_anc": 2, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "safe_hist": true, - "samples": 10, - "target_state": [ - "0000", - "0101", - "0202", - "1011", - "1112", - "1210" - ], - "in_nodes": [ - 0, - 1 - ], - "out_nodes": [ - 2, - 3 - ], - "single_emitters": [ - 4, - 5 - ], - "thresholds": [ - 0.3, - 0.1 - ], - "tries_per_edge": 5 -} diff --git a/theseus/configs/cnot_22.json b/theseus/configs/cnot_22.json deleted file mode 100644 index 28f9f89f..00000000 --- a/theseus/configs/cnot_22.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "description": "Postselected CNOT between two qubits. Two ancillary particles from SPDC.", - "edges_tried": 30, - "foldername": "cnot_22", - "ftol": 1e-06, - "loss_func": "cr", - "num_anc": 2, - "optimizer": "L-BFGS-B", - "imaginary": false, - "safe_hist": true, - "samples": 10, - "target_state": [ - "0000", - "0101", - "1011", - "1110" - ], - "in_nodes": [ - 0,1 - ], - "out_nodes": [ - 2,3 - ], - "heralding_out": true, - "novac": true, - "thresholds": [ - 0.3, - 0.1 - ], - "tries_per_edge": 5 -} diff --git a/theseus/configs/cnot_33_post_sp.json b/theseus/configs/cnot_33_post_sp.json deleted file mode 100644 index ff31b729..00000000 --- a/theseus/configs/cnot_33_post_sp.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "description": "Postselected CNOT between two qutrits. Single Photon sources used.", - "edges_tried": 30, - "foldername": "cnot_33", - "ftol": 1e-06, - "loss_func": "cr", - "num_anc": 4, - "optimizer": "L-BFGS-B", - "safe_hist": true, - "samples": 10, - "target_state": [ - "0000", - "0101", - "0202", - "1011", - "1112", - "1210", - "2022", - "2120", - "2221" - ], - "in_nodes": [ - 0, - 1 - ], - "out_nodes": [ - 2, - 3 - ], - "single_emitters": [ - 4, - 5, - 6, - 7 - ], - "thresholds": [ - 0.3, - 0.1 - ], - "tries_per_edge": 5 -} diff --git a/theseus/configs/conc_4-3.json b/theseus/configs/conc_4-3.json deleted file mode 100644 index e02d339f..00000000 --- a/theseus/configs/conc_4-3.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "description": "Maximizing entanglement for four qutrits.", - "K": 2, - "dim": 2222, - "ftol": 1e-06, - "loss_func": "ent", - "min_edge": 8, - "num_pre": 2, - "optimizer": "SLSQP", - "imaginary": false, - "samples": 10, - "thresholds": [ - 0.0001 - ], - "tries_per_edge": 3, - "var_factor": 0 -} diff --git a/theseus/configs/ent9_071.json b/theseus/configs/ent9_071.json deleted file mode 100644 index be459e7d..00000000 --- a/theseus/configs/ent9_071.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "description": "9 entanglements for 4 qubits, case L0_(7+1).", - "bulk_thr": 0, - "edges_tried": 20, - "foldername": "ent9_071_1", - "ftol": 1e-06, - "loss_func": "cr", - "num_anc": 0, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "safe_hist": true, - "samples": 10, - "target_state": [ - "0000", - "1011", - "1101", - "1110" - ], - "thresholds": [ - 0.25, - 0.1 - ], - "tries_per_edge": 5, - "unicolor": false -} \ No newline at end of file diff --git a/theseus/configs/ent9_a2.json b/theseus/configs/ent9_a2.json deleted file mode 100644 index d9a01d50..00000000 --- a/theseus/configs/ent9_a2.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "description": "9 entanglements for 4 qubits, case La2.", - "bulk_thr": 0, - "edges_tried": 20, - "foldername": "ent9_a2_1", - "ftol": 1e-06, - "loss_func": "cr", - "num_anc": 0, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "safe_hist": true, - "samples": 1, - "target_state": [ - "0011", - "0101", - "0110" - ], - "thresholds": [ - 0.25, - 0.1 - ], - "tries_per_edge": 5, - "unicolor": false -} \ No newline at end of file diff --git a/theseus/configs/ent9_a2b2.json b/theseus/configs/ent9_a2b2.json deleted file mode 100644 index 82603d90..00000000 --- a/theseus/configs/ent9_a2b2.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "description": "9 entanglements for 4 qubits, case La2b2.", - "bulk_thr": 0, - "edges_tried": 20, - "foldername": "ent9_a2b2_1", - "ftol": 1e-06, - "loss_func": "cr", - "num_anc": 0, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "safe_hist": true, - "samples": 1, - "target_state": [ - "0011", - "0110" - ], - "thresholds": [ - 0.25, - 0.1 - ], - "tries_per_edge": 5, - "unicolor": false -} \ No newline at end of file diff --git a/theseus/configs/ent9_a4.json b/theseus/configs/ent9_a4.json deleted file mode 100644 index 6d9acea8..00000000 --- a/theseus/configs/ent9_a4.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "description": "9 entanglements for 4 qubits, case La4.", - "bulk_thr": 0, - "edges_tried": 20, - "foldername": "ent9_a4_1", - "ftol": 1e-06, - "loss_func": "cr", - "num_anc": 0, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": "polar", - "safe_hist": true, - "samples": 1, - "target_state": [ - "0001", - "0110", - "1011" - ], - "amplitudes": [[1, 0], - [1, 1.5707963267948966], - [1, 3.141592653589793]], - "thresholds": [ - 0.25, - 0.1 - ], - "tries_per_edge": 5, - "unicolor": false -} \ No newline at end of file diff --git a/theseus/configs/ent9_ab3.json b/theseus/configs/ent9_ab3.json deleted file mode 100644 index b8c6d722..00000000 --- a/theseus/configs/ent9_ab3.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "description": "9 entanglements for 4 qubits, case Lab3.", - "bulk_thr": 0, - "edges_tried": 20, - "foldername": "ent9_ab3_1", - "ftol": 1e-06, - "loss_func": "cr", - "num_anc": 0, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "safe_hist": true, - "samples": 1, - "target_state": [ - "0001", - "0010", - "0111", - "1011" - ], - "thresholds": [ - 0.25, - 0.1 - ], - "tries_per_edge": 5, - "unicolor": false -} \ No newline at end of file diff --git a/theseus/configs/ent9_abc2.json b/theseus/configs/ent9_abc2.json deleted file mode 100644 index 7ef9236c..00000000 --- a/theseus/configs/ent9_abc2.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "description": "9 entanglements for 4 qubits, case La2b2.", - "bulk_thr": 0, - "edges_tried": 20, - "foldername": "ent9_a2b2_1", - "ftol": 1e-06, - "loss_func": "cr", - "num_anc": 0, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "safe_hist": true, - "samples": 1, - "target_state": [ - "0110" - ], - "thresholds": [ - 0.25, - 0.1 - ], - "tries_per_edge": 5, - "unicolor": false -} \ No newline at end of file diff --git a/theseus/configs/ent9_ghz324.json b/theseus/configs/ent9_ghz324.json deleted file mode 100644 index ff2d2a37..00000000 --- a/theseus/configs/ent9_ghz324.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "description": "GHZ for 3 qubits and one ancilla.", - "bulk_thr": 0, - "edges_tried": 20, - "foldername": "ent9_ghz324_1", - "ftol": 1e-06, - "loss_func": "cr", - "num_anc": 1, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "safe_hist": true, - "samples": 1, - "target_state": [ - "000", - "111" - ], - "thresholds": [ - 0.25, - 0.1 - ], - "tries_per_edge": 5, - "unicolor": false -} \ No newline at end of file diff --git a/theseus/configs/ent_3331.json b/theseus/configs/ent_3331.json deleted file mode 100644 index 1ff262ff..00000000 --- a/theseus/configs/ent_3331.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "description": "Maximizing entanglement in k=1 bi-partitions for three qutrits.", - "K": 1, - "dim": 3331, - "ftol": 1e-07, - "loss_func": "ent", - "min_edge": 4, - "num_pre": 5, - "optimizer": "SLSQP", - "imaginary": false, - "samples": 10, - "thresholds": [ - 0.000001 - ], - "tries_per_edge": 5, - "var_factor": 0 -} diff --git a/theseus/configs/ent_3333_k=1.json b/theseus/configs/ent_3333_k=1.json deleted file mode 100644 index a99637c3..00000000 --- a/theseus/configs/ent_3333_k=1.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "description": "Maximizing entanglement in k=1 bi-partitions for four qutrits.", - "K": 1, - "dim": 3333, - "ftol": 1e-07, - "loss_func": "ent", - "min_edge": 8, - "num_pre": 2, - "optimizer": "SLSQP", - "imaginary": false, - "samples": 10, - "thresholds": [ - 0.000001 - ], - "tries_per_edge": 3, - "var_factor": 0 -} diff --git a/theseus/configs/ghz_3612.json b/theseus/configs/ghz_3612.json deleted file mode 100644 index a5aae574..00000000 --- a/theseus/configs/ghz_3612.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "bulk_thr": 0.01, - "edges_tried": 30, - "foldername": "ghz_3612", - "ftol": 1e-06, - "loss_func": "cr", - "num_anc": 9, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "real": true, - "safe_hist": true, - "samples": 10, - "target_state": [ - "000", - "111", - "222", - "333", - "444", - "555" - ], - "thresholds": [ - 0.3, - 0.1 - ], - "tries_per_edge": 5, - "unicolor": false -} diff --git a/theseus/configs/ghz_f636.json b/theseus/configs/ghz_f636.json deleted file mode 100644 index 0ef22cf2..00000000 --- a/theseus/configs/ghz_f636.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "description": "Low countrate creation of six particle three-dimensional GHZ state. No ancillary particles", - "bulk_thr": 0.01, - "edges_tried": 10, - "foldername": "f-6-3-6", - "ftol": 1e-05, - "loss_func": "fid", - "num_anc": 0, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "real": true, - "safe_hist": true, - "samples": 10, - "target_state": [ - "000000", - "111111", - "222222" - ], - "thresholds": [ - 0.1, - 1 - ], - "tries_per_edge": 5, - "unicolor": true -} \ No newline at end of file diff --git a/theseus/configs/noon_4_3_anc5.json b/theseus/configs/noon_4_3_anc5.json deleted file mode 100644 index 870d7545..00000000 --- a/theseus/configs/noon_4_3_anc5.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "description": "NOON states in Fock basis.", - "bulk_thr": 0.1, - "edges_tried": 20, - "foldername": "noon_4_3_anc5", - "ftol": 1e-05, - "loss_func": "fockfid", - "num_anc": 5, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "safe_hist": true, - "samples": 30, - "target_state": [[0,0,0,3],[0,0,3,0],[0,3,0,0],[3,0,0,0]], - "amplitudes": [1,1,1,1], - "thresholds": [0.0001,0.1], - "tries_per_edge": 1, - "unicolor": false, - "loops":true - } - - diff --git a/theseus/configs/symmetric62_rough.json b/theseus/configs/symmetric62_rough.json deleted file mode 100644 index b32f3bbf..00000000 --- a/theseus/configs/symmetric62_rough.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "description": "Creation of symmetric state for six qubits. Low countrate solution.", - "bulk_thr": 0.01, - "edges_tried": 10, - "foldername": "symmetric62", - "ftol": 1e-06, - "loss_func": "fid", - "num_anc": 0, - "num_pre": 1, - "optimizer": "L-BFGS-B", - "imaginary": false, - "safe_hist": true, - "samples": 100, - "target_state": [ - "000011", - "000101", - "000110", - "001001", - "001010", - "001100", - "010001", - "010010", - "010100", - "011000", - "100001", - "100010", - "100100", - "101000", - "110000" - ], - "thresholds": [ - 0.05, - 1 - ], - "tries_per_edge": 5, - "unicolor": false -} \ No newline at end of file diff --git a/theseus/graphs/CondensedMatter/aklt3spin1anc1.json b/theseus/graphs/CondensedMatter/aklt3spin1anc1.json deleted file mode 100644 index f63d9a00..00000000 --- a/theseus/graphs/CondensedMatter/aklt3spin1anc1.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "graph": { - "(0, 1, 2, 1)": -1.0, - "(0, 2, 2, 1)": 1.0, - "(1, 2, 1, 2)": 1.0, - "(1, 3, 0, 0)": 1.0, - "(0, 1, 1, 2)": 1.0, - "(0, 3, 0, 0)": 1.0, - "(2, 3, 0, 0)": 1.0, - "(1, 2, 2, 1)": -1.0, - "(0, 2, 1, 2)": -1.0 - }, - "loss": [ - 0.1428571428571429, - 0.0 - ], - "history": [ - [ - 0.03745319223636567, - 0.0025695107623738833 - ], - [ - 0.038647380037810986, - 0.001408532192391454 - ], - [ - 0.0392954082078788, - 0.0007461620954075654 - ], - [ - 0.03968267675716719, - 0.00034848923392549747 - ], - [ - 0.03990610328640121, - 0.00010161776082906471 - ], - [ - 0.040000000000000036, - 0.0 - ], - [ - 0.1000003491521334, - 0.03563471663173856 - ], - [ - 0.10000028845439202, - 0.035633836354074244 - ], - [ - 0.10000020777037422, - 0.03563399446547 - ], - [ - 0.10000011925570651, - 0.03563479973949857 - ], - [ - 0.11111111886212455, - 0.030277723633683085 - ], - [ - 0.12973670046514474, - 0.017134465797445375 - ], - [ - 0.1333336611276773, - 0.01167394696112567 - ], - [ - 0.14106755593469378, - 0.002414612348984324 - ], - [ - 0.14285731839319393, - 2.38924061313206e-07 - ], - [ - 0.142857726140041, - 7.939127435463433e-07 - ], - [ - 0.1428573115243802, - 2.2957484324681587e-07 - ], - [ - 0.1428571428571429, - 0.0 - ] - ] -} \ No newline at end of file diff --git a/theseus/graphs/CondensedMatter/nbody5.json b/theseus/graphs/CondensedMatter/nbody5.json deleted file mode 100644 index 62842f5c..00000000 --- a/theseus/graphs/CondensedMatter/nbody5.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "graph": { - "(0, 4, 0, 0)": 1.0, - "(0, 5, 0, 0)": 1.0, - "(1, 2, 1, 0)": 1.0, - "(2, 3, 1, 0)": -1.0, - "(2, 4, 1, 0)": 1.0, - "(3, 4, 1, 0)": 1.0, - "(0, 1, 1, 0)": 1.0, - "(1, 2, 0, 0)": 1.0, - "(2, 4, 0, 0)": 1.0, - "(3, 5, 0, 0)": 1.0, - "(0, 4, 0, 1)": 1.0, - "(1, 5, 0, 0)": -1.0, - "(2, 5, 0, 0)": 1.0 - }, - "loss": 0.08333333333333337, - "secondary losses": [ - 0.0 - ] -} \ No newline at end of file diff --git a/theseus/graphs/CondensedMatter/onsager6_cr_17edges.json b/theseus/graphs/CondensedMatter/onsager6_cr_17edges.json deleted file mode 100644 index 16bdaa2b..00000000 --- a/theseus/graphs/CondensedMatter/onsager6_cr_17edges.json +++ /dev/null @@ -1,187 +0,0 @@ -{ - "graph": { - "(0, 1, 1, 1)": -1.0, - "(0, 4, 0, 0)": 1.0, - "(0, 5, 1, 1)": -1.0, - "(1, 2, 1, 1)": 1.0, - "(1, 3, 0, 0)": 1.0, - "(2, 3, 1, 1)": 1.0, - "(4, 5, 1, 1)": 1.0, - "(0, 3, 0, 0)": 0.8949849271841389, - "(1, 4, 0, 0)": -0.8953616784739523, - "(3, 4, 0, 0)": 0.9670468432739905, - "(0, 1, 0, 0)": -0.967566176699562, - "(1, 2, 0, 0)": -0.9731894547366519, - "(4, 5, 0, 0)": 0.9733580700283834, - "(2, 3, 0, 0)": 0.9760284785457564, - "(0, 5, 0, 0)": 0.9770946803726775, - "(2, 5, 0, 0)": 0.9924450693501775, - "(3, 4, 1, 1)": -1.0 - }, - "loss": [ - 0.02555320244666881, - 0.004819245786801041 - ], - "history": [ - [ - 0.022324197556976344, - 0.003942090502905282 - ], - [ - 0.022324914449001865, - 0.003946595399804131 - ], - [ - 0.022331641444418238, - 0.003965392220014796 - ], - [ - 0.022322187792614745, - 0.003983860076137935 - ], - [ - 0.022337148547330266, - 0.003997514248742284 - ], - [ - 0.022370366784443818, - 0.00397286825780474 - ], - [ - 0.022456457776712124, - 0.0040780103660453815 - ], - [ - 0.022483783106214128, - 0.004100442551997041 - ], - [ - 0.022525947700156368, - 0.004122431447081798 - ], - [ - 0.022570641261465907, - 0.004109936281130877 - ], - [ - 0.022588858689781, - 0.004127117301742533 - ], - [ - 0.022619851716862427, - 0.004158857748032374 - ], - [ - 0.022646198350948166, - 0.004227714298873364 - ], - [ - 0.02271661567583516, - 0.00429371573423698 - ], - [ - 0.022758768228207216, - 0.004257877029766877 - ], - [ - 0.022830923821086757, - 0.004280032905633391 - ], - [ - 0.022850293030637903, - 0.004308742828286194 - ], - [ - 0.022947729729119848, - 0.004434980922103593 - ], - [ - 0.02301788888805778, - 0.0045096198986351865 - ], - [ - 0.022570730870322575, - 0.0036289119910645207 - ], - [ - 0.022652908806776284, - 0.0037449448422366416 - ], - [ - 0.0228435481698388, - 0.003948414388348032 - ], - [ - 0.022839226173453575, - 0.00388006814864561 - ], - [ - 0.023035729349378142, - 0.003997259440304601 - ], - [ - 0.023119874682531294, - 0.003952529114219061 - ], - [ - 0.023129803656438797, - 0.003951372621388449 - ], - [ - 0.02316562160159119, - 0.003975523474383125 - ], - [ - 0.0231383845662273, - 0.003817207197726269 - ], - [ - 0.02356002609258978, - 0.004221290612180351 - ], - [ - 0.02368225660468737, - 0.004353805608032113 - ], - [ - 0.024088407848388727, - 0.0045068052975962836 - ], - [ - 0.024088704900461444, - 0.004501725081849317 - ], - [ - 0.024937883486740198, - 0.0044319555585475845 - ], - [ - 0.02510859230905782, - 0.004549398618505673 - ], - [ - 0.02525451063232842, - 0.004737873726511133 - ], - [ - 0.025554772712151008, - 0.004804812568784289 - ], - [ - 0.025554413378629737, - 0.004867219999553751 - ], - [ - 0.02555393454636279, - 0.004845663932220634 - ], - [ - 0.02555360133717266, - 0.0048303161401653805 - ], - [ - 0.02555320244666881, - 0.004819245786801041 - ] - ] -} \ No newline at end of file diff --git a/theseus/graphs/CondensedMatter/pxp6_14edges.json b/theseus/graphs/CondensedMatter/pxp6_14edges.json deleted file mode 100644 index f504df0d..00000000 --- a/theseus/graphs/CondensedMatter/pxp6_14edges.json +++ /dev/null @@ -1,168 +0,0 @@ -{ - "graph": { - "(0, 5, 0, 0)": -1.0, - "(1, 3, 0, 0)": -1.0, - "(2, 3, 1, 1)": 1.0, - "(2, 5, 0, 1)": -1.0, - "(4, 5, 1, 0)": 1.0, - "(3, 4, 0, 0)": -0.5951909576909118, - "(1, 2, 1, 0)": 0.7657722255909747, - "(3, 5, 0, 0)": 0.9395982127534457, - "(0, 4, 0, 0)": 1.0, - "(1, 3, 1, 1)": 1.0, - "(2, 4, 0, 0)": -1.0, - "(3, 4, 0, 1)": 1.0, - "(0, 3, 0, 0)": -1.0, - "(1, 2, 0, 1)": -1.0 - }, - "loss": [ - 0.06888030522478117, - 0.00276154342026369 - ], - "history": [ - [ - 0.009775462512421451, - 0.001217765407141691 - ], - [ - 0.00979556992170627, - 0.0012384206950469823 - ], - [ - 0.009800132220859403, - 0.001332259730259966 - ], - [ - 0.009861778548168054, - 0.0012760916054179727 - ], - [ - 0.010654425812090085, - 0.002017186005121574 - ], - [ - 0.011188432842019314, - 0.002539006905461383 - ], - [ - 0.012143600178953773, - 0.002495972541795677 - ], - [ - 0.013471882275374658, - 0.0038985060915865954 - ], - [ - 0.013419869960574093, - 0.003907863453042615 - ], - [ - 0.013611900401422905, - 0.004022393796388801 - ], - [ - 0.013904326862504535, - 0.0038758118702172384 - ], - [ - 0.01475795315704509, - 0.0039575655877323035 - ], - [ - 0.015416984891599705, - 0.0037481818478123374 - ], - [ - 0.017373251491550556, - 0.004026652556448296 - ], - [ - 0.0179364914918555, - 0.005160230812464972 - ], - [ - 0.01944501153671352, - 0.0035716718420623073 - ], - [ - 0.020517798634838047, - 0.003019513254096884 - ], - [ - 0.021253294030725955, - 0.0023816508817215976 - ], - [ - 0.021346640870060107, - 0.002356343800941074 - ], - [ - 0.018562774786117342, - 0.0003662288701835603 - ], - [ - 0.018693424453881113, - 0.00023959248786264986 - ], - [ - 0.018670442505836604, - 0.0002391264731750331 - ], - [ - 0.018675246152231928, - 0.0002410072564760224 - ], - [ - 0.01869391476927229, - 0.0002728817459581867 - ], - [ - 0.020428573808344064, - 0.0014050603637107972 - ], - [ - 0.030216865927403913, - 0.005404183707268473 - ], - [ - 0.031911653471434986, - 0.0046419481099653215 - ], - [ - 0.03189120781469057, - 0.004573552757074939 - ], - [ - 0.03841205264135639, - 0.006736169374560119 - ], - [ - 0.03944928972913042, - 0.0065470863925659595 - ], - [ - 0.0568762732298671, - 0.009070361621166478 - ], - [ - 0.05752550109363053, - 0.008917646760198239 - ], - [ - 0.061820880301129755, - 0.008576812662407951 - ], - [ - 0.06322429849106481, - 0.007918339886801795 - ], - [ - 0.06677814115082992, - 0.0048509927108356665 - ], - [ - 0.06888030522478117, - 0.00276154342026369 - ] - ] -} \ No newline at end of file diff --git a/theseus/graphs/CondensedMatter/spinhalf4.json b/theseus/graphs/CondensedMatter/spinhalf4.json deleted file mode 100644 index c67c996f..00000000 --- a/theseus/graphs/CondensedMatter/spinhalf4.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "graph": { - "(0, 3, 1, 0)": 1.0, - "(0, 5, 1, 0)": 1.0, - "(1, 2, 1, 1)": 1.0, - "(1, 5, 1, 0)": 1.0, - "(2, 4, 1, 0)": 1.0, - "(3, 4, 1, 0)": 1.0, - "(0, 5, 0, 0)": -1.0, - "(1, 5, 0, 0)": 1.0, - "(3, 4, 0, 0)": -1.0, - "(1, 2, 0, 0)": 1.0, - "(2, 4, 0, 0)": 1.0, - "(0, 3, 0, 1)": 1.0 - }, - "loss": [ - 0.11111111111111116, - 0.0 - ], - "history": [ - [ - 0.0077665349524135285, - 8.867929162104105e-06 - ], - [ - 0.007765393037896362, - 8.168332050639826e-06 - ], - [ - 0.0077644112000767596, - 7.646085202872577e-06 - ], - [ - 0.007764120324037949, - 7.849431416073749e-06 - ], - [ - 0.007768948986133339, - 1.167500409193778e-05 - ], - [ - 0.0077573763612378555, - 4.614437659533621e-06 - ], - [ - 0.00775664783647656, - 4.427673769957785e-06 - ], - [ - 0.007752025431946752, - 8.881915436464993e-08 - ], - [ - 0.007751992004188746, - 5.486704746093807e-08 - ], - [ - 0.008045564159256724, - 8.13083730457631e-05 - ], - [ - 0.007753463635739699, - 1.5495826439781979e-06 - ], - [ - 0.007751937984496138, - 0.0 - ], - [ - 0.01603379562139795, - 0.001049353902939254 - ], - [ - 0.013606360255894345, - 0.00011492467143980889 - ], - [ - 0.013690667444985705, - 9.272665260318114e-05 - ], - [ - 0.013698630136986356, - 0.0 - ], - [ - 0.028847404620433226, - 0.0014522098502527392 - ], - [ - 0.029412503693303504, - 0.000918803571250959 - ], - [ - 0.02991982130338533, - 0.00037934295769070925 - ], - [ - 0.03024193612996917, - 6.525183419181513e-05 - ], - [ - 0.030303030303030276, - 0.0 - ], - [ - 0.030303030303030276, - 0.0 - ], - [ - 0.030303030303030276, - 0.0 - ], - [ - 0.030303030303030276, - 0.0 - ], - [ - 0.09677772211276481, - 0.015465489592603854 - ], - [ - 0.10526315791308027, - 0.006873524282876686 - ], - [ - 0.10937500005284917, - 0.002150625064109124 - ], - [ - 0.11111111111111116, - 0.0 - ] - ] -} \ No newline at end of file diff --git a/theseus/graphs/FockStates/octahedron4ancillas.json b/theseus/graphs/FockStates/octahedron4ancillas.json deleted file mode 100644 index 22b1079b..00000000 --- a/theseus/graphs/FockStates/octahedron4ancillas.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "graph": { - "(2, 5, 0, 0)": 1, - "(0, 3, 0, 0)": 1, - "(1, 2, 0, 0)": 1, - "(1, 3, 0, 0)": 1, - "(0, 2, 0, 0)": 1, - "(1, 4, 0, 0)": -1, - "(0, 4, 0, 0)": 1, - "(0, 0, 0, 0)": 1, - "(3, 5, 0, 0)": 1, - "(1, 1, 0, 0)": 1 - } -} \ No newline at end of file diff --git a/theseus/graphs/HS_measurement/clean-13-8-0.1385_0.0051.json b/theseus/graphs/HS_measurement/clean-13-8-0.1385_0.0051.json deleted file mode 100644 index 9d876c1e..00000000 --- a/theseus/graphs/HS_measurement/clean-13-8-0.1385_0.0051.json +++ /dev/null @@ -1,234 +0,0 @@ -{ - "graph": { - "(0, 2, 1, 0)": [ - 1.0, - 1.5376598437388316 - ], - "(0, 4, 1, 0)": [ - -1.0, - -0.28984743857256 - ], - "(0, 6, 0, 0)": [ - 1.0, - 0.9469389971993508 - ], - "(1, 2, 0, 1)": [ - -1.0, - 1.2366445822136662 - ], - "(1, 2, 1, 0)": [ - -1.0, - -2.0540298335621117 - ], - "(1, 4, 1, 0)": [ - -1.0, - 1.6520822255169778 - ], - "(1, 7, 0, 0)": [ - -1.0, - 0.42313100921405944 - ], - "(2, 7, 0, 0)": [ - 1.0, - -0.9919146007383892 - ], - "(3, 4, 1, 0)": [ - 1.0, - -2.3157667958446075 - ], - "(3, 6, 0, 0)": [ - 1.0, - -1.22810346032967 - ], - "(5, 7, 0, 0)": [ - 1.0, - -1.8528826129558165 - ], - "(0, 2, 0, 1)": [ - -1.0, - 1.3874786062720976 - ], - "(5, 6, 0, 0)": [ - -1.0, - 0.3138900578293027 - ] - }, - "loss": [ - 0.13846157099769474, - 0.005070206222113294 - ], - "history": [ - [ - 0.001189928163207843, - 5.164442931826496e-05 - ], - [ - 0.0015380252065887445, - 4.4644684988992545e-05 - ], - [ - 0.0010667970116010617, - 1.799869341667648e-05 - ], - [ - 0.0012601212134216722, - 1.250905422867099e-05 - ], - [ - 0.0009378276028517707, - 8.302352705436e-06 - ], - [ - 0.001219108444939998, - 8.3648379434198e-06 - ], - [ - 0.0007819954006185181, - 1.3099740685973416e-05 - ], - [ - 0.0013354337890910672, - 2.6842775107116523e-05 - ], - [ - 0.0018482946883701112, - 3.717257594737511e-05 - ], - [ - 0.002020463819866758, - 2.7738967921520086e-05 - ], - [ - 0.0016995562219638272, - 4.107251343621332e-05 - ], - [ - 0.0024051518136765093, - 6.237251065566163e-05 - ], - [ - 0.0041061611021138145, - 0.00024623700786452485 - ], - [ - 0.003156947340547167, - 0.0004842168014079773 - ], - [ - 0.0024012014428173023, - 5.42852262949145e-05 - ], - [ - 0.00477691608206976, - 0.00023471325057611292 - ], - [ - 0.004454375796794974, - 0.0001848139242602853 - ], - [ - 0.006685757215611932, - 0.0004526504542038401 - ], - [ - 0.0026583004187439307, - 3.626616258445292e-05 - ], - [ - 0.006133868786739494, - 0.00016063438902935712 - ], - [ - 0.005413432700477561, - 0.0002752446673862652 - ], - [ - 0.00550419989456663, - 9.910527539658265e-05 - ], - [ - 0.004091843454557598, - 3.6133100831725606e-05 - ], - [ - 0.004068501962738003, - 4.754800443129703e-05 - ], - [ - 0.004998162078184709, - 0.0001779799781239655 - ], - [ - 0.00449147434901398, - 0.000247193708832083 - ], - [ - 0.004038608406785937, - 2.7906570499669492e-05 - ], - [ - 0.004900265539940496, - 3.073824333310604e-05 - ], - [ - 0.004288897837861572, - 7.567562370447423e-05 - ], - [ - 0.003988027464652322, - 3.894870786191884e-05 - ], - [ - 0.003917004575361704, - 1.666735481309356e-05 - ], - [ - 0.00959947001016448, - 0.0017754422195570552 - ], - [ - 0.005307035113414238, - 8.001910822585945e-05 - ], - [ - 0.0065676536345513625, - 0.00013516185481421417 - ], - [ - 0.027444284357347026, - 0.00035833069941182405 - ], - [ - 0.021932648561393098, - 0.0005953178301469908 - ], - [ - 0.022305248425034452, - 0.0003843150234453807 - ], - [ - 0.11111112702830606, - 0.03031263388700911 - ], - [ - 0.1111111116454222, - 0.030302313755937504 - ], - [ - 0.11111465753807626, - 0.030123030067509493 - ], - [ - 0.11111115509073999, - 0.030344120236891925 - ], - [ - 0.12500000883181472, - 0.02001860295062574 - ], - [ - 0.13333403616635042, - 0.011558405503912073 - ] - ] -} \ No newline at end of file diff --git a/theseus/graphs/HighlyEntangledStates/bellgem4.json b/theseus/graphs/HighlyEntangledStates/bellgem4.json deleted file mode 100644 index 93d38e31..00000000 --- a/theseus/graphs/HighlyEntangledStates/bellgem4.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "graph": { - "(0, 1, 0, 1)": 1.0, - "(0, 1, 1, 1)": 1.0, - "(0, 3, 0, 1)": -1.0, - "(0, 3, 1, 1)": 1.0, - "(1, 2, 0, 1)": -1.0, - "(1, 2, 1, 1)": 1.0, - "(2, 3, 0, 1)": -1.0, - "(2, 3, 1, 1)": -1.0, - "(0, 1, 1, 0)": 1.0, - "(0, 3, 1, 0)": -1.0, - "(1, 2, 0, 0)": 1.0, - "(1, 2, 1, 0)": -1.0, - "(2, 3, 0, 0)": -1.0, - "(2, 3, 1, 0)": -1.0, - "(0, 1, 0, 0)": 1.0, - "(0, 3, 0, 0)": 1.0 - }, - "loss": [ - 0.030303030303030276, - 0.0 - ], - "history": [ - [ - 0.029414173488044537, - 0.0009250872848068914 - ], - [ - 0.029414426776870783, - 0.00092474246348484 - ], - [ - 0.029414358938367746, - 0.000924324821397926 - ], - [ - 0.029413480141130877, - 0.0009231232664598243 - ], - [ - 0.030000343120213824, - 0.00031753619608365646 - ], - [ - 0.030303030303030276, - 0.0 - ], - [ - 0.030303030303030276, - 0.0 - ], - [ - 0.030303030303030276, - 0.0 - ] - ] -} \ No newline at end of file diff --git a/theseus/graphs/HighlyEntangledStates/bssb4/bss4real.json b/theseus/graphs/HighlyEntangledStates/bssb4/bss4real.json deleted file mode 100644 index a781188c..00000000 --- a/theseus/graphs/HighlyEntangledStates/bssb4/bss4real.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "graph": { - "(1, 2, 1, 0)": 1.0, - "(4, 5, 0, 0)": 1.0, - "(1, 3, 0, 1)": 1.0, - "(0, 1, 0, 0)": 1.0, - "(2, 3, 0, 0)": 1.0, - "(2, 4, 1, 0)": 1.0, - "(0, 3, 1, 1)": 1.0, - "(0, 2, 0, 1)": 1.0, - "(0, 5, 1, 0)": 1.0, - "(1, 3, 1, 0)": 1.0 - }, - "loss": [ - 0.16736755360768718, - 0.028595479208968322 - ], - "history": [ - [ - 0.004957579627198672, - 2.9469452695884968e-05 - ], - [ - 0.004950380020981249, - 2.6162655039962956e-05 - ], - [ - 0.004950379995901311, - 2.553457807241699e-05 - ], - [ - 0.004951037147520432, - 2.7827043032058185e-05 - ], - [ - 0.004964277488289093, - 1.3142290107293064e-05 - ], - [ - 0.005247707898984211, - 8.31256941388192e-05 - ], - [ - 0.013615119179408497, - 0.0019609194837378885 - ], - [ - 0.012324199070501085, - 0.00156958427611964 - ], - [ - 0.013001593533540468, - 0.0008899706201570545 - ], - [ - 0.014708829302104154, - 0.0006549335677388246 - ], - [ - 0.014743388949418845, - 0.000498393130171304 - ], - [ - 0.01567114308417117, - 0.0011843364567848402 - ], - [ - 0.015637518952151153, - 0.0010634432838988461 - ], - [ - 0.018144253697106594, - 0.0008031471166144444 - ], - [ - 0.022667186839099407, - 0.002789961317494205 - ], - [ - 0.02268856327986357, - 0.002684936442441166 - ], - [ - 0.025139936807130447, - 0.0034665834287560537 - ], - [ - 0.029411779565719276, - 0.0009196618200408846 - ], - [ - 0.03035126665519361, - 0.0012373760756564378 - ], - [ - 0.03502660437174243, - 0.004081405712601072 - ], - [ - 0.0438920106484465, - 0.009879466633881284 - ], - [ - 0.05041157251679218, - 0.007312823708214955 - ], - [ - 0.0555555926168112, - 0.003462454139216753 - ], - [ - 0.055555560412590355, - 0.0034547984537171006 - ], - [ - 0.08377935445430129, - 0.01893028162507382 - ], - [ - 0.08377935267105407, - 0.018928413885811013 - ], - [ - 0.10000016452537208, - 0.012105701096037591 - ], - [ - 0.1392977396348063, - 0.023863030913981342 - ], - [ - 0.1544122548370419, - 0.026825478410478 - ], - [ - 0.16736755360768718, - 0.028595479208968322 - ], - [ - 0.16736755360768718, - 0.028595479208968322 - ] - ] -} \ No newline at end of file diff --git a/theseus/graphs/HighlyEntangledStates/bssb4/clean-13-10-0.1000_0.0121.json b/theseus/graphs/HighlyEntangledStates/bssb4/clean-13-10-0.1000_0.0121.json deleted file mode 100644 index 3a568fa4..00000000 --- a/theseus/graphs/HighlyEntangledStates/bssb4/clean-13-10-0.1000_0.0121.json +++ /dev/null @@ -1,166 +0,0 @@ -{ - "graph": { - "(0, 1, 1, 0)": [ - -1.0, - 1.5692527530438736 - ], - "(0, 1, 1, 1)": [ - -1.0, - -3.141592653589793 - ], - "(0, 2, 1, 0)": [ - 1.0, - 1.5224728542974302 - ], - "(0, 4, 0, 0)": [ - 1.0, - -1.0210964783034628 - ], - "(0, 5, 0, 0)": [ - 1.0, - 0.519277502182581 - ], - "(1, 2, 1, 0)": [ - 1.0, - 1.282594582138738 - ], - "(1, 3, 0, 0)": [ - 1.0, - 2.8351322965293164 - ], - "(1, 3, 1, 0)": [ - -1.0, - -1.8771566402979223 - ], - "(2, 3, 0, 0)": [ - 1.0, - -0.35502559774998677 - ], - "(2, 5, 1, 0)": [ - -1.0, - -0.5566256543153053 - ], - "(3, 4, 1, 0)": [ - 1.0, - 1.672597229525436 - ], - "(3, 5, 1, 0)": [ - -1.0, - 0.0641087670649825 - ], - "(4, 5, 0, 0)": [ - -1.0, - 2.254878894269483 - ] - }, - "loss": [ - 0.10000035053043765, - 0.012142675575446127 - ], - "history": [ - [ - 0.006550459262075425, - 0.00010076917660151175 - ], - [ - 0.005548179428499722, - 6.105850827564652e-05 - ], - [ - 0.006058304455162311, - 0.00016531329444402498 - ], - [ - 0.007626638417207898, - 0.00011223120537229292 - ], - [ - 0.011550977001773877, - 0.0005539067662930774 - ], - [ - 0.009803182193953153, - 0.00013302182591390377 - ], - [ - 0.008539638147588291, - 0.00011541774749257439 - ], - [ - 0.021661819515393477, - 0.0021535115732057575 - ], - [ - 0.011794841620098806, - 0.00011191979740499125 - ], - [ - 0.02272777559503658, - 0.0017193213975228439 - ], - [ - 0.022655843872725456, - 0.0012331109485059777 - ], - [ - 0.017936938721766604, - 0.00028205538076286896 - ], - [ - 0.01918556846422048, - 0.0006072495018663027 - ], - [ - 0.019762183932330757, - 0.00056952240046515 - ], - [ - 0.022995345230295228, - 0.0032119330568103344 - ], - [ - 0.047301679231111726, - 0.006958771611436432 - ], - [ - 0.05377387864125516, - 0.004372668735857177 - ], - [ - 0.040621843498001464, - 0.007343932381621676 - ], - [ - 0.050000318933534516, - 0.008191390445892788 - ], - [ - 0.05554992604314635, - 0.0034538821857496016 - ], - [ - 0.05335469555693384, - 0.005216457721842094 - ], - [ - 0.05486632062953345, - 0.0058558509413737525 - ], - [ - 0.05555557035277081, - 0.0034475266801725635 - ], - [ - 0.055555612081277905, - 0.0034503325366660453 - ], - [ - 0.055555871658711786, - 0.0034418837662242296 - ], - [ - 0.0837797962830874, - 0.018903600661451914 - ] - ] -} \ No newline at end of file diff --git a/theseus/graphs/HighlyEntangledStates/ghz_358.json b/theseus/graphs/HighlyEntangledStates/ghz_358.json deleted file mode 100644 index e5abc5e6..00000000 --- a/theseus/graphs/HighlyEntangledStates/ghz_358.json +++ /dev/null @@ -1,521 +0,0 @@ -{ - "graph": { - "(0, 1, 0, 4)": -1.0, - "(0, 1, 2, 2)": -1.0, - "(0, 2, 4, 4)": -1.0, - "(0, 3, 1, 0)": 1.0, - "(0, 4, 0, 0)": -1.0, - "(0, 4, 1, 0)": 1.0, - "(0, 5, 3, 0)": 1.0, - "(0, 7, 0, 0)": 1.0, - "(1, 2, 0, 0)": 1.0, - "(1, 2, 1, 1)": 1.0, - "(1, 3, 1, 0)": 1.0, - "(1, 3, 3, 0)": -1.0, - "(1, 3, 4, 0)": -1.0, - "(1, 4, 4, 0)": 1.0, - "(1, 6, 1, 0)": 1.0, - "(1, 7, 3, 0)": 1.0, - "(2, 3, 2, 0)": -1.0, - "(2, 5, 1, 0)": -1.0, - "(2, 6, 3, 0)": 1.0, - "(2, 7, 2, 0)": -1.0, - "(2, 7, 3, 0)": 1.0, - "(3, 4, 0, 0)": 1.0, - "(3, 7, 0, 0)": -1.0, - "(4, 6, 0, 0)": -1.0, - "(5, 6, 0, 0)": 1.0, - "(5, 7, 0, 0)": -1.0, - "(6, 7, 0, 0)": -1.0 - }, - "loss": [ - 0.12000058850672835, - 0.051042621761189455 - ], - "history": [ - [ - 0.01112000367003918, - 0.0006794369717569859 - ], - [ - 0.007767690205733868, - 0.00017375910314909593 - ], - [ - 0.007767526544506631, - 0.00017286227044899238 - ], - [ - 0.007767425461041477, - 0.0001723140924592137 - ], - [ - 0.007767345399449566, - 0.00017184925692481645 - ], - [ - 0.0077672792580668615, - 0.00017150539304577883 - ], - [ - 0.007767220057436686, - 0.00017119269273846438 - ], - [ - 0.007767167328035729, - 0.0001709377275471713 - ], - [ - 0.0077671226246966985, - 0.00017071496616694048 - ], - [ - 0.00776708737081333, - 0.00017053182142068302 - ], - [ - 0.007767052567074995, - 0.0001703629047986599 - ], - [ - 0.007767027634620782, - 0.00017021568329467218 - ], - [ - 0.007767043389209305, - 0.0001700584890597101 - ], - [ - 0.007767131604399791, - 0.0001698937737626416 - ], - [ - 0.007767330555553897, - 0.00016976470293394996 - ], - [ - 0.007767657818014473, - 0.00016931019050336893 - ], - [ - 0.007768161943369267, - 0.00016895331678112857 - ], - [ - 0.007769120847633704, - 0.00016946698613529154 - ], - [ - 0.0077697938604156525, - 0.0001696873692101919 - ], - [ - 0.007770660318272671, - 0.00016980562032575808 - ], - [ - 0.007771130274004556, - 0.00016945013150271304 - ], - [ - 0.00777286554859391, - 0.00017040605872886694 - ], - [ - 0.007780844918877983, - 0.0001658829432270581 - ], - [ - 0.007785515510115637, - 0.00016872597080053175 - ], - [ - 0.007799129610069677, - 0.00014191303650024079 - ], - [ - 0.007802717980423202, - 0.0001383914748637194 - ], - [ - 0.007803286067878501, - 0.00013679762976048782 - ], - [ - 0.007805146958896558, - 0.00013838777008001735 - ], - [ - 0.007810712888224436, - 0.00013648196951676628 - ], - [ - 0.007814660247029592, - 0.00012433187590910055 - ], - [ - 0.007824302139429085, - 0.00013256351792911847 - ], - [ - 0.007825458720823741, - 0.00011579911275094723 - ], - [ - 0.007836928801022824, - 0.00010425803722924343 - ], - [ - 0.007843274205479589, - 9.798814281791746e-05 - ], - [ - 0.007843328073965816, - 9.693319174852721e-05 - ], - [ - 0.007843793018729284, - 8.99870224549959e-05 - ], - [ - 0.007843842873166529, - 9.267314611538513e-05 - ], - [ - 0.007845053003005975, - 9.712080143686741e-05 - ], - [ - 0.007845266957732466, - 0.0001009758092470614 - ], - [ - 0.007844873374289074, - 9.532267139866768e-05 - ], - [ - 0.007844846654265214, - 9.306299248190708e-05 - ], - [ - 0.007846396346476658, - 9.447086864622367e-05 - ], - [ - 0.007846768680114358, - 9.665290128746395e-05 - ], - [ - 0.007845444200759388, - 0.00010184557215264789 - ], - [ - 0.00784989070791009, - 0.00010100833953263777 - ], - [ - 0.007849657652884479, - 0.0001006055818456586 - ], - [ - 0.007846004931971962, - 0.0001000127696606512 - ], - [ - 0.007845896226231108, - 9.959855753960412e-05 - ], - [ - 0.007846988412344769, - 0.00010024306943878791 - ], - [ - 0.007845471086949218, - 9.853777013058007e-05 - ], - [ - 0.007848987820581743, - 9.886048612084419e-05 - ], - [ - 0.007847038049467958, - 9.913139278849847e-05 - ], - [ - 0.007845966807212834, - 9.477914165190171e-05 - ], - [ - 0.007848163416532161, - 9.327994105345905e-05 - ], - [ - 0.007850256095727648, - 9.491904520064764e-05 - ], - [ - 0.007860716482199881, - 0.0001083037688018873 - ], - [ - 0.007847931109881134, - 9.676047614415317e-05 - ], - [ - 0.007880804403806119, - 0.00013488249004778297 - ], - [ - 0.007866466489428237, - 0.00011211361806628961 - ], - [ - 0.008298697649209541, - 0.0002769229106905913 - ], - [ - 0.00839143384880603, - 0.0003392556172746586 - ], - [ - 0.00879633985401751, - 0.00040357485067210597 - ], - [ - 0.010036976271596165, - 0.0006690657683448009 - ], - [ - 0.010252847989387748, - 0.0005542092532773157 - ], - [ - 0.010367976994097527, - 0.0005017317401732058 - ], - [ - 0.010439339751475374, - 0.0004730082043721273 - ], - [ - 0.010601809136329687, - 0.0003982245050414557 - ], - [ - 0.010935515180138689, - 0.0007258114826351747 - ], - [ - 0.011092969301620847, - 0.000776100303673255 - ], - [ - 0.011307814254578386, - 0.0008258037993613687 - ], - [ - 0.011304727874053566, - 0.000794747229133308 - ], - [ - 0.011355707373387203, - 0.0007600240665790459 - ], - [ - 0.011970531776426152, - 0.00134358889149655 - ], - [ - 0.012044016207036434, - 0.0013133057628939016 - ], - [ - 0.012034064281358225, - 0.0012896652149112509 - ], - [ - 0.012019320705631609, - 0.0012899502733052515 - ], - [ - 0.012019180337892177, - 0.0012900973987785003 - ], - [ - 0.012005664649374581, - 0.001286060720431248 - ], - [ - 0.012005486300573742, - 0.0012863801828452148 - ], - [ - 0.013699113197711221, - 0.002571958851505185 - ], - [ - 0.016364358760830644, - 0.005704163499716364 - ], - [ - 0.016798560261251927, - 0.005861751115555425 - ], - [ - 0.019164061005321198, - 0.008549629676096071 - ], - [ - 0.024246033715862314, - 0.011809523398132571 - ], - [ - 0.027273319673404295, - 0.01401985316913601 - ], - [ - 0.027654848426153178, - 0.014669049989130878 - ], - [ - 0.030033373889371107, - 0.01589510095402935 - ], - [ - 0.03466621177041662, - 0.016149805772157744 - ], - [ - 0.034868805997153585, - 0.016173367172930386 - ], - [ - 0.03433533277012546, - 0.010376943538125794 - ], - [ - 0.03393548402662416, - 0.007197980933417281 - ], - [ - 0.034191224531234465, - 0.007090522702774771 - ], - [ - 0.03446894038571546, - 0.006762055949770973 - ], - [ - 0.03467064807181164, - 0.006828260358725746 - ], - [ - 0.03507571125008413, - 0.006674134172017676 - ], - [ - 0.03547191083346879, - 0.0066919287757630785 - ], - [ - 0.03605684292997324, - 0.006308073624199606 - ], - [ - 0.0360656150419667, - 0.006318384348554029 - ], - [ - 0.03605421141917031, - 0.006305020551791496 - ], - [ - 0.03619334410249353, - 0.0053802300846742535 - ], - [ - 0.03875532019746952, - 0.006709199843677127 - ], - [ - 0.041801965993062185, - 0.006876450123206701 - ], - [ - 0.045396396443407094, - 0.008638854609175572 - ], - [ - 0.04628420925984533, - 0.009725024155421425 - ], - [ - 0.04676045003218432, - 0.010007522861141482 - ], - [ - 0.04796531562503381, - 0.011410246306867378 - ], - [ - 0.04812155634490456, - 0.011120097711032617 - ], - [ - 0.051835079188892075, - 0.01278347437703764 - ], - [ - 0.06180851002937948, - 0.02070180338136629 - ], - [ - 0.04707946630167614, - 0.0005805363957714915 - ], - [ - 0.04708020670580926, - 0.0005718346182381762 - ], - [ - 0.047093552285708995, - 0.0005727078438764188 - ], - [ - 0.04711643197973603, - 0.0005608265557748293 - ], - [ - 0.04714314327300284, - 0.0005245742230270967 - ], - [ - 0.04720188537026493, - 0.00045408650038580856 - ], - [ - 0.04732484103068957, - 0.000338278125915803 - ], - [ - 0.047440286439277224, - 0.00019824549684588355 - ], - [ - 0.047524832962805075, - 0.00010950338415138816 - ], - [ - 0.047619047619054555, - 7.66053886991358e-15 - ], - [ - 0.04761904767192937, - 5.830214089286301e-11 - ], - [ - 0.04761904761904767, - 0.0 - ] - ] -} \ No newline at end of file diff --git a/theseus/graphs/HighlyEntangledStates/ghz_3612/ghz_3612.json b/theseus/graphs/HighlyEntangledStates/ghz_3612/ghz_3612.json deleted file mode 100644 index efa8ccaa..00000000 --- a/theseus/graphs/HighlyEntangledStates/ghz_3612/ghz_3612.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "graph": { - "(0, 1, 1, 1)": 1.0, - "(0, 2, 0, 0)": -1.0, - "(0, 2, 3, 3)": 1.0, - "(0, 2, 5, 4)": -1.0, - "(0, 4, 2, 0)": -1.0, - "(0, 5, 4, 0)": -1.0, - "(0, 5, 5, 0)": -1.0, - "(0, 6, 2, 0)": 1.0, - "(0, 7, 0, 0)": 1.0, - "(0, 9, 0, 0)": -1.0, - "(0, 11, 4, 0)": 1.0, - "(0, 11, 5, 0)": -1.0, - "(1, 2, 0, 0)": -1.0, - "(1, 2, 5, 5)": -1.0, - "(1, 4, 2, 0)": -1.0, - "(1, 5, 3, 0)": 1.0, - "(1, 5, 4, 0)": -1.0, - "(1, 6, 2, 0)": 1.0, - "(1, 7, 0, 0)": 1.0, - "(1, 9, 0, 0)": -1.0, - "(1, 11, 3, 0)": 1.0, - "(1, 11, 4, 0)": 1.0, - "(2, 3, 4, 0)": -1.0, - "(2, 5, 4, 0)": -1.0, - "(2, 7, 1, 0)": 1.0, - "(2, 8, 0, 0)": 1.0, - "(2, 9, 1, 0)": 1.0, - "(2, 10, 2, 0)": -1.0, - "(3, 5, 0, 0)": 1.0, - "(3, 11, 0, 0)": 1.0, - "(4, 6, 0, 0)": 1, - "(4, 7, 0, 0)": 1.0, - "(4, 10, 0, 0)": -1.0, - "(5, 6, 0, 0)": 1.0, - "(5, 7, 0, 0)": -1.0, - "(6, 7, 0, 0)": 1.0, - "(6, 10, 0, 0)": -1.0, - "(6, 11, 0, 0)": 1.0, - "(7, 8, 0, 0)": -1.0, - "(7, 11, 0, 0)": -1.0, - "(8, 9, 0, 0)": -1.0 - } -} \ No newline at end of file diff --git a/theseus/graphs/HighlyEntangledStates/psi5/clean-23-46-0.0345_0.0000.json b/theseus/graphs/HighlyEntangledStates/psi5/clean-23-46-0.0345_0.0000.json deleted file mode 100644 index 6b0be30c..00000000 --- a/theseus/graphs/HighlyEntangledStates/psi5/clean-23-46-0.0345_0.0000.json +++ /dev/null @@ -1,133 +0,0 @@ -{ - "graph": { - "(0, 1, 0, 1)": 1.0, - "(0, 2, 0, 0)": -1.0, - "(0, 3, 0, 0)": -1.0, - "(0, 3, 1, 1)": 1.0, - "(0, 4, 1, 0)": 1.0, - "(0, 4, 1, 1)": 1.0, - "(0, 5, 1, 0)": -1.0, - "(1, 2, 0, 1)": 1.0, - "(1, 2, 1, 0)": -1.0, - "(1, 2, 1, 1)": -1.0, - "(1, 3, 1, 0)": 1.0, - "(1, 4, 1, 0)": 1.0, - "(1, 5, 0, 0)": -1.0, - "(2, 3, 0, 1)": -1.0, - "(2, 3, 1, 0)": -1.0, - "(2, 3, 1, 1)": -1.0, - "(2, 4, 0, 0)": 1.0, - "(2, 4, 0, 1)": -1.0, - "(2, 4, 1, 1)": 1.0, - "(3, 4, 0, 0)": 1.0, - "(3, 4, 0, 1)": 1.0, - "(3, 5, 1, 0)": 1.0, - "(4, 5, 1, 0)": -1.0 - }, - "loss": [ - 0.03448275862068961, - 0.0 - ], - "history": [ - [ - 0.015878213259979623, - 0.0016639020834327 - ], - [ - 0.015977573002153633, - 0.0015326271183263573 - ], - [ - 0.016010614970365156, - 0.0014944915618440024 - ], - [ - 0.016696647241268514, - 0.0018872009014766489 - ], - [ - 0.017014141886487533, - 0.0023145848168530936 - ], - [ - 0.017063642795319356, - 0.002588274639099608 - ], - [ - 0.017923671302274458, - 0.0028094215031654324 - ], - [ - 0.018112547842094373, - 0.0031007178732800345 - ], - [ - 0.018202123118253866, - 0.0031841436977517734 - ], - [ - 0.019913308782230743, - 0.0037022230671091005 - ], - [ - 0.021266023667621314, - 0.004821986763459685 - ], - [ - 0.022925389551550213, - 0.004366411608471066 - ], - [ - 0.025835549967323845, - 0.008031819850554678 - ], - [ - 0.029303854950202823, - 0.010556780193231585 - ], - [ - 0.03001042137093346, - 0.01081050385753668 - ], - [ - 0.034160902859256104, - 0.011575842893864152 - ], - [ - 0.03471718238693711, - 0.010409298998734662 - ], - [ - 0.03740168179017622, - 0.007265233559885287 - ], - [ - 0.0376095669555484, - 0.006744907066499661 - ], - [ - 0.03395809359782975, - 0.000580800889703581 - ], - [ - 0.0339794562664959, - 0.0006040300202714288 - ], - [ - 0.0342474255467734, - 0.0002970604634667806 - ], - [ - 0.034292065998097754, - 0.0002578503640217056 - ], - [ - 0.034423407917412385, - 6.354224791560448e-05 - ], - [ - 0.03443877551538177, - 4.70818473079504e-05 - ] - ] -} \ No newline at end of file diff --git a/theseus/graphs/HighlyEntangledStates/steane/clean-25-56-0.0303_0.0000.json b/theseus/graphs/HighlyEntangledStates/steane/clean-25-56-0.0303_0.0000.json deleted file mode 100644 index dac6bcc5..00000000 --- a/theseus/graphs/HighlyEntangledStates/steane/clean-25-56-0.0303_0.0000.json +++ /dev/null @@ -1,451 +0,0 @@ -{ - "graph": { - "(0, 5, 1, 0)": -1.0, - "(0, 6, 1, 0)": 1.0, - "(0, 8, 0, 0)": -1.0, - "(1, 4, 1, 1)": 1.0, - "(1, 7, 1, 0)": -1.0, - "(1, 8, 0, 0)": -1.0, - "(2, 3, 1, 0)": -1.0, - "(2, 3, 1, 1)": 1.0, - "(2, 4, 0, 0)": 1.0, - "(2, 5, 0, 1)": -1.0, - "(2, 8, 1, 0)": 1.0, - "(2, 9, 1, 0)": -1.0, - "(8, 9, 0, 0)": 1.0, - "(0, 1, 0, 0)": 1.0, - "(7, 9, 0, 0)": 1.0, - "(6, 9, 1, 0)": 1.0, - "(5, 6, 0, 0)": -1.0, - "(4, 7, 1, 0)": -1.0, - "(4, 5, 0, 1)": -1.0, - "(3, 8, 1, 0)": 1.0, - "(3, 8, 0, 0)": -1.0, - "(3, 7, 1, 0)": -1.0, - "(3, 6, 1, 1)": 1.0, - "(3, 7, 0, 0)": -1.0, - "(3, 6, 0, 1)": 1.0 - }, - "loss": [ - 0.030303030303030276, - 0.0 - ], - "history": [ - [ - 0.006125616306093096, - 0.0019222803599574512 - ], - [ - 0.0061216825787798745, - 0.0019190215084428086 - ], - [ - 0.006085631822967397, - 0.0019120933655798478 - ], - [ - 0.006112854043900051, - 0.0019317860641252516 - ], - [ - 0.006153907513936185, - 0.002015093261305778 - ], - [ - 0.006150496573403497, - 0.0019910405703401635 - ], - [ - 0.006173748887002173, - 0.0019796823520846774 - ], - [ - 0.006322658719303931, - 0.0020433513626756383 - ], - [ - 0.006393970424989903, - 0.0020288985047660635 - ], - [ - 0.006458858976051807, - 0.002033131139050459 - ], - [ - 0.0065431864516982685, - 0.0021069424047998053 - ], - [ - 0.006642118542751985, - 0.002259651422190756 - ], - [ - 0.006723346377284334, - 0.0024029015967363954 - ], - [ - 0.006895788626539168, - 0.0024635578400202807 - ], - [ - 0.00749183962830946, - 0.002800844667950164 - ], - [ - 0.00769906942490417, - 0.0029297719756107288 - ], - [ - 0.008139977856629232, - 0.0035858613812633777 - ], - [ - 0.00827992047859194, - 0.0037638267396159497 - ], - [ - 0.009483257368618436, - 0.004806788150782504 - ], - [ - 0.009668256412377896, - 0.00498373986658962 - ], - [ - 0.010136498215580936, - 0.005466679594599233 - ], - [ - 0.01214879007132097, - 0.007185031322245128 - ], - [ - 0.014260947404029722, - 0.009155716084902954 - ], - [ - 0.015466623744458174, - 0.009795233204389131 - ], - [ - 0.02730463679857853, - 0.00880080323626753 - ], - [ - 0.02730370964514528, - 0.008797954411000286 - ], - [ - 0.027303222435586583, - 0.008795584192098804 - ], - [ - 0.027302968330224386, - 0.008794861122458864 - ], - [ - 0.02730274307930758, - 0.008793635403865019 - ], - [ - 0.02730253942436356, - 0.008792738300510972 - ], - [ - 0.02730235080363963, - 0.008791925939629852 - ], - [ - 0.027302175584056787, - 0.00879084190684698 - ], - [ - 0.027302011244352387, - 0.008790440528520849 - ], - [ - 0.02730185958512732, - 0.008789191325733081 - ], - [ - 0.027301717712626572, - 0.008789099932965838 - ], - [ - 0.027301581534905472, - 0.008787779883102975 - ], - [ - 0.02730145077010837, - 0.00878787148716853 - ], - [ - 0.027301324949544403, - 0.008786507137616306 - ], - [ - 0.027301207095628333, - 0.008786716950448747 - ], - [ - 0.02730109227815436, - 0.008785342125879003 - ], - [ - 0.0273009812338475, - 0.008785620526314486 - ], - [ - 0.027300877826549108, - 0.008784261824324235 - ], - [ - 0.02730077242391049, - 0.008784578503539309 - ], - [ - 0.027300672987703556, - 0.00878323752909127 - ], - [ - 0.02730057496287852, - 0.008783579095194005 - ], - [ - 0.027300483491598082, - 0.008782220695451981 - ], - [ - 0.02730037489829229, - 0.008782578428878529 - ], - [ - 0.027300300104148523, - 0.008781195716172752 - ], - [ - 0.02730022061310655, - 0.008781645525812953 - ], - [ - 0.027300043598695867, - 0.008780422040704616 - ], - [ - 0.02729927774035734, - 0.00877218004465663 - ], - [ - 0.027304952092355728, - 0.008769006516135547 - ], - [ - 0.02737655991031518, - 0.00874551596841111 - ], - [ - 0.027393390118282457, - 0.00885508882156849 - ], - [ - 0.027677781803136403, - 0.009502939643604047 - ], - [ - 0.027831340820190342, - 0.00970440433744768 - ], - [ - 0.02523412922139734, - 0.008314073174824688 - ], - [ - 0.024778437165674516, - 0.008416654061958018 - ], - [ - 0.02487962881425343, - 0.00849020257834987 - ], - [ - 0.025704145886181196, - 0.008841647562195076 - ], - [ - 0.026028315068315155, - 0.008826168325289818 - ], - [ - 0.026082669418509785, - 0.008875228265752932 - ], - [ - 0.026354679465847464, - 0.009360376514264135 - ], - [ - 0.027166705944596803, - 0.009855729745437247 - ], - [ - 0.02733113903714024, - 0.009792328917650694 - ], - [ - 0.02812157793318304, - 0.009984212515592228 - ], - [ - 0.027567518471677155, - 0.002394311513691405 - ], - [ - 0.027566839199279936, - 0.0023954960423857585 - ], - [ - 0.027566505167373023, - 0.0023986340352417646 - ], - [ - 0.0275662688479813, - 0.002399303710557077 - ], - [ - 0.027566070501993223, - 0.002401966448752124 - ], - [ - 0.02756589203963533, - 0.0024022380160189094 - ], - [ - 0.02756572960114856, - 0.002404715438205751 - ], - [ - 0.0275655805134134, - 0.0024047409119704044 - ], - [ - 0.027565467793585485, - 0.0024071477815358344 - ], - [ - 0.02756534825525514, - 0.002406983954647224 - ], - [ - 0.027565186702036226, - 0.0024092670793299797 - ], - [ - 0.027565696979802157, - 0.0024095940852844056 - ], - [ - 0.027565286907929365, - 0.0024115717275411397 - ], - [ - 0.027564837146431986, - 0.0024107210581260086 - ], - [ - 0.02756457960244796, - 0.0024128171508061014 - ], - [ - 0.02756593558726006, - 0.002425861920140604 - ], - [ - 0.027577479842737285, - 0.00236913328256505 - ], - [ - 0.027628979712254864, - 0.002336610563715258 - ], - [ - 0.027716150363174985, - 0.0023488059977463394 - ], - [ - 0.027861324731520698, - 0.0019445120731271803 - ], - [ - 0.027932564701528384, - 0.0017718986614597698 - ], - [ - 0.027953647887758448, - 0.0018262862950159109 - ], - [ - 0.028250737840566087, - 0.001895746276803001 - ], - [ - 0.028645067289559734, - 0.0015401296729217195 - ], - [ - 0.02887910646483327, - 0.0013232211875991995 - ], - [ - 0.02890158653891517, - 0.0013655383136622623 - ], - [ - 0.02907437736496754, - 0.0011768199910915378 - ], - [ - 0.029187381294881964, - 0.00114221704422246 - ], - [ - 0.02956020864407427, - 0.0007635554023941449 - ], - [ - 0.029822670073401336, - 0.0004971079419129332 - ], - [ - 0.029937391062985985, - 0.0003797758598881318 - ], - [ - 0.030128065432550866, - 0.0001837533589431617 - ], - [ - 0.03018144536822387, - 0.00012890478038463105 - ], - [ - 0.030236079511775316, - 7.115149755032579e-05 - ], - [ - 0.030303031828445626, - 1.6222434506829586e-09 - ], - [ - 0.030303030308479806, - 5.795364188543317e-12 - ], - [ - 0.030303030303030942, - 6.661338147750939e-16 - ], - [ - 0.030303030303030276, - 0.0 - ] - ] -} \ No newline at end of file diff --git a/theseus/graphs/HighlyEntangledStates/steane/clean-28-88-0.0303_0.0000.json b/theseus/graphs/HighlyEntangledStates/steane/clean-28-88-0.0303_0.0000.json deleted file mode 100644 index 4f03536b..00000000 --- a/theseus/graphs/HighlyEntangledStates/steane/clean-28-88-0.0303_0.0000.json +++ /dev/null @@ -1,442 +0,0 @@ -{ - "graph": { - "(0, 4, 1, 1)": -1.0, - "(0, 7, 0, 0)": -1.0, - "(1, 2, 1, 0)": 1.0, - "(1, 4, 0, 0)": 1.0, - "(1, 6, 0, 1)": -1.0, - "(1, 7, 0, 0)": 1.0, - "(1, 8, 0, 0)": -1.0, - "(2, 3, 1, 0)": 1.0, - "(0, 1, 0, 1)": -1.0, - "(0, 3, 1, 1)": -1.0, - "(4, 5, 0, 1)": -1.0, - "(5, 7, 1, 0)": 1.0, - "(4, 9, 0, 0)": -1.0, - "(1, 4, 1, 0)": 1.0, - "(5, 9, 1, 0)": -1.0, - "(0, 2, 0, 0)": 1.0, - "(0, 8, 0, 0)": -1.0, - "(5, 9, 0, 0)": -1.0, - "(4, 5, 0, 0)": -1.0, - "(7, 8, 0, 0)": -1.0, - "(6, 9, 1, 0)": -1.0, - "(5, 7, 0, 0)": -1.0, - "(3, 6, 0, 0)": -1.0, - "(3, 4, 1, 1)": 1.0, - "(2, 8, 0, 0)": -1.0, - "(2, 7, 0, 0)": -1.0, - "(2, 6, 1, 0)": -1.0, - "(1, 9, 1, 0)": -1.0 - }, - "loss": [ - 0.030303030303030276, - 0.0 - ], - "history": [ - [ - 0.012635542309594183, - 0.005749610619532275 - ], - [ - 0.012555291408954394, - 0.005442317179271461 - ], - [ - 0.012556508556042512, - 0.005441986821865363 - ], - [ - 0.012559975096059994, - 0.00546002123757483 - ], - [ - 0.012598981894954231, - 0.005555480922578515 - ], - [ - 0.012637399925615078, - 0.005700216425910121 - ], - [ - 0.01192239622400637, - 0.004423370400467808 - ], - [ - 0.011881461694230988, - 0.004439526536937022 - ], - [ - 0.01188237138869297, - 0.004440606851437656 - ], - [ - 0.011886578117205948, - 0.004426088253527971 - ], - [ - 0.011951869056044395, - 0.0045104312396448965 - ], - [ - 0.011973237888601607, - 0.00457860674086108 - ], - [ - 0.01198153945381164, - 0.0045580387356579655 - ], - [ - 0.011973113173829653, - 0.004593136126749053 - ], - [ - 0.011985192928627764, - 0.0046518557608467015 - ], - [ - 0.012013958986635265, - 0.004762350072279875 - ], - [ - 0.012929306802993423, - 0.00561830957344811 - ], - [ - 0.013752276959376086, - 0.006147140622781766 - ], - [ - 0.01395305092952781, - 0.0063773493474310605 - ], - [ - 0.014413050252842674, - 0.006997280202984513 - ], - [ - 0.01580128191293062, - 0.007990898039497152 - ], - [ - 0.016002180512806996, - 0.008159663269357353 - ], - [ - 0.016117987698094693, - 0.0071330726908035436 - ], - [ - 0.01615841169240617, - 0.007047072566772616 - ], - [ - 0.017091159970794134, - 0.007383527784146304 - ], - [ - 0.01765650865670998, - 0.007498078333882052 - ], - [ - 0.01808914461544353, - 0.00772230622746628 - ], - [ - 0.01851990757494537, - 0.008070351581833002 - ], - [ - 0.019208509451859257, - 0.008460769320927763 - ], - [ - 0.02032337654342642, - 0.008712733346415313 - ], - [ - 0.020448598331209156, - 0.008600838152644674 - ], - [ - 0.02157905021242268, - 0.00947695172190155 - ], - [ - 0.021601742686568115, - 0.009366357620070542 - ], - [ - 0.022321010987152556, - 0.00991440998334181 - ], - [ - 0.025398448227863413, - 0.0051745480971909785 - ], - [ - 0.024823394014402034, - 0.004006343995939909 - ], - [ - 0.02481800365339204, - 0.004002898253341658 - ], - [ - 0.024806184834870182, - 0.004009407821992772 - ], - [ - 0.024802777830002287, - 0.004009122586800085 - ], - [ - 0.02480193232116623, - 0.004001274007101818 - ], - [ - 0.024801413870452982, - 0.004000014681404873 - ], - [ - 0.024801215715033575, - 0.003991389595625949 - ], - [ - 0.024800672667724677, - 0.00399408861053141 - ], - [ - 0.024800332555380833, - 0.003989737859816822 - ], - [ - 0.024800208779869548, - 0.003990877664075354 - ], - [ - 0.024799822196316712, - 0.00398778780122 - ], - [ - 0.024799597291459974, - 0.003985558276978329 - ], - [ - 0.024799416827229526, - 0.0039855053416906205 - ], - [ - 0.02479927231216328, - 0.003982414404801404 - ], - [ - 0.02479906278687416, - 0.003983193431479237 - ], - [ - 0.024798871835656877, - 0.003980513208096115 - ], - [ - 0.024798730645819833, - 0.00398116363175971 - ], - [ - 0.024798606066335438, - 0.003978362166083826 - ], - [ - 0.02479842235294727, - 0.003979184106661315 - ], - [ - 0.024798258136372375, - 0.003976900459202515 - ], - [ - 0.024798139738086755, - 0.0039774947132604765 - ], - [ - 0.02479803352623755, - 0.003975005495646444 - ], - [ - 0.02479787769965458, - 0.003975805271033472 - ], - [ - 0.02479773312375999, - 0.003973754142943986 - ], - [ - 0.024797627542023637, - 0.003974349762243645 - ], - [ - 0.025040989594334206, - 0.004589306796268455 - ], - [ - 0.025044057539199804, - 0.004628657126067193 - ], - [ - 0.02504909792614962, - 0.004667677982834628 - ], - [ - 0.025153314803282978, - 0.004638480084535712 - ], - [ - 0.025908090876440637, - 0.00533779758290942 - ], - [ - 0.027057569215246713, - 0.006270576523112026 - ], - [ - 0.02914185691408655, - 0.007705941757852219 - ], - [ - 0.029641570825098995, - 0.007506783942446638 - ], - [ - 0.031139259049329793, - 0.008531909579367225 - ], - [ - 0.03126340731460775, - 0.009244047897702612 - ], - [ - 0.03149826819039747, - 0.009148011587513882 - ], - [ - 0.03694435222251924, - 0.008735881044400484 - ], - [ - 0.03693892335632265, - 0.008735532200519591 - ], - [ - 0.03693820474123577, - 0.008744472972824657 - ], - [ - 0.03693802214952513, - 0.00875042850569141 - ], - [ - 0.03693743358794799, - 0.0087509624272738 - ], - [ - 0.03693716424955018, - 0.00875426718765715 - ], - [ - 0.03693689551905399, - 0.00875515464398291 - ], - [ - 0.036936568478794785, - 0.008756959541547316 - ], - [ - 0.036936308422689135, - 0.008758364969112309 - ], - [ - 0.0369360792859631, - 0.00875931988991896 - ], - [ - 0.03693589161861821, - 0.008760120995785825 - ], - [ - 0.036935695257946266, - 0.008760622694767517 - ], - [ - 0.03698218287266808, - 0.008825899912247248 - ], - [ - 0.03784228421902347, - 0.009450231324538816 - ], - [ - 0.03818817606167335, - 0.00959265642437468 - ], - [ - 0.028883307864352115, - 0.001464931881286824 - ], - [ - 0.028655342221050706, - 0.0010350763210262848 - ], - [ - 0.028597346952884073, - 0.001381968768785602 - ], - [ - 0.028667177348721262, - 0.0012902501173710501 - ], - [ - 0.02876635159976959, - 0.0012379756942676456 - ], - [ - 0.028831071456126955, - 0.00128086466585009 - ], - [ - 0.028987355095918543, - 0.001181389985753789 - ], - [ - 0.029114343486260186, - 0.0010820725443381196 - ], - [ - 0.02943755147102689, - 0.0007512302867801468 - ], - [ - 0.029538817043113452, - 0.000740748302702765 - ], - [ - 0.029860636456280898, - 0.0004617921814406012 - ], - [ - 0.029971204268929297, - 0.00035049733045644516 - ], - [ - 0.030172413793149833, - 0.0001382498795221565 - ], - [ - 0.030273437500004996, - 3.1438418717777417e-05 - ], - [ - 0.030303030303030276, - 0.0 - ] - ] -} \ No newline at end of file diff --git a/theseus/graphs/MixedStates/werner/clean-11-6-0.1429_0.0000.json b/theseus/graphs/MixedStates/werner/clean-11-6-0.1429_0.0000.json deleted file mode 100644 index 01e7141b..00000000 --- a/theseus/graphs/MixedStates/werner/clean-11-6-0.1429_0.0000.json +++ /dev/null @@ -1,185 +0,0 @@ -{ - "graph": { - "(0, 5, 1, 0)": -1.0, - "(1, 2, 0, 3)": -1.0, - "(1, 3, 1, 0)": 1.0, - "(3, 4, 0, 0)": 1.0, - "(4, 5, 0, 0)": 1.0, - "(0, 2, 0, 2)": 1.0, - "(0, 2, 0, 0)": 1.0, - "(0, 1, 0, 0)": -1.0, - "(1, 2, 0, 0)": -1.0, - "(1, 2, 1, 4)": -1.0, - "(2, 3, 1, 0)": -1.0 - }, - "loss": [ - 0.1428571428571429, - 0.0 - ], - "history": [ - [ - 0.006374734520632752, - 0.00019242972014332782 - ], - [ - 0.0050531076821682674, - 8.326904326727558e-05 - ], - [ - 0.004794848768465698, - 3.3114927336153066e-05 - ], - [ - 0.004609039021427841, - 7.038229063338619e-06 - ], - [ - 0.004606358953420653, - 6.124690649644826e-06 - ], - [ - 0.004605371603832231, - 4.157223220335737e-06 - ], - [ - 0.00460519495874534, - 4.715464730797869e-06 - ], - [ - 0.0046061315407320835, - 3.298726159228771e-06 - ], - [ - 0.00460634264308768, - 4.9655573245432905e-06 - ], - [ - 0.004607277075409977, - 4.464132831616396e-06 - ], - [ - 0.004606572120599672, - 3.1543914534859496e-06 - ], - [ - 0.00460602258242071, - 2.8076993981995813e-06 - ], - [ - 0.004606042217998985, - 2.7046772879124603e-06 - ], - [ - 0.00460601170169006, - 2.2514178955601594e-06 - ], - [ - 0.004607046394091485, - 1.3010007885450037e-06 - ], - [ - 0.00884117979889465, - 0.00030214517671378616 - ], - [ - 0.009008727084924839, - 0.00015969741164389983 - ], - [ - 0.009376038341967208, - 0.00028375447640938134 - ], - [ - 0.009201339354710125, - 0.00024458489134904227 - ], - [ - 0.009950468778935573, - 0.00035142364487517064 - ], - [ - 0.01015419866785272, - 0.00015701368457921028 - ], - [ - 0.010270996722110293, - 4.2046122859185076e-05 - ], - [ - 0.010284703918917004, - 2.819321801850183e-05 - ], - [ - 0.010309278350518314, - 2.9976021664879227e-15 - ], - [ - 0.021998823170825688, - 0.004036463564649262 - ], - [ - 0.022003086106347047, - 0.0038957010067964815 - ], - [ - 0.03333410868062825, - 0.005905683753135049 - ], - [ - 0.035465389344840226, - 0.004473823557302303 - ], - [ - 0.03546471311103405, - 0.004475642649471867 - ], - [ - 0.038410571455460674, - 0.0019703700841146032 - ], - [ - 0.03891705754205066, - 0.0012904191334751625 - ], - [ - 0.03985511133270081, - 0.00015639268894795944 - ], - [ - 0.04000000070076504, - 7.603787599563816e-10 - ], - [ - 0.040000000022665017, - 2.4593105329984155e-11 - ], - [ - 0.040000000010094294, - 1.0953016271741944e-11 - ], - [ - 0.04000000265683612, - 2.8828517351087157e-09 - ], - [ - 0.040000000731025165, - 7.932130507981583e-10 - ], - [ - 0.0745356596811636, - 0.02671465949689167 - ], - [ - 0.08333401500689297, - 0.03943876431390314 - ], - [ - 0.13333333336700892, - 0.01169453934921083 - ], - [ - 0.1428571428571429, - 0.0 - ] - ] -} \ No newline at end of file diff --git a/theseus/graphs/cnot44_0/clean-10-4-0.2000_0.0000.json b/theseus/graphs/cnot44_0/clean-10-4-0.2000_0.0000.json deleted file mode 100644 index f0f4842e..00000000 --- a/theseus/graphs/cnot44_0/clean-10-4-0.2000_0.0000.json +++ /dev/null @@ -1,276 +0,0 @@ -{ - "graph": { - "(3, 6, 0, 0)": -1.0, - "(3, 7, 0, 0)": 1.0, - "(4, 5, 0, 0)": -1.0, - "(4, 6, 0, 0)": -1.0, - "(4, 7, 0, 0)": 1.0, - "(0, 2, 1, 1)": -1.0, - "(0, 2, 2, 2)": -1.0, - "(0, 2, 0, 0)": -1.0, - "(0, 2, 3, 3)": -1.0, - "(1, 7, 0, 0)": 1.0 - }, - "loss": [ - 0.19999999999999996, - 0.0 - ], - "history": [ - [ - 0.0005466009989861798, - 1.2786915183804481e-05 - ], - [ - 0.0005442042631861321, - 1.3281236352358228e-05 - ], - [ - 0.00048247939043244426, - 3.697099337007792e-06 - ], - [ - 0.0004824768270375035, - 3.6674382767332148e-06 - ], - [ - 0.0004825014843310438, - 3.6320585758975454e-06 - ], - [ - 0.0004825550005150836, - 3.345140374588773e-06 - ], - [ - 0.0004825975923475889, - 3.3497132222448656e-06 - ], - [ - 0.0004827486160344785, - 3.4289018302491314e-06 - ], - [ - 0.0004829261548772168, - 3.526767628714289e-06 - ], - [ - 0.0004834189325017002, - 3.367469059933903e-06 - ], - [ - 0.00048381799611418863, - 3.082397280529392e-06 - ], - [ - 0.00048372207091507136, - 3.086586688016979e-06 - ], - [ - 0.0004842697058474732, - 3.122360999530116e-06 - ], - [ - 0.0004844589028744073, - 3.102522848519307e-06 - ], - [ - 0.00048468569769233305, - 3.1656756277476106e-06 - ], - [ - 0.00048468502218734777, - 3.017736693089468e-06 - ], - [ - 0.0004936549523040235, - 1.62119127056215e-06 - ], - [ - 0.000492790343898819, - 9.670385376914226e-07 - ], - [ - 0.0004933038913629284, - 3.449276946287938e-07 - ], - [ - 0.0004933105310352959, - 3.405497697173132e-07 - ], - [ - 0.0004934967820722225, - 1.6838922933803957e-07 - ], - [ - 0.000493485940739169, - 1.4716120944058275e-07 - ], - [ - 0.0004935407649446777, - 3.786912261549702e-08 - ], - [ - 0.0004935541030373081, - 2.573955215634527e-08 - ], - [ - 0.0009894790973472567, - 3.6385157506146903e-05 - ], - [ - 0.0011008235008036493, - 8.98003646110368e-06 - ], - [ - 0.0011035761843838365, - 6.268232095263393e-06 - ], - [ - 0.0011061951363864342, - 3.684812168613938e-06 - ], - [ - 0.0011077279706572796, - 2.1899433116923106e-06 - ], - [ - 0.0011081059225657164, - 1.7646815470007127e-06 - ], - [ - 0.0011085330526301451, - 1.347266390339108e-06 - ], - [ - 0.0011085331119798925, - 1.3453918917827323e-06 - ], - [ - 0.001109321094861726, - 2.1955765359127355e-06 - ], - [ - 0.0011086476992400174, - 1.263357698788603e-06 - ], - [ - 0.0011089519272682313, - 9.546605950205844e-07 - ], - [ - 0.001109202420619515, - 6.823344436135415e-07 - ], - [ - 0.001109467501856809, - 4.075100288325473e-07 - ], - [ - 0.0011102030260510265, - 3.8669826785131534e-07 - ], - [ - 0.001109474504400465, - 4.0830255221280254e-07 - ], - [ - 0.0011098435872674006, - 3.365017398060388e-08 - ], - [ - 0.0011098436457376293, - 3.741517262678684e-08 - ], - [ - 0.0011098779161514694, - 2.727928993806472e-12 - ], - [ - 0.0011098780040156297, - 9.078748863800001e-11 - ], - [ - 0.0011098780041842726, - 9.095657560465042e-11 - ], - [ - 0.0011098780038465428, - 9.061795758213975e-11 - ], - [ - 0.0011098779142313386, - 8.036904475261508e-13 - ], - [ - 0.0011098779146007098, - 1.1737277816337155e-12 - ], - [ - 0.0011098779138013493, - 3.7259084706420253e-13 - ], - [ - 0.0011098779188236652, - 5.4062310184122e-12 - ], - [ - 0.0011098779134304237, - 8.881784197001252e-16 - ], - [ - 0.001109877913486268, - 5.684341886080802e-14 - ], - [ - 0.0011098779176401674, - 4.2200687389026825e-12 - ], - [ - 0.0011098779147088456, - 1.2820855488371308e-12 - ], - [ - 0.0011098779380909196, - 2.4716229063415085e-11 - ], - [ - 0.0011098779134295356, - 0.0 - ], - [ - 0.0011098779134295356, - 0.0 - ], - [ - 0.0017331022530329143, - 0.0 - ], - [ - 0.003076923076923088, - 0.0 - ], - [ - 0.006896551724137945, - 0.0 - ], - [ - 0.006896551724137945, - 0.0 - ], - [ - 0.006896551724137945, - 0.0 - ], - [ - 0.01538461538461533, - 0.0 - ], - [ - 0.05882352941176472, - 0.0 - ], - [ - 0.19999999999999996, - 0.0 - ] - ] -} \ No newline at end of file diff --git a/theseus/graphs/ghz43_2p2a/clean-18-18-0.0769_0.0000.json b/theseus/graphs/ghz43_2p2a/clean-18-18-0.0769_0.0000.json deleted file mode 100644 index 4f8c277e..00000000 --- a/theseus/graphs/ghz43_2p2a/clean-18-18-0.0769_0.0000.json +++ /dev/null @@ -1,380 +0,0 @@ -{ - "graph": { - "(0, 1, 2, 2)": -1.0, - "(0, 2, 1, 1)": 1.0, - "(0, 4, 0, 0)": 1.0, - "(1, 3, 0, 0)": 1.0, - "(1, 4, 1, 0)": -1.0, - "(1, 5, 1, 0)": -1.0, - "(1, 7, 0, 0)": -1.0, - "(2, 3, 0, 0)": -1.0, - "(2, 4, 2, 0)": 1.0, - "(2, 5, 2, 0)": -1.0, - "(2, 7, 0, 0)": 1.0, - "(3, 4, 2, 0)": -1.0, - "(3, 5, 2, 0)": 1.0, - "(3, 6, 0, 0)": 1.0, - "(3, 7, 1, 0)": -1.0, - "(4, 6, 0, 0)": -1.0, - "(5, 6, 0, 0)": -1.0, - "(6, 7, 0, 0)": 1.0 - }, - "loss": [ - 0.07692307692307687, - 0.0 - ], - "history": [ - [ - 0.0008658134353861646, - 2.9290001387183295e-05 - ], - [ - 0.000857720855773958, - 2.5002562379472515e-05 - ], - [ - 0.000863464541300818, - 2.8464431722330374e-05 - ], - [ - 0.0008689198067456383, - 3.253540165681912e-05 - ], - [ - 0.0008749054614456409, - 4.096807760689547e-05 - ], - [ - 0.0008679457548166347, - 3.7994364932680824e-05 - ], - [ - 0.0008667150155856618, - 3.84800829140719e-05 - ], - [ - 0.0008609178721693533, - 2.2808893463288626e-05 - ], - [ - 0.0008663571756176713, - 2.9005727719466634e-05 - ], - [ - 0.0008725300554108806, - 3.2090631881920295e-05 - ], - [ - 0.0008896995109826111, - 4.0302867105213025e-05 - ], - [ - 0.0009692339064641953, - 0.00011899647870283747 - ], - [ - 0.0010188324649034186, - 0.00011632895445168323 - ], - [ - 0.0010484981224705425, - 0.00012767947718794748 - ], - [ - 0.0010303001798368516, - 0.00011040288873453985 - ], - [ - 0.0011013903034189365, - 0.00016819152154468053 - ], - [ - 0.0011114877270340662, - 0.00011825303329782155 - ], - [ - 0.0011595674471831519, - 0.00010141132053254065 - ], - [ - 0.0011831110571274284, - 7.349118549548894e-05 - ], - [ - 0.001978617092462165, - 0.000679311471234012 - ], - [ - 0.0021651116735451614, - 0.0008181674884537582 - ], - [ - 0.0022060233649811023, - 0.0008295358364356353 - ], - [ - 0.0034663958299742115, - 0.0019779738484885234 - ], - [ - 0.0036032695545633597, - 0.0020805007598642122 - ], - [ - 0.0037334247235145668, - 0.002028000006785269 - ], - [ - 0.004896188387221279, - 0.0028746946886797353 - ], - [ - 0.005131806228891311, - 0.0028192561643564096 - ], - [ - 0.005748826202048973, - 0.0028655684320442187 - ], - [ - 0.006178904262237106, - 0.00302474293959909 - ], - [ - 0.006701635052042798, - 0.0033444056790978838 - ], - [ - 0.006814485359576183, - 0.0033467644910705197 - ], - [ - 0.007323343798723458, - 0.0038728213900977027 - ], - [ - 0.007546481193667853, - 0.0041250307910758455 - ], - [ - 0.00781473768431551, - 0.004359065353571667 - ], - [ - 0.008221847487908551, - 0.004599939735645986 - ], - [ - 0.008456759574618444, - 0.004656241853813081 - ], - [ - 0.008906379525731478, - 0.004657812528717997 - ], - [ - 0.009090810609555633, - 0.004762339911197677 - ], - [ - 0.009216614354386143, - 0.004752098018732109 - ], - [ - 0.010198896513752831, - 0.005634841869065266 - ], - [ - 0.010198664486635867, - 0.0056346666306844595 - ], - [ - 0.010805641445202352, - 0.006151018582194578 - ], - [ - 0.011425335396289538, - 0.0065971542134577454 - ], - [ - 0.012580776818176265, - 0.006847466201035268 - ], - [ - 0.012918666176904403, - 0.006805643785728344 - ], - [ - 0.01448331511137102, - 0.007148713873072365 - ], - [ - 0.014895310380329763, - 0.006626537233513696 - ], - [ - 0.01597795694822801, - 0.007299712920613155 - ], - [ - 0.016933798492542174, - 0.007906290391693438 - ], - [ - 0.016775603971202813, - 0.005136667519299198 - ], - [ - 0.017233629190271715, - 0.004829659483802318 - ], - [ - 0.017273829678887465, - 0.004452812150429031 - ], - [ - 0.017614098405911327, - 0.004263228104727901 - ], - [ - 0.017749398222386636, - 0.004215133250934366 - ], - [ - 0.017848067271203805, - 0.004224854676948775 - ], - [ - 0.017996294146070402, - 0.004133080335758987 - ], - [ - 0.018561340753426414, - 0.0039207402830228055 - ], - [ - 0.021030219519525106, - 0.005767026646165019 - ], - [ - 0.021032435437618013, - 0.005750604695682782 - ], - [ - 0.02172940540052648, - 0.0063460746107205646 - ], - [ - 0.02427031869380425, - 0.007633643115041222 - ], - [ - 0.02664687987134784, - 0.007535200718563728 - ], - [ - 0.03242357918755767, - 0.011383801474680655 - ], - [ - 0.03680862708281052, - 0.012979764302716412 - ], - [ - 0.04795767759820979, - 0.017453975154879342 - ], - [ - 0.06618149741354795, - 0.026749899671375976 - ], - [ - 0.07190640172842444, - 0.02936564039247569 - ], - [ - 0.06721638682271702, - 0.00954062618572038 - ], - [ - 0.06721592612468308, - 0.009569287925687897 - ], - [ - 0.06721556789388694, - 0.009558248070436037 - ], - [ - 0.06721578392614125, - 0.0095630488338877 - ], - [ - 0.06721566839464621, - 0.009545255436164357 - ], - [ - 0.06721569879253275, - 0.00954222024512763 - ], - [ - 0.06721227695861487, - 0.009536583194408088 - ], - [ - 0.06721203395835662, - 0.009540692613158819 - ], - [ - 0.06771353346245346, - 0.008860827665564286 - ], - [ - 0.0685059461769566, - 0.008077673155362564 - ], - [ - 0.06954803148919197, - 0.007108699664395091 - ], - [ - 0.07407414915468513, - 0.003188270125302539 - ], - [ - 0.07407412075904751, - 0.003205757801291287 - ], - [ - 0.07407407645607123, - 0.0031929418519945907 - ], - [ - 0.07407407531363863, - 0.003187762451225984 - ], - [ - 0.07407407460096238, - 0.0031913377748525873 - ], - [ - 0.07407408911368685, - 0.0031822959787195515 - ], - [ - 0.0740740768985394, - 0.0031879882969112483 - ], - [ - 0.07407407497500684, - 0.0031887874606123523 - ], - [ - 0.07692307692307687, - 0.0 - ], - [ - 0.07692307692308731, - 1.2101430968414206e-14 - ] - ] -} \ No newline at end of file diff --git a/theseus/graphs/ghz43_sp/clean-28-160-0.0204_0.0000.json b/theseus/graphs/ghz43_sp/clean-28-160-0.0204_0.0000.json deleted file mode 100644 index e6dbaf20..00000000 --- a/theseus/graphs/ghz43_sp/clean-28-160-0.0204_0.0000.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "graph": { - "(0, 6, 0, 0)": 1.0, - "(0, 7, 1, 0)": 1.0, - "(0, 9, 2, 0)": -1.0, - "(0, 10, 2, 0)": 1.0, - "(0, 11, 0, 0)": 1.0, - "(1, 6, 1, 0)": -1.0, - "(1, 8, 1, 0)": -1.0, - "(1, 8, 2, 0)": 1.0, - "(1, 9, 0, 0)": 1.0, - "(1, 10, 0, 0)": 1.0, - "(1, 11, 1, 0)": 1.0, - "(2, 6, 0, 0)": -1.0, - "(2, 6, 2, 0)": 1.0, - "(2, 7, 1, 0)": -1.0, - "(2, 9, 1, 0)": 1.0, - "(2, 10, 1, 0)": -1.0, - "(2, 11, 0, 0)": -1.0, - "(2, 11, 2, 0)": -1.0, - "(3, 7, 2, 0)": 1.0, - "(3, 8, 1, 0)": 1.0, - "(3, 9, 0, 0)": -1.0, - "(3, 10, 0, 0)": -1.0, - "(4, 6, 0, 0)": -1.0, - "(4, 8, 0, 0)": 1.0, - "(4, 11, 0, 0)": 1.0, - "(5, 7, 0, 0)": 1.0, - "(5, 9, 0, 0)": 1.0, - "(5, 10, 0, 0)": -1.0 - }, - "loss": [ - 0.020408163265306145, - 0.0 - ] -} \ No newline at end of file diff --git a/theseus/graphs/heralded_bell_sp/clean-12-8-0.1111_0.0000.json b/theseus/graphs/heralded_bell_sp/clean-12-8-0.1111_0.0000.json deleted file mode 100644 index 17b9b45a..00000000 --- a/theseus/graphs/heralded_bell_sp/clean-12-8-0.1111_0.0000.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "graph": { - "(0, 4, 0, 0)": 1.0, - "(1, 5, 0, 0)": -1.0, - "(2, 7, 0, 0)": 1.0, - "(3, 7, 0, 0)": 1.0, - "(4, 7, 0, 0)": 1.0, - "(5, 7, 0, 0)": -1.0, - "(1, 2, 1, 0)": -1.0, - "(3, 6, 0, 0)": 1.0, - "(5, 6, 0, 0)": 1.0, - "(2, 6, 0, 0)": 1.0, - "(0, 3, 1, 0)": 1.0, - "(4, 6, 0, 0)": -1.0 - }, - "loss": [ - 0.11111111111111116, - 0.0 - ], - "history": [ - [ - 0.007751937984496138, - 0.0 - ], - [ - 0.007751937984496138, - 0.0 - ], - [ - 0.007751937984496138, - 0.0 - ], - [ - 0.007751937984496138, - 0.0 - ], - [ - 0.007751937984496138, - 0.0 - ], - [ - 0.007751937984496138, - 0.0 - ], - [ - 0.007751937984496138, - 0.0 - ], - [ - 0.007751937984496138, - 0.0 - ], - [ - 0.007751937984496138, - 0.0 - ], - [ - 0.007751937984496138, - 0.0 - ], - [ - 0.007751937984496138, - 0.0 - ], - [ - 0.007751937984496138, - 0.0 - ], - [ - 0.007751937984496138, - 0.0 - ], - [ - 0.04598040191996544, - 0.010887121083498319 - ], - [ - 0.02992248118106766, - 0.0003798465727405942 - ], - [ - 0.03020134026494914, - 0.00010780926147291314 - ], - [ - 0.030303030308923895, - 6.267653063218859e-12 - ], - [ - 0.030303030303111766, - 8.659739592076221e-14 - ], - [ - 0.030303030303114653, - 8.970602038971265e-14 - ], - [ - 0.030303030303119205, - 9.459100169806334e-14 - ], - [ - 0.030303030303030276, - 0.0 - ], - [ - 0.10673970181650727, - 0.00507358364181798 - ], - [ - 0.11111111111111127, - 2.220446049250313e-16 - ], - [ - 0.11111111111120797, - 1.2256862191861728e-13 - ], - [ - 0.11111111111111116, - 0.0 - ] - ] -} \ No newline at end of file diff --git a/theseus/graphs/spinone_3 (0)/rough-11-7-0.0000_0.4118.json b/theseus/graphs/spinone_3 (0)/rough-11-7-0.0000_0.4118.json deleted file mode 100644 index c9767904..00000000 --- a/theseus/graphs/spinone_3 (0)/rough-11-7-0.0000_0.4118.json +++ /dev/null @@ -1,201 +0,0 @@ -{ - "graph": { - "(0, 2, 1, 1)": -1.0, - "(0, 2, 2, 0)": -0.17144086277267542, - "(1, 2, 0, 2)": -0.23314141588561765, - "(0, 2, 0, 2)": 0.3428816712936763, - "(2, 5, 1, 0)": -0.3923502052641048, - "(0, 1, 0, 2)": -0.435005905008988, - "(1, 2, 2, 0)": 0.4662827901063466, - "(0, 5, 1, 0)": -0.7318750846495103, - "(0, 1, 2, 0)": 0.8700361617108248, - "(1, 5, 1, 0)": -0.9955896596365307, - "(3, 4, 0, 0)": 0.9999992716869187 - }, - "loss": [ - 6.669840346695821e-09, - 0.41184594143234654 - ], - "history": [ - [ - 4.8433093384425696e-05, - 0.03223750365864764 - ], - [ - 4.761367163552688e-05, - 0.03241469200886582 - ], - [ - 5.694919317178471e-05, - 0.0324309554499872 - ], - [ - 5.959335165384161e-05, - 0.03255166336415649 - ], - [ - 0.00010484997603366075, - 0.03449483526253194 - ], - [ - 0.0001046141456557681, - 0.03510577585775765 - ], - [ - 0.00014335298263290497, - 0.03517014591471568 - ], - [ - 0.00016452067543648585, - 0.03524017397097623 - ], - [ - 0.00016742685746928831, - 0.035126769463269536 - ], - [ - 0.00017751080438332956, - 0.03592640077265652 - ], - [ - 0.00021290862734479887, - 0.03599646177575977 - ], - [ - 0.000186639524166754, - 0.03699920634037057 - ], - [ - 8.484405221254043e-05, - 0.040319872538032375 - ], - [ - 7.916601405610901e-05, - 0.04120492762896999 - ], - [ - 6.0458189095280446e-05, - 0.04201990128376798 - ], - [ - 5.6658572436751875e-05, - 0.042031109145215906 - ], - [ - 1.8054340558015802e-05, - 0.04377453618965632 - ], - [ - 1.6432347195838304e-05, - 0.043760866708865254 - ], - [ - 3.015784833748647e-06, - 0.05296410283044539 - ], - [ - 2.4802740218321517e-06, - 0.052955582669108714 - ], - [ - 6.849112162421456e-06, - 0.05373595950093324 - ], - [ - 2.8847267439235935e-06, - 0.054802996674203075 - ], - [ - 4.012415146248394e-06, - 0.08064604257453878 - ], - [ - 1.241130577755989e-06, - 0.08121693030212906 - ], - [ - 1.638915104740235e-07, - 0.09664733628448241 - ], - [ - 4.268414588448621e-08, - 0.09666069484187467 - ], - [ - 3.297687673375904e-06, - 0.10404525479912974 - ], - [ - 1.2326406284568492e-07, - 0.09654352122111376 - ], - [ - 3.223326294765627e-08, - 0.09655710354973668 - ], - [ - 1.4176640572571841e-07, - 0.09489968820574102 - ], - [ - 5.361647905655076e-07, - 0.08941199302476777 - ], - [ - 2.1982186357849542e-06, - 0.10208745592354174 - ], - [ - 7.083567510335342e-07, - 0.1383185392711993 - ], - [ - 2.0612657152252467e-06, - 0.1333135808514586 - ], - [ - 5.787096818421489e-07, - 0.13328554368614276 - ], - [ - 1.7589186374067367e-06, - 0.1422401303607045 - ], - [ - 3.8299512916672995e-07, - 0.1421413993941687 - ], - [ - 3.892761849533244e-07, - 0.1258834035144013 - ], - [ - 1.2120530190617984e-07, - 0.12590420645509948 - ], - [ - 3.6683803139592186e-07, - 0.17109802715941846 - ], - [ - 3.2425372609168335e-08, - 0.1663289849990386 - ], - [ - 2.4946371635081732e-09, - 0.1663374012289871 - ], - [ - 5.445769390988175e-10, - 0.16634006619880004 - ], - [ - 2.16755724480322e-10, - 0.16634080074402258 - ], - [ - 6.669840346695821e-09, - 0.41184594143234654 - ] - ] -} \ No newline at end of file diff --git a/theseus/graphs/w4_sp/clean-10-4-0.2000_0.0000.json b/theseus/graphs/w4_sp/clean-10-4-0.2000_0.0000.json deleted file mode 100644 index 0ea88033..00000000 --- a/theseus/graphs/w4_sp/clean-10-4-0.2000_0.0000.json +++ /dev/null @@ -1,204 +0,0 @@ -{ - "graph": { - "(1, 6, 0, 0)": 1.0, - "(3, 4, 0, 0)": -1.0, - "(3, 7, 0, 0)": -1.0, - "(0, 7, 0, 0)": -1.0, - "(2, 5, 1, 0)": 1.0, - "(2, 6, 0, 0)": 1.0, - "(0, 5, 1, 0)": -1.0, - "(1, 4, 0, 0)": 1.0, - "(1, 5, 1, 0)": 1.0, - "(3, 5, 1, 0)": -1.0 - }, - "loss": [ - 0.19999999999999996, - 0.0 - ], - "history": [ - [ - 0.006894417611524317, - 2.1091378129667326e-05 - ], - [ - 0.006893453211248457, - 2.2197604920504155e-05 - ], - [ - 0.006893369433987995, - 2.2001287140138714e-05 - ], - [ - 0.006899342145939125, - 2.5654123494533998e-05 - ], - [ - 0.006905341069766369, - 1.9298861375860454e-05 - ], - [ - 0.006911806088715444, - 2.3937048363009694e-05 - ], - [ - 0.0069116790790589855, - 2.4137113411204503e-05 - ], - [ - 0.006911581082969409, - 2.4221158830273204e-05 - ], - [ - 0.006911492799644869, - 2.4245322459814922e-05 - ], - [ - 0.006911408950347808, - 2.4235763087521178e-05 - ], - [ - 0.0069113274568352034, - 2.420519330359472e-05 - ], - [ - 0.006924780954528975, - 4.0337808372981065e-05 - ], - [ - 0.006910071749102964, - 2.2010005305994618e-05 - ], - [ - 0.0069141646706307736, - 1.874902909804188e-05 - ], - [ - 0.006895948157515708, - 6.099801306280739e-07 - ], - [ - 0.006896331212493667, - 4.0506457255062855e-07 - ], - [ - 0.006896444362762932, - 1.266602139837758e-07 - ], - [ - 0.00689656163656549, - 1.007353789272969e-08 - ], - [ - 0.006896555807394789, - 4.1405616713063864e-09 - ], - [ - 0.006896553565495012, - 1.8671150181504004e-09 - ], - [ - 0.006896551724417388, - 2.829958489769524e-13 - ], - [ - 0.006896551724144384, - 6.5503158452884236e-15 - ], - [ - 0.006896551724144384, - 6.5503158452884236e-15 - ], - [ - 0.006896551724144384, - 6.5503158452884236e-15 - ], - [ - 0.006896551724144384, - 6.5503158452884236e-15 - ], - [ - 0.006896551724144384, - 6.5503158452884236e-15 - ], - [ - 0.006896551724144384, - 6.5503158452884236e-15 - ], - [ - 0.006896551724144384, - 6.5503158452884236e-15 - ], - [ - 0.006896551724144384, - 6.5503158452884236e-15 - ], - [ - 0.006896551724144384, - 6.5503158452884236e-15 - ], - [ - 0.006896551724144384, - 6.5503158452884236e-15 - ], - [ - 0.006896551724144384, - 6.5503158452884236e-15 - ], - [ - 0.006896551724144384, - 6.5503158452884236e-15 - ], - [ - 0.006896551724144495, - 6.661338147750939e-15 - ], - [ - 0.006896551724144495, - 6.661338147750939e-15 - ], - [ - 0.006896551724144495, - 6.661338147750939e-15 - ], - [ - 0.006896551724138167, - 2.220446049250313e-16 - ], - [ - 0.006896551724137945, - 0.0 - ], - [ - 0.006896551724137945, - 0.0 - ], - [ - 0.006896551724137945, - 0.0 - ], - [ - 0.01530612244915186, - 8.052504208833078e-05 - ], - [ - 0.05769230769231448, - 0.0012479263196450985 - ], - [ - 0.057692307692308376, - 0.0012479218180173612 - ], - [ - 0.05882352941176472, - 0.0 - ], - [ - 0.18750000000000155, - 0.01744184884772737 - ], - [ - 0.19999999999999996, - 0.0 - ] - ] -} \ No newline at end of file diff --git a/theseus/graphs/w5_sp/clean-13-5-0.1667_0.0000.json b/theseus/graphs/w5_sp/clean-13-5-0.1667_0.0000.json deleted file mode 100644 index 97384649..00000000 --- a/theseus/graphs/w5_sp/clean-13-5-0.1667_0.0000.json +++ /dev/null @@ -1,331 +0,0 @@ -{ - "graph": { - "(0, 9, 0, 0)": 1.0, - "(2, 5, 1, 0)": -1.0, - "(2, 7, 0, 0)": 1.0, - "(3, 7, 0, 0)": -1.0, - "(4, 5, 1, 0)": -1.0, - "(1, 5, 1, 0)": 1.0, - "(0, 8, 0, 0)": -1.0, - "(2, 6, 0, 0)": 1.0, - "(4, 6, 0, 0)": 1.0, - "(3, 5, 1, 0)": 1.0, - "(2, 9, 0, 0)": -1.0, - "(1, 8, 0, 0)": -1.0, - "(0, 5, 1, 0)": 1.0 - }, - "loss": [ - 0.16666666666666663, - 0.0 - ], - "history": [ - [ - 0.0003649600644637374, - 8.10615118140845e-06 - ], - [ - 0.0003646950329881937, - 8.442249279982939e-06 - ], - [ - 0.0003646152830423244, - 9.163540509282697e-06 - ], - [ - 0.0003604858480316109, - 7.899204679362448e-06 - ], - [ - 0.00036020193023533764, - 7.76766587295974e-06 - ], - [ - 0.0003600382220148024, - 7.72089906586615e-06 - ], - [ - 0.00035844068660784156, - 6.663638078996392e-06 - ], - [ - 0.00035765228176376507, - 5.8253695692789265e-06 - ], - [ - 0.0003574629274222252, - 5.7516088179943026e-06 - ], - [ - 0.0003573414329726132, - 5.72287147804218e-06 - ], - [ - 0.0003571244658441275, - 5.67693706876593e-06 - ], - [ - 0.00035690275230693125, - 5.584733687391541e-06 - ], - [ - 0.00035672465351421767, - 5.542936848068614e-06 - ], - [ - 0.00034861154332777033, - 1.6000173324037803e-06 - ], - [ - 0.00035074948792090943, - 3.265315971834326e-06 - ], - [ - 0.00035060169404621533, - 3.394322342531453e-06 - ], - [ - 0.0003502154777142996, - 6.538800524369393e-07 - ], - [ - 0.000354869266969815, - 7.270040575879655e-06 - ], - [ - 0.00035201282076258167, - 4.718233318490306e-06 - ], - [ - 0.0003519858263566489, - 4.725280883355332e-06 - ], - [ - 0.00035324772399680793, - 2.9006211277327054e-07 - ], - [ - 0.00035293191343088726, - 2.2269521804396675e-07 - ], - [ - 0.00035269853212194224, - 1.5329571834143962e-07 - ], - [ - 0.00035249802541303943, - 2.412342048341287e-07 - ], - [ - 0.00035231895122345147, - 2.0787184296100492e-07 - ], - [ - 0.0003521600900496802, - 3.5621854588274715e-07 - ], - [ - 0.0003471970697268567, - 1.6256936097303054e-07 - ], - [ - 0.00034711687637800637, - 4.259241059845209e-08 - ], - [ - 0.0003471088211030038, - 3.018550565059286e-08 - ], - [ - 0.0003471040955129734, - 2.2125920651205888e-08 - ], - [ - 0.00036590006863634894, - 6.915306605126403e-08 - ], - [ - 0.00036543257994370304, - 6.956645204336809e-08 - ], - [ - 0.0003481678758575635, - 1.6124746415879798e-07 - ], - [ - 0.0003479675984766617, - 5.799763980185446e-08 - ], - [ - 0.0003478334943790573, - 2.0858482607799544e-08 - ], - [ - 0.0003477232560130661, - 7.503895949056982e-09 - ], - [ - 0.00034762164550383723, - 2.6993944857167662e-09 - ], - [ - 0.0003475231885670116, - 9.70048374959731e-10 - ], - [ - 0.000347425921065847, - 3.4888225641793724e-10 - ], - [ - 0.00034732913011381594, - 1.256752479861234e-10 - ], - [ - 0.00034723256674673575, - 4.518907470441036e-11 - ], - [ - 0.00034713612750225664, - 1.6305401473459824e-11 - ], - [ - 0.0003471017016685174, - 8.708589405159728e-13 - ], - [ - 0.0003471017016685174, - 8.708589405159728e-13 - ], - [ - 0.0003471017016685174, - 8.708589405159728e-13 - ], - [ - 0.0003471017016685174, - 8.708589405159728e-13 - ], - [ - 0.0003471017016685174, - 8.708589405159728e-13 - ], - [ - 0.0003471017016685174, - 8.708589405159728e-13 - ], - [ - 0.0003471017016685174, - 8.708589405159728e-13 - ], - [ - 0.0003471017016685174, - 8.708589405159728e-13 - ], - [ - 0.0003471017016685174, - 8.708589405159728e-13 - ], - [ - 0.0003471017016685174, - 8.708589405159728e-13 - ], - [ - 0.0003471017016685174, - 8.708589405159728e-13 - ], - [ - 0.0003471017016685174, - 8.708589405159728e-13 - ], - [ - 0.0003471017016685174, - 8.708589405159728e-13 - ], - [ - 0.00038823618587358055, - 2.4324255971652775e-06 - ], - [ - 0.0003474742998308411, - 7.957007119863135e-08 - ], - [ - 0.00034710170153584574, - 7.379652444683416e-13 - ], - [ - 0.0003471017007983246, - 0.0 - ], - [ - 0.0003471017007983246, - 0.0 - ], - [ - 0.0003471017007983246, - 0.0 - ], - [ - 0.0003471017007983246, - 0.0 - ], - [ - 0.0003471017007983246, - 0.0 - ], - [ - 0.0003471017007983246, - 0.0 - ], - [ - 0.0003471017007983246, - 0.0 - ], - [ - 0.000621302483430286, - 5.650488110742202e-08 - ], - [ - 0.0010655586282580787, - 1.3310807067679065e-07 - ], - [ - 0.0019900602059937933, - 5.608908721144168e-06 - ], - [ - 0.005479461175422751, - 4.651948291289898e-05 - ], - [ - 0.021052638711941296, - 0.0006949381861804937 - ], - [ - 0.021052631629053797, - 0.0006930149035506705 - ], - [ - 0.021052632572993057, - 0.0006935852367114803 - ], - [ - 0.021428589579883806, - 0.00032447654215062016 - ], - [ - 0.15000000000051938, - 0.020339142684757228 - ], - [ - 0.15000000031221827, - 0.02033378820813725 - ], - [ - 0.16000000000917813, - 0.008988105635697519 - ], - [ - 0.16666666666666663, - 0.0 - ] - ] -} \ No newline at end of file diff --git a/theseus/graphs/w_sp/clean-7-3-0.2500_0.0000.json b/theseus/graphs/w_sp/clean-7-3-0.2500_0.0000.json deleted file mode 100644 index 688a84db..00000000 --- a/theseus/graphs/w_sp/clean-7-3-0.2500_0.0000.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "graph": { - "(0, 4, 1, 0)": 1.0, - "(0, 5, 0, 0)": 1.0, - "(1, 3, 0, 0)": 1.0, - "(1, 4, 1, 0)": 1.0, - "(2, 3, 0, 0)": 1.0, - "(2, 4, 1, 0)": 1.0, - "(2, 5, 0, 0)": 1.0 - }, - "loss": [ - 0.25, - 0.0 - ], - "history": [ - [ - 0.04673639892201942, - 0.0004191639001386305 - ], - [ - 0.04673637137133979, - 0.0004190071466124712 - ], - [ - 0.04673636382129842, - 0.00041893734673825733 - ], - [ - 0.04673636197625208, - 0.0004189058042924909 - ], - [ - 0.046736361193247755, - 0.00041888956873481487 - ], - [ - 0.04673636086080146, - 0.0004188824768009969 - ], - [ - 0.046736360719903836, - 0.00041887847822297264 - ], - [ - 0.046736360719903836, - 0.00041887847822297264 - ], - [ - 0.0740741066163586, - 0.003187280605335463 - ], - [ - 0.07657657729022582, - 0.0004031984555743495 - ], - [ - 0.07692307692307687, - 0.0 - ], - [ - 0.07692307692307687, - 0.0 - ], - [ - 0.07692307692307687, - 0.0 - ], - [ - 0.07692307692307687, - 0.0 - ], - [ - 0.07692307692307687, - 0.0 - ], - [ - 0.07692307692307687, - 0.0 - ], - [ - 0.07692307692307687, - 0.0 - ], - [ - 0.07692307692307687, - 0.0 - ], - [ - 0.20512820512875174, - 0.05506424111929087 - ], - [ - 0.23809523819283118, - 0.019153712371180576 - ], - [ - 0.25, - 0.0 - ], - [ - 0.25000000000075473, - 1.3415935029570392e-12 - ] - ] -} \ No newline at end of file diff --git a/theseus/leiwand.py b/theseus/leiwand.py deleted file mode 100644 index fbd05187..00000000 --- a/theseus/leiwand.py +++ /dev/null @@ -1,197 +0,0 @@ -import os - -import sys -import itertools -import numpy as np - -docstring = """ -Use this script like this - -Or get the data into a file which list the data of the edges like: -weight vertex1 mode1 vertex2 mode2 -weight vertex1 mode1 vertex2 mode2 - -python leiwand.py in=filename - -You can call the script with several options like this -python leiwand.py in=filename key1=value1 key2=value2 - -option keys are the following -""" - -variables = { - "line_width": 4.0, - "radius": 3, - "col0": "{RGB}{0,0,204}", - "col1": "{RGB}{204,0,0}", - "col2": "{RGB}{0,204,0}", - "col3": "{RGB}{255, 165, 0}", - "col4": "{RGB}{128,0,128}", - "col5": "{RGB}{255, 255, 0}", - "col6": "{RGB}{102, 0, 102}", - "vertexcolor": "{RGB}{250,250,250}", - "fontcolor": "{RGB}{0,0,0}", - "angle": 0, - "vertices": None, - "whitespace": "10pt" -} - - -def leiwand(data,name='graph'): - poly = {} - output = name - numcolors = 7 - - external_vertices = None - if variables['vertices'] is not None: - external_vertices = variables["vertices"].split(' ') - # reverse order (drawing is counter-clockwise) - external_vertices = list(reversed(external_vertices)) - #print("got vertices: ", external_vertices) - - whitespace = None - if variables["whitespace"] is not None: - whitespace = variables["whitespace"] - with open(output + ".tex", "w") as outf: - optionmap = {tuple([c1, c2, True]): f"bicolor={{col{c1}}}{{col{c2}}}" for c1, c2 in - itertools.permutations(range(numcolors), 2)} - for ii in range(numcolors): - optionmap[(ii, ii, True)] = f"bicolor={{col{ii}}}{{col{ii}}}" - optionmap.update({tuple([c1, c2, False]): f"bicolor_neg={{col{c2}}}{{col{c1}}}" for c1, c2 in - itertools.product(range(numcolors), repeat=2)}) - # if use f"bicolor_neg={{col{c1}}}{{col{c2}}}" will inverse the color for the negitive edges, don't know why; - #print(optionmap) - if whitespace is not None: - print("\documentclass[border={}]{}".format(whitespace, r"{standalone}"), file=outf) - else: - print(r"\documentclass{standalone}", file=outf) - print(r""" - - \usepackage{tikz} - \usetikzlibrary{decorations.markings, shapes.geometric} - - """, file=outf) - - colors = r"\definecolor{vertexcol}" + variables["vertexcolor"] - for ii in range(numcolors): - colors += f"\definecolor{{col{ii}}}" + variables[f"col{ii}"] - colors += r"\definecolor{fontcolor}" + variables["fontcolor"] - print(colors, file=outf) - - print(r""" - \begin{document} - - \tikzset{ - bicolor/.style n args={2}{ - postaction={draw=#1, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, - postaction={draw=#2, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, - }, - bicolor_neg/.style n args={2}{ - postaction={draw=#1, decoration={curveto, pre=moveto, pre length=0.5*\pgfmetadecoratedpathlength}, decorate}, - postaction={draw=#2, decoration={curveto, post=moveto, post length=0.5*\pgfmetadecoratedpathlength}, decorate}, - postaction={decoration={markings, mark=at position 0.5 with {\node[diamond, fill=white, aspect=0.7,draw, thin, minimum width=10pt,opacity=1] {};}}, decorate}, - }, - vertex/.style={circle, draw=black, ultra thick ,fill=vertexcol!80,minimum size=15pt}, - } - - \begin{tikzpicture} - - """, file=outf) - - vertices = [] - weights = [] - for d in data: - weights.append(abs(d[0])) - vertices.append(d[1]) - vertices.append(d[3]) - vertices = list(set(vertices)) - max_weight = max(weights) - - # check if vertices where specified manually - if external_vertices is not None: - print("replacing: ", vertices) - print("with external vertices: ", external_vertices) - vertices = external_vertices - else: - # sort vertices alphabetically - vertices = list(sorted(vertices)) - - if len(poly) < len(vertices): - # poly = Polygon.regular(len(vertices), radius=variables["radius"], angle=float(180)) - angles = [2 * np.pi * ii / len(vertices) for ii in range(len(vertices))] - poly = [tuple([variables["radius"] * np.cos(theta - variables["angle"]), - variables["radius"] * np.sin(theta - variables["angle"])]) for theta in angles] - else: - # sort alphabetically - poly = reversed(list(dict(sorted(poly.items(), key=lambda x: x[0])).values())) - for i, coord in enumerate(poly): - print(r"\node[vertex] ({name}) at ({x},{y}) {xname};".format(name=vertices[i], - xname=r"{\color{fontcolor}" + vertices[ - i] + "}", x=coord[0], y=coord[1]), - file=outf) - - #edge_string = r"\path ({v1}) edge[{options}, opacity={opacity}] ({v2});" - edge_string = r"\path[{options}, opacity={opacity}] ({v1}) to ({v2});" - - for d in data: - assert (len(d) == 6) - weight = d[0] - v1 = d[1] - t1 = d[2] - v2 = d[3] - t2 = d[4] - b = d[5] - opacity = max(0.3, abs(weight) / max_weight) - angles = [360 * ii / len(vertices) for ii in range(len(vertices))] - weight_pos = (weight > 0) - if v1 == v2: # loop - angle1 = angles[int(v1)] + 30 - angle2 = angles[int(v1)] - 30 - - print(edge_string.format(v1=v1, v2=v2, - options="line width={lw},".format(lw=variables["line_width"]) + optionmap[ - (t1, t2, weight_pos)] + ", looseness=" + str( - b) + f",right,out={angle1},in={angle2}", - opacity=opacity), file=outf) - else: - print(edge_string.format(v1=v1, v2=v2, - options="line width={lw},".format(lw=variables["line_width"]) + optionmap[ - (t1, t2, weight_pos)] + ", bend right=" + str(b), - opacity=opacity), file=outf) - print(r""" - \end{tikzpicture} - - \end{document} - """, file=outf) - - # Get the current working directory - cwd = os.getcwd() - - # Print the current working directory - print("Current working directory: {0}".format(cwd)) - - print("created {}.tex".format(output)) - print("trying to compile with pdflatex ... might be caught in endless loop") - - import subprocess - from shutil import which - - system_has_pdflatex = which("pdflatex") is not None - if not system_has_pdflatex: - raise Exception("You need pdflatex in order to export circuits to pdfs") - - with open(output + ".log", "w") as file: - subprocess.call(["pdflatex", output + ".tex"], stdout=file) - - print("created {}.pdf".format(output)) - - -if __name__ == "__main__": - print(docstring) - for k, v in variables.items(): - print("{}={}".format(k, v)) - - print("calling with: ", sys.argv) - leiwand(sys.argv) - - diff --git a/theseus/lossfunctions.py b/theseus/lossfunctions.py deleted file mode 100644 index 7f025035..00000000 --- a/theseus/lossfunctions.py +++ /dev/null @@ -1,343 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Created on Tue Jul 12 11:54:12 2022 - -@author: janpe -""" - -import theseus.theseus as th -from collections import Counter -import itertools -import numpy as np -from itertools import combinations -from itertools import combinations_with_replacement -from theseus.custom_loss.assembly_index import assembly_index, top_n_assembly -import logging - -log = logging.getLogger(__name__) - - -def brutal_covers(cnfg, graph): - # this functions is sometimes used instead of findEdgecovers, should be much slower in general, but faster at - # applying topological constraints atm - - non_output_verts = [vert for vert in cnfg["verts"] if vert not in cnfg["out_nodes"]] - # minimum number of edges that can cover non output vertices - min_edges = len(non_output_verts) // 2 - # maximum number of edges, perfect matching order of whole graph - max_edges = len(cnfg["verts"]) // 2 - orders = list(range(min_edges, max_edges + 1)) - - avail_colors = th.edgeBleach(graph.edges) - tmp_raw_covers = [] - for num_edges in orders: - tmp_raw_covers += combinations_with_replacement(list(avail_colors.keys()), num_edges) - - raw_covers = [] - ii = 0 - for cover in tmp_raw_covers: - ii += 1 - keep = True - counter = Counter(list(itertools.chain(*cover))) - - # check inputs and single emitters - for vert in cnfg["in_nodes"] + cnfg["single_emitters"]: - # if any are covered more than once, don't keep edge cover - if counter[vert] != 1: - keep = False - - if cnfg['number_resolving']: - for vert in cnfg["anc_detectors"]: - if counter[vert] != 1: - keep = False - else: - for vert in cnfg["anc_detectors"]: - if counter[vert] == 0: - keep = False - - # if in maximum order, we select for events where the correct total number of photons go into output paths - if len(cover) == max_edges: - sum = 0 - for vert in cnfg["out_nodes"]: - sum += counter[vert] - if sum != len(cnfg["out_nodes"]): - keep = False - - # if all conditions are met, use edgecover for norm - if keep: - raw_covers.append(cover) - painted_covers = [] - for cover in raw_covers: - for coloring in itertools.product(*[avail_colors[edge] for edge in cover]): - color_cover = [edge + color for edge, color in zip(cover, coloring)] - painted_covers.append(sorted(color_cover)) - return [[tuple(ed) for ed in graph] for graph in np.unique(painted_covers, axis=0)] - - -def heralded_covers(cnfg, graph): - # calls findEdgecovers and applies topological constraints - - non_output_verts = [vert for vert in cnfg["verts"] if vert not in cnfg["out_nodes"]] - # minimum number of edges that can cover non output vertices - min_edges = len(non_output_verts) // 2 - # maximum number of edges, perfect matching order of whole graph - max_edges = len(cnfg["verts"]) // 2 - orders = list(range(min_edges, max_edges + 1)) - try: - if cnfg["novac"]: - orders = [max_edges] - except KeyError: - pass - # find edge suitable edge covers for all possible numbers of edges - tmp_edgecovers = [] - for num_edges in orders: - tmp_edgecovers += th.findEdgeCovers(graph.edges, nodes_left=non_output_verts, edges_left=num_edges) - # select for edgecovers that fulfill conditions - edgecovers = [] - for cover in tmp_edgecovers: - keep = True - counter = Counter(list(itertools.chain(*th.edgeBleach(cover).keys()))) - - # check inputs and single emitters - for vert in cnfg["in_nodes"] + cnfg["single_emitters"]: - # if any are covered more than once, don't keep edge cover - if counter[vert] != 1: - keep = False - - if cnfg['number_resolving']: - for vert in cnfg["anc_detectors"]: - if counter[vert] != 1: - keep = False - else: - for vert in cnfg["anc_detectors"]: - if counter[vert] == 0: - keep = False - - # if in maximum order, we select for events where the correct total number of photons go into output paths - if len(cover) == max_edges: - sum = 0 - for vert in cnfg["out_nodes"]: - sum += counter[vert] - if sum != len(cnfg["out_nodes"]): - keep = False - - # if all conditions are met, use edgecover for norm - if keep: - edgecovers.append(cover) - return edgecovers - - -def count_rate(graph, target_state, cnfg): - # can be used for state-creation/measurements/gates, post-selected/heralded - - # set up target equation - target = target_state.targetEquation(state_catalog=graph.state_catalog, imaginary=cnfg["imaginary"]) - # get variable names - variables = th.stringEdges(graph.edges, imaginary=cnfg["imaginary"]) - - # non-heralded, post-selection case - if not cnfg["heralding_out"]: - # only looking at perfect matchings - graph.getNorm() - norm = graph.norm - # heralded case, more complicated selection rules - else: - if not cnfg["brutal_covers"]: - edgecovers = heralded_covers(cnfg, graph) - else: - edgecovers = brutal_covers(cnfg, graph) - cat = th.stateCatalog(edgecovers) - norm = th.writeNorm(cat, imaginary=cnfg["imaginary"]) - lambdaloss = "".join(["1-", target, "/(1+", norm, ")"]) - func, lossstring = th.buildLossString(lambdaloss, variables) - return func - - -def fidelity(graph, target_state, cnfg): - # can be used for state-creation/measurements/gates, post-selected/heralded - - # set up target equation - target = target_state.targetEquation(state_catalog=graph.state_catalog, imaginary=cnfg["imaginary"]) - # get variable names - variables = th.stringEdges(graph.edges, imaginary=cnfg["imaginary"]) - - # non-heralded, post-selection case - if not cnfg["heralding_out"]: - # only looking at perfect matchings - graph.getNorm() - norm = graph.norm - # heralded case, more complicated selection rules - else: - if not cnfg["brutal_covers"]: - edgecovers = heralded_covers(cnfg, graph) - else: - edgecovers = brutal_covers(cnfg, graph) - cat = th.stateCatalog(edgecovers) - norm = th.writeNorm(cat, imaginary=cnfg["imaginary"]) - lambdaloss = "".join(["1-", target, "/(0+", norm, ")"]) - func, lossstring = th.buildLossString(lambdaloss, variables) - return func - - -""" -Number states in Fock basis -""" -def fock_fidelity(graph, target_state, num_anc, amplitudes, imaginary=False): #num_anc_pre - - # original ket is in the form: [((0,m),(1,n),(2,k1),(3,k2)...]; - # here the m, n, k1, k2 are the number of particles instead of dimensions - - # make the ket in the correct form - # [((0,0),(0,0)...,(1,0),(1,0),... (2,0),(2,0),...,(3,0),(3,0),...] - # m times (0,0); n times (1,0); k1 times (2,0); k2 times (3,0), etc. - # target_kets_temp = target_state.kets - # target_kets=[] - # accum = [sum([[(i,0)]*max(0,n) for i,n in k ],[]) for k in target_kets_temp] - # for ii in accum: - # target_kets.append(tuple(ii)) - - - #all_verts= range(graph.num_nodes)#np.unique(list(itertools.chain(*th.edgeBleach(graph.edges).keys()))) - #anc_each_num=[int(i) for i in num_anc_pre] - #state_each_num=[int(i) for i in target_state_str[0]] # all terms have the same photon number - - total_particle_num = len(target_state.kets[0]) - #total_particle_num=sum(state_each_num)+num_anc #sum(anc_each_num) - - # anc_position=all_verts[len(all_verts)-num_anc:] - # anc_kets=[] - # for jj in anc_position: - # anc_kets.append((jj,0)) - - anc_nodes = list(range(graph.num_nodes - num_anc, graph.num_nodes)) - - - edgecover_target = list(itertools.combinations_with_replacement(graph.edges,int(total_particle_num/2))) - cat = th.stateCatalog(edgecover_target) - - if len(anc_nodes)>0: - for ket in list(cat.keys()): - shopping = Counter(ket) - if all(shopping[(ii,0)]==1 for ii in anc_nodes): - pass - else: - del cat[ket] - - # this cause a problem in the optimizer as it actually does not use len(useful_deges) - #useful_edges = sorted(set(sum(sum(cat.values(),[]), ()))) - #variables = th.stringEdges(useful_edges) - - variables = th.stringEdges(graph.edges, imaginary=imaginary) - - target = th.targetEquation(target_state.kets,amplitudes=amplitudes,state_catalog=cat) - norm = th.writeNorm(cat) - - # epsilon = 1e-10 - epsilon = 0 - lambdaloss = f'1-({target})/({epsilon} + {norm})' - # lambdaloss="".join(["1-", target, "/(0+", norm, ")"]) - - func, lossstring = th.buildLossString(lambdaloss, variables) - return func - -def fock_countrate(graph, target_state, num_anc, amplitudes, imaginary=False): #num_anc_pre - - - - total_particle_num = len(target_state.kets[0]) - - anc_nodes = list(range(graph.num_nodes - num_anc, graph.num_nodes)) - - - edgecover_target = list(itertools.combinations_with_replacement(graph.edges,int(total_particle_num/2))) - cat = th.stateCatalog(edgecover_target) - - if len(anc_nodes)>0: - for ket in list(cat.keys()): - shopping = Counter(ket) - if all(shopping[(ii,0)]==1 for ii in anc_nodes): - pass - else: - del cat[ket] - - # this cause a problem in the optimizer as it actually does not use len(useful_deges) - #useful_edges = sorted(set(sum(sum(cat.values(),[]), ()))) - #variables = th.stringEdges(useful_edges) - - variables = th.stringEdges(graph.edges, imaginary=imaginary) - - target = th.targetEquation(target_state.kets,amplitudes=amplitudes,state_catalog=cat) - norm = th.writeNorm(cat) - - # epsilon = 1e-10 - epsilon = 1 - lambdaloss = f'1-({target})/({epsilon} + {norm})' - # lambdaloss="".join(["1-", target, "/(1+", norm, ")"]) - - func, lossstring = th.buildLossString(lambdaloss, variables) - return func - - - -def make_lossString_entanglement(graph, sys_dict: dict, imaginary=False, - var_factor=0): - """ - get the loss functions of a graph for the concurrence: - C( |Psi> ) = √( 2 * ( 1 - TR_M( ) ) ) - where TR_M is partial trace (in subsystem M) - and return is sum over all possible bi-partition - - Parameters - ---------- - edge_list : list - list of all edges - sys_dict : dict - that stores essential information about the quantuum system (see hf.get_sysdict) - - Returns - ------- - func : function as object - loss function in concurrence as lambda object of current graph. - lossstring : String - loss function as string - - """ - - cat = graph.state_catalog - target = th.entanglement_fast(cat, sys_dict, var_factor) - # norm = th.Norm.fromDictionary(cat, real=sys_dict['real']) - variables = th.stringEdges(graph.edges, imaginary=imaginary) - - lambdaloss = "".join(["", target]) - func, lossstring = th.buildLossString(lambdaloss, variables) - - return func - - -def sum_of_weights(inputgraph, cnfg): - # test function for an arbitrary loss function (cnfg["loss_func"] = "lff", cnfg["lff_name"] = "sum_of_weights") - return sum(np.abs(inputgraph.weights)) - - -def loss_from_function(graph, cnfg=[]): - # takes a graph and returns a function of a parameter vector - def func(vector): - inputgraph = graph - for ii, edge in enumerate(graph.edges): - inputgraph[edge] = vector[ii] - # get function (defined in this module) - function = globals()[cnfg["lff_name"]] - return function(inputgraph, cnfg) - - return func - - -# optimizer optimizes first function in list -# at each optimization step, all functions in list are checked if they satisfy the thresholds -loss_dic = {'ent': [make_lossString_entanglement], - 'fid': [fidelity, count_rate], - 'cr': [count_rate, fidelity], - 'lff': [loss_from_function], - 'fockfid': [fock_fidelity,fock_countrate], - 'fockcr': [fock_countrate,fock_fidelity] - }