Write a two page problem description and an outline with a timeline for approaching a solution (to be turned in), collect references (papers, web pointers) and create a web page to present this information. These are the deliverables for this homework due date. You should then tackle the technical part of your problem, which is due as part of the next homework assigned.
Turn in the file project.pdf. Make sure to include the URL to your project page in it.
The Deutsch-Jozsa Algorithm is used to determine whether a given function is balanced (it returns 0 for half of all inputs and 1 for the other half) or constant (it returns 0 for all inputs or 1 for all inputs). Create two different oracle functions, one which is balanced and one which is constant. These functions should be such that they have three inputs and one output. The constant function always either flips or doesn't flip the output qubit. The balanced function will need to take the input qubits into account and flip the output qubit for half of all possible inputs. Then follow these steps to test them out
Turn in DJ.py or DJ.ipynb
Simon's algorithm is used to find the hidden bitstring of a two-to-one mapping blackbox function, and inspired the famous Shor's Algorithm.
This algorithm involves using the entangled properties of qubits. Using simon.py as a base, you are going to write a generalized function to take a bitstring and turn it into the oracle, to better understand how Simon's algorithm actually works.
Turn in your code as simon.py or simon.ipynb
|B1||Kelvin Dsouza and Billy McCray||link|
|B2||Carl Klier and Nachiket Patel||link|
|B2||Anshul Jethvani and Mostafa Eghbali Zarch||link|
|B3||Stanton Parham and Peiyi Li||link|
|B4||Alec Landow and Liam Adams||link|
|B4||Nick Albergo and Benjamin Ryle||link|
|M1||Alexander Allen and Keith Mellendorf||link|
|M3||Johnathan Wilder, Ayush Khot, Ruiwen Wu||link|