I need to work out a research project on quantum computing as a part of my curriculum. I was wondering how to implement something theoretically with the basic knowledge I have. I have learned about superposition, Deutsch Jozsa algorithm, and Grover's algorithm. Can I design something simple using these algorithms? Perhaps a way to solve a game, or solve a graph problem or anything? I can't go deep in research now as I have not much time left but would be rather happy to work on the existing knowledge I have. Please enlighten me!
-
3$\begingroup$ Finding an original and yet easy-to-dive-in topic is hard work. I wouldn't expect folks here to hand you research topics on a silver platter. At max, we can give you some pointers (you'll have to find an appropriate topic yourself). I believe this would be better as a resource-request question. For a start, you may check out the Quantum Algorithm Implementations for Beginners (2018) paper and the implementations therein. I'll probably elaborate on this as an answer later. $\endgroup$– Sanchayan DuttaCommented Mar 28, 2019 at 14:45
1 Answer
(Based on the time limitation I assume we're talking about an undergraduate level project, and not something more advanced.)
If you look at the questions about Grover's algorithm, you'll notice that a lot of them ask about implementing oracles for interesting tasks - or at least tasks more satisfying than looking for the state $|111\rangle$ :-)
One project idea arising from this could be picking some interesting problem that can be solved with Grover's algorithm, implementing the oracle and actually solving it. To give just two examples, here are oracles for solving SAT problem and graph coloring problem. (Full disclosure: I wrote the first example myself, and the second one was done as a student project for our course in the University of Washington.)
It is usually possible to come up with a small version of an interesting problem to simulate the solution (the optimizations you have to do to squeeze things in the 30-ish qubits for simulation can be interesting on their own). After that you can estimate the resources it would take to solve a larger instance of the problem, compare different implementations (for example, if your problem requires arithmetic), etc.