User:ColeDU/Quantum complexity theory: Difference between revisions

Content deleted Content added
ColeDU (talk | contribs)
m Prime Factorization: I added a note that this section needs more work.
I added comments to the sandbox page. My comments are in the grey boxes underlined. I mostly just made some recommendations for clarifying the article, but as always its up to you the final details to include. Good luck :)
Line 3:
See also: [[Computational complexity]] and [[Complexity class]]
 
A [[complexity class]] is a collection of [[Computational problem|computational problems]] that can be solved by a computational model under certain resource constraints. For instance, the complexity class [[P (complexity)|P]] is defined as the set of problems solvable by a [[Turing machine]] in [[polynomial time]]. Similarly, quantum complexity classes may be defined using quantum models of computation, such as the [[Quantum computer|quantum circuit model]] or the equivalent [[quantum Turing machine]]. One of the main aims of quantum complexity theory is to find out how these classes relate to classical complexity classes such as [[P (complexity)|P]], [[NP (complexity)|NP]], [[BPP (complexity)|BPP]], and [[PSPACE]].
<u>This introduction is very clear and insightful, but it could use some citations. I also love the inclusion of the wikilinks. Notice how most wiki articles begin with a summary of the subject and then jump into the background and more details. A quick summary will let readers know right away if your article is the info they're interested in</u>
 
One of the reasons quantum complexity theory is studied are the implications of quantum computing for the modern [[Church–Turing thesis|Church-Turing thesis]]. In short the modern Church-Turing thesis states that any computational model can be simulated in polynomial time with a [[probabilistic Turing machine]].<ref name=":0">{{Cite journal|last=Vazirani|first=Umesh V.|date=2002|title=A survey of quantum complexity theory|url=http://dx.doi.org/10.1090/psapm/058/1922899|journal=Proceedings of Symposia in Applied Mathematics|pages=193–217|doi=10.1090/psapm/058/1922899|issn=2324-7088}}</ref> However, questions around the Church-Turing thesis arise in the context of quantum computing. It is unclear whether the Church-Turing thesis holds for the quantum computation model. There is much evidence that the thesis does not hold and that it may not be possible for a probabilistic Turing machine to simulate quantum computation models in polynomial time.<ref name=":0" />
<u>The last sentence of this paragraph is rather long and complex. I think it would be clearer if you broke it down into 3-4 short sentences, even if you feel it sounds redenudant, sometimes redundancy improves clarity</u>
 
Both quantum computational complexity of functions and classical computational complexity of functions are often expressed with [[asymptotic notation]]. Some common forms of asymptotic notion of functions are <math>O(T(n))</math>, <math>\Omega(T(n))</math>, and <math>\Theta(T(n))</math>. <math>O(T(n))</math> expresses that something is bounded above by <math>cT(n)</math> where <math>c</math> is a constant such that <math>c>0</math> and <math>T(n)</math> is a function of <math>n</math>, <math>\Omega(T(n))</math> expresses that something is bounded below by <math>cT(n)</math> where <math>c</math> is a constant such that <math>c>0</math> and <math>T(n)</math> is a function of <math>n</math>, and <math>\Theta(T(n))</math> expresses both <math>O(T(n))</math> and <math>\Omega(T(n))</math>.<ref name=":1" />
<u>Is asymptotic notation the same a Big O notation</u>
 
 
While there is no known way to efficiently simulate a quantum computer with a classical computer, it is possible to efficiently simulate a classical computer with a quantum computer. This is evident from the fact that <math>BBP\subseteq BQP</math>.<ref>{{Cite journal|last=Watrous|first=John|date=2008-04-21|title=Quantum Computational Complexity|url=http://arxiv.org/abs/0804.3401|journal=arXiv:0804.3401 [quant-ph]}}</ref>
<u>the above is a great insight but it kind comes out of no where. How does it relate to what you have already discusses or what you will discuss later on</u>
 
== Quantum Circuits ==
Line 19 ⟶ 24:
=== Simulating Quantum Circuits ===
There is no known way to efficiently simulate a quantum computational model with a classical computer. This means that a classical computer cannot simulate a quantum computational model in polynomial time. However, a [[quantum circuit]] of <math>S(n)</math> qubits with <math>O(T(n))</math> quantum gates can be simulated by a classical circuit with <math>O(2^{S(n)}T(n)^3)</math> [[Logic gate|classical gates]].<ref name=":1">{{Citation|last=Cleve|first=Richard|title=An Introduction to Quantum Complexity Theory|date=2000|url=http://dx.doi.org/10.1142/9789810248185_0004|work=Quantum Computation and Quantum Information Theory|volume=|pages=103–127|publisher=WORLD SCIENTIFIC|isbn=978-981-02-4117-9|access-date=October 10, 2020}}</ref> This number of classical gates is obtained by determining how many bit operations are necessary to simulate the quantum circuit. First the amplitudes associated with the <math>S(n)</math> qubits must be accounted for. Therefore, <math>2^{S(n)}</math>amplitudes must be accounted for with a <math>2^{S(n)}</math> dimensional complex vector which it the state vector for the <math>S(n)</math> qubit system.<ref>{{Cite journal|last=Häner|first=Thomas|last2=Steiger|first2=Damian S.|date=2017-11-12|title=0.5 petabyte simulation of a 45-qubit quantum circuit|url=http://dx.doi.org/10.1145/3126908.3126947|journal=Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis|___location=New York, NY, USA|publisher=ACM|doi=10.1145/3126908.3126947|isbn=978-1-4503-5114-0}}</ref> Next the application of the <math>T(n)</math> quantum gates on <math>2^{S(n)}</math> amplitudes must be accounted for. Therefore, <math>O(T(n))</math> bits of precision will be required required for encoding each amplitude.<ref name=":1" /> So it takes <math>O(2^{S(n)}T(n))</math> classical bits to account for the state vector. The quantum gates can be represented as <math>2^{S(n)}\times2^{S(n)}</math> [[Sparse matrix|sparse matrices]].<ref name=":1" /> So to account for the each application of all of the quantum gates, the state vector must be multiplied by a <math>2^{S(n)}\times2^{S(n)}</math> sparse matrix for every quantum gate. Every time the state vector is multiplied by a <math>2^{S(n)}\times2^{S(n)}</math> sparse matrix <math>O(2^{S(n)})</math> arithmetic operations must be preformed.<ref name=":1" /> Therefore, there are <math>O(2^{S(n)}T(n)^2)</math> bit operations for every quantum gate applied to the state vector. So <math>O(2^{S(n)}T(n)^2)</math> classical gate are needed to simulate <math>S(n)</math> qubit circuit with just one quantum gate. Therefore, <math>O(2^{S(n)}T(n)^3)</math> classical gates can simulate a quantum circuit of <math>S(n)</math> qubits with <math>O(T(n))</math> quantum gates.<ref name=":1" />
<u>I don' know how difficult it is to include graphics, but I think perhaps a graphic here be helpful. Personally, anything I read with just equations is immediately disregarded in my mind. Or perhaps if you could give an example here (or a link to an example) that could help. Would the Deutsch algorithm we discuss in class be applicable?</u>
 
== Prime Factorization ==