ð JP | ð¬ð§ EN | Last sync: 2026-08-13
AI寺åå±ãããâºåºç€æ°çéå ŽâºéåãœãããŠã§ã¢ã¹ã¿ãã¯å ¥é
â åºç€æ°çéå Žããã
ð¯ ã·ãªãŒãºæŠèŠ
ããã¯SDKã®ãã¥ãŒããªã¢ã«ã§ã¯ãããŸãããSDKãäœãããŠãããã«ã€ããŠã®è¬åº§ã§ãã
ãã®åºå¥ãæ¬ã·ãªãŒãºã®ååšçç±ãªã®ã§ãæ£ç¢ºã«è¿°ã¹ãŠãã䟡å€ããããŸããæ°åŠãšããŠæžãããéåã¢ã«ãŽãªãºã ãšãæŽåœ¢ããããã€ã¯ãæ³¢ãããã¯ã¬ãŒã¶ãŒãã«ã¹ãåãåãæ©æ¢°ã®éã«ã¯ã6å±€ã®ãœãããŠã§ã¢ããããŸããå路衚çŸãæé©ååšãé 眮ãšã«ãŒãã£ã³ã°ã®æ®µãã²ãŒãåæã®æ®µãèŒæ£ã«ãŒãã䌎ããã«ã¹ã³ã³ãã€ã©ããããŠæž¬å®çµæã®åŸåŠçåšã§ãã第1ç« ã®è¡šã7å±€ã«ãªã£ãŠããã®ã¯ãã¢ã«ãŽãªãºã ãã®ãã®ã第1å±€ã«æ°ããŠããããã§ããçŸåããã©ã®éåãã¬ãŒã ã¯ãŒã¯ããããã®å±€ãå®è£ ããŠããŸãããã®ã©ãããããã説æããŸãããããã¥ã¡ã³ãã¯ã©ã®é¢æ°ãåŒã¶ããæããããã«ååšããŠããããã®é¢æ°ãäœãè§£ããªããã°ãªããªãã£ãããæããããã«ã¯ååšããŠããªãããã§ãã
ããã§æ¬ã³ãŒã¹ã¯ãã¹ã¿ãã¯å šäœã®ãããã¥ã¢ãNumPyã§ãäœããªããšããããäœããŸãã第1ç« ã§åè·¯ã®äžé衚çŸãšã以éã®ãã¹ãŠã®æžãæããå®ããŠãã¿ãªç䟡æ§ãã§ãã«ã第2ç« ã§ããŒãããŒã«æé©ååšãšã1éåãããããã³2éåãããã®ã²ãŒãåæã第3ç« ã§æ¥ç¶æ§ã°ã©ããã¬ã€ã¢ãŠããSWAPã«ãŒã¿ã第4ç« ã§Rabiã»Ramseyã»DRAGèŒæ£ã䌎ã3æºäœãã«ã¹ã·ãã¥ã¬ãŒã¿ã第5ç« ã§èªã¿åºã誀ãã®è£æ£ããŒããã€ãºå€æ¿ã確çç誀差ãã£ã³ã»ã«ããããŠãªãœãŒã¹èŠç©ãåšãäœãåŒã³åºããŸããããã¹ãŠæžããèµ°ãããæž¬ããŸãã
èŠè¿ãã¯ããã¬ãŒã ã¯ãŒã¯ã®ä»£ããã«ããã®ã³ãŒãã䜿ãã¹ãã ãšããããšã§ã¯ãããŸããã䜿ãã¹ãã§ã¯ãªãã第1ç« ã®æåŸã®ç¯ã¯ãããæèšããŸããèŠè¿ãã¯ããã¬ãŒã ã¯ãŒã¯ã®APIã¯æ¯å¹Žå€ããããã®å±€ã¯å€ãããªããšããããšã§ãããã©ã³ã¹ãã€ã«åŸã®åè·¯ãèªãã§ããã¯åæã§ã¯ãªãã«ãŒãã£ã³ã°ã®ããã§èšãããšèšããããã«ãªããåºåºã²ãŒãéåãèŠãŠãã®ã³ã³ãã€ã©ãã©ã®åæåé¡ãè§£ããªããã°ãªããªãã£ãããåããã1è¡ãæžãåã«ã¢ã«ãŽãªãºã ã®è²»çšãèŠç©ããããã«ãªãã°ãã©ã®ãã¬ãŒã ã¯ãŒã¯ã®ããã¥ã¡ã³ããè¬ã§ã¯ãªãåç §è³æã«ãªããŸããæ¬ã³ãŒã¹ã¯ãã®ç¶æ ã«å°éãããããã«èšèšãããŠããŸãã
第2ã®çŽæã¯æ€èšŒã®èŠåŸã§ããããããæ¬ã·ãªãŒãºã®æè¡çãªè骚ã§ããã³ã³ãã€ã©ãã¹ã¯åè·¯ã®æå³ãä¿ã€ãšãã«æ£ãããéååè·¯ã«ãšã£ãŠãåãæå³ãã«ã¯å³å¯ã§ããããæ€æ»å¯èœãªå®çŸ©ããããŸãã倧åäœçžãé€ããŠåããŠãã¿ãªã§ããããšã§ãããã®5ç« ã®ãã¹ãŠã®ãã¹ã«ã¯ãã®æ€æ»ãä»ããŠãããã¬ãžã¹ã¿ãå°ãããšããã§ã¯å šæ°ãããã§ãªããšããã§ã¯ã©ã³ãã ç¶æ ã§èµ°ããŸãã第1ç« ããã§ãã«ãäœãã第2ç« ã¯ã©ã³ãã çæããæžãæã600ä»¶ â 200æ¬ã®åè·¯ã3éãã®æé©åãã€ãã©ã€ã³ã«éãããã® â ã®æ€èšŒãšãç¡æäœã®å¯Ÿç §ãã€ãã©ã€ã³200åã®æ€èšŒã«ããã䜿ãã第5ç« ã¯ç·©åã®åè·¯ã«äœ¿ããŸããããããŸããããŒããŠã§ã¢ãªãã§æ¬ã³ãŒã¹ãèª å®ã§ããããä»çµã¿ã§ããããŸããäž»åŒµã¯æ°å€çã«æ€æ»ãããããæ¯æ°çãªèŠç©ããšããŠæç€ºããããã®ã©ã¡ããã§ãããåŒçšãããããšã¯ãããŸããã
åŠç¿ãã¹
éåã³ã³ãã¥ãŒ
ãã£ã³ã°å ¥é"] P2["æšå¥š
éåããŒã
ãŠã§ã¢å ¥é"] A["第1ç«
ã¹ã¿ãã¯ãIRã
ç䟡æ§"] B["第2ç«
æé©åãš
ã²ãŒãåæ"] C["第3ç«
ãã©ã³ã¹ãã€ã«ãš
æ¥ç¶æ§"] D["第4ç«
ãã«ã¹ãš
èŒæ£"] E["第5ç«
誀ãç·©åãš
ãªãœãŒã¹èŠç©ã"] P1 --> A P2 --> A A --> B B --> C A --> D B -.-> E C -.-> E D --> E style P1 fill:#e2e8f0,stroke:#94a3b8,stroke-width:1px,color:#334155 style P2 fill:#e2e8f0,stroke:#94a3b8,stroke-width:1px,color:#334155 style A fill:#667eea,stroke:#764ba2,stroke-width:2px,color:#fff style B fill:#7b2cbf,stroke:#764ba2,stroke-width:2px,color:#fff style C fill:#7b2cbf,stroke:#764ba2,stroke-width:2px,color:#fff style D fill:#7b2cbf,stroke:#764ba2,stroke-width:2px,color:#fff style E fill:#9d4edd,stroke:#764ba2,stroke-width:2px,color:#fff
第1ç« ã¯ä»»æéžæã§ã¯ãããŸãããä»ã®4ç« ãå説æããã«äœ¿ãå路衚çŸãéåãããèŠçŽãç䟡æ§ãã§ãã«ãåºå®ããŸããããããå ã¯ã·ãªãŒãºãåå²ããŸãã第2ç« ãšç¬¬3ç« ãã³ã³ãã€ã©ã®éã§ãã«ãŒãã£ã³ã°ãåæã®åºåãæ¶è²»ããã®ã§é ã«èªãã®ãæåã§ãã第4ç« ã¯ç¬¬1ç« ã«ããäŸåããªãã®ã§ãé¢å¿ãã³ã³ãã€ã«ã§ã¯ãªãå¶åŸ¡ã«ããæ¹ã¯ç¬¬1ç« ã®çŽåŸã«èªããŸãã第5ç« ã¯ãã¹ãŠã®åŸã«èªãã®ãæåã§ããããã®äŸåã¯ããŒã¿ã®æµãã§ã¯ãªãæŠå¿µçãªãã®ã§ããä»ã®å±€ãçŽããªããã®ã«å€æãä»ããç« ã§ããã第2ç« ã®ããã«ã²ãŒãæ°ãèªã¿ã第3ç« ã®ããã«ã«ãŒãã£ã³ã°ã®ãªãŒããŒããããèªã¿ã第4ç« ãæž¬ãããã«ç©ç誀ãçãèªããããšãåæãšããŸãããªãœãŒã¹èŠç©ãåšãã®ãã®ã¯èªå·±å®çµããŠãããå ¥åã¯ããã«ããã¢ã³ã®1-ãã«ã ãç®æšç²ŸåºŠããŠã©ãŒã¯ã®ã³ã¹ããç©ç誀ãçãè«çéåãããæ°ã ãã§ãåã®ç« ã®ã³ãŒãããã¯äœãåã蟌ã¿ãŸãããäžå³ã®ç Žç·ããã®çš®ã®äŸåã衚ããŠããŸãã
ð åŠç¿ç®æš
æ¬ã·ãªãŒãºãä¿®äºãããšã以äžã®ããšãã§ããããã«ãªããŸãã
- ã¢ã«ãŽãªãºã ãšå¶åŸ¡æ³¢åœ¢ã®éã«ããå±€ãæããåå±€ãäœãæ¶è²»ããŠäœãçç£ããããè¿°ã¹ãåå±€ãããŒããŠã§ã¢ã®ã©ã®æ å ±ãå¿ èŠãšããããæ£ç¢ºã«èšãã
- åè·¯ã®äžé衚çŸãšãããã«äŒŽãææš â æ·±ããã²ãŒãæ°ã2éåãããã²ãŒãæ° â ãå®è£ ããå±€ã®å¢çãåºå®ããã®ãã²ãŒãéåã®éžæã§ããããšã説æã§ãã
- 倧åäœçžé€å»ä»ãã®ãŠãã¿ãªç䟡æ§ã«ãã£ãŠã³ã³ãã€ã©ãã¹ãæå³ãä¿ã€ããšãæ€èšŒããå¶åŸ¡ãããã¯ã®å åŽã§ã¯å€§åäœçžãæšãŠãŠã¯ãããªãçç±ã説æã§ãã
- ããŒãããŒã«æé©ååšãæžããä»»æã®1éåããããŠãã¿ãªãEulerè§ã§åè§£ããäžè¬ã®2éåããããŠãã¿ãªãèŠæ±ããCNOTæ°ãè¿°ã¹ããã
- $T$ ã²ãŒããé«äŸ¡ãªã²ãŒãã§ããçç±ãšã誀ãèšæ£ãå ¥ã£ããšãã«è²»çšã¢ãã«ãã©ãå€ãããã説æã§ãã
- æ¥ç¶æ§ã°ã©ãã衚çŸããåæã¬ã€ã¢ãŠããéžã³ãSWAPã²ãŒããæ¿å ¥ããŠåè·¯ãããã«èŒããå šçµåã»æ Œåã»heavy-hexã®å幟äœã§ã®ãªãŒããŒããããæž¬ãã
- 3æºäœç³»ãã·ãã¥ã¬ãŒãããç©åœ¢ãã«ã¹ããã®ãªãŒã¯ã芳枬ããDRAGã§ãããæããæå³çã«ããããæ¯æ°ãå埩ããRabiã»Ramseyã»DRAGä¿æ°ã®èŒæ£ã«ãŒããèµ°ããããã
- èªã¿åºã誀ãã®è£æ£ããŒããã€ãºå€æ¿ã確çç誀差ãã£ã³ã»ã«ãå®è£ ãããããããèŠæ±ãããµã³ããªã³ã°è²»çšã枬ãã
- è«çããç©çãžã®ãªãœãŒã¹èŠç©ã â ã¢ã«ãŽãªãºã ã® $T$ æ°ãã笊å·è·é¢ãç©çéåãããæ°ãå®è¡æéãŸã§ â ããèªãã æ°å€ã§ã¯ãªãèµ°ããããã颿°ãšããŠäœãã
ð åæç¥è
å¿ é ã éåã³ã³ãã¥ãŒãã£ã³ã°å ¥éããããã¯åçã®ç¿çãç¶æ ãã¯ãã«ãšãŠãã¿ãªã²ãŒããããã°ãšã³ãã£ã¢ã³ã®éåãããèŠçŽãåã³ãŒã¹ç¬¬2ç« ã®99è¡ã®ç¶æ ãã¯ãã«ã·ãã¥ã¬ãŒã¿ããããŠç¬¬5ç« ã®ãã€ãºãã£ãã«ãšèª€ãèšæ£ã®æ±ãã§ããæ¬ã³ãŒã¹ã®åç« ã¯å¿ èŠãªã·ãã¥ã¬ãŒã¿é¢æ°ãåæ²ããŸãããç©çãåå°åºããããšã¯ãããŸããã
å¿ é ã ç·åœ¢ä»£æ°ããŠãã¿ãªè¡åãšãšã«ããŒãè¡åããã³ãœã«ç©ãåºæå€åè§£ãè¡åãã«ã ã第2ç« ã®åæã®è°è«ãšç¬¬4ç« ã®3æºäœãã€ããã¯ã¹ã¯ã©ã¡ãããè¡åç©ã ãã§ãªãåºæå€ãå¿ èŠãšããŸãã
å¿ é ã Python 3.8以éãšNumPyãSciPyãMatplotlibãæ¬ã·ãªãŒãºã«ã¯éåSDKãããŒããŠã§ã¢ããã¯ãšã³ããã©ãã«ããããŸããããããæ¬ã·ãªãŒãºã®èŠç¹ã§ãã
æšå¥šã éåããŒããŠã§ã¢å ¥éã第3ç« ã¯æ¥ç¶æ§ã°ã©ãããã©ãããã©ãŒã ã®ç©çã®åž°çµãšããŠèª¬æã â ã€ãªã³ãã©ããã¯å šçµåãè¶ äŒå°åè·¯ã¯ç â 第4ç« ã¯åã³ãŒã¹ç¬¬2ç« ã®å ±é³Žé§åã®ç©çãå¶åŸ¡ã®èšèã§å蚪ããŸããã©ã¡ãã®ç« ããããªãã§èªããŸããããããšããªãé¢çœããªããŸãã
ãããšäŸ¿å©ã éåã¢ã«ãŽãªãºã ïŒäžçŽïŒããã®ã¹ã¿ãã¯ãã³ã³ãã€ã«ãæ±ããããåè·¯ã®ããããããŠç¬¬5ç« ãæŽåãä¿ã€ãªãœãŒã¹èŠç©ãã®èŠçŽã®ããã§ãã
ð ç« æ§æ
第1ç« : ã¢ã«ãŽãªãºã ãããã«ã¹ãŸã§ã®ã¹ã¿ãã¯
ãããããªãå±€ãããã®ãããããŠå¢çã¯ã©ãã«ããã¹ãããå€å®åºæºã¯åãã¹ã®å
¥åãã©ãã ãçé®®ã§ãããã§ãããããã7ã€ã®å±€ããæ
£äŸçã«æãããã¡ããã©ãã®é åºã«äžŠã¹ãŸããæ¬¡ã«æ¬ã³ãŒã¹ã®åè·¯ã®äžéè¡šçŸ â ã²ãŒãã¿ãã«ãããã°ãšã³ãã£ã¢ã³ã®ã¯ã€ã€ãrun_circuitãcircuit_depthãgate_counts â ãåºå®ããå±€ã®å¢çãäœãã®ã¯ããŒã¿æ§é ã«ã€ããŠã®äœãã§ã¯ãªãã²ãŒãéåã®éžæã§ããããšãè«ããŸããã³ã³ãã€ã«ã¯æå³ãä¿ã€æžãæããšããŠå®çŸ©ããã䜿ãããŠãã3ã€ã®æ£ããã®é¢ä¿ïŒå€§åäœçžãé€ããŠå³å¯ãéåãããã®çœ®æãé€ããŠå³å¯ã$\varepsilon$ ã®ç¯å²ã§è¿äŒŒïŒãšããã®ãã¡ç¬¬1ã®ãã®ãæ€æ»ãããŠãã¿ãªç䟡æ§ãã§ãã«ãæ±ããŸããåçšãã¬ãŒã ã¯ãŒã¯ããããã®å±€ãäœãšåŒãã§ãããã®å°å³ã§ç· ãããããŸããä»åŸæ°çã«èããã ãäžè¬çãªèšãæ¹ã§è¿°ã¹ããããŠæ®ãã®ç« ãã¹ã¿ãã眮ãæããŠãã4段ã®ã³ã³ãã€ã©ãã€ãã©ã€ã³ãæç€ºããŸãã
äž»èŠããã㯠: 7ã€ã®å±€ · ç鮮床ãšããå±€åãã®åºæº · ããŒã¿ãšããŠã®åè·¯IR · å±€ã®å¢çãšããŠã®ã²ãŒãéå · æ·±ããšãã®åäœæéã®ä»®å® · 3ã€ã®æ£ããã®é¢ä¿ · Hilbert-Schmidtéãªãã«ãã倧åäœçžé€å» · å¶åŸ¡ãããã¯ã®å åŽã§ã¯å€§åäœçžã倧åçã§ãªãçç± Â· ç¶æ ç䟡æ§ãšãŠãã¿ãªçäŸ¡æ§ Â· SDKã®å±€ã®å¯Ÿå¿
ð» 7åã®Code Examples â±ïž 45-50å ð äžçŽ
第2ç« : åè·¯æé©åãšã²ãŒãåæ
ããŒãããŒã«æé©ååšãæ§æããæžãæãèŠåã飿¥ã²ãŒãã®èåãéã²ãŒãã®çžæ®ºããããŠ2ã€ã®ã²ãŒãã亀æããŠããããæ±ºãã亀æèŠåã§ããä»»æã® $U(2)$ ã3å転ã«å€ããEuleråè§£ã«ãã1éåãããåæãå®è£ ãã第1ç« ã®ãã§ãã«ã§æ€èšŒããŸãã2éåãããåæã§ã¯ãæŠå¿µãšããŠã®KAKåè§£ãæç€ºçãª2CXãš3CXã®æ§æããããŠçµãã£ããšèšããã¿ã€ãã³ã°ãæããŠãããCNOTæ°ã®äžçãæ±ããŸããæ¬¡ã«Clifford$+T$ãšã$T$ ã²ãŒããé«äŸ¡ã§ããçç±ãããã¯ããŒããŠã§ã¢ã«ã€ããŠã§ã¯ãªã誀ãèšæ£ã«ã€ããŠã®äž»åŒµã§ããã第5ç« ã®ãªãœãŒã¹èšç®ã«ã€ãªãããŸããæåŸã«æž¬å®ã§ããã©ã³ãã åè·¯äžã§ããŒãããŒã«æé©ååšãèµ°ãããŠæ·±ããšã²ãŒãæ°ã®åæžãèšé²ãããã¹ãŠã®æžãæãã«ã€ããŠãŠãã¿ãªç䟡æ§ãæ€èšŒããŸãã
äž»èŠããã㯠: ã²ãŒãã®èåãšçžæ®º · 亀æèŠå · åè·¯æçåŒ Â· Eulerããã³ZYZåè§£ · KAKåè§£ · 2CXãš3CXã®æ§æ · CNOTæ°ã®äžç · Clifford$+T$ · $T$ æ° Â· æé©ååšã®å šæ°çäŸ¡æ§æ€èšŒ
ð» 7åã®Code Examples â±ïž 45-50å ð äžçŽ
第3ç« : ãã©ã³ã¹ãã€ã« â æ¥ç¶æ§ãžã®åå
ç©çã®åž°çµãšããŠã®æ¥ç¶æ§ã°ã©ããå ±æããŸã³ã¢ãŒãããã¹ãŠã®éåããããçµåãããšããã§ã¯å šçµåãçµåã容éçã§åšæ³¢æ°ãè¡çªããŠã¯ãªããªããšããã§ã¯2æ¬¡å æ Œåãheavy-hexã°ã©ãã«ãªããŸããé 眮åé¡ â ããã°ã©ã ã®åéåããããã©ã®ç©çéåãããããå§ãŸãããéžã¶ããš â ãããªãNPå°é£ãªã®ããããã§ããªããã¥ãŒãªã¹ãã£ã¯ã¹ã§è¶³ããã®ãã®èª å®ãªèª¬æãšãšãã«æ±ããŸããSWAPæ¿å ¥ã«ããã«ãŒãã£ã³ã°ãšãçŸä»£ã®ã«ãŒã¿ã䜿ãååãã»åŸåããã¥ãŒãªã¹ãã£ã¯ã¹ã®èåŸã«ããåçããããŠè²»çšã®æž¬å®ã§ããæ¥ç¶æ§ãšåè·¯æ§é ã®é¢æ°ãšããŠã®SWAPãªãŒããŒãããããåæãã³ãããŒã¯ã®èãæ¹ãšãšãã«ããã³ããŒã®æ°å€ãªãã§æ±ããŸããå®è£ ã§ç· ãããããŸããã°ã©ã衚çŸãæè¿åã«ãŒã¿ã3ã€ã®å¹Ÿäœã«èŒããGHZãšQFTåè·¯ã®SWAPæ°ã®æ¯èŒããããŠéåãããã®çœ®æãå«ããã«ãŒãã£ã³ã°åŸã®çäŸ¡æ§æ€èšŒã§ãã
äž»èŠããã㯠: çµåã°ã©ã · å šçµåã»æ Œåã»heavy-hex · åæã¬ã€ã¢ãŠãã®éžæ · NPå°é£æ§ãšãã¥ãŒãªã¹ãã£ã¯ã¹ã§è¶³ããçç± Â· SWAPæ¿å ¥ · å èªã¿ã«ãŒãã£ã³ã°ã®ãã¥ãŒãªã¹ãã£ã¯ã¹ · æ¥ç¶æ§ã«å¯ŸããSWAPãªãŒããŒããã · 眮æãé€ããç䟡æ§
ð» 7åã®Code Examples â±ïž 45-50å ð äžçŽ
第4ç« : ãã«ã¹ãšèŒæ£
ã²ãŒãã®äžã«ãããã®ãå転ã¯å ±é³Žé§åã§ãããããŒããŠã§ã¢ã³ãŒã¹ã®ç¬¬2ç« ã®ç©çãå¶åŸ¡ã®åé¡ãšããŠåç»å ŽããŸããç©åœ¢ãã«ã¹ããã¬ãŠã·ã¢ã³ãDRAGãžã®ãã«ã¹æŽåœ¢ããæŽåœ¢ãå¿ èŠã«ããŠãããã® â 匱é調åç³»ã®èšç®éšå空éããã®ãªãŒã¯ â ããåæ©ã¥ããŸãããã®å±€ã®ç¹åŸŽã§ããèŒæ£ã«ãŒããRabiæ¯å¹ ã®èŒæ£ãRamseyå¹²æžã«ããåšæ³¢æ°ã®èŒæ£ãDRAGä¿æ°ã®èŒæ£ã§ãããããããåããããšãœãããŠã§ã¢ãèªåã®æ©æ¢°ã«å¯ŸããŠå®éšãè¡ã£ãŠããããšã«ãªããŸããã©ã³ããã€ãºããã³ãããŒãã³ã°ãšããããã²ãŒãå¿ å®åºŠãç¶æ æºåã»æž¬å®ã®èª€ãããåé¢ã§ããçç±ã3æºäœãã«ã¹ã·ãã¥ã¬ãŒã¿ã§ç· ãããããŸããç©åœ¢ãã«ã¹ã®äžã§ãªãŒã¯ã枬ã£ãŠDRAGã§æãããããããæå³çã«ããããæ¯æ°ãèŒæ£ã«ãŒããå埩ããã·ãã¥ã¬ãŒãããã©ã³ããã€ãºããã³ãããŒãã³ã°ããåãåºããã²ãŒã誀ããèšå®å€ãšäžèŽããããšãèŠãŸãã
äž»èŠããã㯠: å ±é³Žé§åãšå転座æšç³» · ãªãŒã¯ãšéèª¿åæ§ · ã¬ãŠã·ã¢ã³ãšDRAGã®ãã«ã¹æŽåœ¢ · Rabiæ¯å¹ èŒæ£ · Ramseyåšæ³¢æ°èŒæ£ · DRAGä¿æ°èŒæ£ · ã©ã³ããã€ãºããã³ãããŒãã³ã° · SPAM誀差ãšã²ãŒã誀差ã®åé¢
ð» 9åã®Code Examples â±ïž 50-55å ð äžçŽ
第5ç« : ãœãããŠã§ã¢ãšããŠã®èª€ãç·©åãšãªãœãŒã¹èŠç©ã
誀ãç·©åããå®éã«ããã§ãããã® â æž¬å®çµæãåŸåŠçãããœãããŠã§ã¢ã®å±€ â ãšããŠæ±ããŸããæ··åè¡åã«ããèªã¿åºã誀ãã®è£æ£ããéè¡åãšå¶çŽä»ãæå°äºä¹ã®äž¡æ¹ã§è¡ããåŸè ã奜ãŸããçç±ãè¿°ã¹ãŸããã²ãŒãæãè¿ãã«ãããŒããã€ãºå€æ¿ãå®è£ ãã忣ã®è²»çšã䞻匵ã§ã¯ãªã枬å®ã§ç€ºããŸãã確çç誀差ãã£ã³ã»ã«ãšãã®æ¬ç¢ºçã®æ§æããææ°çãªãµã³ããªã³ã°è²»çšãæ°å€ã§ç€ºããªããæ±ããŸããããææ³ã®èª å®ãªèª¬æã«ã¯ããããæ©èœããªããªãç¹ãå«ãŸããããã§ããæ¬¡ã«ãã®ã¢ãããŒãå šäœã®å¢çã§ããç·©åã®è²»çšã¯ææ°çã«å¢ããèšæ£ã®è²»çšã¯å€é åŒçã«å¢ãããããããœãããŠã§ã¢ã®å·¥å€«ãå°œãã誀ãèšæ£ãå§ãŸãå Žæã§ããç¶ããŠãªãœãŒã¹èŠç©ãã®ãã€ãã©ã€ã³ããã¢ã«ãŽãªãºã ã® $T$ æ°ãã笊å·è·é¢ãç©çéåãããæ°ãçµãŠå®è¡æéã«è³ã颿°ãšããŠå®è£ ããŸãã6ã³ãŒã¹ãããªãéåã·ãªãŒãºã®å°å³ãšããã®ç« ãã©ãçžäºåç §ããŠãããã§ç· ãããããŸãã
äž»èŠããã㯠: æ··åè¡åãšèªã¿åºãè£æ£ · å¶çŽä»ãæå°äºä¹ · ã²ãŒãæãè¿ãã«ãããŒããã€ãºå€æ¿ · ç·©åã®åæ£è²»çš · æ¬ç¢ºçãšPEC · ææ°çãªãµã³ããªã³ã°è²»çš · ç·©åãšèšæ£ Â· $T$ æ°ãã笊å·è·é¢ãç©çéåãããæ°ãž Â· å®è¡æéã®èŠç©ã · ã·ãªãŒãºã®å°å³
ð» 8åã®Code Examples â±ïž 45-50å ð äžçŽ
ð€ èšæ³ãšèŠçŽ
2ã€ã®èŠçŽãéåã³ã³ãã¥ãŒãã£ã³ã°å ¥éããåŒãç¶ãäžåå€ããŸããã3ã€ç®ã¯æ¬ã³ãŒã¹ã§æ°ãããæ¬ã·ãªãŒãºã®æè¡çãªå¥çŽã§ãã
| èšå· | æå³ |
|---|---|
| $\lvert q_0 q_1 \cdots q_{n-1}\rangle$ | ããã°ãšã³ãã£ã¢ã³ãéåããã0ãæå·Šãã€æäžäœãSDKã®æç®ã®å€ãã䜿ãèŠçŽã®é |
| $\hbar = 1$ | ããã«ããã¢ã³ãçŸãããšãããããªãã¡ç¬¬4ç« ã§ã¯ç°¡çŽåäœç³» |
| $C = [g_1, \ldots, g_L]$ | åè·¯ã¯ã²ãŒãã¿ãã«ã®ãªã¹ãã§ãå·Šããå³ãžäœçšããã |
| $U(C)$ | å路㮠$2^n \times 2^n$ è¡åã$U_{g_L}\cdots U_{g_1}$ |
| $e^{i\varphi}$ | 倧åäœçžããã¹ãŠã®çäŸ¡æ§æ€æ»ã§å²ãåºããã |
| $\mathrm{depth}(C)$ | éåãããã®æä»æ§ã«ãã貪欲ãªè©°ã蟌ã¿ã§ã®å±€æ° |
| $\varepsilon$ | è¿äŒŒåæã®èª€å·®ãäœçšçŽ ãã«ã ã§æž¬ã |
| $d$ | 笊å·è·é¢ïŒç¬¬5ç« ïŒãä»ã®å Žæã§ã® $\lVert \cdot \rVert$ ã¯äœçšçŽ ãã«ã |
| $X, Y, Z, H, S, T$, CNOT | ã²ãŒãèšå·ãå ¥éã³ãŒã¹ãšåäž |
åè·¯IRã 第1ç« ã§åºå®ãã5ç« ãã¹ãŠãå€ããã«äœ¿ããŸãã
| ã²ãŒãã¿ãã« | æå³ |
|---|---|
("h", q), ("x", q), ("z", q), ("s", q), ("t", q) |
åºå®1éåãããã²ãŒã |
("rx", theta, q), ("ry", theta, q), ("rz", theta, q) |
å転ãè§åºŠã¯ã©ãžã¢ã³ã$R_a(\theta) = e^{-i\theta A/2}$ |
("cx", control, target), ("cz", q1, q2) |
2éåãããã²ãŒã |
ããã«3ã€ã®é¢æ° â run_circuit(circ, n)ãcircuit_depth(circ, n)ãgate_counts(circ) â ãä»ããåç« ã¯äœ¿ããã®ãéèªã§åæ²ããŸãã
仿§ã§ã¯ãªãæ¯æ°ã ã²ãŒãã®æèŠæéã»èª€ãçã»ã³ããŒã¬ã³ã¹æéã¯ãå šäœãéããŠæ°æ¡ã«ããã£ãŠã¹ã€ãŒããããç¡æ¬¡å ã®æ¯æ°ãšããŠçŸããŸããã¹ã±ãŒãªã³ã°ãšå®æ°åãé²ãã«ããããã«ãããè£ çœ®ä»æ§ã»æž¬å®å€ã§ã¯ãªããç¹å®ã®æ©æ¢°ã«ã€ããŠã®äºæž¬ã§ããããŸããã
ð æ¬ã·ãªãŒãºã¯äœã§ãããäœã§ã¯ãªãã
SDKã®ãã¥ãŒããªã¢ã«ã§ã¯ãããŸããã ãã®5ç« ã®ã©ãã§ããã¬ãŒã ã¯ãŒã¯ãã€ã³ã¹ããŒã«ãããimportãããçãåºå®ããŸããã1.4ç¯ãå±€ãã©ã®ãã¬ãŒã ã¯ãŒã¯ã«ãããéšåã«å¯Ÿå¿ãããŸãããäžè¬çãªååã䜿ãããããæ¬ã·ãªãŒãºãAPIããã¥ã¡ã³ãã«æãè¿ã¥ãå°ç¹ã§ããæå³çã«ããããŠããŸããAPIã¯å€ãããå±€ã¯å€ãããªãããã§ãã
SDKã®ä»£æ¿ã§ã¯ãªããSDKãžã®æ©ã§ãã æ¬çªã®ãã¬ãŒã ã¯ãŒã¯ã¯ããŒããŠã§ã¢ãžã®ã¢ã¯ã»ã¹ã宿©ã«å¯ŸããŠéçºããããã¹ã察å¿ããã¯ãšã³ãããšã«ä¿å®ãããæ©æ¢°ã®èšè¿°ãäžããŸããã©ãã代æ¿ã§ããŸãããäžããªãã®ã¯ãã¹ãäœããããã®ç¥èã§ãããæ¬ã³ãŒã¹ãäŸçµŠããã®ã¯ãã®ååã§ãã
ããŒããŠã§ã¢ã®è¬åº§ã§ã¯ãããŸããã éåããããã³ããŒã¬ã³ã¹ãã²ãŒãæ©æ§ã®ç©çã¯éåããŒããŠã§ã¢å ¥éã«å±ããŸãã第4ç« ã¯å¶åŸ¡ã®åé¡ãèŠæ±ããåã ããããªãã¡3æºäœç³»ãé§åããªãŒã¯ã®ãã£ãã«ã ãã䜿ããŸãã
ã¢ã«ãŽãªãºã ã®è¬åº§ã§ã¯ãããŸããã ããã§ã³ã³ãã€ã«ãããåè·¯ã¯å°ããäžè¬çãªãã®ã§ããé¢çœãåè·¯ãçãã¢ã«ãŽãªãºã ã«ã€ããŠã¯éåã¢ã«ãŽãªãºã ïŒäžçŽïŒãèªãã§ãã ããã
誀ãç·©åã«ã€ããŠå®£äŒçã§ã¯ãããŸããã 第5ç« ã¯ãŒããã€ãºå€æ¿ãšç¢ºçç誀差ãã£ã³ã»ã«ãå®è£ ãããã®ããã§è²»çšã枬ããŸããè²»çšãææ°çã§ãããšããã§ã¯æ°å€ãä»ããŠããè¿°ã¹ããœãããŠã§ã¢ã®å·¥å€«ãã©ãã§å°œããããæèšããŸãã
ãã¹ãŠãèµ°ãããã¹ãŠãæ€æ»ãããŠããŸãã ãã¹ãŠã®ã³ãŒãäŸã¯è¡šç€ºãããåºåãåŸãããã«å®è¡ãããŸããããã¹ãŠã®æžãæããã¹ã«ã¯ãŠãã¿ãªç䟡æ§ã®æ€æ»ãä»ããã¬ãžã¹ã¿ãå šæ°æ€æ»ã«å€§ããããå Žåã¯ãä»£æ¿ææ®µãšãã®éçãé£ã°ããã«è¿°ã¹ãŸãã
ð æšå¥šåŠç¿ãã¹
ãã¿ãŒã³1: å®å šç¿åŸïŒ6ã7æ¥ïŒ
- 1æ¥ç®: 第1ç« 1.1ã1.4ç¯ â å±€ãIRããããŠã³ã³ãã€ã«ã®æå³
- 2æ¥ç®: 第1ç« 1.5ç¯ â IRãšãã§ãã«ãäœããèªåã§ãã€ãã©ã€ã³ãèµ°ããã
- 3æ¥ç®: 第2ç« â æžãæãèŠåãEulerãšKAKåæã$T$ æ°ã®èšæ°
- 4æ¥ç®: 第3ç« â æ¥ç¶æ§ãã¬ã€ã¢ãŠããã«ãŒãã£ã³ã°ãSWAPãªãŒããŒããã
- 5æ¥ç®: 第4ç« â ãã«ã¹ããªãŒã¯ãDRAGãèŒæ£ã«ãŒã
- 6æ¥ç®: 第5ç« 5.1ã5.4ç¯ â èªã¿åºãè£æ£ãZNEãPECããããŠãã®éç
- 7æ¥ç®: 第5ç« 5.5ã5.6ç¯ãšæŒç¿ â ãªãœãŒã¹èŠç©ããšãã·ãªãŒãºã®å°å³
ãã¿ãŒã³2: ã³ã³ãã€ã©ã®éïŒ2ã3æ¥ïŒ
- 第1ç« ãå šéš â IRãšç䟡æ§ãã§ãã«ãéå ·ã§ã
- 第2ç« ãå šéš â ãã©ã³ã¹ãã€ã©ã®ã³ãŒãã®ã»ãšãã©ã¯ããã«äœãã§ããŸã
- 第3ç« ãå šéš â ãããŠçµæãè²»çšãšããŠèŠãããã«3.4ç¯
ãã¿ãŒã³3: å¶åŸ¡ã®éïŒ1ã2æ¥ïŒ
- 第1ç« 1.1ã1.2ç¯ â ãã«ã¹ã®å±€ãäœçœ®ã¥ããã®ã«è¶³ãã ãã®ã¹ã¿ãã¯
- 第4ç« ãå šéšãèŒæ£ã«ãŒãã¯èµ°ãããæå³çã«å£ããŠã¿ã
- 第5ç« 5.1ã5.2ç¯ â åãå±€ã®æž¬å®åŽ
ãã¿ãŒã³4: æç掟ã®éïŒåæ¥ïŒ
- 1.3ç¯ â æžãæããæ£ãããšã¯ã©ãããããšãããããŠã©ãæ€æ»ããã
- 5.3ç¯ãš5.4ç¯ â ç·©åã®ææ°çãªè²»çšãšããããå°œããå Žæ
- 5.5ç¯ â èªåã§èµ°ããããããªãœãŒã¹èŠç©ããšãå¯èŠåãããä»®å®
ð¯ å šäœçãªåŠç¿ææ
ç¥èã¬ãã«
- â éåãœãããŠã§ã¢ã¹ã¿ãã¯ã®å±€ãæããåå±€ãèŠæ±ããããŒããŠã§ã¢æ å ±ãè¿°ã¹ããã
- â å±€ã®å¢çãå®çŸ©ããã®ãããŒã¿æ§é ã§ã¯ãªãã²ãŒãéåã§ããçç±ã説æã§ãã
- â ã³ã³ãã€ã©ãã¹ã®3ã€ã®æ£ããã®é¢ä¿ãè¿°ã¹ãã©ã®å±€ãã©ãã䜿ãããèšãã
- â $T$ ã²ãŒããé«äŸ¡ãªçç±ãç·©åã®è²»çšãææ°çã«å¢ããçç±ãèšæ£ãããã§ãªãçç±ã説æã§ãã
å®è·µã¹ãã«
- â æ·±ããšã²ãŒãæ°ã®ææšã䌎ãåè·¯IRãšã倧åäœçžé€å»ä»ãã®ãŠãã¿ãªç䟡æ§ãã§ãã«ãå®è£ ã§ãã
- â ä»»æã®1éåããããŠãã¿ãªã®Euleråè§£ãå«ãæžãæããã¹ãæžããæ€èšŒã§ãã
- â åè·¯ãæ¥ç¶æ§ã°ã©ãã«èŒãããã®ãªãŒããŒããããæž¬ãã
- â 3æºäœç³»äžã®æŽåœ¢ãã«ã¹ãã·ãã¥ã¬ãŒãããããããæ¯æ°ãå埩ããèŒæ£ã«ãŒããèµ°ããããã
- â èªã¿åºãè£æ£ãZNEãPECãå®è£ ããããããã®ãµã³ããªã³ã°è²»çšã枬ãã
å¿çšå
- â ãã©ã³ã¹ãã€ã«åŸã®åè·¯ãèªã¿ããã®å€§ããã®è²¬ä»»ãã©ã®å±€ã«ããããåå®ã§ãã
- â è¿°ã¹ããã誀ãã¢ãã«ã«é©ããã³ã³ãã€ã«ã®ç®ç颿° â æ·±ãã2éåãããæ°ã$T$ æ° â ãéžã¹ã
- â ã¢ã«ãŽãªãºã ãå¿ èŠãšãããªãœãŒã¹ãã²ãŒãæ°ããèŠç©ããä»®å®ãæžãäžãã
- â ä»»æã®éåãã¬ãŒã ã¯ãŒã¯ã®ããã¥ã¡ã³ããéãããã®åéšåãå±€ã«å²ãåœãŠããã
ð ïž äœ¿çšæè¡ã»ããŒã«
äž»èŠã©ã€ãã©ãª
- numpy â ç¶æ ãã¯ãã«ã·ãã¥ã¬ãŒã¿ãåè·¯IRããã®äžã®ãã¹ãŠã®ãã¹
- scipy â ãã«ã¹ã·ãã¥ã¬ãŒã¿ã®ODEç©åãåºæå€åé¡ãèªã¿åºãè£æ£ãšå€æ¿ã®æå°äºä¹
- matplotlib â æ·±ããšã²ãŒãæ°ã®æ¯èŒããã«ã¹å 絡ç·ãèŒæ£æ²ç·ã倿¿ã®ãããã
éçºç°å¢
- Python : 3.8以äž
- Jupyter Notebook : æšå¥šãåç« ã¯ãåŸã®ã³ãŒãäŸãåã®å®çŸ©ãåå©çšãã1ã€ã®ã»ãã·ã§ã³ãšããŠæžãããŠããŸã
- Google Colabã§ãã¹ãŠã®ã³ãŒãäŸãèµ°ããŸããGPUãéåããã¯ãšã³ããå®éšå®€ãäžèŠã§ã
ð æ¬¡ã®ã¹ããã
ããã«æ·±ãåŠã¶
- ZXèšç®ãªã©ã®ã°ã©ãã£ã«ã«ãªæžãæãäœç³»ãçŸä»£ã®æé©ååšãããŒãããŒã«èŠåã®ä»£ããã«äœ¿ã£ãŠãããã®
- 誀ãèæ§ã®ã³ã³ãã€ã«ãæ Œåæè¡ãããžãã¯ç¶æ èžçããã㊠$T$ æ°ãç©ççãªé¢ç©ã«ãªãå Žæ
- æé©å¶åŸ¡ â GRAPEãCRABã埮åäžèŠæ³ â ã«ãããè§£æçãªåœ¢ã§ã¯å°éã§ããªããã«ã¹
- å€§èŠæš¡ã§ã®æ€èšŒã決å®å³ãšãã·ãã¥ã¬ãŒãå¯èœãªç¯å²ãè¶ ããçäŸ¡æ§æ€æ»
- ãã«ã¹ã¬ãã«ããã³ããŒããŠã§ã¢ãæèããã³ã³ãã€ã«ãæ¬ã³ãŒã¹ã®å±€ãæå³çã«çµ±åããé å
é¢é£ã·ãªãŒãº
- éåã³ã³ãã¥ãŒãã£ã³ã°å ¥é â åæã§ãããã·ãã¥ã¬ãŒã¿ã®åºæ
- éåã¢ã«ãŽãªãºã ïŒäžçŽïŒ â ãã®ã¹ã¿ãã¯ãã³ã³ãã€ã«ããåè·¯ãçãã¢ã«ãŽãªãºã
- éåããŒããŠã§ã¢å ¥é â æ¥ç¶æ§ã°ã©ããšãã«ã¹ã®ç©çã®åºæ
- éåæ©æ¢°åŠç¿å ¥é â åãè©äŸ¡ã®èŠåŸãåŠç¿ã«é©çšãããã®
- éåã»ã³ã·ã³ã°å ¥é â åãå¶åŸ¡ãšèŒæ£ã®èãæ¹ããèšç®ã§ã¯ãªã枬å®ã«äœ¿ã£ããã®
å®è·µãããžã§ã¯ã
- 第1ç« ã®IRãåè·¯éäžã®æž¬å®ãšå€å
žå¶åŸ¡ã§æ¡åŒµãããã®ãšã
circuit_depthãäœãæå³ãã¹ãããæ±ºãã - 第2ç« ã®æé©ååšã«å¯ææ§ãæèããæã¡æ¶ããã¹ãå ãã第3ç« ã®ã«ãŒãã£ã³ã°åŸã®åè·¯ã§åæžéãæž¬ãçŽã
- å èªã¿ã«ãŒã¿ãå®è£ ããåã3ã€ã®æ¥ç¶æ§ã°ã©ãäžã§æè¿åã«ãŒã¿ãšæ¯èŒãã
- 第4ç« ã®ãã«ã¹ã·ãã¥ã¬ãŒã¿ããã€ãºã®ããä¿¡å·ã§èŒæ£ããå埩ãããæ¯æ°ãã©ãå£åããããæž¬ã
- èªåã®ä»äºã®åè·¯ããã€ãã©ã€ã³å šäœã«éãããã¹ãŠã®ä»®å®ãæžãäžãããªãœãŒã¹èŠç©ããäœã
â ïž å 責äºé
- æ¬ã³ã³ãã³ãã¯æè²ã»ç ç©¶ã»æ å ±æäŸã®ã¿ãç®çãšããŠãããå°éçãªå©èš(æ³åŸã»äŒèšã»æè¡çä¿èšŒãªã©)ãæäŸãããã®ã§ã¯ãããŸããã
- æ¬ã³ã³ãã³ãããã³ä»éããCode examplesã¯ãçŸç¶æå§¿(AS IS)ãã§æäŸãããæç€ºãŸãã¯é»ç€ºãåãããååæ§ãç¹å®ç®çé©åæ§ãæš©å©éäŸµå®³ãæ£ç¢ºæ§ã»å®å šæ§ãåäœã»å®å šæ§çãããªãä¿èšŒãããŸããã
- å€éšãªã³ã¯ã第äžè ãæäŸããããŒã¿ã»ããŒã«ã»ã©ã€ãã©ãªçã®å 容ã»å¯çšæ§ã»å®å šæ§ã«ã€ããŠãäœæè ããã³æ±å倧åŠã¯äžåã®è²¬ä»»ãè² ããŸããã
- æ¬ã³ã³ãã³ãã®å©çšã»å®è¡ã»è§£éã«ããçŽæ¥çã»éæ¥çã»ä»éçã»ç¹å¥ã»çµæçã»æ²çœ°çæå®³ãçããå Žåã§ããé©çšæ³ã§èš±å®¹ãããæå€§éã®ç¯å²ã§ãäœæè ããã³æ±å倧åŠã¯è²¬ä»»ãè² ããŸããã
- æ¬ã³ã³ãã³ãã®å 容ã¯ãäºåãªã倿Žã»æŽæ°ã»æäŸåæ¢ãããããšããããŸãã
- æ¬ã³ã³ãã³ãã®èäœæš©ã»ã©ã€ã»ã³ã¹ã¯æèšãããæ¡ä»¶(äŸ: CC BY 4.0)ã«åŸããŸããåœè©²ã©ã€ã»ã³ã¹ã¯éåžžãç¡ä¿èšŒæ¡é ãå«ã¿ãŸãã