SlideShare a Scribd company logo
1 of 47
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

More Related Content

What's hot

Multi PPT - Agent Actor-Critic for Mixed Cooperative-Competitive Environments
Multi PPT - Agent Actor-Critic for Mixed Cooperative-Competitive EnvironmentsMulti PPT - Agent Actor-Critic for Mixed Cooperative-Competitive Environments
Multi PPT - Agent Actor-Critic for Mixed Cooperative-Competitive EnvironmentsJisang Yoon
 
It Probably Works - QCon 2015
It Probably Works - QCon 2015It Probably Works - QCon 2015
It Probably Works - QCon 2015Fastly
 
Dueling Network Architectures for Deep Reinforcement Learning
Dueling Network Architectures for Deep Reinforcement LearningDueling Network Architectures for Deep Reinforcement Learning
Dueling Network Architectures for Deep Reinforcement LearningYoonho Lee
 
A practical Introduction to Machine(s) Learning
A practical Introduction to Machine(s) LearningA practical Introduction to Machine(s) Learning
A practical Introduction to Machine(s) LearningBruno Gonçalves
 
Continuous control with deep reinforcement learning (DDPG)
Continuous control with deep reinforcement learning (DDPG)Continuous control with deep reinforcement learning (DDPG)
Continuous control with deep reinforcement learning (DDPG)Taehoon Kim
 
Neural Networks: Least Mean Square (LSM) Algorithm
Neural Networks: Least Mean Square (LSM) AlgorithmNeural Networks: Least Mean Square (LSM) Algorithm
Neural Networks: Least Mean Square (LSM) AlgorithmMostafa G. M. Mostafa
 
Size measurement and estimation
Size measurement and estimationSize measurement and estimation
Size measurement and estimationLouis A. Poulin
 
Machine(s) Learning with Neural Networks
Machine(s) Learning with Neural NetworksMachine(s) Learning with Neural Networks
Machine(s) Learning with Neural NetworksBruno Gonçalves
 
Tamara G. Kolda, Distinguished Member of Technical Staff, Sandia National Lab...
Tamara G. Kolda, Distinguished Member of Technical Staff, Sandia National Lab...Tamara G. Kolda, Distinguished Member of Technical Staff, Sandia National Lab...
Tamara G. Kolda, Distinguished Member of Technical Staff, Sandia National Lab...MLconf
 
[Vldb 2013] skyline operator on anti correlated distributions
[Vldb 2013] skyline operator on anti correlated distributions[Vldb 2013] skyline operator on anti correlated distributions
[Vldb 2013] skyline operator on anti correlated distributionsWooSung Choi
 
HistoSketch: Fast Similarity-Preserving Sketching of Streaming Histograms wit...
HistoSketch: Fast Similarity-Preserving Sketching of Streaming Histograms wit...HistoSketch: Fast Similarity-Preserving Sketching of Streaming Histograms wit...
HistoSketch: Fast Similarity-Preserving Sketching of Streaming Histograms wit...eXascale Infolab
 
Hanjun Dai, PhD Student, School of Computational Science and Engineering, Geo...
Hanjun Dai, PhD Student, School of Computational Science and Engineering, Geo...Hanjun Dai, PhD Student, School of Computational Science and Engineering, Geo...
Hanjun Dai, PhD Student, School of Computational Science and Engineering, Geo...MLconf
 
is anyone_interest_in_auto-encoding_variational-bayes
is anyone_interest_in_auto-encoding_variational-bayesis anyone_interest_in_auto-encoding_variational-bayes
is anyone_interest_in_auto-encoding_variational-bayesNAVER Engineering
 
Towards Exascale Computing with Fortran 2015
Towards Exascale Computing with Fortran 2015Towards Exascale Computing with Fortran 2015
Towards Exascale Computing with Fortran 2015inside-BigData.com
 
Sorting algorithms
Sorting algorithmsSorting algorithms
Sorting algorithmssonugupta
 
Problem Understanding through Landscape Theory
Problem Understanding through Landscape TheoryProblem Understanding through Landscape Theory
Problem Understanding through Landscape Theoryjfrchicanog
 
DDPG algortihm for angry birds
DDPG algortihm for angry birdsDDPG algortihm for angry birds
DDPG algortihm for angry birdsWangyu Han
 
Ashfaq Munshi, ML7 Fellow, Pepperdata
Ashfaq Munshi, ML7 Fellow, PepperdataAshfaq Munshi, ML7 Fellow, Pepperdata
Ashfaq Munshi, ML7 Fellow, PepperdataMLconf
 

What's hot (19)

Multi PPT - Agent Actor-Critic for Mixed Cooperative-Competitive Environments
Multi PPT - Agent Actor-Critic for Mixed Cooperative-Competitive EnvironmentsMulti PPT - Agent Actor-Critic for Mixed Cooperative-Competitive Environments
Multi PPT - Agent Actor-Critic for Mixed Cooperative-Competitive Environments
 
It Probably Works - QCon 2015
It Probably Works - QCon 2015It Probably Works - QCon 2015
It Probably Works - QCon 2015
 
Dueling Network Architectures for Deep Reinforcement Learning
Dueling Network Architectures for Deep Reinforcement LearningDueling Network Architectures for Deep Reinforcement Learning
Dueling Network Architectures for Deep Reinforcement Learning
 
A practical Introduction to Machine(s) Learning
A practical Introduction to Machine(s) LearningA practical Introduction to Machine(s) Learning
A practical Introduction to Machine(s) Learning
 
Continuous control with deep reinforcement learning (DDPG)
Continuous control with deep reinforcement learning (DDPG)Continuous control with deep reinforcement learning (DDPG)
Continuous control with deep reinforcement learning (DDPG)
 
Neural Networks: Least Mean Square (LSM) Algorithm
Neural Networks: Least Mean Square (LSM) AlgorithmNeural Networks: Least Mean Square (LSM) Algorithm
Neural Networks: Least Mean Square (LSM) Algorithm
 
Size measurement and estimation
Size measurement and estimationSize measurement and estimation
Size measurement and estimation
 
Machine(s) Learning with Neural Networks
Machine(s) Learning with Neural NetworksMachine(s) Learning with Neural Networks
Machine(s) Learning with Neural Networks
 
Tamara G. Kolda, Distinguished Member of Technical Staff, Sandia National Lab...
Tamara G. Kolda, Distinguished Member of Technical Staff, Sandia National Lab...Tamara G. Kolda, Distinguished Member of Technical Staff, Sandia National Lab...
Tamara G. Kolda, Distinguished Member of Technical Staff, Sandia National Lab...
 
[Vldb 2013] skyline operator on anti correlated distributions
[Vldb 2013] skyline operator on anti correlated distributions[Vldb 2013] skyline operator on anti correlated distributions
[Vldb 2013] skyline operator on anti correlated distributions
 
HistoSketch: Fast Similarity-Preserving Sketching of Streaming Histograms wit...
HistoSketch: Fast Similarity-Preserving Sketching of Streaming Histograms wit...HistoSketch: Fast Similarity-Preserving Sketching of Streaming Histograms wit...
HistoSketch: Fast Similarity-Preserving Sketching of Streaming Histograms wit...
 
Hanjun Dai, PhD Student, School of Computational Science and Engineering, Geo...
Hanjun Dai, PhD Student, School of Computational Science and Engineering, Geo...Hanjun Dai, PhD Student, School of Computational Science and Engineering, Geo...
Hanjun Dai, PhD Student, School of Computational Science and Engineering, Geo...
 
is anyone_interest_in_auto-encoding_variational-bayes
is anyone_interest_in_auto-encoding_variational-bayesis anyone_interest_in_auto-encoding_variational-bayes
is anyone_interest_in_auto-encoding_variational-bayes
 
Nitish 007
Nitish 007Nitish 007
Nitish 007
 
Towards Exascale Computing with Fortran 2015
Towards Exascale Computing with Fortran 2015Towards Exascale Computing with Fortran 2015
Towards Exascale Computing with Fortran 2015
 
Sorting algorithms
Sorting algorithmsSorting algorithms
Sorting algorithms
 
Problem Understanding through Landscape Theory
Problem Understanding through Landscape TheoryProblem Understanding through Landscape Theory
Problem Understanding through Landscape Theory
 
DDPG algortihm for angry birds
DDPG algortihm for angry birdsDDPG algortihm for angry birds
DDPG algortihm for angry birds
 
Ashfaq Munshi, ML7 Fellow, Pepperdata
Ashfaq Munshi, ML7 Fellow, PepperdataAshfaq Munshi, ML7 Fellow, Pepperdata
Ashfaq Munshi, ML7 Fellow, Pepperdata
 

Similar to Quantum Computing Programming Basics for Software Engineers

Optimization Techniques.pdf
Optimization Techniques.pdfOptimization Techniques.pdf
Optimization Techniques.pdfanandsimple
 
Top school in noida
Top school in noidaTop school in noida
Top school in noidaEdhole.com
 
Image Interpolation Techniques with Optical and Digital Zoom Concepts
Image Interpolation Techniques with Optical and Digital Zoom ConceptsImage Interpolation Techniques with Optical and Digital Zoom Concepts
Image Interpolation Techniques with Optical and Digital Zoom Conceptsmmjalbiaty
 
CONSTRUCTING A FUZZY NETWORK INTRUSION CLASSIFIER BASED ON DIFFERENTIAL EVOLU...
CONSTRUCTING A FUZZY NETWORK INTRUSION CLASSIFIER BASED ON DIFFERENTIAL EVOLU...CONSTRUCTING A FUZZY NETWORK INTRUSION CLASSIFIER BASED ON DIFFERENTIAL EVOLU...
CONSTRUCTING A FUZZY NETWORK INTRUSION CLASSIFIER BASED ON DIFFERENTIAL EVOLU...IJCNCJournal
 
Deep learning study 2
Deep learning study 2Deep learning study 2
Deep learning study 2San Kim
 
Lecture 2: Stochastic Hydrology
Lecture 2: Stochastic Hydrology Lecture 2: Stochastic Hydrology
Lecture 2: Stochastic Hydrology Amro Elfeki
 
Introduction to Neural Networks and Deep Learning from Scratch
Introduction to Neural Networks and Deep Learning from ScratchIntroduction to Neural Networks and Deep Learning from Scratch
Introduction to Neural Networks and Deep Learning from ScratchAhmed BESBES
 
Probability Collectives
Probability CollectivesProbability Collectives
Probability Collectiveskulk0003
 
Paper Study: Melding the data decision pipeline
Paper Study: Melding the data decision pipelinePaper Study: Melding the data decision pipeline
Paper Study: Melding the data decision pipelineChenYiHuang5
 
Introduction of Xgboost
Introduction of XgboostIntroduction of Xgboost
Introduction of Xgboostmichiaki ito
 
Non Deterministic and Deterministic Problems
Non Deterministic and Deterministic Problems Non Deterministic and Deterministic Problems
Non Deterministic and Deterministic Problems Scandala Tamang
 
Variational Auto Encoder and the Math Behind
Variational Auto Encoder and the Math BehindVariational Auto Encoder and the Math Behind
Variational Auto Encoder and the Math BehindVarun Reddy
 
ADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHM
ADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHMADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHM
ADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHMWireilla
 
ADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHM
ADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHMADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHM
ADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHMijfls
 
Abductive commonsense reasoning
Abductive commonsense reasoningAbductive commonsense reasoning
Abductive commonsense reasoningSan Kim
 
机器学习Adaboost
机器学习Adaboost机器学习Adaboost
机器学习AdaboostShocky1
 

Similar to Quantum Computing Programming Basics for Software Engineers (20)

Optimization Techniques.pdf
Optimization Techniques.pdfOptimization Techniques.pdf
Optimization Techniques.pdf
 
Session 4 .pdf
Session 4 .pdfSession 4 .pdf
Session 4 .pdf
 
Top school in noida
Top school in noidaTop school in noida
Top school in noida
 
Image Interpolation Techniques with Optical and Digital Zoom Concepts
Image Interpolation Techniques with Optical and Digital Zoom ConceptsImage Interpolation Techniques with Optical and Digital Zoom Concepts
Image Interpolation Techniques with Optical and Digital Zoom Concepts
 
CONSTRUCTING A FUZZY NETWORK INTRUSION CLASSIFIER BASED ON DIFFERENTIAL EVOLU...
CONSTRUCTING A FUZZY NETWORK INTRUSION CLASSIFIER BASED ON DIFFERENTIAL EVOLU...CONSTRUCTING A FUZZY NETWORK INTRUSION CLASSIFIER BASED ON DIFFERENTIAL EVOLU...
CONSTRUCTING A FUZZY NETWORK INTRUSION CLASSIFIER BASED ON DIFFERENTIAL EVOLU...
 
Deep learning study 2
Deep learning study 2Deep learning study 2
Deep learning study 2
 
Lecture 2: Stochastic Hydrology
Lecture 2: Stochastic Hydrology Lecture 2: Stochastic Hydrology
Lecture 2: Stochastic Hydrology
 
Introduction to Neural Networks and Deep Learning from Scratch
Introduction to Neural Networks and Deep Learning from ScratchIntroduction to Neural Networks and Deep Learning from Scratch
Introduction to Neural Networks and Deep Learning from Scratch
 
Mit6 094 iap10_lec03
Mit6 094 iap10_lec03Mit6 094 iap10_lec03
Mit6 094 iap10_lec03
 
Neural network
Neural networkNeural network
Neural network
 
Probability Collectives
Probability CollectivesProbability Collectives
Probability Collectives
 
Paper Study: Melding the data decision pipeline
Paper Study: Melding the data decision pipelinePaper Study: Melding the data decision pipeline
Paper Study: Melding the data decision pipeline
 
Introduction of Xgboost
Introduction of XgboostIntroduction of Xgboost
Introduction of Xgboost
 
Non Deterministic and Deterministic Problems
Non Deterministic and Deterministic Problems Non Deterministic and Deterministic Problems
Non Deterministic and Deterministic Problems
 
Variational Auto Encoder and the Math Behind
Variational Auto Encoder and the Math BehindVariational Auto Encoder and the Math Behind
Variational Auto Encoder and the Math Behind
 
ADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHM
ADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHMADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHM
ADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHM
 
ADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHM
ADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHMADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHM
ADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHM
 
Abductive commonsense reasoning
Abductive commonsense reasoningAbductive commonsense reasoning
Abductive commonsense reasoning
 
MUMS: Transition & SPUQ Workshop - Practical Bayesian Optimization for Urban ...
MUMS: Transition & SPUQ Workshop - Practical Bayesian Optimization for Urban ...MUMS: Transition & SPUQ Workshop - Practical Bayesian Optimization for Urban ...
MUMS: Transition & SPUQ Workshop - Practical Bayesian Optimization for Urban ...
 
机器学习Adaboost
机器学习Adaboost机器学习Adaboost
机器学习Adaboost
 

Recently uploaded

Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 

Recently uploaded (20)

Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 

Quantum Computing Programming Basics for Software Engineers

  • 1. Quantum Computing for Software Engineer (a.k.a Programmer) Kyunam Cho {mystous@gmail.com} Image by Michal Jarmoluk from Pixabay
  • 2. 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
  • 3. Image by kropekk_pl from Pixabay
  • 4. I don’t talk about… Quantum mechanics Principle of Qubit History about Quantum Computing Cancel icon by Creative Design from the Noun Project
  • 5. I don’t talk about… 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 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
  • 9. HW/SW Stack in Quantum Computer Qiskit / Cirq Quantum Gate Devices(Quantum computer) More Abstraction Layer Image by 3mikey5000 from Pixabay
  • 10. 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
  • 11. 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
  • 12. More about Quantum computing programming https://youtu.be/MqTHQKij5Kg https://youtu.be/EuAjgGHqJ5A https://youtu.be/MEijrZgRlRQ
  • 13. Why Quantum Computing? Image by Pete Linforth from Pixabay
  • 14. • 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
  • 15. Let’s begin! Image by Eric Perlin from Pixabay
  • 17. Quantum Computing Programming in One Word! Image by Gerd Altmann from Pixabay Using basis vector combination
  • 18. Image by kropekk_pl from Pixabay
  • 19. 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
  • 20. Image by kropekk_pl from Pixabay
  • 21. 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
  • 22. 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
  • 23. 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!
  • 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 is a difference? Image by Arek Socha from Pixabay
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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?
  • 32. 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];
  • 33. 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!
  • 34. 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!
  • 35. 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!
  • 36. 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
  • 37. 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
  • 38. So, what is a difference? Image by Arek Socha from Pixabay
  • 39. 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
  • 40. 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.
  • 41. 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
  • 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 is half done! Image by DarkmoonArt_de from Pixabay
  • 44. Next time… What is that? Which Framework is needed? What kinds of trend at now? With Shor’s algorithm
  • 45. 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
  • 46. 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.
  • 47. Image by Ryan McGuire from Pixabay