Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
高専カンファレンス新春 in 大阪
Search
Hiroki Nomura
January 12, 2019
Programming
0
910
高専カンファレンス新春 in 大阪
『2019-01-12 高専カンファレンス新春 in 大阪』で発表した資料です。
Hiroki Nomura
January 12, 2019
Tweet
Share
More Decks by Hiroki Nomura
See All by Hiroki Nomura
blockchain.pdf
nomunomu0504
0
130
Other Decks in Programming
See All in Programming
Laravel Boost 超入門
fire_arlo
3
220
Rancher と Terraform
fufuhu
2
550
Swift Updates - Learn Languages 2025
koher
2
490
Android 16 × Jetpack Composeで縦書きテキストエディタを作ろう / Vertical Text Editor with Compose on Android 16
cc4966
2
260
知っているようで知らない"rails new"の世界 / The World of "rails new" You Think You Know but Don't
luccafort
PRO
1
180
FindyにおけるTakumi活用と脆弱性管理のこれから
rvirus0817
0
530
アセットのコンパイルについて
ojun9
0
130
AI Coding Agentのセキュリティリスク:PRの自己承認とメルカリの対策
s3h
0
230
楽して成果を出すためのセルフリソース管理
clipnote
0
180
複雑なドメインに挑む.pdf
yukisakai1225
5
1.2k
速いWebフレームワークを作る
yusukebe
5
1.7k
print("Hello, World")
eddie
2
530
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
Embracing the Ebb and Flow
colly
87
4.8k
Context Engineering - Making Every Token Count
addyosmani
3
54
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
What's in a price? How to price your products and services
michaelherold
246
12k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Statistics for Hackers
jakevdp
799
220k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
850
Transcript
৽य़ɾߴઐΧϯϑΝ in େࡕ 2019/01/12 kosenconf-123shinshun ͷΉͷΉʢ@nomunomu0504ʣ
ڈʹҾ͖ଓ͖… • ڈͷ৽य़ΧϯϑΝʹࢀՃͯ͠·ͨ͠ • @John_bardera ͔Β࣮ߦҕһΛ͍·ͨ͠ ʢϞϯΤφϑϧηοτʣ
πΠʔτ͢Δͱ͖ʹ… #ͷΉͷΉ
ࠓͷൃද༰ • ྔࢠίϯϐϡʔλʹ͍ͭͯ - ྔࢠίϯϐϡʔλͱݹయతίϯϐϡʔλͱͷҧ͍ - ͲͷΑ͏ʹԋࢉΛߦͳ͍ͬͯΔͷ͔
ࠓͷൃද༰ ྔࢠίϯϐϡʔλΛઐͱ͞Ε͍ͯΔํ • ྔࢠίϯϐϡʔλʹ͍ͭͯ - ྔࢠίϯϐϡʔλͱݹయతίϯϐϡʔλͱͷҧ͍ - ͲͷΑ͏ʹԋࢉΛߦͳ͍ͬͯΔͷ͔
ࠓͷൃද༰ ྔࢠɾྔࢠྗֶઐ߈ͷํ • ྔࢠίϯϐϡʔλʹ͍ͭͯ - ྔࢠίϯϐϡʔλͱݹయతίϯϐϡʔλͱͷҧ͍ - ͲͷΑ͏ʹԋࢉΛߦͳ͍ͬͯΔͷ͔ ྔࢠίϯϐϡʔλΛઐͱ͞Ε͍ͯΔํ
ࠓͷൃද༰ • ྔࢠίϯϐϡʔλʹ͍ͭͯ - ྔࢠίϯϐϡʔλͱݹయతίϯϐϡʔλͱͷҧ͍ - ͲͷΑ͏ʹԋࢉΛߦͳ͍ͬͯΔͷ͔ ྔࢠɾྔࢠྗֶઐ߈ͷํ ྔࢠίϯϐϡʔλΛઐͱ͞Ε͍ͯΔํ झຯൣғͰֶश͍ͯ͠Δ༰Ͱ͢
ʢߨٛҰऔ͍ͬͯ·ͤΜɻऔΓͨͯ͘ߴઐʹ͋Γ·ͤΜʣ ؒҧ͍͕͋Γ·ͨ͠Β%.ૹ͍͚ͬͯͨͩΔͱ ϓϨθϯλʔتͼ·͢
ྔࢠίϯϐϡʔλͱ • ྔࢠྗֶͷੑ࣭ΛͬͯߴʹܭࢉͰ͖Δίϯϐϡʔλ • ͋ΔఔͷαΠζͷྔࢠίϯϐϡʔλ͕͋Ε ʹΑͬͯεύίϯΑΓߴʹܭࢉͰ͖Δ • ྔࢠίϯϐϡʔλͷ࣮ݱํ๏̎छྨ͋Δ • ྔࢠήʔτํࣜ
• ྔࢠΞχʔϦϯάํࣜ > ࠓճઆ໌͢Δͷʰྔࢠήʔτํࣜʱ
ྔࢠίϯϐϡʔλͰߴܭࢉͰ͖Δ͜ͱ 1. ܥ • Ҽղ • ࢄର • ϕϧํఔࣜ •
Ψε • ߹ಉθʔλؔ 2. زԿܥ • ݁ͼෆมྔ • Persistent Homology 3. ઢܗܥ • ߦྻͷྦྷ • ߦྻͷ֊ ͳͲ
1. ܥ • Ҽղ • ࢄର • ϕϧํఔࣜ • Ψε
• ߹ಉθʔλؔ ޙͰ࣮ࡍʹ ಋग़ͬͯΈ·͢ʂ ྔࢠίϯϐϡʔλͰߴܭࢉͰ͖Δ͜ͱ 2. زԿܥ • ݁ͼෆมྔ • Persistent Homology 3. ઢܗܥ • ߦྻͷྦྷ • ߦྻͷ֊ ͳͲ
Ͳͷ͙Β͍ૣ͘ܭࢉͰ͖Δͷ͔ • nϏοτͷҼղ • ݹయతίϯϐϡʔλ(Ұൠମ;Δ͍๏) (e1.9(ln n) 1 3(ln ln
n) 2 3) • ྔࢠίϯϐϡʔλ(ShorΞϧΰϦζϜ) ((log n)2(log log n)(log log log n)) • 1024ϏοτͷҼղʹ͔͔Δܭࢉྔ • ݹయతίϯϐϡʔλɿ • ྔࢠίϯϐϡʔλɹɿ (10278) (1061)
• 1024ϏοτͷҼղʹ͔͔Δܭࢉྔ • ݹయతίϯϐϡʔλɿ • ྔࢠίϯϐϡʔλɹɿ Ͳͷ͙Β͍ૣ͘ܭࢉͰ͖Δͷ͔ • nϏοτͷҼղ •
ݹయతίϯϐϡʔλ(Ұൠମ;Δ͍๏) (e1.9(ln n) 1 3(ln ln n) 2 3) • ྔࢠίϯϐϡʔλ(ShorΞϧΰϦζϜ) ((log n)2(log log n)(log log log n)) (10278) (1061)
ͲͷΑ͏ͳܭࢉΛ͍ͯ͠Δͷ͔ • ݹయతίϯϐϡʔλͳΒɺ͋Δॲཧܥ͓͍ͯ ೖྗ͕ಉ͡ͳΒৗʹಉ݁͡Ռ͕ಘΒΕΔɻ • ྔࢠίϯϐϡʔλͰɺ͋Δԋࢉࢠܥʹ͓͍ͯ ೖྗ͕ಉ͡Ͱʰԋࢉ݁ՌʱҟͳΔՄೳੑ͕͋Δɻ ྔࢠίϯϐϡʔλܭࢉͷਖ਼֬͞ʢ֬ʣΛग़ྗ͢Δ
֤ίϯϐϡʔλͷ جૅԋࢉʹ͍ͭͯ
ݹయతίϯϐϡʔλͷجૅ • Β͕͍ͭར༻͍ͯ͠ΔίϯϐϡʔλΛ ʮݹయతίϯϐϡʔλʯͱݺͿ • ݹయతίϯϐϡʔλͷܭࢉ୯Ґʮbitʯ 0 ͔ 1 ͷͲͪΒ͔ͷঢ়ଶΛऔΓ͏Δɻ2ਐͰද͢
• bitͷঢ়ଶిѹͷ on/off Ͱอ࣋͞Ε͍ͯΔɻ
ݹయతίϯϐϡʔλͷԋࢉ • ཧήʔτʢAND, OR, NOTʣͰԋࢉճ࿏ΛΉ • AND, NOTήʔτͷ2छྨ (͘͠NANDήʔτͳΒ1छྨ) ͕͋Ε
ҙͷཧճ࿏Λ࣮ݱͰ͖Δ
ྔࢠίϯϐϡʔλͷجૅ • ྔࢠྗֶతͳঢ়ଶͷॏͶ߹ΘͤͰฒྻੑΛ࣮ݱ͢Δ • ܭࢉ୯ҐʮQubit (Quantum bit) ʯ ˠ 0
͔ 1 ʹͳΔʮ֬Λอ࣋ʯͯ͠ԋࢉΛߦ͏ • ྔࢠϏοτʮϒϥɾέοτه๏ʯͰදݱ͞ΕΔ جຊతʹྔࢠྗֶʮγϡϨσΟϯΨʔܗࣜʢඍੵʣʯ͕ͩίϯϐϡʔλͰ ѻ͏ͨΊʮσΟϥοΫܗࣜʢߦྻʣʯΛ༻͍Δ ԋࢉͰʮςϯιϧੵʯΛଟ༻͢Δ
ྔࢠίϯϐϡʔλͷԋࢉʢςϯιϧੵʣ • ߦྻੵ ( 0 0 0 1) ⋅ (
1 0 0 1) = ( 0 0 0 1) ֤ߦྻͷཁૉಉ࢜ͷԋࢉʢੵɾʣ ͦΕͧΕͷߦྻͷαΠζ n×m, m×p Ͱͳ͚ΕͳΒͳ͍ ԋࢉޙͷߦྻͷαΠζ n×p ͱͳΔ
• ςϯιϧੵ ཁૉͱߦྻͷԋࢉ ͦΕͧΕͷߦྻͷαΠζΛ n×m, p×q ͱ͢Ε ԋࢉޙͷߦྻαΠζnp × mq
ͱͳΔ ςϯιϧੵߦྻͷ֦ு ( 0 0 0 1) ⊗ ( 1 0 0 1) = 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 ྔࢠίϯϐϡʔλͷԋࢉʢςϯιϧੵʣ
ཁૉͱߦྻͷԋࢉ ͦΕͧΕͷߦྻͷαΠζΛ n×m, p×q ͱ͢Ε ԋࢉޙͷߦྻαΠζnp × mq ͱͳΔ ςϯιϧੵߦྻͷ֦ு
ྔࢠίϯϐϡʔλͷԋࢉʢςϯιϧੵʣ • ςϯιϧੵ ( 0 0 0 1) ⊗ ( 1 0 0 1) = 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 ⋅ ( 1 0 0 1) 0 ⋅ ( 1 0 0 1) 1 ⋅ ( 1 0 0 1) 0 ⋅ ( 1 0 0 1)
ྔࢠίϯϐϡʔλͷԋࢉʢϒϥɾέοτه๏ʣ • ϒϥɾέοτه๏ α, β Λෳૉͱ͢Ε |⟩ ɿϒϥ ⟨| |A⟩
= ( α β) ⟨A| = (α* β*) ɹɹɿɹͷෳૉڞ X* X γ, δ Λෳૉͱ͢Ε |B⟩ = ( γ δ) ⟨B| = (γ* δ*) ɿέοτ
ྔࢠίϯϐϡʔλͷԋࢉʢϒϥɾέοτه๏ͷܭࢉྫʣ |A⟩ = ( α β) ⟨A| = (α* β*)
⟨B| = (γ* δ*) |B⟩ = ( γ δ)
ྔࢠίϯϐϡʔλͷԋࢉʢϒϥɾέοτه๏ͷܭࢉྫʣ ⟨A|B⟩ = (α* β*) ( γ δ) = α*γ
+ β*δ ← ߦྻA, Bͷੵ |A⟩ = ( α β) ⟨A| = (α* β*) ⟨B| = (γ* δ*) |B⟩ = ( γ δ)
ྔࢠίϯϐϡʔλͷԋࢉʢϒϥɾέοτه๏ͷܭࢉྫʣ |A⟩ ⊗ |B⟩ = ( α β) ⊗ (
γ δ) = αγ αδ βγ βδ |A⟩ ⊗ ⟨B| = ( α β) ⊗ (γ* δ*) = ( αγ* αδ* βγ* βδ*) ⟨A|B⟩ = (α* β*) ( γ δ) = α*γ + β*δ ← ߦྻA, Bͷੵ |A⟩ = ( α β) ⟨A| = (α* β*) ⟨B| = (γ* δ*) |B⟩ = ( γ δ)
ྔࢠίϯϐϡʔλͷԋࢉʢϒϥɾέοτه๏ͷܭࢉྫʣ |A⟩ ⊗ |B⟩ = ( α β) ⊗ (
γ δ) = αγ αδ βγ βδ |A⟩ ⊗ ⟨B| = ( α β) ⊗ (γ* δ*) = ( αγ* αδ* βγ* βδ*) ⟨A|B⟩ = (α* β*) ( γ δ) = α*γ + β*δ ← ߦྻA, Bͷੵ |A⟩ = ( α β) ⟨A| = (α* β*) ⟨B| = (γ* δ*) |B⟩ = ( γ δ) ߦྻA, Bͷςϯιϧੵ ˠ ԋࢉࢠʢߦྻʣ
ྔࢠίϯϐϡʔλͷԋࢉʢϒϥɾέοτه๏ͷܭࢉྫʣ |B⟩ ⟨B| ͷ Τϧϛʔτڞͱ͍͏ ߦྻA, Bͷςϯιϧੵ ˠ ԋࢉࢠʢߦྻʣ
|A⟩ ⊗ |B⟩ = ( α β) ⊗ ( γ δ) = αγ αδ βγ βδ |A⟩ ⊗ ⟨B| = ( α β) ⊗ (γ* δ*) = ( αγ* αδ* βγ* βδ*) ⟨A|B⟩ = (α* β*) ( γ δ) = α*γ + β*δ ← ߦྻA, Bͷੵ |A⟩ = ( α β) ⟨A| = (α* β*) ⟨B| = (γ* δ*) |B⟩ = ( γ δ)
• ςϯιϧੵͷলུ ෳͷςϯιϧੵͰද͞Ε͍ͯΔϕΫτϧ·ͱΊΔ͜ͱ͕Ͱ͖Δɻ έοτɺϒϥಉ࢜লུͰ͖Δ͕ɺࠞࡏ͍ͯ͠Δͱ͖ҙ͕ඞཁ ྔࢠίϯϐϡʔλͷԋࢉʢςϯιϧੵʣ |0⟩ ⊗ |1⟩ ⊗ |1⟩
⊗ |0⟩ ⊗ |1⟩ = |0⟩|1⟩|1⟩|0⟩|1⟩ = |01101⟩ (⟨A| ⊗ ⟨B|) (|X⟩ ⊗ |Z⟩) = ⟨A|X⟩⟨B|Z⟩ ߹ʹΑͬͯςϯιϧੵΛؚΜͰͯܭࢉ݁ՌੵʹͳΔͱ͔ 1 1 2 2 1 1 2 2
• ԋࢉࢠUΛఆٛ͢Δ ྔࢠίϯϐϡʔλͷԋࢉʢΤϧϛʔτڞʣ → సஔͷෳૉڞ U = ( α β)
ԋࢉࢠUͷసஔ tU = (α β) ԋࢉࢠUͷసஔͷෳૉڞ tU* = (α* β*) ຖճɹ Λॻ͘ͷ໘ → লུه߸͋Γ·͢ tU* U† = tU* ɿUͷΤϧϛʔτڞ( ɿ μΨʔ ) U† †
• nྔࢠϏοτͷঢ়ଶɹɹ͕͋Δͱ͖ ྔࢠίϯϐϡʔλͷԋࢉʢྔࢠࢄతϑʔϦΤมʣ |j⟩ |j⟩ = 1 2n 2n−1 ∑
k=0 ei 2πkj 2n |k⟩ |j⟩ = 1 2n 2n−1 ∑ k=0 e−i 2πkj 2n |k⟩ • ٯྔࢠࢄతϑʔϦΤม
• nྔࢠϏοτͷঢ়ଶɹɹ͕͋Δͱ͖ |j⟩ |j⟩ = 1 2n 2n−1 ∑ k=0
ei 2πkj 2n |k⟩ |j⟩ = 1 2n 2n−1 ∑ k=0 e−i 2πkj 2n |k⟩ • ٯྔࢠࢄతϑʔϦΤม ྔࢠίϯϐϡʔλͷԋࢉʢྔࢠࢄతϑʔϦΤมʣ
• nྔࢠϏοτͷঢ়ଶɹɹ͕͋Δͱ͖ |j⟩ |j⟩ = 1 2n 2n−1 ∑ k=0
ei 2πkj 2n |k⟩ |j⟩ = 1 2n 2n−1 ∑ k=0 e−i 2πkj 2n |k⟩ • ٯྔࢠࢄతϑʔϦΤม ྔࢠίϯϐϡʔλͷԋࢉʢྔࢠࢄతϑʔϦΤมʣ ʂपظղੳʹ༻͍Δʂ
ྔࢠͷੑ࣭ʹ͍ͭͯ
• ࢄੑ • ෆ֬ఆੑ − ෆ֬ఆੑݪཧ( ϋΠθϯϕϧάͷݪཧ ) • ೋॏੑ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠͷੑ࣭ʳ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠͷੑ࣭ʳ • ࢄੑ ྔࢠ࿈ଓతͳΤωϧΪʔͰͳ͘ࢄతͳΤωϧΪʔΛ࣋ͭ ϚΫϩʢڊࢹతʣͰ࿈ଓతͰ͋Δ͕ɺϛΫϩʢඍࢹతʣͰಛఆͷ߹ʹࢄ తͳΤωϧΪʔ४Ґ͔࣋ͯ͠ͳ͘ͳΔ • ཻࢠ̍ݸ͕࣋ͭΤωϧΪʔ ℏω (
∵ ℏ = h 2π ) hɿϓϥϯΫఆ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠͷੑ࣭ʳ • ෆ֬ఆੑ − ෆ֬ఆੑݪཧʢϋΠθϯϕϧάͷݪཧʣ Δx ⋅ Δpx ≥ ℏ
2 ΔxɿҐஔͷෆ֬ఆੑ Δpx ɿӡಈྔͷෆ֬ఆੑ ిࢠͷӡಈྔʢʣͱҐஔΛಉ࣌ʹਖ਼֬ʹΔ͜ͱͰ͖ͳ͍ ɾӡಈྔ͕͔Εʢɹɹ = 0 ʣɺҐஔ͕ෆ໌ʢɹɹ= ∞ ʣ ɾҐஔ͕͔Εʢɹɹ = 0 ʣɺӡಈྔ͕ෆ໌ʢɹɹ = ∞ ʣ Δpx Δx Δx Δpx υΠπͷཧֶऀ ϋΠθϯϕϧάʹΑͬͯఏҊ͞Εͨ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠͷੑ࣭ʳ • ೋॏੑ − ೋॏεϦοτͷ࣮ݧ • ཻࢠͳΒεϦοτΛ௨ͬͯ ਅ͙ͬεΫϦʔϯʹͿ͔ͭΔ ͞Βཻࢠ̍ͭ̍ͭͷ͕Δ •
ͳΒεϦοτΛ௨ΔͷͰ ׯবࣶ͕εΫϦʔϯʹͰ͖Δ
ྔࢠίϯϐϡʔλͷجૅʲೋॏੑʳ • ిࢠΛೋॏεϦοτʹ௨͢ͱʁ ཻࢠͷੑ࣭͕εΫϦʔϯʹΈΒΕΔʢཻࢠͷʣ ͷੑ࣭͕εΫϦʔϯʹΈΒΕΔʢׯবࣶʣ ͲͪΒͩͱࢥ͍·͔͢ʁ
ྔࢠίϯϐϡʔλͷجૅʲೋॏੑʳ • ిࢠΛೋॏεϦοτʹ௨͢ͱʁ • ʮཻࢠͷੑ࣭ʹݟΒΕΔిࢠͷিಥͷʯ ʮͷੑ࣭ʹݟΒΕΔׯবࣶʯͷ྆ํ͕εΫϦʔϯʹΈΒΕΔ ͭ·Γʮిࢠʯ ˠʮʯͷΑ͏ʹׯব͠߹͍ ʮཻࢠʯͷΑ͏ʹεΫϦʔϯʹিಥͨ͠ͱ͍͏͜ͱʹͳΔ ʮʯͱʮཻࢠʯͷೋॏੑ
ྔࢠίϯϐϡʔλͷجૅʲೋॏੑʳ • ిࢠΛೋॏεϦοτͷલͰ؍ଌͨ͠Βʁ ʮʯͷੑ࣭͚ͩΛ͍࣋ͬͯΔͷ͔ ʮཻࢠʯͷੑ࣭͚ͩΛ͍࣋ͬͯΔͷ͔ ిࢠׂ͕͞Ε͍ͯΔͷͰͳ͍͔
ྔࢠίϯϐϡʔλͷجૅʲೋॏੑʳ • ిࢠΛೋॏεϦοτͷલͰ؍ଌͨ͠Βʁ • ʮ؍ଌʯͱ͍͏ߦҝΛߦ͏ͱʮཻࢠʯͷੑ࣭͔͠ΈΒΕͳ͔ͬͨ ˠʮ؍ଌʯΛߦ͏ͱঢ়ଶ่͕Εͯ͠·͏ ޙड़ɿʮྔࢠॏͶ߹Θͤͷঢ়ଶʯʹؔ࿈͍ͯ͠Δ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠঢ়ଶʹ͍ͭͯʳ • ྔࢠॏͶ߹Θͤঢ়ଶ • ྔࢠׯবޮՌ • ྔࢠͭΕঢ়ଶʢΤϯλϯάϧϝϯτʣ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠॏͶ߹Θͤঢ়ଶʳ • ྔࢠॏͶ߹Θͤঢ়ଶ ࢄతͳঢ়ଶ͕ࠞ͟Γ߹ͬͨঢ়ଶɻ ؍ଌʹΑͬͯͲͪΒ͔ͷঢ়ଶʹऩॖ͠ɺॏͶ߹Θͤঢ়ଶ่͕ΕΔ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠॏͶ߹Θͤঢ়ଶʳ • ྔࢠॏͶ߹Θͤঢ়ଶ ࢄతͳঢ়ଶ͕ࠞ͟Γ߹ͬͨঢ়ଶɻ ؍ଌʹΑͬͯͲͪΒ͔ͷঢ়ଶʹऩॖ͠ɺॏͶ߹Θͤঢ়ଶ่͕ΕΔ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠॏͶ߹Θͤঢ়ଶʳ |α|2 % |β|2 % |0⟩ |1⟩ α|0⟩ + β|1⟩
• ྔࢠॏͶ߹Θͤঢ়ଶ ࢄతͳঢ়ଶ͕ࠞ͟Γ߹ͬͨঢ়ଶɻ ؍ଌʹΑͬͯͲͪΒ͔ͷঢ়ଶʹऩॖ͠ɺॏͶ߹Θͤঢ়ଶ่͕ΕΔ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠॏͶ߹Θͤঢ়ଶʳ ϧϏϯͷᆵ • ྔࢠॏͶ߹Θͤঢ়ଶ ࢄతͳঢ়ଶ͕ࠞ͟Γ߹ͬͨঢ়ଶɻ ؍ଌʹΑͬͯͲͪΒ͔ͷঢ়ଶʹऩॖ͠ɺॏͶ߹Θͤঢ়ଶ่͕ΕΔ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠׯবޮՌʳ • ྔࢠׯবޮՌ ৭ʑͳঢ়ଶ͕ڧΊ߹ͬͨΓऑΊ߹ͬͨΓ͢Δ͜ͱ ͷׯবͱࣅͨΑ͏ͳݱ
ྔࢠίϯϐϡʔλͷجૅʲྔࢠͭΕঢ়ଶʳ • ྔࢠͭΕঢ়ଶʢΤϯλϯάϧϝϯτʣ ৭ʑͳঢ়ଶؒͰ૬ޓ͕ؔ͋ΓͰ͖ͳ͍ ˠ ʰγϡϨσΟϯΨʔͷೣͷύϥυοΫεʱ͕༗໊ |0⟩ |1⟩ ෳ߹ܥͷঢ়ଶΛςϯιϧੵΛ ༻͍ͯද͢͜ͱ͕Ͱ͖ͳ͍࣌
ྔࢠͭΕঢ়ଶͱ͍͏ |0⟩ ⊗ |1⟩ ≠ |0⟩ + |1⟩
ྔࢠίϯϐϡʔλͷجૅʲྔࢠͭΕঢ়ଶʳ • ྔࢠͭΕঢ়ଶʢΤϯλϯάϧϝϯτʣ ৭ʑͳঢ়ଶؒͰ૬ޓ͕ؔ͋ΓͰ͖ͳ͍ ˠ ʰγϡϨσΟϯΨʔͷೣͷύϥυοΫεʱ͕༗໊ |0⟩ |1⟩ |0⟩ ⊗
|1⟩ ≠ |0⟩ + |1⟩ ͲΏ͜ͱʁ ෳ߹ܥͷঢ়ଶΛςϯιϧੵΛ ༻͍ͯද͢͜ͱ͕Ͱ͖ͳ͍࣌ ྔࢠͭΕঢ়ଶͱ͍͏
ྔࢠίϯϐϡʔλͷجૅʲྔࢠͭΕঢ়ଶʳ • Τϯλϯάϧϝϯτঢ়ଶͱඇΤϯλϯάϧϝϯτঢ়ଶ ࣍ͷ̎ͭͷঢ়ଶA, Bʢ ɹɹɹɹ ɹʣΛߟ͑Δ |ψA ⟩, |ψB
⟩ |ψA ⟩ = 1 2 (|00⟩ + |01⟩) |ψB ⟩ = 1 2 (|00⟩ + |11⟩)
ྔࢠίϯϐϡʔλͷجૅʲྔࢠͭΕঢ়ଶʳ → ঢ়ଶAςϯιϧੵͰද͢͜ͱ͕Ͱ͖Δ͕ঢ়ଶBͰ͖ͳ͍ • Τϯλϯάϧϝϯτঢ়ଶͱඇΤϯλϯάϧϝϯτঢ়ଶ ࣍ͷ̎ͭͷঢ়ଶA, Bʢ ɹɹɹɹ ɹʣΛߟ͑Δ |ψA
⟩, |ψB ⟩ |ψA ⟩ = 1 2 (|00⟩ + |01⟩) |ψB ⟩ = 1 2 (|00⟩ + |11⟩)
ྔࢠίϯϐϡʔλͷجૅʲྔࢠͭΕঢ়ଶʳ |ψA ⟩ = |0⟩ ⊗ 1 2 (|0⟩ +
|1⟩) • Τϯλϯάϧϝϯτঢ়ଶͱඇΤϯλϯάϧϝϯτঢ়ଶ → ঢ়ଶAςϯιϧੵͰද͢͜ͱ͕Ͱ͖Δ͕ঢ়ଶBͰ͖ͳ͍ ࣍ͷ̎ͭͷঢ়ଶA, Bʢ ɹɹɹɹ ɹʣΛߟ͑Δ |ψA ⟩, |ψB ⟩ |ψA ⟩ = 1 2 (|00⟩ + |01⟩) |ψB ⟩ = 1 2 (|00⟩ + |11⟩)
ྔࢠίϯϐϡʔλͷجૅʲྔࢠͭΕঢ়ଶʳ ঢ়ଶAɿඇΤϯλϯάϧϝϯτঢ়ଶʢͭΕঢ়ଶʹͳ͍ʣ ঢ়ଶBɿɹΤϯλϯάϧϝϯτঢ়ଶʢͭΕঢ়ଶʹ͋Δʣ • Τϯλϯάϧϝϯτঢ়ଶͱඇΤϯλϯάϧϝϯτঢ়ଶ |ψA ⟩ = |0⟩ ⊗
1 2 (|0⟩ + |1⟩) → ঢ়ଶAςϯιϧੵͰද͢͜ͱ͕Ͱ͖Δ͕ঢ়ଶBͰ͖ͳ͍ ࣍ͷ̎ͭͷঢ়ଶA, Bʢ ɹɹɹɹ ɹʣΛߟ͑Δ |ψA ⟩, |ψB ⟩ |ψA ⟩ = 1 2 (|00⟩ + |01⟩) |ψB ⟩ = 1 2 (|00⟩ + |11⟩)
͔͜͜Βຊ൪ ౖ౭ͷֶ & ྔࢠྗֶ
࣌ؒͷ߹্ ༷ʑͳ݅ͷղઆলུ͠·͢ ✨ ϒϩάͰߦؒຒΊ͠·͢ ✨
1. ܥ • Ҽղ • ࢄର • ϕϧํఔࣜ • Ψε
• ߹ಉθʔλؔ ͜ΕΓ·͢ ྔࢠίϯϐϡʔλͰߴܭࢉͰ͖Δ͜ͱ 2. زԿܥ • ݁ͼෆมྔ • Persistent Homology 3. ઢܗܥ • ߦྻͷྦྷ • ߦྻͷ֊ ͳͲ
• ֬తΞϧΰϦζϜʢෳճ࣮ߦ͢Εɺߴ֬ͰͨΔʣ 1. NΛҼղ͢Δͱ͖ɺࣗવ p < N ΛϥϯμϜʹܾΊΔ 2. gcd(p,
N)Λܭࢉ͢Δ → ݁Ռ͕ > 1 ͳΒɺඇࣗ໌ͳNͷҼ 3. ɹɹɹɹɹɹɹɹɹͷपظTΛݟ͚ͭΔʢྔࢠΞϧΰϦζϜʣ 1. T͕حͳΒɺ1.͔ΒΓ͢ 2. ɹɹɹɹɹɹɹɹɹ ͳΒɺ1.͔ΒΓ͢ 4. ɹɹɹɹɹɹɹ͕ඇࣗ໌ͳNͷҼ → ShorͷΞϧΰϦζϜʹΑΔҼղ fN (x) = px mod N pT 2 + 1 ≡ 0 mod N gcd(pT 2 ± 1,N) pT ≡ 1 mod N ⇔ (pT 2 + 1)(pT 2 − 1) ≡ 0 mod N ≠ 0 ≠ 0 p, Nͷ࠷େެ ҐൃݟΞϧΰϦζϜ ɾҐਪఆ ɾҐൃݟ ɾؔपظൃݟ ݁Ռ͕ͳΒ ʰޓ͍ʹૉʱͰ͋Δ
• N = 57ͱ͢Δɻp = 5ͩͬͨͱ͖ 1. ɹɹɹɹɹɹɹͱͳΔΑ͏ͳɹɹɹɹΛબͿ ɹɹɹɹɹɹɹɹ ΑΓ
2. ྔࢠϏοτΛ࡞͢Δɿ 3. ྔࢠϑʔϦΤมΛ࡞༻ͤ͞Δɿ ShorͷΞϧΰϦζϜʹΑΔҼղ N2 ≤ q < 2N2 q = 2k 572 ≤ q < 2 ⋅ 572 q = 212 = 4096 1 q q−1 ∑ x=0 |x⟩ ⊗ |f(x)⟩ ( 1 q ) 2 q−1 ∑ y=0 q−1 ∑ x=0 ei 2πxy q |y⟩ ⊗ |f(x)⟩ 4. ɹͷӈϏοτΛଌఆ͠ɺ ࠨϏοτΛଌఆ͢Δͱ࣍ͷ֬Ͱ yΛಘΒΕΔ ⊗ 1 q⌊q r ⌋ ⌊ q r ⌋−1 ∑ x=0,f(x)=z ei 2πrxy q 2 f57 (x) = 5x mod 57
• N = 57ͱ͢Δɻp = 5ͩͬͨͱ͖ 1. ɹɹɹɹɹɹɹͱͳΔΑ͏ͳɹɹɹɹΛબͿ ɹɹɹɹɹɹɹɹ ΑΓ
2. ྔࢠϏοτΛ࡞͢Δɿ 3. ྔࢠϑʔϦΤมΛ࡞༻ͤ͞Δɿ ShorͷΞϧΰϦζϜʹΑΔҼղ N2 ≤ q < 2N2 q = 2k 572 ≤ q < 2 ⋅ 572 q = 212 = 4096 1 q q−1 ∑ x=0 |x⟩ ⊗ |f(x)⟩ ( 1 q ) 2 q−1 ∑ y=0 q−1 ∑ x=0 ei 2πxy q |y⟩ ⊗ |f(x)⟩ 4. ɹͷӈϏοτΛଌఆ͠ɺ ࠨϏοτΛଌఆ͢Δͱ࣍ͷ֬Ͱ yΛಘΒΕΔ ⊗ 1 q⌊q r ⌋ ⌊ q r ⌋−1 ∑ x=0,f(x)=z ei 2πrxy q 2 f57 (x) = 5x mod 57
2. ྔࢠϏοτͷ࡞ ShorͷΞϧΰϦζϜʹΑΔҼղ 1 q q−1 ∑ x=0 |x⟩ ⊗
|f(x)⟩ = 1 q (|0⟩ ⊗ |50⟩ + |1⟩ ⊗ |51⟩ + |2⟩ ⊗ |52⟩ + . . . +|18⟩ ⊗ |50⟩ + |19⟩ ⊗ |51⟩ + |20⟩ ⊗ |52⟩ + . . . +|4086⟩ ⊗ |50⟩ + |4087⟩ ⊗ |51⟩ + |4088⟩ ⊗ |52⟩ + . . . + |4095⟩ ⊗ |59⟩)
ShorͷΞϧΰϦζϜʹΑΔҼղ 1 q q−1 ∑ x=0 |x⟩ ⊗ |f(x)⟩ =
1 q (|0⟩ ⊗ |50⟩ + |1⟩ ⊗ |51⟩ + |2⟩ ⊗ |52⟩ + . . . +|18⟩ ⊗ |50⟩ + |19⟩ ⊗ |51⟩ + |20⟩ ⊗ |52⟩ + . . . +|4086⟩ ⊗ |50⟩ + |4087⟩ ⊗ |51⟩ + |4088⟩ ⊗ |52⟩ + . . . + |4095⟩ ⊗ |59⟩) 2. ྔࢠϏοτͷ࡞
2. ྔࢠϏοτͷ࡞ ShorͷΞϧΰϦζϜʹΑΔҼղ 1 q q−1 ∑ x=0 |x⟩ ⊗
|f(x)⟩ = 1 q (|0⟩ ⊗ |50⟩ + |1⟩ ⊗ |51⟩ + |2⟩ ⊗ |52⟩ + . . . +|18⟩ ⊗ |50⟩ + |19⟩ ⊗ |51⟩ + |20⟩ ⊗ |52⟩ + . . . +|4086⟩ ⊗ |50⟩ + |4087⟩ ⊗ |51⟩ + |4088⟩ ⊗ |52⟩ + . . . + |4095⟩ ⊗ |59⟩) ((|0⟩ + |18⟩ + . . . + |4086⟩)|50⟩ +(|1⟩ + |19⟩ + |37⟩ + . . . + |4087⟩)|51⟩ + . . . +(|17⟩ + |35⟩ + |53⟩ + . . . + |4085⟩)|517⟩) ཧ͢Δͱ…
ShorͷΞϧΰϦζϜʹΑΔҼղ ((|0⟩ + |18⟩ + . . . + |4086⟩)|50⟩
+(|1⟩ + |19⟩ + |37⟩ + . . . + |4087⟩)|51⟩ + . . . 4. पظTͷಋग़ͱҼղ
Λࣔ͢ɻ͜ͷͱ͖ࠨϏοτͷ0Λআ͘ ࠷খۮ͕ʰҐʱʹͳΔɻ Αͬͯ T=18 ͱͳΔ ShorͷΞϧΰϦζϜʹΑΔҼղ ((|0⟩ + |18⟩ +
. . . + |4086⟩)|50⟩ +(|1⟩ + |19⟩ + |37⟩ + . . . + |4087⟩)|51⟩ + . . . |50⟩ = f57 (x) = 5x mod 57 = 1 4. पظTͷಋग़ͱҼղ
ShorͷΞϧΰϦζϜʹΑΔҼղ ((|0⟩ + |18⟩ + . . . + |4086⟩)|50⟩
+(|1⟩ + |19⟩ + |37⟩ + . . . + |4087⟩)|51⟩ + . . . |50⟩ = f57 (x) = 5x mod 57 = 1 gcd(pT 2 ± 1,N) ͕ඇࣗ໌ͳҼͳͷͰ… Λࣔ͢ɻ͜ͷͱ͖ࠨϏοτͷ0Λআ͘ ࠷খۮ͕ʰҐʱʹͳΔɻ Αͬͯ T=18 ͱͳΔ 4. पظTͷಋग़ͱҼղ
4. पظTͷಋग़ͱҼղ ShorͷΞϧΰϦζϜʹΑΔҼղ ((|0⟩ + |18⟩ + . . .
+ |4086⟩)|50⟩ +(|1⟩ + |19⟩ + |37⟩ + . . . + |4087⟩)|51⟩ + . . . |50⟩ = f57 (x) = 5x mod 57 = 1 gcd(518 2 + 1,57) = gcd(1953126,57) = 3 gcd(518 2 − 1,57) = gcd(1953124,57) = 19 ҼղͰ͖ͨʂ gcd(pT 2 ± 1,N) ͕ඇࣗ໌ͳҼͳͷͰ… Λࣔ͢ɻ͜ͷͱ͖ࠨϏοτͷ0Λআ͘ ࠷খۮ͕ʰҐʱʹͳΔɻ Αͬͯ T=18 ͱͳΔ
·ͱΊ • ྔࢠίϯϐϡʔλ͢ΕͱΜͰͳ͍Խ͚ ˠ ݱࡏͷPCੑೳΛӽ͑ΔͨΊʹ·ͩ·͕͔͔ͩ࣌ؒΔ • ܭࢉ݁Ռ͋͘·Ͱʰ֬ʱͰ͋Γɺ෮ܭࢉΛߦ͏ඞཁ͋Γ ˠ ܭࢉʹલճͷ֬Λ༻͍ͯܭࢉ͞ΕΔͨΊ •
Q#͍ͬͯ͏ྔࢠϓϩάϥϛϯάݴޠ͋ΔͷͰݕࡧͯ͠ΈͯͶʂ ˠ ϓϩάϥϜͰ͜ͷΞϧΰϦζϜ͕؆୯ʹ͔͚Δʂ
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ εϥΠυɾղઆ ϒϩάʹUp͠·͢ͷͰੋඇΈ͍ͯͩ͘͞ ✨