Solving the Pairing Model with the Variational Quantum Eigensolver

Part A: A New Test System (30 pts coding, 20 pts. conceptual)

In class wea analyzed a test system which was represented by the following Hamiltonian:

\[H = \frac{A}{2}(X_0\otimes X_1 + Y_0\otimes Y_1),\]

where A is a constant and X and Y are Pauli operators. For this Hamiltonian we used the following wavefuntion as an ansatz, where \(\theta\) was the parameter optimized by the VQE algortihm.

\[|\psi(\theta)\rangle = \frac{1}{\sqrt{2}} (|01\rangle + e^{i\theta}|10\rangle)\]

Consider the following test Hamiltonian, where A, B, and C are constants.

\[H_a = A(X_0 \otimes X_1) + B(Y_0 \otimes Y_1) + C(Z_0 \otimes Z_1)\]

  1. (20 pts. conceptual) Create your ansatz and explain your choices. You are welcome to create more than one ansatz if you cannot create one contain all the information you need.
  2. (10 pts. coding) Create a function which implements your ansatz (or functions if needed).
  3. (10 pts. coding) Create the code needed to find the expectation value of your wavefunction. Simulate running your algorithm once with no optimization.
  4. (10 pts. coding) Either with brute force or with an optimization algorithm, find the ground state energy of your system for a set A, B, and C. Comment on the performance of your algorithm.

Part B: Pairing Model VQE (20 pts. coding, 30 pts. conceptual)

Using the pairing model VQE code created in class, complete the following questions:

  1. (5 pts. coding, 5 pts. conceptual) Create a way to determine the average error of your method. This should include multiple runs as each run should give you a different result due to the optimization.
  2. (10 pts. conceptual) Write the pairing model Hamiltonian in terms of Pauli operators and the ansatz. Explain every term, variable, index, etc.
  3. (5 pts. coding, 5 pts. conceptual) Does your VQE algorithm work better for weak interactions strengths (\(g \leq 0.5\)) or strong interaction strengths (g \(\geq 1.0\))? Do a little research (and cite your sources) to determine if it is generally easier to model a weakly or strongly interacting system.
  4. (5 pts. coding, 5 pts. conceptual) Try different ways of initializing the coefficients, t. For example, drawn from a uniform distribution, randomly choosen, starting below 1.0, starting above 1.0, etc. Of the methods your tried, which one worked the best? Explain why changing the initial values of the coefficients will change the result of the algorithm.
  5. (5 pts. coding, 5 pts. conceptual) The code as written assumes that d = 1.0. You can change this assumption by adjusting the code that calculates the one-body expectation value (the (2*p-(g/2)) coefficient should be change, think of what we did in clas). Does the VQE algorithm work better for larger or smaller energy level spacing?