quinndiggity / q_ann Goto Github PK
View Code? Open in Web Editor NEWThis project forked from haozeke/q_ann
A proof of concept of Neural Networking for Quantum State recognition.
This project forked from haozeke/q_ann
A proof of concept of Neural Networking for Quantum State recognition.
############################ COPYRIGHT NOTICE ################################## Code provided by G. Carleo and M. Troyer, written by G. Carleo, December 2016. Permission is granted for anyone to copy, use, modify, or distribute the accompanying programs and documents for any purpose, provided this copyright notice is retained and prominently displayed, along with a complete citation of the published version of the paper: ______________________________________________________________________________ | G. Carleo, and M. Troyer | | Solving the quantum many-body problem with artificial neural-networks | |______________________________________________________________________________| The programs and documents are distributed without any warranty, express or implied. These programs were written for research purposes only, and are meant to demonstrate and reproduce the main results obtained in the paper. All use of these programs is entirely at the user's own risk. ################################################################################ ############################ COMPILING THE CODE ################################ The code provided here does not have any external dependence but the standard c++ library. It can be compiled calling the command 'make' in the root directory of this package. The Makefile assumes the existence of a c++11 compliant compiler. The default compiler is 'c++', but it can be easily modified editing 'Makefile' and setting the variable CXX='your_compiler'. Once compiled, the executable 'nqs_run' is produced. ################################################################################ ######################### CHOOSING A NQS WAVE-FUNCTION ######################### The user should choose one of the several NQS wave-functions provided with this package. Two types of files are available: ground-state wave-functions and time-evolved wave-functions. They are stored, respectively, in the directories 'Ground/' and 'Unitary/' of this package. Ground-state files (in Ground/ directory) have the following naming convention: (1g) Ising1d_NSPINS_HFIELD_ALPHA.wf For the transverse-field Ising model in 1d with periodic boundary conditions, total number of spins NSPINS, and transverse field HFIELD. ALPHA is the hidden-unit density defined in the paper. (2g) Heisenberg1d_NSPINS_JZ_ALPHA.wf For the Heisenberg model in 1d with periodic boundary conditions, total number of spins NSPINS, and coupling constant JZ. ALPHA is the hidden-unit density defined in the paper. (3g) Heisenberg2d_NSPINS_JZ_ALPHA.wf For the Heisenberg model on the 2d square lattice with periodic boundary conditions, total number of spins NSPINS, and coupling constant JZ. ALPHA is the hidden-unit density defined in the paper. Time-evolved wave-functions (in Unitary/ directory)' have the following naming convention: (1d) Ising1d_NSPINS_HFIELDFINAL_ALPHA.time_TIME.wf For the transverse-field Ising model in 1d with periodic boundary conditions and total number of spins NSPINS. This series of data refers to the unitary time evolution induced by a quantum quench in the transverse field. The final value of the transverse field is HFIELDFINAL. The corresponding initial values of the field are those reported in the paper. ALPHA is the hidden-unit density defined in the paper. TIME is the time at which the wave-function has been recorded. (2d) Heisenberg1d_NSPINS_JZFINAL_ALPHA.time_TIME.wf For the Heisenberg model in 1d with periodic boundary conditions and total number of spins NSPINS. This series of data refers to the unitary time evolution induced by a quantum quench in the coupling constant J_z. The final value of the coupling constant is JZFINAL. The initial value is J_z=1. ALPHA is the hidden-unit density defined in the paper. TIME is the time at which the wave-function has been recorded. ################################################################################ ############################ RUNNING THE CODE ################################## Once a given wave-function has been chosen, the user is presented with two possibilities: (1r) Sample from the wave-function and measure the expectation value of the Hamiltonian on the given NQS. Minimal usage is achieved with: './nqs_run --filename=FILENAME' Further options can be specified from the command line. A complete list can be obtained launching './nqs_run' without arguments. (2r) Sample from the wave-function, measure the expectation value of the Hamiltonian on the given NQS and print the sampled many-body configurations on a given file. Minimal usage is achieved with: './nqs_run --filename=FILENAME --filestates=FILESTATES' Here FILESTATES is a filename chosen by the user. Sampled configurations are written on this file. After the run is completed the file FILESTATES contains, on every row, a sampled many-body configuration in the format (1 -1 1 ..-1), where each +/-1 is the value of the Sigma_z spin projection on a given site. These data can be further processed at will by the user to obtain arbitrary diagonal expectation values over the square-modulus of the wave-function. ################################################################################ ############################## FURTHER REMARKS ################################# (1R) This simple code does not exploit parallel computing. On large problems, with a large value of ALPHA and NSPINS, the single-core running time can be significant. In a production setting, the Monte Carlo sampling can however be parallelized in a straightforward (and very efficient) way. (2R) The error bars on the energy are estimated with a simple binning analysis with fixed number of blocks (50 in the default implementation). The estimated error bars are reliable provided that the block size (printed by the code) is significantly larger than the estimated correlation time. If this is not the case, the user can increase the number of sweeps with the option -nsweeps=NSWEEPS. ################################################################################
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.