ãããããéåéçºããŒã«ã®ããã±ãŒãžã§ãã
Quantum Development Kitã®ãªãªãŒã¹ã«ã€ããŠåŠã³ãããããã¡ããã¡ãã¯ãŒã«ã«èããããšæã£ãã®ã§ãã...ãããŠãéåååŠã«ã€ããŠã»ãšãã©äœãç¥ããªãããšãæãåºããŸããã ããããããã¯å€§äžå€«ã§ãã 30ååŸããã¥ãŒããããéãåãããéåãšã³ã¿ã³ã°ã«ã¡ã³ãã«ã€ããŠååãªç¥èãåŸãããæåã®ããã°ã©ã ãäœæããããã«éèŠãªããšãšããŠããããäœãããã®ããååã«çè§£ã§ããããã«ãªããŸãã

ãµã€ã¯ã«ããã®èšäºïŒ
- éåã³ã³ãã¥ãŒãã£ã³ã°ãšåå¿è
åãQïŒ
- éåã³ã³ãã¥ãŒãã£ã³ã°ã®ç޹ä»
- éååè·¯ãšã²ãŒã-å
¥éã³ãŒã¹
- éåã³ã³ãã¥ãŒãã£ã³ã°ã®åºç€ïŒçŽç²ç¶æ
ãšæ··åç¶æ
- QïŒéåãã¬ããŒããŒã·ã§ã³
- éåã³ã³ãã¥ãŒãã£ã³ã°ïŒãªãã¡ã¬ã³ã¹
ãã©ã³ã·ã¹ã¯ã€ã³ããªã¢ã«ã«ã¬ããžãã³ãã³ã忥ããã³ã³ãã¥ãŒã¿ãŒãã¯ãããžãŒã®åŠäœãååŸããŠããŸãã 圌女ã¯Microsoft Researchã§åããŠããéã«åæ¥ãããžã§ã¯ããæžããŸããã Francesã¯çŸåšããã€ã¯ããœããã§ãœãããŠã§ã¢ãšã³ãžãã¢ãšããŠåããŠããŸãã åœŒå¥³ã®æŽ»åã®äž»ãªåéã¯ãæ©æ¢°åŠç¿ãããã°ããŒã¿ãéåã³ã³ãã¥ãŒãã£ã³ã°ã§ãã
èšäºã®å
容
- åºæ¬ãç¹°ãè¿ã
- éåããããæž¬å®ãã
- éåãã«ã
- éèŠãªãã«ã
- å°æ°ã®ãã¥ãŒããã
- å¥ã®éèŠãªãã«ã
- ãã«ã®ç¶æ
- éåããã°ã©ã ãæžã
- 次ã¯ïŒ
- ã¢ããª
- 远å è³æ
åºæ¬ãç¹°ãè¿ã
æäžäœã¬ãã«ã§ããã°ã©ãã³ã°ããªãå Žåãå®éã«ã¯ããã¯ã©ã·ãã¯ãã³ã³ãã¥ãŒã¿ãŒã«ä¿åãããŠãããŒããš1ã ããæäœããããã°ã©ã ãå¿ããŠããŸãå¯èœæ§ããããŸãã ãããã®ãŒããš1ã¯ãç©çã·ã¹ãã ã®é¢æ£çãªãã€ããªç¶æ
ã«å¯Ÿå¿ããŸãã éåã³ã³ãã¥ãŒã¿ãŒã¯ãé£ç¶ããç¶æ
ç¯å²ã§åäœããŸãã éšåçã«ãããã®æ©èœã¯ããã«ãããã®ã§ãã
ã¯ã©ã·ãã¯ãããã¯ãéåžžã®çœç±ç¯ã®ããã«ãããªã³ããŸãã¯ããªããã®2ã€ã®ç¶æ
ã®ããããã®ã¿ãåããŸãã éåã³ã³ãã¥ãŒã¿ãŒã®åºç€ã§ãããã¥ãŒãããã¯ã調å
å¯èœãªã©ã³ãã«äŒŒãŠããŸãã

éåãããã®2ã€ã®ç¶æ
ãèšé²ããã«ã¯ãbraãšketïŒDirac衚èšïŒãšããè¡šèšæ³ã䜿çšã§ããŸãããããã®è¡šèšæ³ã¯ã次ã®ãã¯ãã«ã«å¯Ÿå¿ããŠããŸãã

ããã2ã€ã®ç¶æ
ã®ç·åœ¢çµåã䜿çšããŠããã¯ãã«| 0ããš| 1ãã®å¯èœãªçµã¿åããã衚çŸã§ããŸãã éåååŠã§ã¯ããã®ãããªçµã¿åããã¯éãåãããšåŒã°ããŸãã ãã£ã©ãã¯ã®è¡šèšã®å¯Ÿå¿ãããšã³ããªã¯æ¬¡ã®ããã«ãªããŸãã
|Ïâ©=α| 0ã +β| 1ã
αãšÎ²ã®å€ã¯ç¢ºçã«é¢é£ããŠããŸãïŒããããªéãããããŸã-ãããã®ä¿æ°ã¯è€çŽ æ°ã§è¡šçŸã§ããŸãïŒã ãããã¯å®æ°ãšèããããšãã§ããŸããããã®å Žåãè² ã®å€ããšãããšãã§ããããšãèŠããŠãããŠãã ããã ãã ãããããã®å¹³æ¹ã®åèšã¯åžžã«1ã§ãã
éåããããæž¬å®ãã
éåç¶æ
ã¯å¥åŠãªãã®ã§ãã æž¬å®ã®çµæïŒãŸãã¯ã圌ããèšãããã«ãããªãã¶ãŒããŒã®ååšäžã§ãïŒããã¥ãŒãããã¯ããã«åŽ©å£ããŸãã ãããçè§£ããæ¹æ³ã¯ïŒ éåããããéãåããç¶æ
ã«ãããšããŸãã ãããæž¬å®ããå Žåã1ã€ã®ç¹å®ã®å€ãåããŸã-| 0ããŸãã¯| 1ãïŒäž¡æ¹ã®æž¬å®ã§äžåºŠã«äž¡æ¹ã®çµæã瀺ãããšã¯ã§ããŸããïŒïŒ éåããããæž¬å®ããåŸã以åã®ç¶æ
ãç¹åŸŽä»ããä¿æ°Î±ãšÎ²ã¯ãå®éã«ã¯å€±ãããŸãã
ãããã£ãŠã確ççè«è£
眮ã䜿çšããŠããã¥ãŒãããã®æž¬å®å€ãèšè¿°ããŸãã äžè¬çãªå Žåããã¥ãããã®ç¶æ
ãæž¬å®ãããšçµæã衚瀺ããã確ç| 0ãã¯æ¬¡ãšçãããªããŸãã

ãç¶æ
ãååŸãã確ç| 1ãã¯

ã äŸãèããŠã¿ãŸãããã æ¬¡ã®ãã¥ãŒãããããããšããŸãïŒ

ãã®ç¶æ
ãæž¬å®ãããšãã±ãŒã¹ã®50ïŒ
ã§å€0ãåŸãããŸãã

ã€ãŸããæž¬å®åŸã®ç¶æ
ã¯| 0ãïŒã€ãŸããα= 1ãβ= 0ïŒã«ãªããŸãã åãçç±ã§ãç¶æ
1ã«ãªã確çã¯50ïŒ
ã§ãã ãã®å Žåãæž¬å®åŸããã¥ãŒãããã¯ç¶æ
| 1ãã«ãªããŸãïŒã€ãŸããα= 0ãβ= 1ïŒã

åããŠãããã¯ãã¹ãŠéåžžã«æ··ä¹±ããŸãïŒ2åç®ã3åç®ãããã³4åç®ã¯ãäœãå€ãããŸããïŒã ããã§ã®äž»ãªèãæ¹ã¯ã確çè«çãªéåç¶æ
ãèšç®ã«äœ¿çšã§ããããšã§ãããå Žåã«ãã£ãŠã¯ããããã®éåãã¹ãã¬ã³ãžãã¹ãã«ãããåŸæ¥ã®ãã®ãããé«ãå¹çã®ã·ã¹ãã ãåŸãããšãã§ããŸãã ã§ã¯ããããã®ãã¥ãŒãããããå€å
žçãªãããã®ããã«èšç®ã«äœ¿çšããæ¹æ³ãèŠãŠã¿ãŸãããã
éåãã«ã
ãã£ãšèº«è¿ãªãã®ã«æ»ããŸãããã å€å
žçãªèšç®çè«ã§ã¯ãè«çã²ãŒãã䜿çšããŠãããã®æŒç®ãå®è¡ããŸãã éåããããæäœããããã«ãåæ§ã®èšèš-éåã²ãŒãã䜿çšãããŸãã ããšãã°ãNOTã²ãŒãã¯0â1ããã³1â0ã®å€æãå®è¡ããŸããéåNOTã²ãŒãã¯ãã®å€å
žçãªç¥å
ã«äŒŒãŠããŸãã倿| 0>â| 1ãããã³| 1ãâ| 0ããå®è¡ããŸãã ããã¯ããã®ãããªã²ãŒããééããåŸãç¶æ
α| 0ã +β| 1ãããã®ãã¥ãŒããããç¶æ
α| 1ã +β| 0ãã«ãªãããšãæå³ããŸãã NOTã²ãŒãã¯ãç¶æ
ãããªãã¯ã¹ã®0ãš1ã亀æãããããªãã¯ã¹ïŒXïŒãšããŠèšè¿°ã§ããŸãã

ã芧ã®ãšãããX | 0ã = | 1ããX | 1ã = | 0ãïŒ

ãã¯ãã«åœ¢åŒã®| 0ãããã³| 1ãã¯ã

ãããŠ

ãè¡åXã®æåã®åã¯ãã¯ãã«ã®å€æãšèŠãªãããšãã§ããŸã| 0ãã2çªç®ã®-ã¯ãã¯ãã«ã®å€æãšèŠãªããŸã| 1ãã
å€å
žçãªå Žåãšã®éãã¯ããã»ã©å€§ãããªãããã§ãã ãã ããåã®ã»ã¯ã·ã§ã³ã§èª¬æããããšãå¿ããªãã§ãã ããããã¥ãŒãããã®ç¶æ
ã®æž¬å®ã¯ç¢ºççã§ãã åç確ççè«ããç¥ãããŠããããã«ãäºææ§ã®ãªãã€ãã³ãã®å®å
šãªã°ã«ãŒãã®ç¢ºçã®åèšã¯1ã§ãã ã ãã

éåç¶æ
ã®å Žåãα| 0ã +β| 1ãã
ãããã£ãŠãèãããããã¹ãŠã®ã²ãŒããéåäžçã«ååšãããšã¯éããŸããã å¶éã®1ã€ã¯æ¬¡ã®ãšããã§ãããã¥ãŒãããã®éåç¶æ
ãæ£èŠåããæ¡ä»¶ã

ããã«ãã®ééåãšééåŸã®äž¡æ¹ã§èгå¯ããå¿
èŠããããŸãã è¡å代æ°ã«é¢ããŠã¯ãè¡åããŠãã¿ãªã®å Žåããã®æ¡ä»¶ã¯æºããããŸãã
ãŠãã¿ãªãã£ã®æ°åŠçæŠå¿µãäœãæå³ãããã説æããããšããŸãã ååã«éãèªãã°ãæ¬¡ã®æç« ã«ç°¡åã«åºäŒããŸãã ãã«ãã¯ããŠãã¿ãªãšåŒã°ããŸã

転眮ãšè€çŽ å
±åœ¹ã«ãã£ãŠåŸããã

ããã¯ã©ã³ã¯2ã®åäœè¡åã§ãã人éã®èšèªã§èšãã°ãããã¯å€æããã¯ãã«ã®é·ãã倿Žããªãããšãæå³ããŸãã ãã¯ãã«ã®é·ããæéãšãšãã«å€åããªãå Žåããã¹ãŠã®ç¢ºçã®åèšã¯åžžã«ãŠããã£ãŸãã¯100ïŒ
ïŒããã¹ãïŒã«çãããªããŸãã ãã®çµæããã¹ãŠã®ç¢ºçã®åèšã200ïŒ
ãŸãã¯25ïŒ
ã«çããèšç®ã¯ç¡æå³ã«ãªããŸãã ãŠãã¿ãªè¡åã¯ãå°ãªããšããã®ãããªçæ°ããä¿è·ããŸãïŒãã ããéåäžçã§ã¯è±å¯ãªãŸãŸã§ãïŒã
è¯ããã¥ãŒã¹ïŒãã®å¶éã¯å¯äžã®ãã®ã§ãã ãã®æ¡ä»¶ã«ãããäžéšã®å€å
žçãªã²ãŒãã«ã¯éåã¢ããã°ããããŸããããäžéšã®éåã²ãŒãã«ã¯å€å
žçãªãããã¿ã€ãããããŸããã æ¬¡ã«ãæãéèŠãªéåã²ãŒããåæããŸãã
éèŠãªãã«ãïŒãã«ãZããã³ã¢ãããŒã«ãã«ã
以äžã§èª¬æããã²ãŒãã¯ãæåã®éåããã°ã©ã ã§äœ¿çšãããã®ã§ãèŠããŠãããŠãã ããã ã²ãŒãZã¯éåžžã«ç°¡åã«æ©èœããŸããã³ã³ããŒãã³ã| 0ããä¿åããã³ã³ããŒãã³ãã®ç¬Šå·ã倿ŽããŸã| 1ãã è¡åãšããŠæžãããšãã§ããŸã

éåãããç¶æ
ãæ¬¡ã®ããã«å€æããŸãïŒ| 0ãâ| 0ãã| 1ãâ-| 1ãïŒè¡åã®æåã®åã¯ãã¯ãã«ã®å€æã衚ãããšã«æ³šæããŠãã ãã| 0ãã2çªç®-ãã¯ãã«ã®å€æ| 1ãïŒã
ã¢ãããŒã«ãã«ãã¯ãäžèšãšåæ§ã®ç¶æ
| 0ããš| 1ãã®éãåãããäœæããŸãã 圌ã®ãããªãã¯ã¹ãšã³ããªã¯æ¬¡ã®ããã«ãªããŸãã

次ã®éåãããç¶æ
ã®å€æã«å¯Ÿå¿ããŸãã

ã

ãŠãã¿ãªãããªãã¯ã¹ããã³ã²ãŒãã®èŠèŠç衚çŸã®æ¹æ³ã«é¢ãã詳现æ
å ±ã¯ãã远å è³æãã»ã¯ã·ã§ã³ã«å«ãŸãããªãœãŒã¹ã«èšèŒãããŠããŸãã
å°ãªãéåããã
ãã£ãšèº«è¿ãªãã®ãèããŠãã ããã å€å
žçãªãããã¯ã1ã€ãã€ã ãã§ãªããçµã¿åããã®åœ¢åŒïŒããšãã°ã00ã01ã10ã11ïŒã§ãååšããŸããéåèšç®ã§ã¯ãåæ§ã®çµã¿åããã䜿çšãããŸãïŒ| 00ãã| 01ãã| 10ããããã³11ãã 2ã€ã®ãã¥ãŒãããã®ç¶æ
ã¯ã次ã®ãã¯ãã«ã䜿çšããŠèª¬æã§ããŸãã

åãšåæ§ã«ã枬å®ã®çµæãšããŠ00ã«ãªã確çã¯

ã
01ã®å Žåã確çã¯

ãªã©
äž¡æ¹ã®ãã¥ãŒãããã§ã¯ãªããæåã®ãã¥ãŒãããã®ç¶æ
ãæž¬å®ããããšããŸãã 0ã«ãªã確çã¯

ã ç§ãã¡ãæãåºãããã«ã枬å®ã¯ç¶æ
ãå€ããã®ã§ããã®åŸã¯ãã¯ãã«ãéèŠã«ãªããŸã

ååã«æ³šæããŠãã ãããæåã®ãããã1ã§ãããã¹ãŠã®é
ãåé€ããŸããïŒæ¡ä»¶ã«ãããæž¬å®çµæã¯0ã§ããããïŒã ãã¯ãã«ã蚱容å¯èœãªéåç¶æ
ãèšè¿°ããããã«ã¯ãæ¯å¹
ã®åèšã®2ä¹ã1ã«çããããšãå¿
èŠã§ãïŒå€æã®åãšåŸã®äž¡æ¹ïŒã ãã®æ¡ä»¶ãæºããããããã«ãæ£èŠåä¿æ°ïŒè¡ååŒã®å¹³æ¹æ ¹ã«éã®å€ïŒã远å ããŸãã
å¥ã®éèŠãªãã«ã
NOTãã«ãã®æäœã¯ãã§ã«åè§£ãããŠããŸãã æ¬¡ã«ç¶ãã®ã¯ãCNOTïŒå¶åŸ¡-NOTïŒãã«ãã§ãã 2ã€ã®ãã¥ãŒãããããã®å
¥åã«äŸçµŠãããŸãã æåã¯ãããŒãžã£ãŒãšåŒã°ãã2çªç®ã¯ç®¡çãããŸãã å¶åŸ¡ãã¥ãŒãããã| 0ãã®å Žåãå¶åŸ¡ãã¥ãŒãããã®ç¶æ
ã¯å€åããŸããã å¶åŸ¡ãã¥ãŒãããã| 1ãã®å ŽåãNOTæŒç®ãå¶åŸ¡ãã¥ãŒãããã«é©çšãããŸãã
CNOTæäœã¯ããã€ãã®æ¹æ³ã§è§£éã§ããŸãã ãã«ãXãZãHãšåæ§ã«ããããªãã¯ã¹åœ¢åŒã§èšè¿°ã§ããŸããããã¯æåUã§ç€ºãããŸãã

ãããªãã¯ã¹ã®åãæ¬¡ã®å€æã«å¯Ÿå¿ããŠããããšãããããŸãïŒ| 00ãâ| 00ãã| 01ãâ| 01ãã| 10ãâ| 11ãã| 11ãâ| 10ãã åæãããããªãã¯ã¹ã®ããã«

ãããã¯ãŠãã¿ãªã§ããã€ãŸã

ã
æ¬¡ã®æå®ããã®ãã«ãã«äœ¿çšãããŸãïŒäžéšã¯å¶åŸ¡ãã¥ãŒãããã«å¯Ÿå¿ããäžéšã¯å¶åŸ¡ãã¥ãŒãããã«å¯Ÿå¿ããŸãïŒã

çŸä»£çŸè¡å±ã®å±ç€ºã®ããã§ãã
ãã«ã®å¹žé
ã»ã¯ã·ã§ã³å
šäœããã®éèŠãªãããã¯ã«åœãŠãå¿
èŠããããŸãã åèšã§4ã€ã®ãã«ç¶æ
ããããŸãã ãããã®1ã€ïŒ| Ï +â©ïŒã¯ã以äžã®éåããã°ã©ã ã§äœ¿çšãããŸãã ãããèŠãŠã¿ãŸãããã

æåã®ãã¥ãŒãããã®ç¶æ
ãæž¬å®ãããšããŸãã çµæ| 0ã確çã§åŸã

ã ããã¯ãåã確çïŒ0.5ïŒã§|Ï 'â©= | 00ãããŸãã¯| 1ããæž¬å®ããåŸã®ç¶æ
ãããã³|Ï'â©= | 11ããæž¬å®ããåŸã®ç¶æ
ãæå³ããŸãã 奜å¥å¿ã®ããã«ããã«ç¶æ
ã®å®å
šãªã»ãããæç€ºããŸãïŒéåãšã³ã¿ã³ã°ã«ã¡ã³ãã®æãåçŽãªã±ãŒã¹ã§ãïŒïŒ

次ã«ã2çªç®ã®ãã¥ãŒãããã®ç¶æ
ãæž¬å®ãããšããŸãã åãçç±ã«ãããšãèžæ°ã枬å®ããåŸã®ç¶æ
ã¯| 00ããŸãã¯| 11ãã«ãªããŸãã ãã®åŸãæåã®ãã¥ãŒãããã®ç¶æ
ãæž¬å®ããããšã«ããå Žåã確çã¯0.5ã§ãªããªããŸãã æž¬å®çµæãäœã§ãã£ããã«å¿ããŠã1ãŸãã¯0ã®ç¢ºçã§| 0ããååŸããŸãã ãããã®çµæã¯é¢é£ããŠããããšãçè§£ããããšãéèŠã§ãã ããã«æåã«æ°ã¥ããã®ã¯ãã¢ã«ããŒãã»ã¢ã€ã³ã·ã¥ã¿ã€ã³ãããªã¹ã»ããã«ã¹ããŒããã€ãµã³ã»ããŒãŒã³ã§ããïŒãããã£ãŠããããã®å·ã¯ãEPRãã¢ããšåŒã°ããããšããããŸãïŒã ãã®åŸã圌ãã®çè«ã¯ãžã§ã³ã»ãã«ã«ãã£ãŠéçºãããŸããã
æåŸã«ãã¢ãããŒã«ãã«ããšCNOTãã«ãã䜿çšããŠãã«ç¶æ
ãçæã§ããŸãã ç§ã®æèŠã§ã¯ãããã¯ç«æŽŸã§ãã ã¢ãããŒã«åŒã¯ãæåã®ãã¥ãŒããããéãåããç¶æ
ã«ããŸãã ãã®éåãããã¯ãCNOTãã«ãã®å¶åŸ¡å
¥åã«éãããŸãã 以äžã«ãåè·¯å³ã䜿çšããŠãã®ããã»ã¹ãè¡šãæ¹æ³ã瀺ããŸãã

ãããã®å倿ãã©ã®ããã«æ©èœãããã®è©³çްã«ã€ããŠã¯ã远å ã®è³æãåç
§ããŠãã ããïŒãªã¹ãã¯ä»¥äžã®ãšããã§ãïŒã éåãããç¶æ
ãéåã²ãŒãããã«ç¶æ
ã«ã€ããŠã¯ãæåã®éåãããããã°ã©ã ãæžãã®ã«ååãªç¥èããããŸãã
éåããã°ã©ã ãæžã
ããã¥ã¡ã³ãã®æç€ºã«åŸã
ãŸã ã
ãã®ãã¥ãŒããªã¢ã«ã¯ãæ¬¡ã®æé ãå®è¡ããã®ã«åœ¹ç«ã¡ãŸããéåããã°ã©ã éçºããã±ãŒãžãã€ã³ã¹ããŒã«ãïŒæé 1ã2ïŒãéåããããéžæããŠããã€ãã®ç°¡åãªæäœãå®è¡ããŸããããšãã°ãç¹å®ã®ç¶æ
ã«èšå®ããŠæž¬å®ãïŒæé 3ã5ïŒã翻蚳ããŸãéåããããéãåããç¶æ
ã«å€æãïŒã¹ããã6ïŒã2ã€ã®éåãããããã€ãç¶æ
ïŒãã«ç¶æ
ããŸãã¯EPRã®ãã¢ïŒã«å€æããŸãïŒã¹ããã7ïŒã
äžèšã®ããã¥ã¢ã«ã®æç€ºã«åŸãããã³ãã远å ã®èª¬æãå¿
èŠãªå Žåã¯ãã®è³æã«æ»ãããšããå§ãããŸãã
ã¹ããŒãž1.ãããžã§ã¯ãã®äœæãšãœãªã¥ãŒã·ã§ã³
QïŒã¯ãã®ãªã¹ãã®äžçªäžã«ãããŸãã

ã¹ããŒãž2ïŒãªãã·ã§ã³ïŒã NuGetããã±ãŒãžã®æŽæ°
ãã®ã¢ããã€ã¹ã«åŸããŸããããç¹ã«ãªã¹ã¯ãåãããå Žåã¯ãããã¯å¿
èŠãããŸããã
ã¹ããã3. QïŒã³ãŒããå
¥åããŸã
namespace Quantum.Bell { open Microsoft.Quantum.Primitive; open Microsoft.Quantum.Canon; operation Set (desired: Result, q1: Qubit) : () { body { let current = M(q1); if (desired != current) { X(q1); } } } }
ãã®æäœã¯ãã¥ãŒããããç¶æ
ïŒç§ãã¡ãéžæïŒ-0ãŸãã¯1ã«è»¢éããŸããæåã«ãã¥ãŒããããæž¬å®ãïŒãã®æäœã¯æåMã§ç€ºãããŸãïŒãç¶æ
0ãŸãã¯1ã«æããããŸããŸãã NOTãXãããã§ãªããã°ãäœãããå¿
èŠã¯ãããŸããã
operation BellTest (count : Int, initial: Result) : (Int,Int) { body { mutable numOnes = 0; using (qubits = Qubit[1]) { for (test in 1..count) { Set (initial, qubits[0]); let res = M (qubits[0]);
ãã®å°ããªã³ãŒãã¯ãå
ã»ã©æžããæäœããã¹ãããããã«èšèšãããŠããŸãã ããã¯éåžžã«åçŽãªããã°ã©ã ã§ãããã¥ãŒããããå¿
èŠãªç¶æ
ã«è»¢éãããããšã確èªããŸãã
ãããè¡ãããã«ã圌女ã¯ã«ãŒãã§æž¬å®ãè¡ãã倿°numOnesã䜿çšããŠçµæ1ã®æ°ãã«ãŠã³ãããŸãã
ãQubit [1]ããšãã衚èšã¯ãã1ã€ã®èŠçŽ ãããã¥ãŒãããã®é
åãäœæãããããšãæå³ããŸãã é
åèŠçŽ ã®ã€ã³ããã¯ã¹ä»ãã¯ãŒãããã§ãã 2ã€ã®ãã¥ãŒããããåºå¥ããã«ã¯ïŒåŸã§ãããè¡ãå¿
èŠããããŸãïŒããQubit [2]ããšæžãå¿
èŠããããŸãã ãã®ãããªé
åã®ãã¥ãŒãããã¯ãçªå·0ãš1ã«å¯Ÿå¿ããŸãã
forã«ãŒãã§ã¯ãç¹å®ã®åæç¶æ
ã«å²ãåœãŠããããã¥ãŒããããOneãŸãã¯Zeroã«
èšå®ããŸãïŒ
Driver.csãã¡ã€ã«ã§ãããã«ååŸããŸãããããã¯æç€ºçã«è¡ãããŸãïŒã ãã®ç¶æ
ãæž¬å®ãã1ã®å Žåãã«ãŠã³ã¿ãŒå€ã1å¢ãããŸãã ãã®é¢æ°ã¯ã1ãš0ã®èŠ³æž¬ãããç¶æ
ã®æ°ãè¿ããŸãã æåŸã«ããã¥ãŒãããã¯ãŒãç¶æ
ã«ãªããŸãïŒæ¢ç¥ã®ç¶æ
ã®ãŸãŸã«ããããïŒã
ã¹ããã4. CïŒãã©ã€ããŒã³ãŒãã®å
¥å
using (var sim = new QuantumSimulator()) {
ãã®ãã©ã€ããŒã¯ãéåã·ãã¥ã¬ãŒã¿ãŒãšãã§ãã¯ããåæå€ã®é
åïŒãŒããš1ïŒãäœæããŸãã æ¬¡ã«ãã·ãã¥ã¬ãŒã·ã§ã³ã1000åç¹°ãè¿ããããããã°ã®çµæãSystem.Console.WriteLine颿°ã䜿çšããŠè¡šç€ºãããŸãã
ã¹ããŒãž5.ã¢ã»ã³ããªãšå®è£
Init:Zero 0s=1000 1s=0
Init:One 0s=0 1s=1000
Press any key to continue...
ãã¹ãŠãæ£åžžãªå Žåãç»é¢ã®åºåã¯äžèšã®ããã«ãªããŸãã ãã®çµæã¯ãåæãã¥ãŒãããããŒãç¶æ
ã«è»¢éãã1000åã®ç¹°ãè¿ããå®è¡ãããšãèŠ³æž¬çµæã«å¿ããç¶æ
ã®æ°| 0ãã¯1000ã«ãªãããšãæå³ããŸãã1ã€ã®ç¶æ
ã«ã€ããŠãåæ§ã§ãã
ã¹ããã6.éãåããã®äœæ
ãã£ãšé¢çœããã®ã詊ããŠã¿ãŸãããã ããã§ãNOTã²ãŒãã䜿çšããŠãã¥ãŒãããã®ç¶æ
ã倿ŽããŸãã
X(qubits[0]); let res = M (qubits[0]);
次ã«ãããã°ã©ã ãå床å®è¡ããçµæãéã«ãªãããšã確èªããŸãã
Init:Zero 0s=0 1s=1000
Init:One 0s=1000 1s=0
次ã«ãNOTãã«ããã¢ãããŒã«ãã«ãïŒHïŒã«äº€æããŸãã ãã®çµæãç§ãã¡ãç¥ã£ãŠããããã«ããã¥ãŒãããã¯ç¶æ
ã®éãåããã«ãªãããã®æž¬å®çµæã¯ç¢ºçã§| 0ããš| 1ãã«çãããªããŸãã
H(qubits[0]); let res = M (qubits[0]);
ããã°ã©ã ãå床å®è¡ãããšãããªãè峿·±ãçµæãåŸãããŸãã
Init:Zero 0s=484 1s=516
Init:One 0s=522 1s=478
枬å®ã®æ°| 0ããš| 1ãã¯ã»ãŒçãããªããŸãã
ã¹ããã7.ãã€ããç¶æ
ã®æºå
次ã«ããã«ç¶æ
ãäœæããŸãã 以äžã®ã³ãŒããã芧ãã ããã ãŸãã2ã€ã®ãã¥ãŒãããã®é
åãäœæããŸãïŒQubit [2]ïŒã æåã®ãã¥ãŒãããïŒåè·¯ã®åã®å³ã§ã¯ã·ã³ãã«xã§ç€ºãããŠããŸããïŒãäœããã®åæç¶æ
ã«å€æãã2çªç®ïŒå³ã®yïŒããŒãã«èšå®ããŸãã ããã¯ãXã«å¿ããŠ| 00ããŸãã¯| 10ããå
¥åããã®ãšã»ãŒåãã§ãã
operation BellTest (count : Int, initial: Result) : (Int,Int) { body { mutable numOnes = 0; using (qubits = Qubit[2]) { for (test in 1..count) { Set (initial, qubits[0]); Set (Zero, qubits[1]); H(qubits[0]); CNOT(qubits[0],qubits[1]); let res = M (qubits[0]);
å³ã«ãããšãæåã®ãã¥ãŒãããã§ãããã¥ãŒããã[0]ã¯ãã¢ãããŒã«åŒãééããå¿
èŠããããŸãã ãã®çµæã圌ã¯éãåããã«ãªããŸãã æ¬¡ã«ãCNOTãã«ãã«ãã¥ãŒããããæž¡ãïŒãã¥ãŒããã[0]-å¶åŸ¡ãã¥ãŒãããããã¥ãŒããã[1]-å¶åŸ¡ïŒãçµæãæž¬å®ããŸãã
çµæãäºæ³ããããã®ãçè§£ããããã«ããã«ç¶æ
ãã©ã®ããã«æ©èœããããããäžåºŠç¹°ãè¿ããŸãããã æåã®ãã¥ãŒããããæž¬å®ãããšã確ç| 0ããåŸãããŸã

ã ããã¯ãåã確çïŒ0.5ïŒã§|Ï 'â©= | 00ããŸãã¯| 1ããæž¬å®ããåŸã®ç¶æ
ãããã³|Ï'â©= | 11ããæž¬å®ããåŸã®ç¶æ
ãæå³ããŸãã ãããã£ãŠã2çªç®ã®ãã¥ãŒãããã®ç¶æ
ãæž¬å®ããçµæã¯ãæåã®ãã¥ãŒããããç¶æ
| 0ãã«ããå Žåã¯| 0ããæåã®ãã¥ãŒããããç¶æ
| 1ãã«ããå Žåã¯| 1ãã«ãªããŸãã 2ã€ã®ãã¥ãŒãããã®ç¶æ
ãããŸãæ··åãããå Žåãçµæã¯ãæåãš2çªç®ã®ãã¥ãŒããããåãç¶æ
ã«ããããšã瀺ãã¯ãã§ãã
ã³ãŒãã§ã¯ãifã¹ããŒãã¡ã³ãã䜿çšããŠãéåããã[1]ã®æž¬å®çµæãéåããã[0]ã®æž¬å®çµæãšçãããã©ããã確èªããŸãã
operation BellTest (count : Int, initial: Result) : (Int,Int,Int) { body { mutable numOnes = 0; mutable agree = 0; using (qubits = Qubit[2]) { for (test in 1..count) { Set (initial, qubits[0]); Set (Zero, qubits[1]); H(qubits[0]); CNOT(qubits[0],qubits[1]); let res = M (qubits[0]); if (M (qubits[1]) == res) { set agree = agree + 1; }
çµæã確èªããåã«ãDriver.csãã¡ã€ã«ã«ãã1ã€å€æŽãå ããå¿
èŠããããŸããagree倿°ã远å ããŸãã
using (var sim = new QuantumSimulator()) {
ããã§ãããã°ã©ã ãèµ·åã§ããŸãã ãããã®çµæã¯ã©ãããæå³ã§ããïŒ æåã®ãã¥ãŒããããæåã«ãŒãç¶æ
ã«ãªã£ãå ŽåïŒã€ãŸããå€| 00ããå
¥åããå ŽåïŒãã¢ãããŒã«ãã«ãã¯ãã¥ãŒããããéãåããç¶æ
ã«ããæž¬å®çµæã¯50ïŒ
ã®å Žåã¯0ïŒ
ã50ïŒ
ã®å Žåã¯1ïŒ
ã«ãªããŸãã ãã®æ¡ä»¶ãæºãããããã©ããã¯ããŒããš1ã®æ°ã§æšå®ã§ããŸãã æåã®ãããã®ç¶æ
ã®æž¬å®ã2çªç®ã®ãããã®ç¶æ
ã«åœ±é¿ããªãã£ãå Žåã| 0ãã«çãããªãã499ã®å Žåã«ã®ã¿äžè²«æ§ãéæãããŸãã
ããããã芧ã®ãšããã1çªç®ãš2çªç®ã®ãã¥ãŒãããã®ç¶æ
ã¯å®å
šã«äžè²«ããŠããŸããçµæã®æ°| 0ããš| 1ãïŒã»ãŒïŒã¯äžèŽããŸãã ãããã£ãŠãçµæã¯1000ã®åã±ãŒã¹ã§äžè²«ããŠããŸãã ããããã«ã®å·ã®ä»çµã¿ã§ãã
Init:Zero 0s=499 1s=501 agree=1000
Init:One 0s=490 1s=510 agree=1000
ããã§çµãããŸãã æåã®éåããã°ã©ã ãäœæããïŒæåŸãŸã§å°éããã®ã§ïŒãããããããäœãããŠããããçè§£ããã§ãããã ãè¶ãäžæ¯é£²ãã®ã¯æ³šç®ã«å€ããŸãã

次ã¯ïŒ
GitHubãªããžããªã«ã¯å€ãã®äŸããããŸãã
次ã®èšäºã§ã¯ãéåãã¬ããŒããŒã·ã§ã³ã®çè«ã«ã€ããŠèª¬æããã³ãŒãäŸãæ€èšããŸãã
éåã²ãŒãã«ã€ããŠã¯
ãAnitaã®ããã°ã§è©³ãã説æããŠããŸãïŒæ³šïŒAnitaã¯æé«ã§ãïŒã
远å è³æ
è°è«ãããŠãããããã¯ãæãäžãããå Žåã以äžã¯ç§ãã¡ã«ãšã£ãŠéåžžã«æçšãªãªãœãŒã¹ã®ãªã¹ãã§ãã æåã®æ¬ã¯ãéåã³ã³ãã¥ãŒãã£ã³ã°ãšéåæ
å ±ãïŒM. NielsenãIãChangïŒã§ãã 2ã€ç®ã¯ãMicrosoft SDKã®
ããã¥ã¡ã³ãã§ãã
ãããèªè
ã«ãšã£ãŠè峿·±ãå ŽåïŒã³ã¡ã³ããæ®ããŠãã ããïŒïŒãä»ã®ãªãœãŒã¹ã«ã€ããŠã®å¥ã®åºçç©ãæžãããšãã§ããŸãã
ã¢ããªã±ãŒã·ã§ã³ã ãã«ã®å¹žé

ãã«ç¶æ
ã¯ãã¢ãããŒã«ãã«ããšCNOTãã«ãã䜿çšããŠçæã§ããŸãã ã¢ãããŒã«åŒã¯ãæåã®ãã¥ãŒããããéãåããç¶æ
ã«ããŸãã ãã®éåãããã¯ãCNOTãã«ãã®å¶åŸ¡å
¥åã«éãããŸãã åè·¯å³ã§ã¯ã次ã®ããã«ãªããŸãã
ç¶æ
| 00ãã®ãã¥ãŒãããã®ãã¢ãå
¥åã«äŸçµŠãããæåã®ã±ãŒã¹ããå§ããŸãã æåã®ãã¥ãŒããã| 0ãã¯ãã¢ãããŒã«åŒãééããŠã

ã 2çªç®ã®ãã¥ãŒãããã¯å€æŽãããŸããã çµæïŒ

ãã®åŸããã¥ãŒãããã¯CNOTãã«ããééããŸãïŒå€æã¯| 00ãâ| 00ãããã³| 10ãâ| 11ããå®è¡ããŸãïŒã ä»ã圌ãã®ç¶æ
ã¯åŒã§èšè¿°ãããŸã

2çªç®ã®ã±ãŒã¹ïŒãã¥ãŒããã| 01ããå
¥åãããŸãã ã¢ãããŒã«ãã«ãã¯ãæåã®ãã¥ãŒããã| 0ããç¶æ
ã«è»¢éããŸã

ã 2çªç®ã®ãã¥ãŒãããã¯å€æŽãããŸããã çµæïŒ

次ã«ãéåããããCNOTã²ãŒããééããããã«ããŸããCNOTã²ãŒãã¯ã倿| 01ââãâ| 01ãããã³| 11ãâ| 10ããå®è¡ããŸãã äžå¯Ÿã®ãã¥ãŒãããã®æçµç¶æ
ã¯æ¬¡ã®ããã«ãªããŸãã

3çªç®ã®ã±ãŒã¹ïŒãã¥ãŒããã| 10ããå
¥åã«éãããŸãã ã¢ãããŒã«ã²ãŒãã¯æåã®ãã¥ãŒããã|1â©ãç¶æ
ã«ãã

ã 2çªç®ã®ãã¥ãŒãããã¯å€æŽãããŸããã çµæïŒ

ãã®åŸããã¥ãŒãããã¯CNOTãã«ããééããŸãïŒå€æã¯| 00ãâ| 00ãããã³| 10ãâ| 11ããå®è¡ããŸãïŒã ä»ã圌ãã®ç¶æ
ã¯åŒã§èšè¿°ãããŸã

4çªç®ã®ã±ãŒã¹ïŒãã¥ãŒããã| 11ããå
¥åãããŸãã ã¢ãããŒã«ã²ãŒãã¯æåã®ãã¥ãŒããã|1â©ãç¶æ
ã«ãã

ã 2çªç®ã®ãã¥ãŒãããã¯å€æŽãããŸããã çµæïŒ

次ã«ãéåããããCNOTã²ãŒããééããããã«ããŸããCNOTã²ãŒãã¯ã倿| 01ââãâ| 01ãããã³| 11ãâ| 10ããå®è¡ããŸãã äžå¯Ÿã®ãã¥ãŒãããã®æçµç¶æ
ã¯æ¬¡ã®ããã«ãªããŸãã

ãã¹ãŠã®ã±ãŒã¹ãæŽçããŸããã