[PYTHON] Comment utiliser la tomographie Qubits (faire des produits de recherche de fin d'études dans la bouddhéité)

Comment utiliser la tomographie Qubits

Depuis que j'ai créé Qubits Tomography dans mes recherches de fin d'études, je vais vous expliquer comment l'utiliser. Le src peut être trouvé ici [https://github.com/outk/graduate_thesis). La théorie de la tomographie Qubit est écrite dans la thèse de fin d'études. (Si vous en avez envie, je vais également le résumer en Qiita.) J'ai également créé Qutrit Tomography, un système à trois niveaux. Si l'un de vos lecteurs fait de la tomographie Qudit, veuillez l'utiliser. De plus, les gens qui ne comprennent pas ce qu'ils disent sont gentils! Veuillez appuyer pour commenter. ()

À la suite de la simulation, vous pouvez obtenir quelque chose comme ça avec des graphiques 3D. mixed.png

comment utiliser

Copiez d'abord qubit_tomo.py sous votre répertoire de travail (projet). La structure des répertoires est la suivante.

.
└project
    └qubit_tomo.py

À l'invite de commande

~\project>python qubit_tomo.py

Entrer.

------------------------------------------------------------
PLEASE ENTER NUMBER OF QUBITS
------------------------------------------------------------
>>

S'affiche, entrez le nombre de Qubits que vous souhaitez simuler. Cette fois, je vais essayer avec quatre. De plus, la base de mesure est telle que décrite dans la thèse de fin d'études. Si vous avez mesuré avec une autre base, réécrivez le code.

 ------------------------------------------------------------
PLEASE ENTER NUMBER OF QUBITS
------------------------------------------------------------
>>
4
------------------------------------------------------------
PLEASE ENTER PATH OF EXPERIMENTAL DATA DIRECTORY

LIKE THIS >> .\datadirectory
------------------------------------------------------------
>> 

Ensuite, entrez le chemin du répertoire contenant les données expérimentales enregistrées dans le fichier txt. Même s'il existe plusieurs données expérimentales, elles seront toutes tomographiques. Cependant, la simulation ne se poursuivra pas si l'écran de dessin 3D reste affiché. Faites attention. Si les données expérimentales sont enregistrées comme suit, elles peuvent être spécifiées comme suit.

.
└project
    |
    ├testdata
    |  |
    |  └test.txt
    |
    └qubit_tomo.py


------------------------------------------------------------
PLEASE ENTER PATH OF EXPERIMENTAL DATA DIRECTORY

LIKE THIS >> .\datadirectory
------------------------------------------------------------
>>
./testdata

Ensuite, entrez le nom du répertoire de destination de sortie du résultat du calcul. Tout va bien ici. Si rien n'est entré, ce sera "par défaut". Par exemple

------------------------------------------------------------
PLEASE ENTER NAME OF RESULT DIRECTORY

THE RESULT DATA WILL SAVED AT
'.\result\qubit\iterative(or poisson)\{ YOUR ENTED DIRECTORY NAME }\{ EXPERIMENTAL DATA FILE NAME }_result.txt'

IF EMPTY, THE NAME OF RESULT DIRECTORY IS 'default'
------------------------------------------------------------
>>
test

À ce stade, il vous sera demandé si vous souhaitez créer des données d'expérience simulées. Toutes les entrées autres que «oui» sont considérées comme «non». Les données pseudo-expérimentales sont générées aléatoirement le long de la distribution de Poisson avec le nombre de fois de chaque donnée expérimentale comme valeur attendue.

------------------------------------------------------------
PLEASE ENTER ANSWER WHETHER DO POISSON DISTRIBUTED SIMULATION
IF YOU DO, PLEASE ENTER 'yes'
IF YOU ENTER ANOTHER WORD OR EMPTY, YOUR ANSWER IS REGARED AS 'no'
------------------------------------------------------------
>>
yes
YOUR ANSWER IS: 'yes'
------------------------------------------------------------
PLEASE ENTER PATHS OF EXPERIMENTAL DATA

IF THERE ARE MULTIPLE DATA FILE YOU WANT TO TOMOGRAPHY,
ENTER ALL PATHS SEPARATED WITH SPACE.
LIKE THIS >> .\datadirectory\ex1.txt .\datadirectory\ex2.txt ...
------------------------------------------------------------
>>

Si vous entrez "oui", il sera affiché comme ceci, alors entrez les données expérimentales ** chemin du fichier ** qui seront la source des données expérimentales simulées. Si "non", il est passé à la dernière entrée de numéro de parallélisation. Si "oui", par exemple

YOUR ANSWER IS: 'yes'
------------------------------------------------------------
PLEASE ENTER PATHS OF EXPERIMENTAL DATA

IF THERE ARE MULTIPLE DATA FILE YOU WANT TO TOMOGRAPHY,
ENTER ALL PATHS SEPARATED WITH SPACE.
LIKE THIS >> .\datadirectory\ex1.txt .\datadirectory\ex2.txt ...
------------------------------------------------------------
>>
./testdata/test.txt

Ensuite, il vous sera demandé combien de modèles pour générer les données d'expérience simulées, entrez donc le nombre que vous souhaitez générer.

------------------------------------------------------------
PLEASE ENTER ITERATION TIME OF EACH POISSON SIMULATION
------------------------------------------------------------
>>
5

Enfin, il vous sera demandé combien de parallèles vous souhaitez calculer. Veuillez également vous référer au nombre maximum de PC actuellement utilisés qui peuvent être parallélisés. (** * Remarque: ** S'il ne s'agit pas d'environ la moitié du nombre maximum qui peut être parallélisé, l'utilisation du processeur augmentera et la simulation ne se poursuivra pas. Après avoir exécuté la simulation, assurez-vous de vérifier l'utilisation du processeur avec un moniteur de ressources, etc. S'il te plait donne moi.)

------------------------------------------------------------
HOW MANY TIMES DO YOU WANT TO PARALLELIZE?
IF THE NUMBER IS TOO LARGE, THE PARFORMANCE OF SIMULATION BECOME LOWER.
THE NUMBER OF LOGICAL PROCESSOR OF YOUR COMPUTER IS >>
6
RECOMENDED NUMBER IS LESS THAN THE ABOVE NUMBER.
------------------------------------------------------------
>>
2

Tout ce que vous avez à faire est d'attendre la fin de la simulation. Comme mentionné ci-dessus, les autres simulations ne se dérouleront pas pendant que le dessin 3D est affiché, donc si vous n'en avez pas besoin, utilisez le 1.310 de src.

plotResult(numberOfQubits, estimatedDensityMatrix, baseNames)

Veuillez commenter comme suit.

#plotResult(numberOfQubits, estimatedDensityMatrix, baseNames)

Résultat de sortie

Le résultat de la sortie est enregistré dans le répertoire suivant.

.
└project
    |
    ├result
    |  |
    |  └qubit
    |      |
    |      ├iterative
    |      |  |
    |      |  └test
    |      |      |
    |      |      └result.txt
    |      |
    |      └poisson
    |          |
    |          └test
    |              |
    |              └result.txt
    |
    ├testdata
    |  |
    |  └test.txt
    |
    └qubit_tomo.py

La fidélité à l'état idéal est enregistrée dans result.txt. L'état idéal est préparé directement dans qubit_tomo.py. Veuillez réécrire si nécessaire.

Recommended Posts

Comment utiliser la tomographie Qubits (faire des produits de recherche de fin d'études dans la bouddhéité)
Comment utiliser la tomographie Qubits (mon produit diplômé)
Comment créer une sortie JSON Scintillante en japonais
Comment utiliser xml.etree.ElementTree
Comment utiliser virtualenv
Comment utiliser Seaboan
Comment utiliser la correspondance d'image
Comment utiliser le shogun
Comment utiliser Pandas 2
Comment utiliser Virtualenv
Comment utiliser numpy.vectorize
Comment utiliser pytest_report_header
Comment utiliser partiel
Comment utiliser SymPy
Comment utiliser x-means
Comment utiliser WikiExtractor.py
Comment utiliser IPython
Comment utiliser virtualenv
Comment utiliser Matplotlib
Comment utiliser iptables
Comment utiliser numpy
Comment utiliser TokyoTechFes2015
Comment utiliser venv
Comment utiliser le dictionnaire {}
Comment utiliser Pyenv
Comment utiliser la liste []
Comment utiliser python-kabusapi
Comment utiliser Decorator dans Django et comment le créer
Comment utiliser OptParse
Comment utiliser pyenv-virtualenv
Comment utiliser imutils
Comment utiliser la recherche triée
[gensim] Comment utiliser Doc2Vec
Comprendre comment utiliser django-filter
Comment utiliser le générateur
[Python] Comment utiliser la liste 1
Comment utiliser FastAPI ③ OpenAPI
Comment utiliser Python Argparse
Comment utiliser IPython Notebook
Comment utiliser Pandas Rolling
[Note] Comment utiliser virtualenv
Comment utiliser les dictionnaires redis-py
Python: comment utiliser pydub
[Python] Comment utiliser checkio
[Aller] Comment utiliser "... (3 périodes)"
Comment faire fonctionner GeoIp2 de Django
[Python] Comment utiliser input ()
Comment utiliser le décorateur
[Introduction] Comment utiliser open3d
Comment utiliser Python lambda
Comment utiliser Jupyter Notebook
[Python] Comment utiliser virtualenv
python3: Comment utiliser la bouteille (3)
Comment utiliser Google Colaboratory
Comment utiliser les octets Python
Comment transformer une chaîne en tableau ou un tableau en chaîne en Python
Comment utiliser cron (mémo personnel)
Comment faire une traduction japonais-anglais
Python: comment utiliser async avec