Quantum Computing for Software Engineer (a.k.a Programmer) Kyunam Cho {mystous@gmail.com} Image by Michal Jarmoluk from Pixabay
Chaos in Quantum Computing Copenhagen interpretation 𝜌 𝜈, 𝑇 𝑑𝜈 = 8𝜋ℎ 𝑐 3 𝜈 3 𝑑𝜈 exp ℎ𝜈/𝑘 𝐵 𝑇 − 1 Planck formula − ℏ2 2𝑚 𝛻2 Ψ 𝑟, 𝑡 + 𝑉Ψ 𝑟, 𝑡 = 𝑖ℏ 𝜕 𝜕𝑡 Ψ(𝑟, 𝑡) Schrödinger equation Image by Gerd Altmann from Pixabay Image by Gerd Altmann from Pixabay Heisenberg's uncertainty principle Superposition Superposition Qubit
Image by kropekk_pl from Pixabay
I don’t talk about… Quantum mechanics Principle of Qubit History about Quantum Computing Cancel icon by Creative Design from the Noun Project
I don’t talk about… Quantum mechanics Principle of Qubit History about Quantum Computing Cancel icon by Creative Design from the Noun Project
I’m talking about • Programming for Quantum Computing • Which application is can be enabling on QC • What time can we start QC programming
I’m talking about • Programming for Quantum Computing • Which application is can be enabling on QC • What time can we start QC programming Today
HW/SW Stack in Classical Computer Image by 3mikey5000 from Pixabay Application Algorithm Programming Language Assembly Language Machine Code Instruction Set Architecture Micro Architecture Gate/Registers Devices(Transistors) More Abstraction Layer Revisited from: https://cs.stackexchange.com/questions/95327/is-it-100-ok-to-say-all-software-doesnt-need-to-know-the-system-lower-than-th
HW/SW Stack in Quantum Computer Qiskit / Cirq Quantum Gate Devices(Quantum computer) More Abstraction Layer Image by 3mikey5000 from Pixabay
HW/SW Stack in Quantum Computer Qiskit / Cirq Quantum Gate Devices(Quantum computer) More Abstraction Layer Image by succo from Pixabay Superposition Superposition Image by 3mikey5000 from Pixabay
HW/SW Stack in Quantum Computer Qiskit / Cirq Quantum Gate Devices(Quantum computer) More Abstraction Layer Image by Pixaline from Pixabay Image by 3mikey5000 from Pixabay
More about Quantum computing programming https://youtu.be/MqTHQKij5Kg https://youtu.be/EuAjgGHqJ5A https://youtu.be/MEijrZgRlRQ
Why Quantum Computing? Image by Pete Linforth from Pixabay
• New computation resource and methodology → The new opportunity, Brand new market, New curious :-) • Data handling size will be a key of computational power → Handling several data concurrently with a small resource Why Quantum Computing? Image by Pete Linforth from Pixabay
Let’s begin! Image by Eric Perlin from Pixabay
I assume that you are…
Quantum Computing Programming in One Word! Image by Gerd Altmann from Pixabay Using basis vector combination
Image by kropekk_pl from Pixabay
Terms Definition Quantum Computing Classical Computing (Current Computing) Data Type (Operand) Basis vector (Norm value 1, |ψ> = α|0> + β|1>) Single data type (int, bool, char, double) Operator Linear Algebra Operator (A, Â, A†) Scala operator (+, -, *, /) Answer The probability of the results Single Result Image by Gerd Altmann from Pixabay
Image by kropekk_pl from Pixabay
More Detail Image by Gerd Altmann from Pixabay Classical Computing (Current Computing) double operand1, operand2; double answer; operand1 = 1.0; operand2 = 2.0; answer = operand1 + operand2; // answer → 3.0 answer = operand1 – operand2; // answer → -1.0 answer = operand1 * operand2; // answer → 2.0 answer = operand1 / operand2; // answer → 0.5 Data Type Operator Answer
More Detail Quantum Computing %matplotlib inline # Importing standard Qiskit libraries from qiskit import QuantumCircuit, execute, Aer, IBMQ from qiskit.visualization import * # Construct quantum circuit circ = QuantumCircuit(2,2) circ.h(0) circ.h(1) circ.cx(0, 1) circ.measure([0,1], [0,1]) # Select the QasmSimulator from the Aer provider simulator = Aer.get_backend('qasm_simulator') # Execute and get counts result = execute(circ, simulator).result() counts = result.get_counts(circ) Operator Answer Data Type 𝑞0 = 1 0 , 𝑞1 = 1 0 Image by Gerd Altmann from Pixabay
More Detail Quantum Computing %matplotlib inline # Importing standard Qiskit libraries from qiskit import QuantumCircuit, execute, Aer, IBMQ from qiskit.visualization import * # Construct quantum circuit circ = QuantumCircuit(2,2) circ.h(0) circ.h(1) circ.cx(0, 1) circ.measure([0,1], [0,1]) # Select the QasmSimulator from the Aer provider simulator = Aer.get_backend('qasm_simulator') # Execute and get counts result = execute(circ, simulator).result() counts = result.get_counts(circ) Operator Answer Data Type 𝑞0 = 1 0 , 𝑞1 = 1 0 Image by Gerd Altmann from Pixabay Abstraction!
More Detail Quantum Computing circ = QuantumCircuit(2,2) circ.h(0) circ.h(1) circ.cx(0, 1) circ.measure([0,1], [0,1]) 𝑞0 = |0 > = 1 0 , 𝑞1 = |0 > = 1 0 (𝐻 ⊗ 𝐻) |𝑞0 > ⊗ |𝑞1 > = 1 2 1 1 1 −1 1 1 1 −1 1 1 1 −1 −1 −1 −1 1 1 0 0 0 = 1 2 (|00> + |01> + |10> + |11>) = |𝑞01 > |𝑞0 > ⊗ |𝑞1 > = | 𝑞0 > < 𝑞1| = 1 1 0 0 1 0 = 1 0 0 0 CX |𝑞01> = 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 2 1 1 1 1 = 1 2 1 1 1 1 = |𝑞2> 𝑃𝑟(|00>) = < 00|𝑞2 > 2 = 1 4 , 𝑃𝑟(|01>) = < 01|𝑞2 > 2 = 1 4 , 𝑃𝑟(|10>) = < 10|𝑞2 > 2 = 1 4 , 𝑃𝑟(|11>) = < 11|𝑞2 > 2 = 1 4 Image by Gerd Altmann from Pixabay 𝐻 ⊗ 𝐻 = 1 2 1 1 1 −1 ⊗ 1 2 1 1 1 −1 = 1 2 1 1 1 −1 1 1 1 −1 1 1 1 −1 −1 −1 −1 1
More Detail Quantum Computing circ = QuantumCircuit(2,2) circ.h(0) circ.h(1) circ.cx(0, 1) circ.measure([0,1], [0,1]) 𝑞0 = |0 > = 1 0 , 𝑞1 = |0 > = 1 0 (𝐻 ⊗ 𝐻) |𝑞0 > ⊗ |𝑞1 > = 1 2 1 1 1 −1 1 1 1 −1 1 1 1 −1 −1 −1 −1 1 1 0 0 0 = 1 2 (|00> + |01> + |10> + |11>) = |𝑞01 > |𝑞0 > ⊗ |𝑞1 > = | 𝑞0 > < 𝑞1| = 1 1 0 0 1 0 = 1 0 0 0 CX |𝑞01> = 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 2 1 1 1 1 = 1 2 1 1 1 1 = |𝑞2> Image by Gerd Altmann from Pixabay 𝐻 ⊗ 𝐻 = 1 2 1 1 1 −1 ⊗ 1 2 1 1 1 −1 = 1 2 1 1 1 −1 1 1 1 −1 1 1 1 −1 −1 −1 −1 1 Answer 𝑃𝑟(|00>) = < 00|𝑞2 > 2 = 1 4 , 𝑃𝑟(|01>) = < 01|𝑞2 > 2 = 1 4 , 𝑃𝑟(|10>) = < 10|𝑞2 > 2 = 1 4 , 𝑃𝑟(|11>) = < 11|𝑞2 > 2 = 1 4
More Detail Quantum Computing circ = QuantumCircuit(2,2) circ.h(0) circ.h(1) circ.cx(0, 1) circ.measure([0,1], [0,1]) 𝑞0 = |0 > = 1 0 , 𝑞1 = |0 > = 1 0 (𝐻 ⊗ 𝐻) |𝑞0 > ⊗ |𝑞1 > = 1 2 1 1 1 −1 1 1 1 −1 1 1 1 −1 −1 −1 −1 1 1 0 0 0 = 1 2 (|00> + |01> + |10> + |11>) = |𝑞01 > |𝑞0 > ⊗ |𝑞1 > = | 𝑞0 > < 𝑞1| = 1 1 0 0 1 0 = 1 0 0 0 CX |𝑞01> = 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 2 1 1 1 1 = 1 2 1 1 1 1 = |𝑞2> Image by Gerd Altmann from Pixabay 𝐻 ⊗ 𝐻 = 1 2 1 1 1 −1 ⊗ 1 2 1 1 1 −1 = 1 2 1 1 1 −1 1 1 1 −1 1 1 1 −1 −1 −1 −1 1 Answer 𝑃𝑟(|00>) = < 00|𝑞2 > 2 = 1 4 , 𝑃𝑟(|01>) = < 01|𝑞2 > 2 = 1 4 , 𝑃𝑟(|10>) = < 10|𝑞2 > 2 = 1 4 , 𝑃𝑟(|11>) = < 11|𝑞2 > 2 = 1 4 • The Qubit shows probability of the results → Results will be changed a little bit on every trying (collapse)
So, what is a difference? Image by Arek Socha from Pixabay
Qubit vs. Vector in native programming Image by Gerd Altmann from Pixabay %matplotlib inline # Importing standard Qiskit libraries from qiskit import QuantumCircuit, execute, Aer, IBMQ from qiskit.visualization import * # Construct quantum circuit circ = QuantumCircuit(2,2) circ.h(0) circ.h(1) circ.cx(0, 1) circ.measure([0,1], [0,1]) # Select the QasmSimulator from the Aer provider simulator = Aer.get_backend('qasm_simulator') # Execute and get counts result = execute(circ, simulator).result() counts = result.get_counts(circ) Quantum Computing Classical Computing (Current Computing) Code on - https://github.com/mystous/quantumcomputing/blob/main/qubit_sim.cpp
Qubit vs. Vector in native programming Image by Gerd Altmann from Pixabay %matplotlib inline # Importing standard Qiskit libraries from qiskit import QuantumCircuit, execute, Aer, IBMQ from qiskit.visualization import * # Construct quantum circuit circ = QuantumCircuit(2,2) circ.h(0) circ.h(1) circ.cx(0, 1) circ.measure([0,1], [0,1]) # Select the QasmSimulator from the Aer provider simulator = Aer.get_backend('qasm_simulator') # Execute and get counts result = execute(circ, simulator).result() counts = result.get_counts(circ) Quantum Computing Classical Computing (Current Computing) Code on - https://github.com/mystous/quantumcomputing/blob/main/qubit_sim.cpp
Qubit vs. Vector in native programming Image by Gerd Altmann from Pixabay Quantum Computing Classical Computing (Current Computing) ‘Six states Bloch sphere.jpg’ from https://commons.wikimedia.org/wiki/File:Six_states_Bloch_sphere.jpg 2 Qubits q0 q1 256 bits q0[0] 00 q0[0] 01 q0[0] 02 q0[0] 03 q0[0] 04 q0[0] 05 q0[0] 06 q0[0] 07 q0[0] 08 q0[0] 09 q0[0] 10 q0[0] 11 q0[0] 12 q0[0] 13 q0[0] 14 q0[0] 15 q0[0] q0[0] 16 q0[0] 17 q0[0] 18 q0[0] 19 q0[0] 20 q0[0] 21 q0[0] 22 q0[0] 23 q0[0] 24 q0[0] 25 q0[0] 26 q0[0] 27 q0[0] 28 q0[0] 29 q0[0] 30 q0[0] 31 q0[0] 32 q0[0] 33 q0[0] 34 q0[0] 35 q0[0] 36 q0[0] 37 q0[0] 38 q0[0] 39 q0[0] 40 q0[0] 41 q0[0] 42 q0[0] 43 q0[0] 44 q0[0] 45 q0[0] 46 q0[0] 47 q0[0] 48 q0[0] 49 q0[0] 50 q0[0] 51 q0[0] 52 q0[0] 53 q0[0] 54 q0[0] 55 q0[0] 56 q0[0] 57 q0[0] 58 q0[0] 59 q0[0] 60 q0[0] 61 q0[0] 62 q0[0] 63 q0[1] 00 q0[1] 01 q0[1] 02 q0[1] 03 q0[1] 04 q0[1] 05 q0[1] 06 q0[1] 07 q0[1] 08 q0[1] 09 q0[1] 10 q0[1] 11 q0[1] 12 q0[1] 13 q0[1] 14 q0[1] 15 q0[1] q0[1] 16 q0[1] 17 q0[1] 18 q0[1] 19 q0[1] 20 q0[1] 21 q0[1] 22 q0[1] 23 q0[1] 24 q0[1] 25 q0[1] 26 q0[1] 27 q0[1] 28 q0[1] 29 q0[1] 30 q0[1] 31 q0[1] 32 q0[1] 33 q0[1] 34 q0[1] 35 q0[1] 36 q0[1] 37 q0[1] 38 q0[1] 39 q0[1] 40 q0[1] 41 q0[1] 42 q0[1] 43 q0[1] 44 q0[1] 45 q0[1] 46 q0[1] 47 q0[1] 48 q0[1] 49 q0[1] 50 q0[1] 51 q0[1] 52 q0[1] 53 q0[1] 54 q0[1] 55 q0[1] 56 q0[1] 57 q0[1] 58 q0[1] 59 q0[1] 60 q0[1] 61 q0[1] 62 q0[1] 63 q1[0] 00 q1[0] 01 q1[0] 02 q1[0] 03 q1[0] 04 q1[0] 05 q1[0] 06 q1[0] 07 q1[0] 08 q1[0] 09 q1[0] 10 q1[0] 11 q1[0] 12 q1[0] 13 q1[0] 14 q1[0] 15 q1[0] q1[0] 16 q1[0] 17 q1[0] 18 q1[0] 19 q1[0] 20 q1[0] 21 q1[0] 22 q1[0] 23 q1[0] 24 q1[0] 25 q1[0] 26 q1[0] 27 q1[0] 28 q1[0] 29 q1[0] 30 q1[0] 31 q1[0] 32 q1[0] 33 q1[0] 34 q1[0] 35 q1[0] 36 q1[0] 37 q1[0] 38 q1[0] 39 q1[0] 40 q1[0] 41 q1[0] 42 q1[0] 43 q1[0] 44 q1[0] 45 q1[0] 46 q1[0] 47 q1[0] 48 q1[0] 49 q1[0] 50 q1[0] 51 q1[0] 52 q1[0] 53 q1[0] 54 q1[0] 55 q1[0] 56 q1[0] 57 q1[0] 58 q1[0] 59 q1[0] 60 q1[0] 61 q1[0] 62 q1[0] 63 q1[1] 00 q1[1] 01 q1[1] 02 q1[1] 03 q1[1] 04 q1[1] 05 q1[1] 06 q1[1] 07 q1[1] 08 q1[1] 09 q1[1] 10 q1[1] 11 q1[1] 12 q1[1] 13 q1[1] 14 q1[1] 15 q1[1] q1[1] 16 q1[1] 17 q1[1] 18 q1[1] 19 q1[1] 20 q1[1] 21 q1[1] 22 q1[1] 23 q1[1] 24 q1[1] 25 q1[1] 26 q1[1] 27 q1[1] 28 q1[1] 29 q1[1] 30 q1[1] 31 q1[1] 32 q1[1] 33 q1[1] 34 q1[1] 35 q1[1] 36 q1[1] 37 q1[1] 38 q1[1] 39 q1[1] 40 q1[1] 41 q1[1] 42 q1[1] 43 q1[1] 44 q1[1] 45 q1[1] 46 q1[1] 47 q1[1] 48 q1[1] 49 q1[1] 50 q1[1] 51 q1[1] 52 q1[1] 53 q1[1] 54 q1[1] 55 q1[1] 56 q1[1] 57 q1[1] 58 q1[1] 59 q1[1] 60 q1[1] 61 q1[1] 62 q1[1] 63
Qubit vs. Vector in native programming Image by Gerd Altmann from Pixabay Quantum Computing Classical Computing (Current Computing) ‘Six states Bloch sphere.jpg’ from https://commons.wikimedia.org/wiki/File:Six_states_Bloch_sphere.jpg 2 Qubits q0 q1 256 bits q0[0] 00 q0[0] 01 q0[0] 02 q0[0] 03 q0[0] 04 q0[0] 05 q0[0] 06 q0[0] 07 q0[0] 08 q0[0] 09 q0[0] 10 q0[0] 11 q0[0] 12 q0[0] 13 q0[0] 14 q0[0] 15 q0[0] q0[0] 16 q0[0] 17 q0[0] 18 q0[0] 19 q0[0] 20 q0[0] 21 q0[0] 22 q0[0] 23 q0[0] 24 q0[0] 25 q0[0] 26 q0[0] 27 q0[0] 28 q0[0] 29 q0[0] 30 q0[0] 31 q0[0] 32 q0[0] 33 q0[0] 34 q0[0] 35 q0[0] 36 q0[0] 37 q0[0] 38 q0[0] 39 q0[0] 40 q0[0] 41 q0[0] 42 q0[0] 43 q0[0] 44 q0[0] 45 q0[0] 46 q0[0] 47 q0[0] 48 q0[0] 49 q0[0] 50 q0[0] 51 q0[0] 52 q0[0] 53 q0[0] 54 q0[0] 55 q0[0] 56 q0[0] 57 q0[0] 58 q0[0] 59 q0[0] 60 q0[0] 61 q0[0] 62 q0[0] 63 q0[1] 00 q0[1] 01 q0[1] 02 q0[1] 03 q0[1] 04 q0[1] 05 q0[1] 06 q0[1] 07 q0[1] 08 q0[1] 09 q0[1] 10 q0[1] 11 q0[1] 12 q0[1] 13 q0[1] 14 q0[1] 15 q0[1] q0[1] 16 q0[1] 17 q0[1] 18 q0[1] 19 q0[1] 20 q0[1] 21 q0[1] 22 q0[1] 23 q0[1] 24 q0[1] 25 q0[1] 26 q0[1] 27 q0[1] 28 q0[1] 29 q0[1] 30 q0[1] 31 q0[1] 32 q0[1] 33 q0[1] 34 q0[1] 35 q0[1] 36 q0[1] 37 q0[1] 38 q0[1] 39 q0[1] 40 q0[1] 41 q0[1] 42 q0[1] 43 q0[1] 44 q0[1] 45 q0[1] 46 q0[1] 47 q0[1] 48 q0[1] 49 q0[1] 50 q0[1] 51 q0[1] 52 q0[1] 53 q0[1] 54 q0[1] 55 q0[1] 56 q0[1] 57 q0[1] 58 q0[1] 59 q0[1] 60 q0[1] 61 q0[1] 62 q0[1] 63 q1[0] 00 q1[0] 01 q1[0] 02 q1[0] 03 q1[0] 04 q1[0] 05 q1[0] 06 q1[0] 07 q1[0] 08 q1[0] 09 q1[0] 10 q1[0] 11 q1[0] 12 q1[0] 13 q1[0] 14 q1[0] 15 q1[0] q1[0] 16 q1[0] 17 q1[0] 18 q1[0] 19 q1[0] 20 q1[0] 21 q1[0] 22 q1[0] 23 q1[0] 24 q1[0] 25 q1[0] 26 q1[0] 27 q1[0] 28 q1[0] 29 q1[0] 30 q1[0] 31 q1[0] 32 q1[0] 33 q1[0] 34 q1[0] 35 q1[0] 36 q1[0] 37 q1[0] 38 q1[0] 39 q1[0] 40 q1[0] 41 q1[0] 42 q1[0] 43 q1[0] 44 q1[0] 45 q1[0] 46 q1[0] 47 q1[0] 48 q1[0] 49 q1[0] 50 q1[0] 51 q1[0] 52 q1[0] 53 q1[0] 54 q1[0] 55 q1[0] 56 q1[0] 57 q1[0] 58 q1[0] 59 q1[0] 60 q1[0] 61 q1[0] 62 q1[0] 63 q1[1] 00 q1[1] 01 q1[1] 02 q1[1] 03 q1[1] 04 q1[1] 05 q1[1] 06 q1[1] 07 q1[1] 08 q1[1] 09 q1[1] 10 q1[1] 11 q1[1] 12 q1[1] 13 q1[1] 14 q1[1] 15 q1[1] q1[1] 16 q1[1] 17 q1[1] 18 q1[1] 19 q1[1] 20 q1[1] 21 q1[1] 22 q1[1] 23 q1[1] 24 q1[1] 25 q1[1] 26 q1[1] 27 q1[1] 28 q1[1] 29 q1[1] 30 q1[1] 31 q1[1] 32 q1[1] 33 q1[1] 34 q1[1] 35 q1[1] 36 q1[1] 37 q1[1] 38 q1[1] 39 q1[1] 40 q1[1] 41 q1[1] 42 q1[1] 43 q1[1] 44 q1[1] 45 q1[1] 46 q1[1] 47 q1[1] 48 q1[1] 49 q1[1] 50 q1[1] 51 q1[1] 52 q1[1] 53 q1[1] 54 q1[1] 55 q1[1] 56 q1[1] 57 q1[1] 58 q1[1] 59 q1[1] 60 q1[1] 61 q1[1] 62 q1[1] 63 Why?
Qubit vs. Vector in native programming Image by Gerd Altmann from Pixabay Quantum Computing Classical Computing (Current Computing) ‘Six states Bloch sphere.jpg’ from https://commons.wikimedia.org/wiki/File:Six_states_Bloch_sphere.jpg qubit |ψ> = α|0> + β|1> bits (vector) q[0] 00 q[0] 01 q[0] 02 q[0] 03 q[0] 04 q[0] 05 q[0] 06 q[0] 07 q[0] 08 q[0] 09 q[0] 10 q[0] 11 q[0] 12 q[0] 13 q[0] 14 q[0] 15 q[0] 16 q[0] 17 q[0] 18 q[0] 19 q[0] 20 q[0] 21 q[0] 22 q[0] 23 q[0] 24 q[0] 25 q[0] 26 q[0] 27 q[0] 28 q[0] 29 q[0] 30 q[0] 31 q[0] 32 q[0] 33 q[0] 34 q[0] 35 q[0] 36 q[0] 37 q[0] 38 q[0] 39 q[0] 40 q[0] 41 q[0] 42 q[0] 43 q[0] 44 q[0] 45 q[0] 46 q[0] 47 q[0] 48 q[0] 49 q[0] 50 q[0] 51 q[0] 52 q[0] 53 q[0] 54 q[0] 55 q[0] 56 q[0] 57 q[0] 58 q[0] 59 q[0] 60 q[0] 61 q[0] 62 q[0] 63 q[1] 00 q[1] 01 q[1] 02 q[1] 03 q[1] 04 q[1] 05 q[1] 06 q[1] 07 q[1] 08 q[1] 09 q[1] 10 q[1] 11 q[1] 12 q[1] 13 q[1] 14 q[1] 15 q[1] 16 q[1] 17 q[1] 18 q[1] 19 q[1] 20 q[1] 21 q[1] 22 q[1] 23 q[1] 24 q[1] 25 q[1] 26 q[1] 27 q[1] 28 q[1] 29 q[1] 30 q[1] 31 q[1] 32 q[1] 33 q[1] 34 q[1] 35 q[1] 36 q[1] 37 q[1] 38 q[1] 39 q[1] 40 q[1] 41 q[1] 42 q[1] 43 q[1] 44 q[1] 45 q[1] 46 q[1] 47 q[1] 48 q[1] 49 q[1] 50 q[1] 51 q[1] 52 q[1] 53 q[1] 54 q[1] 55 q[1] 56 q[1] 57 q[1] 58 q[1] 59 q[1] 60 q[1] 61 q[1] 62 q[1] 63 double q[2];
Qubit vs. Vector in native programming Image by Gerd Altmann from Pixabay Quantum Computing Classical Computing (Current Computing) To represent all kinds of value for 2048-bytes RSA 11 Qubits 4,194,304 bits Simple calculation, Not REAL!
Qubit vs. Vector in native programming Image by Gerd Altmann from Pixabay Quantum Computing Classical Computing (Current Computing) To represent all kinds of value for 2048-bytes RSA 11 Qubits 4,194,304 bits Simple calculation, Not REAL! Unpair comparison!
Qubit vs. Vector in native programming Image by Gerd Altmann from Pixabay Quantum Computing Classical Computing (Current Computing) To represent all kinds of value for 2048-bytes RSA 11 Qubits 4,194,304 bits Simple calculation, Not REAL! We don’t compare or find every single data usually. Instead of that, we use a more effective algorithm!
Qubit vs. Vector in native programming Image by Gerd Altmann from Pixabay Quantum Computing Classical Computing (Current Computing) To represent all kinds of value for 2048-bytes RSA 11 Qubits 4,194,304 bits Simple calculation, Not REAL! Therefore
Which one cost is expensive at now? Image by Gerd Altmann from Pixabay Quantum Computing Classical Computing (Current Computing) ‘Six states Bloch sphere.jpg’ from https://commons.wikimedia.org/wiki/File:Six_states_Bloch_sphere.jpg ‘Ionenfalle_-_Quantencomputer.jpg’ from https://upload.wikimedia.org/wikipedia/commons/c/cc/Ionenfalle_-_Quantencomputer.jpg qubit bits (vector) Image by Michael Dahlenburg from Pixabay
So, what is a difference? Image by Arek Socha from Pixabay
Quantum Computing Programming in One Word! Image by Gerd Altmann from Pixabay Using a brand-new algorithm based on the probability values of the elements of a basis vector BQP Bounded error, Quantum, Polynomial time
Quantum Algorithm Image by Gerd Altmann from Pixabay Shor’s algorithm S. J. Lomonaco, “A LECTURE ON SHOR’S QUANTUM FACTORING ALGORITHM VERSION 1.1,” undefined, 2000, Accessed: Jan. 23, 2021. [Online]. Available: https://www.semanticscholar.org/paper/A-LECTURE-ON-SHOR’S-QUANTUM-FACTORING-ALGORITHM-1.1-Lomonaco/bbe14fd73a8cf5795a4a50a1a71ff31bb7e0eca3. Quantum Computation Classical Computation Step 1. To choose positive integer m. ‘gcd (m,N) ≠ 1’ m is non-trivial factor of N. ‘gcd (m,N) = 1’ move to Step 2. Step 2. Use a QFT to find period P of ‘ma mod N’ Step 3. If P is an odd then move to Step 1. If is not move to Step 4. Step 4. ‘mP/2 + 1 = 0 mod N’ move to Step 1. If not move to Step 5. Step 5. ‘d = gcd(N, mP/2 - 1)’ is a non-trivial factor of N.
Quantum Computer and Classical Computer Image by 3mikey5000 from Pixabay F. Ablayev et al., “Model of a Programmable Quantum Processing Device,” Dec. 2016, Accessed: Jan. 23, 2021. [Online]. Available: https://arxiv.org/abs/1612.06322. Classical Controller Quantum Processing Unit Init Measure Quantum Memory Quantum Transistor Step 2 Step 1, 3~5
I’m talking about • Programming for Quantum Computing • Which application is can be enabling on QC • What time can we start QC programming Today
Well begun is half done! Image by DarkmoonArt_de from Pixabay
Next time… What is that? Which Framework is needed? What kinds of trend at now? With Shor’s algorithm
Caution Ideas and suggestions which are presented in this document are personal thought. Those are not related with the company which the author belongs. Image by Ryan McGuire from Pixabay
Copyright • All photos and material that are used in this ppt are copyright free version. • Every photos and material are shown with its source URL or CC direction. • If there are no source URL, those photos and material are created by myself. • Some background images inserted by Microsoft Powerpoint slide design idea.
Image by Ryan McGuire from Pixabay

Quantum Computing for app programmer

  • 1.
    Quantum Computing for SoftwareEngineer (a.k.a Programmer) Kyunam Cho {mystous@gmail.com} Image by Michal Jarmoluk from Pixabay
  • 2.
    Chaos in QuantumComputing Copenhagen interpretation 𝜌 𝜈, 𝑇 𝑑𝜈 = 8𝜋ℎ 𝑐 3 𝜈 3 𝑑𝜈 exp ℎ𝜈/𝑘 𝐵 𝑇 − 1 Planck formula − ℏ2 2𝑚 𝛻2 Ψ 𝑟, 𝑡 + 𝑉Ψ 𝑟, 𝑡 = 𝑖ℏ 𝜕 𝜕𝑡 Ψ(𝑟, 𝑡) Schrödinger equation Image by Gerd Altmann from Pixabay Image by Gerd Altmann from Pixabay Heisenberg's uncertainty principle Superposition Superposition Qubit
  • 3.
    Image by kropekk_plfrom Pixabay
  • 4.
    I don’t talkabout… Quantum mechanics Principle of Qubit History about Quantum Computing Cancel icon by Creative Design from the Noun Project
  • 5.
    I don’t talkabout… Quantum mechanics Principle of Qubit History about Quantum Computing Cancel icon by Creative Design from the Noun Project
  • 6.
    I’m talking about •Programming for Quantum Computing • Which application is can be enabling on QC • What time can we start QC programming
  • 7.
    I’m talking about •Programming for Quantum Computing • Which application is can be enabling on QC • What time can we start QC programming Today
  • 8.
    HW/SW Stack inClassical Computer Image by 3mikey5000 from Pixabay Application Algorithm Programming Language Assembly Language Machine Code Instruction Set Architecture Micro Architecture Gate/Registers Devices(Transistors) More Abstraction Layer Revisited from: https://cs.stackexchange.com/questions/95327/is-it-100-ok-to-say-all-software-doesnt-need-to-know-the-system-lower-than-th
  • 9.
    HW/SW Stack inQuantum Computer Qiskit / Cirq Quantum Gate Devices(Quantum computer) More Abstraction Layer Image by 3mikey5000 from Pixabay
  • 10.
    HW/SW Stack inQuantum Computer Qiskit / Cirq Quantum Gate Devices(Quantum computer) More Abstraction Layer Image by succo from Pixabay Superposition Superposition Image by 3mikey5000 from Pixabay
  • 11.
    HW/SW Stack inQuantum Computer Qiskit / Cirq Quantum Gate Devices(Quantum computer) More Abstraction Layer Image by Pixaline from Pixabay Image by 3mikey5000 from Pixabay
  • 12.
    More about Quantumcomputing programming https://youtu.be/MqTHQKij5Kg https://youtu.be/EuAjgGHqJ5A https://youtu.be/MEijrZgRlRQ
  • 13.
    Why Quantum Computing? Imageby Pete Linforth from Pixabay
  • 14.
    • New computationresource and methodology → The new opportunity, Brand new market, New curious :-) • Data handling size will be a key of computational power → Handling several data concurrently with a small resource Why Quantum Computing? Image by Pete Linforth from Pixabay
  • 15.
    Let’s begin! Image byEric Perlin from Pixabay
  • 16.
  • 17.
    Quantum Computing Programmingin One Word! Image by Gerd Altmann from Pixabay Using basis vector combination
  • 18.
    Image by kropekk_plfrom Pixabay
  • 19.
    Terms Definition Quantum ComputingClassical Computing (Current Computing) Data Type (Operand) Basis vector (Norm value 1, |ψ> = α|0> + β|1>) Single data type (int, bool, char, double) Operator Linear Algebra Operator (A, Â, A†) Scala operator (+, -, *, /) Answer The probability of the results Single Result Image by Gerd Altmann from Pixabay
  • 20.
    Image by kropekk_plfrom Pixabay
  • 21.
    More Detail Image byGerd Altmann from Pixabay Classical Computing (Current Computing) double operand1, operand2; double answer; operand1 = 1.0; operand2 = 2.0; answer = operand1 + operand2; // answer → 3.0 answer = operand1 – operand2; // answer → -1.0 answer = operand1 * operand2; // answer → 2.0 answer = operand1 / operand2; // answer → 0.5 Data Type Operator Answer
  • 22.
    More Detail Quantum Computing %matplotlibinline # Importing standard Qiskit libraries from qiskit import QuantumCircuit, execute, Aer, IBMQ from qiskit.visualization import * # Construct quantum circuit circ = QuantumCircuit(2,2) circ.h(0) circ.h(1) circ.cx(0, 1) circ.measure([0,1], [0,1]) # Select the QasmSimulator from the Aer provider simulator = Aer.get_backend('qasm_simulator') # Execute and get counts result = execute(circ, simulator).result() counts = result.get_counts(circ) Operator Answer Data Type 𝑞0 = 1 0 , 𝑞1 = 1 0 Image by Gerd Altmann from Pixabay
  • 23.
    More Detail Quantum Computing %matplotlibinline # Importing standard Qiskit libraries from qiskit import QuantumCircuit, execute, Aer, IBMQ from qiskit.visualization import * # Construct quantum circuit circ = QuantumCircuit(2,2) circ.h(0) circ.h(1) circ.cx(0, 1) circ.measure([0,1], [0,1]) # Select the QasmSimulator from the Aer provider simulator = Aer.get_backend('qasm_simulator') # Execute and get counts result = execute(circ, simulator).result() counts = result.get_counts(circ) Operator Answer Data Type 𝑞0 = 1 0 , 𝑞1 = 1 0 Image by Gerd Altmann from Pixabay Abstraction!
  • 24.
    More Detail Quantum Computing circ= QuantumCircuit(2,2) circ.h(0) circ.h(1) circ.cx(0, 1) circ.measure([0,1], [0,1]) 𝑞0 = |0 > = 1 0 , 𝑞1 = |0 > = 1 0 (𝐻 ⊗ 𝐻) |𝑞0 > ⊗ |𝑞1 > = 1 2 1 1 1 −1 1 1 1 −1 1 1 1 −1 −1 −1 −1 1 1 0 0 0 = 1 2 (|00> + |01> + |10> + |11>) = |𝑞01 > |𝑞0 > ⊗ |𝑞1 > = | 𝑞0 > < 𝑞1| = 1 1 0 0 1 0 = 1 0 0 0 CX |𝑞01> = 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 2 1 1 1 1 = 1 2 1 1 1 1 = |𝑞2> 𝑃𝑟(|00>) = < 00|𝑞2 > 2 = 1 4 , 𝑃𝑟(|01>) = < 01|𝑞2 > 2 = 1 4 , 𝑃𝑟(|10>) = < 10|𝑞2 > 2 = 1 4 , 𝑃𝑟(|11>) = < 11|𝑞2 > 2 = 1 4 Image by Gerd Altmann from Pixabay 𝐻 ⊗ 𝐻 = 1 2 1 1 1 −1 ⊗ 1 2 1 1 1 −1 = 1 2 1 1 1 −1 1 1 1 −1 1 1 1 −1 −1 −1 −1 1
  • 25.
    More Detail Quantum Computing circ= QuantumCircuit(2,2) circ.h(0) circ.h(1) circ.cx(0, 1) circ.measure([0,1], [0,1]) 𝑞0 = |0 > = 1 0 , 𝑞1 = |0 > = 1 0 (𝐻 ⊗ 𝐻) |𝑞0 > ⊗ |𝑞1 > = 1 2 1 1 1 −1 1 1 1 −1 1 1 1 −1 −1 −1 −1 1 1 0 0 0 = 1 2 (|00> + |01> + |10> + |11>) = |𝑞01 > |𝑞0 > ⊗ |𝑞1 > = | 𝑞0 > < 𝑞1| = 1 1 0 0 1 0 = 1 0 0 0 CX |𝑞01> = 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 2 1 1 1 1 = 1 2 1 1 1 1 = |𝑞2> Image by Gerd Altmann from Pixabay 𝐻 ⊗ 𝐻 = 1 2 1 1 1 −1 ⊗ 1 2 1 1 1 −1 = 1 2 1 1 1 −1 1 1 1 −1 1 1 1 −1 −1 −1 −1 1 Answer 𝑃𝑟(|00>) = < 00|𝑞2 > 2 = 1 4 , 𝑃𝑟(|01>) = < 01|𝑞2 > 2 = 1 4 , 𝑃𝑟(|10>) = < 10|𝑞2 > 2 = 1 4 , 𝑃𝑟(|11>) = < 11|𝑞2 > 2 = 1 4
  • 26.
    More Detail Quantum Computing circ= QuantumCircuit(2,2) circ.h(0) circ.h(1) circ.cx(0, 1) circ.measure([0,1], [0,1]) 𝑞0 = |0 > = 1 0 , 𝑞1 = |0 > = 1 0 (𝐻 ⊗ 𝐻) |𝑞0 > ⊗ |𝑞1 > = 1 2 1 1 1 −1 1 1 1 −1 1 1 1 −1 −1 −1 −1 1 1 0 0 0 = 1 2 (|00> + |01> + |10> + |11>) = |𝑞01 > |𝑞0 > ⊗ |𝑞1 > = | 𝑞0 > < 𝑞1| = 1 1 0 0 1 0 = 1 0 0 0 CX |𝑞01> = 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 2 1 1 1 1 = 1 2 1 1 1 1 = |𝑞2> Image by Gerd Altmann from Pixabay 𝐻 ⊗ 𝐻 = 1 2 1 1 1 −1 ⊗ 1 2 1 1 1 −1 = 1 2 1 1 1 −1 1 1 1 −1 1 1 1 −1 −1 −1 −1 1 Answer 𝑃𝑟(|00>) = < 00|𝑞2 > 2 = 1 4 , 𝑃𝑟(|01>) = < 01|𝑞2 > 2 = 1 4 , 𝑃𝑟(|10>) = < 10|𝑞2 > 2 = 1 4 , 𝑃𝑟(|11>) = < 11|𝑞2 > 2 = 1 4 • The Qubit shows probability of the results → Results will be changed a little bit on every trying (collapse)
  • 27.
    So, what isa difference? Image by Arek Socha from Pixabay
  • 28.
    Qubit vs. Vectorin native programming Image by Gerd Altmann from Pixabay %matplotlib inline # Importing standard Qiskit libraries from qiskit import QuantumCircuit, execute, Aer, IBMQ from qiskit.visualization import * # Construct quantum circuit circ = QuantumCircuit(2,2) circ.h(0) circ.h(1) circ.cx(0, 1) circ.measure([0,1], [0,1]) # Select the QasmSimulator from the Aer provider simulator = Aer.get_backend('qasm_simulator') # Execute and get counts result = execute(circ, simulator).result() counts = result.get_counts(circ) Quantum Computing Classical Computing (Current Computing) Code on - https://github.com/mystous/quantumcomputing/blob/main/qubit_sim.cpp
  • 29.
    Qubit vs. Vectorin native programming Image by Gerd Altmann from Pixabay %matplotlib inline # Importing standard Qiskit libraries from qiskit import QuantumCircuit, execute, Aer, IBMQ from qiskit.visualization import * # Construct quantum circuit circ = QuantumCircuit(2,2) circ.h(0) circ.h(1) circ.cx(0, 1) circ.measure([0,1], [0,1]) # Select the QasmSimulator from the Aer provider simulator = Aer.get_backend('qasm_simulator') # Execute and get counts result = execute(circ, simulator).result() counts = result.get_counts(circ) Quantum Computing Classical Computing (Current Computing) Code on - https://github.com/mystous/quantumcomputing/blob/main/qubit_sim.cpp
  • 30.
    Qubit vs. Vectorin native programming Image by Gerd Altmann from Pixabay Quantum Computing Classical Computing (Current Computing) ‘Six states Bloch sphere.jpg’ from https://commons.wikimedia.org/wiki/File:Six_states_Bloch_sphere.jpg 2 Qubits q0 q1 256 bits q0[0] 00 q0[0] 01 q0[0] 02 q0[0] 03 q0[0] 04 q0[0] 05 q0[0] 06 q0[0] 07 q0[0] 08 q0[0] 09 q0[0] 10 q0[0] 11 q0[0] 12 q0[0] 13 q0[0] 14 q0[0] 15 q0[0] q0[0] 16 q0[0] 17 q0[0] 18 q0[0] 19 q0[0] 20 q0[0] 21 q0[0] 22 q0[0] 23 q0[0] 24 q0[0] 25 q0[0] 26 q0[0] 27 q0[0] 28 q0[0] 29 q0[0] 30 q0[0] 31 q0[0] 32 q0[0] 33 q0[0] 34 q0[0] 35 q0[0] 36 q0[0] 37 q0[0] 38 q0[0] 39 q0[0] 40 q0[0] 41 q0[0] 42 q0[0] 43 q0[0] 44 q0[0] 45 q0[0] 46 q0[0] 47 q0[0] 48 q0[0] 49 q0[0] 50 q0[0] 51 q0[0] 52 q0[0] 53 q0[0] 54 q0[0] 55 q0[0] 56 q0[0] 57 q0[0] 58 q0[0] 59 q0[0] 60 q0[0] 61 q0[0] 62 q0[0] 63 q0[1] 00 q0[1] 01 q0[1] 02 q0[1] 03 q0[1] 04 q0[1] 05 q0[1] 06 q0[1] 07 q0[1] 08 q0[1] 09 q0[1] 10 q0[1] 11 q0[1] 12 q0[1] 13 q0[1] 14 q0[1] 15 q0[1] q0[1] 16 q0[1] 17 q0[1] 18 q0[1] 19 q0[1] 20 q0[1] 21 q0[1] 22 q0[1] 23 q0[1] 24 q0[1] 25 q0[1] 26 q0[1] 27 q0[1] 28 q0[1] 29 q0[1] 30 q0[1] 31 q0[1] 32 q0[1] 33 q0[1] 34 q0[1] 35 q0[1] 36 q0[1] 37 q0[1] 38 q0[1] 39 q0[1] 40 q0[1] 41 q0[1] 42 q0[1] 43 q0[1] 44 q0[1] 45 q0[1] 46 q0[1] 47 q0[1] 48 q0[1] 49 q0[1] 50 q0[1] 51 q0[1] 52 q0[1] 53 q0[1] 54 q0[1] 55 q0[1] 56 q0[1] 57 q0[1] 58 q0[1] 59 q0[1] 60 q0[1] 61 q0[1] 62 q0[1] 63 q1[0] 00 q1[0] 01 q1[0] 02 q1[0] 03 q1[0] 04 q1[0] 05 q1[0] 06 q1[0] 07 q1[0] 08 q1[0] 09 q1[0] 10 q1[0] 11 q1[0] 12 q1[0] 13 q1[0] 14 q1[0] 15 q1[0] q1[0] 16 q1[0] 17 q1[0] 18 q1[0] 19 q1[0] 20 q1[0] 21 q1[0] 22 q1[0] 23 q1[0] 24 q1[0] 25 q1[0] 26 q1[0] 27 q1[0] 28 q1[0] 29 q1[0] 30 q1[0] 31 q1[0] 32 q1[0] 33 q1[0] 34 q1[0] 35 q1[0] 36 q1[0] 37 q1[0] 38 q1[0] 39 q1[0] 40 q1[0] 41 q1[0] 42 q1[0] 43 q1[0] 44 q1[0] 45 q1[0] 46 q1[0] 47 q1[0] 48 q1[0] 49 q1[0] 50 q1[0] 51 q1[0] 52 q1[0] 53 q1[0] 54 q1[0] 55 q1[0] 56 q1[0] 57 q1[0] 58 q1[0] 59 q1[0] 60 q1[0] 61 q1[0] 62 q1[0] 63 q1[1] 00 q1[1] 01 q1[1] 02 q1[1] 03 q1[1] 04 q1[1] 05 q1[1] 06 q1[1] 07 q1[1] 08 q1[1] 09 q1[1] 10 q1[1] 11 q1[1] 12 q1[1] 13 q1[1] 14 q1[1] 15 q1[1] q1[1] 16 q1[1] 17 q1[1] 18 q1[1] 19 q1[1] 20 q1[1] 21 q1[1] 22 q1[1] 23 q1[1] 24 q1[1] 25 q1[1] 26 q1[1] 27 q1[1] 28 q1[1] 29 q1[1] 30 q1[1] 31 q1[1] 32 q1[1] 33 q1[1] 34 q1[1] 35 q1[1] 36 q1[1] 37 q1[1] 38 q1[1] 39 q1[1] 40 q1[1] 41 q1[1] 42 q1[1] 43 q1[1] 44 q1[1] 45 q1[1] 46 q1[1] 47 q1[1] 48 q1[1] 49 q1[1] 50 q1[1] 51 q1[1] 52 q1[1] 53 q1[1] 54 q1[1] 55 q1[1] 56 q1[1] 57 q1[1] 58 q1[1] 59 q1[1] 60 q1[1] 61 q1[1] 62 q1[1] 63
  • 31.
    Qubit vs. Vectorin native programming Image by Gerd Altmann from Pixabay Quantum Computing Classical Computing (Current Computing) ‘Six states Bloch sphere.jpg’ from https://commons.wikimedia.org/wiki/File:Six_states_Bloch_sphere.jpg 2 Qubits q0 q1 256 bits q0[0] 00 q0[0] 01 q0[0] 02 q0[0] 03 q0[0] 04 q0[0] 05 q0[0] 06 q0[0] 07 q0[0] 08 q0[0] 09 q0[0] 10 q0[0] 11 q0[0] 12 q0[0] 13 q0[0] 14 q0[0] 15 q0[0] q0[0] 16 q0[0] 17 q0[0] 18 q0[0] 19 q0[0] 20 q0[0] 21 q0[0] 22 q0[0] 23 q0[0] 24 q0[0] 25 q0[0] 26 q0[0] 27 q0[0] 28 q0[0] 29 q0[0] 30 q0[0] 31 q0[0] 32 q0[0] 33 q0[0] 34 q0[0] 35 q0[0] 36 q0[0] 37 q0[0] 38 q0[0] 39 q0[0] 40 q0[0] 41 q0[0] 42 q0[0] 43 q0[0] 44 q0[0] 45 q0[0] 46 q0[0] 47 q0[0] 48 q0[0] 49 q0[0] 50 q0[0] 51 q0[0] 52 q0[0] 53 q0[0] 54 q0[0] 55 q0[0] 56 q0[0] 57 q0[0] 58 q0[0] 59 q0[0] 60 q0[0] 61 q0[0] 62 q0[0] 63 q0[1] 00 q0[1] 01 q0[1] 02 q0[1] 03 q0[1] 04 q0[1] 05 q0[1] 06 q0[1] 07 q0[1] 08 q0[1] 09 q0[1] 10 q0[1] 11 q0[1] 12 q0[1] 13 q0[1] 14 q0[1] 15 q0[1] q0[1] 16 q0[1] 17 q0[1] 18 q0[1] 19 q0[1] 20 q0[1] 21 q0[1] 22 q0[1] 23 q0[1] 24 q0[1] 25 q0[1] 26 q0[1] 27 q0[1] 28 q0[1] 29 q0[1] 30 q0[1] 31 q0[1] 32 q0[1] 33 q0[1] 34 q0[1] 35 q0[1] 36 q0[1] 37 q0[1] 38 q0[1] 39 q0[1] 40 q0[1] 41 q0[1] 42 q0[1] 43 q0[1] 44 q0[1] 45 q0[1] 46 q0[1] 47 q0[1] 48 q0[1] 49 q0[1] 50 q0[1] 51 q0[1] 52 q0[1] 53 q0[1] 54 q0[1] 55 q0[1] 56 q0[1] 57 q0[1] 58 q0[1] 59 q0[1] 60 q0[1] 61 q0[1] 62 q0[1] 63 q1[0] 00 q1[0] 01 q1[0] 02 q1[0] 03 q1[0] 04 q1[0] 05 q1[0] 06 q1[0] 07 q1[0] 08 q1[0] 09 q1[0] 10 q1[0] 11 q1[0] 12 q1[0] 13 q1[0] 14 q1[0] 15 q1[0] q1[0] 16 q1[0] 17 q1[0] 18 q1[0] 19 q1[0] 20 q1[0] 21 q1[0] 22 q1[0] 23 q1[0] 24 q1[0] 25 q1[0] 26 q1[0] 27 q1[0] 28 q1[0] 29 q1[0] 30 q1[0] 31 q1[0] 32 q1[0] 33 q1[0] 34 q1[0] 35 q1[0] 36 q1[0] 37 q1[0] 38 q1[0] 39 q1[0] 40 q1[0] 41 q1[0] 42 q1[0] 43 q1[0] 44 q1[0] 45 q1[0] 46 q1[0] 47 q1[0] 48 q1[0] 49 q1[0] 50 q1[0] 51 q1[0] 52 q1[0] 53 q1[0] 54 q1[0] 55 q1[0] 56 q1[0] 57 q1[0] 58 q1[0] 59 q1[0] 60 q1[0] 61 q1[0] 62 q1[0] 63 q1[1] 00 q1[1] 01 q1[1] 02 q1[1] 03 q1[1] 04 q1[1] 05 q1[1] 06 q1[1] 07 q1[1] 08 q1[1] 09 q1[1] 10 q1[1] 11 q1[1] 12 q1[1] 13 q1[1] 14 q1[1] 15 q1[1] q1[1] 16 q1[1] 17 q1[1] 18 q1[1] 19 q1[1] 20 q1[1] 21 q1[1] 22 q1[1] 23 q1[1] 24 q1[1] 25 q1[1] 26 q1[1] 27 q1[1] 28 q1[1] 29 q1[1] 30 q1[1] 31 q1[1] 32 q1[1] 33 q1[1] 34 q1[1] 35 q1[1] 36 q1[1] 37 q1[1] 38 q1[1] 39 q1[1] 40 q1[1] 41 q1[1] 42 q1[1] 43 q1[1] 44 q1[1] 45 q1[1] 46 q1[1] 47 q1[1] 48 q1[1] 49 q1[1] 50 q1[1] 51 q1[1] 52 q1[1] 53 q1[1] 54 q1[1] 55 q1[1] 56 q1[1] 57 q1[1] 58 q1[1] 59 q1[1] 60 q1[1] 61 q1[1] 62 q1[1] 63 Why?
  • 32.
    Qubit vs. Vectorin native programming Image by Gerd Altmann from Pixabay Quantum Computing Classical Computing (Current Computing) ‘Six states Bloch sphere.jpg’ from https://commons.wikimedia.org/wiki/File:Six_states_Bloch_sphere.jpg qubit |ψ> = α|0> + β|1> bits (vector) q[0] 00 q[0] 01 q[0] 02 q[0] 03 q[0] 04 q[0] 05 q[0] 06 q[0] 07 q[0] 08 q[0] 09 q[0] 10 q[0] 11 q[0] 12 q[0] 13 q[0] 14 q[0] 15 q[0] 16 q[0] 17 q[0] 18 q[0] 19 q[0] 20 q[0] 21 q[0] 22 q[0] 23 q[0] 24 q[0] 25 q[0] 26 q[0] 27 q[0] 28 q[0] 29 q[0] 30 q[0] 31 q[0] 32 q[0] 33 q[0] 34 q[0] 35 q[0] 36 q[0] 37 q[0] 38 q[0] 39 q[0] 40 q[0] 41 q[0] 42 q[0] 43 q[0] 44 q[0] 45 q[0] 46 q[0] 47 q[0] 48 q[0] 49 q[0] 50 q[0] 51 q[0] 52 q[0] 53 q[0] 54 q[0] 55 q[0] 56 q[0] 57 q[0] 58 q[0] 59 q[0] 60 q[0] 61 q[0] 62 q[0] 63 q[1] 00 q[1] 01 q[1] 02 q[1] 03 q[1] 04 q[1] 05 q[1] 06 q[1] 07 q[1] 08 q[1] 09 q[1] 10 q[1] 11 q[1] 12 q[1] 13 q[1] 14 q[1] 15 q[1] 16 q[1] 17 q[1] 18 q[1] 19 q[1] 20 q[1] 21 q[1] 22 q[1] 23 q[1] 24 q[1] 25 q[1] 26 q[1] 27 q[1] 28 q[1] 29 q[1] 30 q[1] 31 q[1] 32 q[1] 33 q[1] 34 q[1] 35 q[1] 36 q[1] 37 q[1] 38 q[1] 39 q[1] 40 q[1] 41 q[1] 42 q[1] 43 q[1] 44 q[1] 45 q[1] 46 q[1] 47 q[1] 48 q[1] 49 q[1] 50 q[1] 51 q[1] 52 q[1] 53 q[1] 54 q[1] 55 q[1] 56 q[1] 57 q[1] 58 q[1] 59 q[1] 60 q[1] 61 q[1] 62 q[1] 63 double q[2];
  • 33.
    Qubit vs. Vectorin native programming Image by Gerd Altmann from Pixabay Quantum Computing Classical Computing (Current Computing) To represent all kinds of value for 2048-bytes RSA 11 Qubits 4,194,304 bits Simple calculation, Not REAL!
  • 34.
    Qubit vs. Vectorin native programming Image by Gerd Altmann from Pixabay Quantum Computing Classical Computing (Current Computing) To represent all kinds of value for 2048-bytes RSA 11 Qubits 4,194,304 bits Simple calculation, Not REAL! Unpair comparison!
  • 35.
    Qubit vs. Vectorin native programming Image by Gerd Altmann from Pixabay Quantum Computing Classical Computing (Current Computing) To represent all kinds of value for 2048-bytes RSA 11 Qubits 4,194,304 bits Simple calculation, Not REAL! We don’t compare or find every single data usually. Instead of that, we use a more effective algorithm!
  • 36.
    Qubit vs. Vectorin native programming Image by Gerd Altmann from Pixabay Quantum Computing Classical Computing (Current Computing) To represent all kinds of value for 2048-bytes RSA 11 Qubits 4,194,304 bits Simple calculation, Not REAL! Therefore
  • 37.
    Which one costis expensive at now? Image by Gerd Altmann from Pixabay Quantum Computing Classical Computing (Current Computing) ‘Six states Bloch sphere.jpg’ from https://commons.wikimedia.org/wiki/File:Six_states_Bloch_sphere.jpg ‘Ionenfalle_-_Quantencomputer.jpg’ from https://upload.wikimedia.org/wikipedia/commons/c/cc/Ionenfalle_-_Quantencomputer.jpg qubit bits (vector) Image by Michael Dahlenburg from Pixabay
  • 38.
    So, what isa difference? Image by Arek Socha from Pixabay
  • 39.
    Quantum Computing Programmingin One Word! Image by Gerd Altmann from Pixabay Using a brand-new algorithm based on the probability values of the elements of a basis vector BQP Bounded error, Quantum, Polynomial time
  • 40.
    Quantum Algorithm Image byGerd Altmann from Pixabay Shor’s algorithm S. J. Lomonaco, “A LECTURE ON SHOR’S QUANTUM FACTORING ALGORITHM VERSION 1.1,” undefined, 2000, Accessed: Jan. 23, 2021. [Online]. Available: https://www.semanticscholar.org/paper/A-LECTURE-ON-SHOR’S-QUANTUM-FACTORING-ALGORITHM-1.1-Lomonaco/bbe14fd73a8cf5795a4a50a1a71ff31bb7e0eca3. Quantum Computation Classical Computation Step 1. To choose positive integer m. ‘gcd (m,N) ≠ 1’ m is non-trivial factor of N. ‘gcd (m,N) = 1’ move to Step 2. Step 2. Use a QFT to find period P of ‘ma mod N’ Step 3. If P is an odd then move to Step 1. If is not move to Step 4. Step 4. ‘mP/2 + 1 = 0 mod N’ move to Step 1. If not move to Step 5. Step 5. ‘d = gcd(N, mP/2 - 1)’ is a non-trivial factor of N.
  • 41.
    Quantum Computer andClassical Computer Image by 3mikey5000 from Pixabay F. Ablayev et al., “Model of a Programmable Quantum Processing Device,” Dec. 2016, Accessed: Jan. 23, 2021. [Online]. Available: https://arxiv.org/abs/1612.06322. Classical Controller Quantum Processing Unit Init Measure Quantum Memory Quantum Transistor Step 2 Step 1, 3~5
  • 42.
    I’m talking about •Programming for Quantum Computing • Which application is can be enabling on QC • What time can we start QC programming Today
  • 43.
    Well begun ishalf done! Image by DarkmoonArt_de from Pixabay
  • 44.
    Next time… What isthat? Which Framework is needed? What kinds of trend at now? With Shor’s algorithm
  • 45.
    Caution Ideas and suggestionswhich are presented in this document are personal thought. Those are not related with the company which the author belongs. Image by Ryan McGuire from Pixabay
  • 46.
    Copyright • All photosand material that are used in this ppt are copyright free version. • Every photos and material are shown with its source URL or CC direction. • If there are no source URL, those photos and material are created by myself. • Some background images inserted by Microsoft Powerpoint slide design idea.
  • 47.
    Image by RyanMcGuire from Pixabay