Project Part 2

Deadline: see web page
This assignment has to be solved in your group.

  1. (100 points) Report on the progress of your project and update your web page. This includes a report on solved issues, indicating individual contributions by each group member by his/her name and a corresponding milestone/task, as well open problems and the steps for attacking them for the remainder of the project (indicating weekly milestones of progress).

    Turn in the file report2.pdf. Make sure to update your web page.

  2. Peer evaluation: Each group members has to submit a peer evaluation form.

Grading:

Group assignments are graded by groups. All members receive the same number of base points but these base points are multiplied by a peer evaluation factor, which is determined as the average of the evaluation score by your peer (optionally minus outliers, up to the instructor). Each group member is individually responsible to know how any of the parts are solved. While the individual author of a module is indicated, this does not affect grades.

Group problems:

Should there be any problems in the groups, then please read the policies for this class. Then consult the instructor at the earliest possible point. Problems may include: a group member drops the class, does not show up for meetings, does not contribute any work, has personal problems related to the group etc.

Problem 2:

(25 points) Grover's Algorithm: A simple oracle for Grover's algorithm can be created by the function in grover.py. Using this, create a program to run Grover's algorithm for searching datasets for the target elements (i.e. searching a set of 16 elements with the target of 13 would have you calling phase_oracle(qc, 4, [13])).
  • You'll need to figure out how to reflect all of the states around the average value. See Professor Zhou's lecture notes or the qiskit textbook for additional hints.
  • You'll also need to decide how many times to repeat these reflections.
  • Ensure that your program works for arbitrary (small qubit number) combinations, but turn in n=4, indices_to_mark=[13].
  • Run your program on the QASM simulator and display the counts. It's recommended but not required to use a histogram as well.
  • Turn in grover.py or grover.ipynb