Skip to content

projected entangled pair of states (PEPS), the quantum version

License

Notifications You must be signed in to change notification settings

GiggleLiu/QuantumPEPS.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PEPS inspired quantum circuit ansatz

CI

To make life easier, here is a simplified notebook version of MPS inspired qubit saving scheme for VQE. For a PEPS inpired ansatz solving the J1-J2 square lattice model, please checkout the following content.

To Install

Type ] in a Julia REPL to enter the pkg mode, then type

pkg> dev https://github.com/GiggleLiu/QuantumPEPS.jl.git

To Run

First, enter the directory ~/.julia/dev/QuantumPEPS/ (the default development directory of Julia) in a terminal.

To run a toy example of J1-J2 model of size 4 x 4 with J2 = 0.5, type

julia> using QuantumPEPS

julia> Demo.j1j2peps(4, 4)   # QPEPS

julia> Demo.j1j2mps(4, 4)    # QMPS

To get some help on input arguments, type ? in the REPL to enter the help mode, and then type

help?> Demo.j1j2peps
  j1j2peps(nx::Int=4, ny::Int=4; depth::Int=5, nvirtual::Int=1,
                  nbatch::Int=1024, maxiter::Int=200,
                  J2::Float64=0.5, lr::Float64=0.1,
                  periodic::Bool=false, use_cuda::Bool=false, write::Bool=false)

  Faithful QPEPS traning for solving the J1-J2 hamiltonian ground state. Returns a triple of (optimizer, history, params).

  Positional Arguments
  ======================

    •  nx and ny are the square lattice sizes.

  Keyword Arguments
  ===================

    •  depth is the circuit depth, decides how many entangle layers between two measurements.

    •  nvirtual is the number of virtual qubits.

    •  nbatch is the batch size, or the number of shots.

    •  maxiter is the number of optimization iterations.

    •  J2 is the strength of the second nearest neighbor coupling.

    •  lr is the learning rate of the ADAM optimizer.

    •  periodic specifies the boundary condition of the lattice.

    •  use_cuda is true means uploading the code on GPU for faster computation.

    •  write is true will write training results to the data folder.

Reference

@article{Liu_2019,
	doi = {10.1103/physrevresearch.1.023025},
	url = {https://doi.org/10.1103%2Fphysrevresearch.1.023025},
	year = 2019,
	month = {sep},
	publisher = {American Physical Society ({APS})},
	volume = {1},
	number = {2},
	author = {Jin-Guo Liu and Yi-Hong Zhang and Yuan Wan and Lei Wang},
	title = {Variational quantum eigensolver with fewer qubits},
	journal = {Physical Review Research}
}

Download paper

About

projected entangled pair of states (PEPS), the quantum version

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages