ããã«ã¡ã¯äœæ°ïŒéåã³ã³ãã¥ãŒã¿ãŒã¯æ°ããã³ã³ãã¥ãŒã¿ãŒé©åœãåŒãèµ·ãããŸãããããªãã¯ä»ãæè¡é©æ°ã«åå ãã絶奜ã®ãã£ã³ã¹ããããŸããéçºè
ãã³ã³ãã¥ãŒã¿ãŒã°ã©ãã£ãã¯ã¹ã®ã¹ãã·ã£ãªã¹ããããã³ææ¬²çãªITãããã§ãã·ã§ãã«ã¯ããã®æ¬ã§ããã°ã©ããŒãå¿
èŠãšããéåã³ã³ãã¥ãŒãã£ã³ã°ã«é¢ããå®çšçãªæ
å ±ãèŠã€ããã§ããããçè«ãå
¬åŒãç ç©¶ãã代ããã«ãéåæè¡ã®ç¬èªã®æ©èœãå®èšŒããç¹å®ã®ã¿ã¹ã¯ã«ããã«éäžããŸãã
Eric JohnstonãNick Harriganãããã³Mercedes Gimeno-Segoviaã¯ãå¿ èŠãªã¹ãã«ãšçŽæã®éçºãæ¯æŽããéåã¢ããªã±ãŒã·ã§ã³ã®äœæã«å¿ èŠãªããŒã«ãç¿åŸããŸããéåã³ã³ãã¥ãŒã¿ãŒã®æ©èœãšããããå®éã«é©çšããæ¹æ³ãçè§£ã§ããŸãããã®æ¬ã¯3ã€ã®éšåã§æ§æãããŠããŸãã-QPUã®ããã°ã©ãã³ã°ïŒéåããã»ããµã®ããã°ã©ãã³ã°ããã¥ãŒãããã䜿çšããæäœã®å®è¡ãããã³éåãã¬ããŒããŒã·ã§ã³ã®åºæ¬æŠå¿µã-QPUããªããã£ãïŒã¢ã«ãŽãªãºã ã®ããªããã£ããšã¡ãœãããæ¯å¹ å¢å¹ ãéåããŒãªãšå€æãããã³äœçžæšå®ã-QPUã®ç·Žç¿ïŒQPUããªããã£ããéåæ€çŽ¢æ¹æ³ãããã³Shorã®åè§£ã¢ã«ãŽãªãºã ã䜿çšããŠç¹å®ã®åé¡ã解決ããŸãã
æ¬ã®æ§é
. , , (GPU), , .
â , QPU. , ( , ). (QPU) , QPU.
. I , .
I. QPU
, QPU: , , . QPU.
II. QPU
. , , . « », . , , QPU. QPU, , .
III. QPU
QPU â II â , QPU. .
, , , , .
â , QPU. , ( , ). (QPU) , QPU.
. I , .
I. QPU
, QPU: , , . QPU.
II. QPU
. , , . « », . , , QPU. QPU, , .
III. QPU
QPU â II â , QPU. .
, , , , .
å®éã®ããŒã¿
å®å šãªQPUã¢ããªã±ãŒã·ã§ã³ã¯ãå®éã®ãã¬ãŒãã³ã°ãããŠããªãããŒã¿ãåŠçããããã«æ§ç¯ãããŠããŸããå®éã®ããŒã¿ã¯ããããŸã§ã«åŸãåºæ¬çãªæŽæ°ã«å¿ ãããéå®ãããŸããããããã£ãŠãQPUã§ããè€éãªããŒã¿ãã©ã®ããã«è¡šçŸããããšããåé¡ã¯ãåªåãã䟡å€ããããåªããããŒã¿æ§é ã¯ãåªããã¢ã«ãŽãªãºã ãšåããããéèŠã§ãããã®ç« ã§ã¯ããããŸã§ãã€ãã¹ãããŠãã2ã€ã®è³ªåã«çããããšããŸãã
- QPUã¬ãžã¹ã¿ã§è€éãªããŒã¿ã¿ã€ããè¡šãæ¹æ³ã¯ïŒæ£ã®æŽæ°ã¯ãåçŽãªãã€ããªãšã³ã³ãŒãã£ã³ã°ã§è¡šãããšãã§ããŸããããããäžåçãªæ°ããããã¯ãã¯ãã«ãè¡åã®ãããªè€åããŒã¿ã¿ã€ãã«ã€ããŠã¯ã©ãã§ããããïŒéãåãããšçžå¯Ÿäœçžããããã®ããŒã¿ã¿ã€ãã«æ°ããéåã³ãŒãã£ã³ã°ãªãã·ã§ã³ãæäŸã§ãããšèãããšããã®è³ªåã¯æ°ããªæ·±ã¿ã垯ã³ãŸãã
- , QPU? , WRITE . , QPU . , , , QPU , .
æåã®è³ªåããå§ããŸããããè€éããå¢ãããŒã¿ã¿ã€ãã®QPU衚çŸã説æãããšãã¯ãæ¬æ ŒçãªéåããŒã¿æ§é ãšéåã©ã³ãã ã¢ã¯ã»ã¹ã¡ã¢ãªïŒQRAMïŒã®æŠå¿µã玹ä»ããŸããQuantum RAMã¯ãå€ãã®å®çšçãªQPUã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠéèŠãªãªãœãŒã¹ã§ãã
以éã®ç« ã®å 容ã¯ããã®ç« ã«ç€ºãããŠããããŒã¿æ§é ã«å€§ããäŸåããŸããããšãã°ããã¯ãã«ããŒã¿ã«ã€ããŠèª¬æããããããè€çŽ æ¯å¹ ã³ãŒãã£ã³ã°ã¯ã第13ç« ã§ç޹ä»ãããã¹ãŠã®éåæ©æ¢°åŠç¿ã¢ããªã±ãŒã·ã§ã³ã®äžå¿ã§ãã
é察象ããŒã¿
QPUã¬ãžã¹ã¿ã§éæŽæ°ã®æ°å€ããŒã¿ããšã³ã³ãŒãããæ¹æ³ã¯ïŒãã®ãããªå€ããã€ããªã§è¡šã2ã€ã®æšæºçãªæ¹æ³ã¯ãåºå®ç¹è¡šçŸãšæµ®åå°æ°ç¹è¡šçŸã§ããæµ®åå°æ°ç¹è¡šçŸã¯ããæè»ã§ãïŒãããŠç¹å®ã®ãããæ°ã§è¡šçŸããå¿ èŠãããå€ã®ç¯å²ã«é©å¿å¯èœã§ãïŒãããã¥ãŒãããã®å€ãé«ããåçŽåããããã®ãã©ã€ãããããããåºå®ç¹è¡šçŸã¯éå§ããã®ã«é©ããå Žæã§ãã
åºå®å°æ°ç¹æ°ã¯Q衚èšã§èšè¿°ãããããšããããããŸãïŒæ®å¿µãªããããã®å Žåã®Qã¯ãéåããæå³ããŸããïŒãããã¯ãåæ°ããããã©ãã§çµãããæŽæ°ããããã©ãã§å§ãŸããã«ã€ããŠã®ãããŸãããåãé€ãã®ã«åœ¹ç«ã¡ãŸãã Qn.m衚èšã¯ãnãããã¬ãžã¹ã¿ã瀺ãããã®mãããã¯åæ°éšåçšã§ãïŒãããã£ãŠãæ®ãã®ïŒn-mïŒã«ã¯æŽæ°éšåãå«ãŸããŸãïŒããã¡ãããåãè¡šèšæ³ã䜿çšããŠãQPUã¬ãžã¹ã¿ã䜿çšããŠåºå®ãã€ã³ãçªå·ããšã³ã³ãŒãããæ¹æ³ãæå®ã§ããŸããããšãã°ãå³ã§ã¯ã 9.1ã¯ãåºå®ç¹è¡šçŸQ8.6ã§å€3.640625ããšã³ã³ãŒããã8ãã¥ãŒãããQPUã¬ãžã¹ã¿ã瀺ããŠããŸãã
äžããããäŸã§ã¯ã3.640625 =ã§ãããããéžæãããæ°å€ã¯åºå®ç¹è¡šçŸã§æ£ç¢ºã«ãšã³ã³ãŒãã§ããŸãã
ãã¡ããããã®ãããªéãåžžã«èŠã€ãããšã¯éããŸãããåºå®å°æ°ç¹ã¬ãžã¹ã¿ã®æŽæ°éšåã®ãããæ°ãå¢ãããšãããã§è¡šãããšãã§ããæŽæ°å€ã®ç¯å²ãåºãããŸãããå°æ°éšåã®ãããæ°ãå¢ãããšãæ°å€ã®å°æ°éšåã®ç²ŸåºŠãåäžããŸããåæ°éšåã®ãã¥ãŒããããå€ãã»ã©ãããã€ãã®çµã¿åãã
ãç¹å®ã®æ°ãæ£ç¢ºã«è¡šãããšãã§ããå¯èœæ§ãé«ããªããŸãã

次ã®ç« ã§åºå®å°æ°ç¹è¡šçŸã®äœ¿çšã«ã€ããŠç°¡åã«èª¬æããŸãããå°ããªQPUã¬ãžã¹ã¿ã®å®éã®ããŒã¿ãå®éšããäžã§éåžžã«éèŠãªåœ¹å²ãæãããŸããããŸããŸãªãšã³ã³ãŒãæ¹æ³ã䜿çšããå Žåããã¥ãŒãããã®ç¶æ ãæ£ããè§£éããããã«ãç¹å®ã®QPUã¬ãžã¹ã¿ã®ããŒã¿ã«äœ¿çšãããç¹å®ã®ãšã³ã³ãŒããæ³šææ·±ãç£èŠããå¿ èŠããããŸãã
QRAM
QPUã¬ãžã¹ã¿ã¯ããŸããŸãªæ°å€ã®è¡šçŸãæ ŒçŽã§ããŸããããããã®å€ãã©ã®ããã«æ ŒçŽããŸããïŒæäœæ¥ã§åæåãããããŒã¿ã¯ããã«å€ããªããŸããæ¬åœã«å¿ èŠãªã®ã¯ãã¡ã¢ãªããå€ãèªã¿åãããã€ããªã¢ãã¬ã¹ã«ä¿åãããŠããå€ããã§ããããæ©èœã§ããããã°ã©ããŒã¯ã2ã€ã®ã¬ãžã¹ã¿ãŒã䜿çšããŠåŸæ¥ã®ã©ã³ãã ã¢ã¯ã»ã¹ã¡ã¢ãªãæäœããŸãã1ã€ã¯ã¡ã¢ãªã¢ãã¬ã¹ã§åæåããããã1ã€ã¯åæåãããªããŸãŸã§ããã©ã³ãã ã¢ã¯ã»ã¹ã¡ã¢ãªã¯ãå³ã«ç€ºãããã«ãæåã®ã¬ãžã¹ã¿ã§æå®ãããã¢ãã¬ã¹ã«æ ŒçŽãããŠãããã€ããªããŒã¿ã2çªç®ã®ã¬ãžã¹ã¿ã«æžã蟌ã¿ãŸãã 9.2ã

åŸæ¥ã®ã¡ã¢ãªã䜿çšããŠãQPUã¬ãžã¹ã¿ã®åæåãç®çãšããå€ãä¿åã§ããŸããïŒãã¡ããããã®ã¢ã€ãã¢ã¯é åçã«èŠããŸãã
QPUã¬ãžã¹ã¿ã1ã€ã®åŸæ¥ã®å€ïŒ2ã®è£æ°ãåºå®å°æ°ç¹ããŸãã¯åçŽãªãã€ããªãšã³ã³ãŒãã£ã³ã°ïŒã®ã¿ã§åæåããå Žåã¯ãRAMã§åé¡ãããŸãããå¿ èŠãªå€ã¯åã«ã¡ã¢ãªã«æ ŒçŽãããæžã蟌ã¿ïŒïŒãšèªã¿åãïŒïŒã¯QPUã¬ãžã¹ã¿ããã®æžã蟌ã¿ãŸãã¯èªã¿åãã«äœ¿çšãããŸãããããŸã§QCEngineJavaScriptã³ãŒããQPUã¬ãžã¹ã¿ãšå¯Ÿè©±ããããã«äœ¿çšããŠããã®ã¯ããã®å¶éãããã¡ã«ããºã ã§ãã
ããšãã°ããªã¹ã9.1ã®ãµã³ãã«ã³ãŒãã¯ãé åaãåãåããæäœa [2] + = 1;ãå®è£ ããRAMãããã®å€ã®é åãæé»çã«ãã§ããããŠQPUã¬ãžã¹ã¿ãåæåããŸããåè·¯ãå³1ã«ç€ºããŸãã9.3ã

ãµã³ãã«ã³ãŒã
ãã®äŸã¯ãhttpïŒ//oreilly-qc.github.ioïŒp = 9-1ã§ãªã³ã©ã€ã³ã§å®è¡ã§ããŸãã
ãªã¹ã9.1ãQPUã䜿çšããŠã¡ã¢ãªå ã®æ°ãå¢ãã
var a = [4, 3, 5, 1];
qc.reset(3);
var qreg = qint.new(3, 'qreg');
qc.print(a);
increment(2, qreg);
qc.print(a);
function increment(index, qreg)
{
qreg.write(a[index]);
qreg.add(1);
a[index] = qreg.read();
}
ãã®åçŽãªã±ãŒã¹ã§ã¯ãåŸæ¥ã®RAMã䜿çšããŠæŽæ°ãæ ŒçŽããã ãã§ãªããåŸæ¥ã®ããã»ããµãã¢ã¬ã€ã«ã€ã³ããã¯ã¹ãä»ããŠãç®çã®å€ã®QPUãéžæããŠéä¿¡ããããšã泚ç®ã«å€ããŸãã
ãã®RAMã®äœ¿çšã«ãããQPUã¬ãžã¹ã¿ãåçŽãªãã€ããªå€ã«åæåã§ããŸãããé倧ãªå¶éããããŸããä¿åãããå€ãéãåãããŠQPUã¬ãžã¹ã¿ãåæåããå¿ èŠãããå Žåã¯ã©ããªããŸããïŒããšãã°ãRAMã§ãå€3ïŒ110ïŒãã¢ãã¬ã¹0x01ã«æ ŒçŽãããå€5ïŒ111ïŒãã¢ãã¬ã¹0x11ã«æ ŒçŽãããŠãããšããŸãããããã®2ã€ã®å€ãéãåãããŠå ¥åã¬ãžã¹ã¿ãæºåããã«ã¯ã©ãããã°ããã§ããïŒ
åŸæ¥ã®RAMãšäžæ Œå¥œãªåŸæ¥ã®æžã蟌ã¿ïŒïŒæäœã§ã¯ãããã¯æ©èœããŸãããéåããã»ããµã¯ããã€ãŠã®ãã¥ãŒãã®ç¥å ãšåãããã«ãæ ¹æ¬çã«æ°ããã¡ã¢ãªæ©åšãå¿ èŠãšããŸã-æ¬è³ªçã«éåã§ãã Meet Quantum Random Access MemoryïŒQRAMïŒã䜿çšãããšãéåã¬ãã«ã§ããŒã¿ãèªã¿æžãã§ããŸãã QRAMãç©ççã«æ§ç¯ããæ¹æ³ã«ã€ããŠã¯ãã§ã«ããã€ãã®ã¢ã€ãã¢ããããŸãããæŽå²ãç¹°ãè¿ãããå¯èœæ§ããããå®è¡å¯èœãªéåã¡ã¢ãªããŒããŠã§ã¢ãç»å Žãããã£ãšåã«ãä¿¡ããããªãã»ã©åŒ·åãªéåããã»ããµãç»å Žããå¯èœæ§ãããããšã«æ³šæããŠãã ããã
QRAMã®æ©èœãããå°ãæ£ç¢ºã«èª¬æãã䟡å€ããããŸããåŸæ¥ã®ã¡ã¢ãªãšåæ§ã«ãQRAMã¯å ¥åãšããŠ2ã€ã®ã¬ãžã¹ã¿ãåãåããŸããã¡ã¢ãªã¢ãã¬ã¹ã®QPUã¢ãã¬ã¹ã¬ãžã¹ã¿ãšãæå®ãããã¢ãã¬ã¹ã«æ ŒçŽãããŠããå€ãè¿ãQPUåºåã¬ãžã¹ã¿ã§ãã QRAMã®å Žåãäž¡æ¹ã®ã¬ãžã¹ã¿ã¯ãã¥ãŒãããã§æ§æãããŸããããã¯ãã¢ãã¬ã¹ã¬ãžã¹ã¿ã§ã¡ã¢ãªã»ã«ã®éãåãããèšå®ãããã®çµæãåºåã¬ãžã¹ã¿ã§å¯Ÿå¿ããå€ã®éãåãããååŸã§ããããšãæå³ããŸãïŒå³9.4ïŒã

ãããã£ãŠãQRAMã䜿çšãããšãå®éã«ã¯ãéããŠä¿åãããå€ãèªã¿åãããšãã§ããŸããåºåã¬ãžã¹ã¿ã§ååŸãããéãåããã®æ£ç¢ºãªè€çŽ æ¯å¹ ã¯ãã¢ãã¬ã¹ã¬ãžã¹ã¿ã§æäŸãããéãåããã«ãã£ãŠæ±ºå®ãããŸããå³ã§ã¯ å³9.2ã¯ããªã¹ã9.1ïŒå³9.5ïŒãšåãå¢åæäœãå®è¡ããå Žåã®éãã瀺ããŠããŸãããQPUã®èªã¿åã/æžãèŸŒã¿æäœã®ä»£ããã«QRAMã䜿çšããŠããŒã¿ã«ã¢ã¯ã»ã¹ããŸããæåãAãã¯ãQRAMã¢ãã¬ã¹ïŒãŸãã¯éãåããïŒãéä¿¡ãããã¬ãžã¹ã¿ã瀺ããŸããæåãDãã¯ãQRAMãæ ŒçŽãããå€ïŒããŒã¿ïŒã®å¯Ÿå¿ããéãåãããè¿ãã¬ãžã¹ã¿ã瀺ããŸãã

ãµã³ãã«ã³ãŒã
ãã®äŸã¯ãoreilly-qc.github.ioïŒp = 9-2ã§ãªã³ã©ã€ã³ã§å®è¡ã§ããŸãã
ãªã¹ã9.2ãQPUã䜿çšããŠQRAMããæ°å€ãã€ã³ã¯ãªã¡ã³ããã-ã¢ãã¬ã¹ã¬ãžã¹ã¿ã«éãåãããå«ãŸããå ŽåããããŸããããã«ãããåºåã¬ãžã¹ã¿ã«æ ŒçŽãããå€ã®éãåãããå«ãŸããããã«ãªããŸãã
var a = [4, 3, 5, 1];
var reg_qubits = 3;
qc.reset(2 + reg_qubits + qram_qubits());
var qreg = qint.new(3, 'qreg');
var addr = qint.new(2, 'addr');
var qram = qram_initialize(a, reg_qubits);
qreg.write(0);
addr.write(2);
addr.hadamard(0x1);
qram_load(addr, qreg);
qreg.add(1);
QRAMã®ãã®èª¬æã¯ãããŸãã«æãããããããŸãã-éåã¡ã¢ãªããŒããŠã§ã¢ãšã¯äœã§ããïŒãã®æ¬ã§ã¯ãå®éã«QRAMãæ§ç¯ããæ¹æ³ã«ã€ããŠã¯èª¬æããŸããïŒããšãã°ãC ++ã«é¢ããã»ãšãã©ã®æ¬ã§ã¯ãåŸæ¥ã®ã¡ã¢ãªã®ä»çµã¿ã«ã€ããŠè©³çްã«èª¬æããŠããŸããïŒããªã¹ã9.2ã®ãããªã³ãŒãäŸã¯ãQRAMã®åäœãæš¡å£ããåçŽåãããã¢ãã«ã䜿çšããŠå®è¡ãããŸããããã«ãããããããQRAMãã¯ãããžãŒã®ãããã¿ã€ãã¯ååšããŸãã
éåã¡ã¢ãªã¯æ·±å»ãªQPUã®éèŠãªã³ã³ããŒãã³ãã§ãããä»ã®éåã³ã³ãã¥ãŒãã£ã³ã°ããã€ã¹ãšåæ§ã«ãå®è£ ã®è©³çްã¯å€æŽãããå¯èœæ§ããããŸããç§ãã¡ã«ãšã£ãŠéèŠãªã®ã¯ãå³ã«ç€ºãããã«åäœããåºæ¬çãªãªãœãŒã¹ã®ã¢ã€ãã¢ãã®ãã®ã§ãã9.4ãããã³ãã®äžã«æ§ç¯ã§ãã匷åãªã¢ããªã±ãŒã·ã§ã³ã
éåã¡ã¢ãªãèªç±ã«äœ¿çšããŠãè€éãªéåããŒã¿æ§é ã®æ§ç¯ã«é²ãããšãã§ããŸããç¹ã«è峿·±ãã®ã¯ããã¯ãã«ããã³ãããªãã¯ã¹ããŒã¿ã衚çŸã§ããæ§é ã§ãã
ãã¯ãã«ãšã³ã³ãŒãã£ã³ã°
åŒ9.1ã®ãããªåçŽãªãã¯ãã«ã衚ãããã«QPUã¬ãžã¹ã¿ãåæåãããšããŸãã
åŒ9.1ãQPUã¬ãžã¹ã¿ãåæåããããã®ãã¯ãã«ã®äŸã

ãã®åœ¢åŒã®ããŒã¿ã¯ãéåæ©æ¢°åŠç¿ã¢ããªã±ãŒã·ã§ã³ã§ããèŠãããŸãã
ããããããã¯ãã«ããŒã¿ããšã³ã³ãŒãããããã®æãæçœãªæ¹æ³ã¯ãåã³ã³ããŒãã³ããé©åãªãã€ããªè¡šçŸãæã€åå¥ã®QPUã¬ãžã¹ã¿ãšããŠè¡šãããšã§ãããããïŒããããæãæçœãªïŒãã¯ãã«ã®ã¡ãœããç¶æ ãšã³ã³ãŒãã£ã³ã°ãšåŒã³ãŸããäžèšã®äŸã®ãã¯ãã«ã¯ãå³ã«ç€ºãããã«ã4ã€ã®2ãã¥ãŒãããã¬ãžã¹ã¿ã«ãšã³ã³ãŒãã§ããŸãã 9.6ã

ãã€ãŒããªç¶æ ã³ãŒãã£ã³ã°ã®åé¡ã®1ã€ã¯ãQPUã®æã貎éãªãªãœãŒã¹ã§ãããã¥ãŒããããæµªè²»ããããšã§ãããã ããåŸæ¥ã®ç¶æ ãšã³ã³ãŒããã¯ãã«ã®å©ç¹ã®1ã€ã¯ãéåã¡ã¢ãªãå¿ èŠãšããªãããšã§ãããã¯ãã«ã³ã³ããŒãã³ãã¯ãæšæºã¡ã¢ãªã«ç°¡åã«ä¿åã§ãããããã®åå¥ã®å€ã䜿çšããŠãåã ã®QPUã¬ãžã¹ã¿ã®æºåãå¶åŸ¡ã§ããŸãããããããã®å©ç¹ã¯ããã¯ãã«ç¶æ ãšã³ã³ãŒãã£ã³ã°ã®æãæ·±å»ãªæ¬ é¥ã®æ ¹åºã«ããããŸãããã®åŸæ¥ã®æ¹æ³ã§ãã¯ãã«ããŒã¿ãä¿åãããšãQPUã®éåŸæ¥ã®æ©èœã䜿çšã§ããªããªããŸãã QPUã®èœåãæŽ»çšããã«ã¯ãéãåããã®çžå¯Ÿçãªäœçžãæäœã§ããå¿ èŠããããŸãããããã¯ç°¡åã§ã¯ãããŸããããã¯ãã«ã®ãã¹ãŠã®ã³ã³ããŒãã³ããå®éã«éåããã»ããµãåŸæ¥ã®ãã€ããªã¬ãžã¹ã¿ã®ã³ã¬ã¯ã·ã§ã³ãšããŠæ±ãå ŽåïŒ
代ããã«ãéåã¬ãã«ã«éäžããå¿ èŠããããŸãããã¯ãã«æåã1ã€ã®QPUã¬ãžã¹ã¿ã®æ¯å¹ ã®éãåããã«æ ŒçŽãããŠãããšä»®å®ããŸãã nåã®ãã¥ãŒãããã®QPUã¬ãžã¹ã¿ã¯ã2nåã®æ¯å¹ ã®éãåããã§ååšã§ããããïŒãããã£ãŠã埪ç°èšé²ã®å®éšã§ã¯2nåã®åãååšããŸãïŒãceilïŒlogïŒnïŒïŒãã¥ãŒãããã®QPUã¬ãžã¹ã¿ã§nåã®ã³ã³ããŒãã³ããæã€ãã¯ãã«ã®ãšã³ã³ãŒãã£ã³ã°ã衚ãããšãã§ããŸãã
åŒ9.1ã®ãã¯ãã«ã®äŸã§ã¯ããã®ã¢ãããŒãã«ã¯2ãã¥ãŒãããã®ã¬ãžã¹ã¿ãå¿ èŠã§ããã¢ã€ãã¢ã¯ãå³1ã®ãã¯ãã«ããŒã¿ããšã³ã³ãŒãããã®ã«é©ããéååè·¯ãèŠã€ããããšã§ãã 9.7ã

ãã®ãŠããŒã¯ãªéåãã¯ãã«ããŒã¿ã³ãŒãã£ã³ã°ãè€éãªæ¯å¹ ã³ãŒãã£ã³ã°ãšåŒã³ãŸããããè€éãªæ¯å¹ ã³ãŒãã£ã³ã°ãšåŸæ¥ã®ç¶æ ã³ãŒãã£ã³ã°ã®éããçè§£ããããšãéèŠã§ããããŒãã«9.1ã¯ãç°ãªããã¯ãã«ããŒã¿ã®2ã€ã®ã³ãŒãã£ã³ã°æ¹æ³ãæ¯èŒããŸããæåŸã®ç¶æ ãšã³ã³ãŒãã£ã³ã°ã®äŸã§ã¯ã4ã€ã®7ãããã¬ãžã¹ã¿ãå¿ èŠã§ããåã¬ãžã¹ã¿ã¯ãQ7.7ã®åºå®ãã€ã³ã衚çŸã䜿çšããŸãã
衚9.1ããã¯ãã«ããŒã¿ã³ãŒãã£ã³ã°æ¹æ³ã®éãïŒè€éãªæ¯å¹ ã³ãŒãã£ã³ã°ãšç¶æ ã³ãŒãã£ã³ã°ïŒ

QCEngineã§è€éãªæ¯å¹ ã³ãŒãã£ã³ã°ã䜿çšããŠãã¯ãã«ãååŸããã«ã¯ã䟿å©ãªampulation_encodeïŒïŒé¢æ°ã䜿çšã§ããŸãããªã¹ã9.3ã®ããã°ã©ã ã¯ãå€ã®ãã¯ãã«ãšQPUã¬ãžã¹ã¿ãŒïŒååãªå€§ããã§ããå¿ èŠããããŸãïŒãžã®åç §ãååŸãããã¯ãã«ã«å¯ŸããŠè€éãªæ¯å¹ ã³ãŒãã£ã³ã°ãå®è¡ããããšã«ãã£ãŠãã®ã¬ãžã¹ã¿ãŒãæºåããŸãã
ãµã³ãã«ã³ãŒã
ãã®äŸã¯ãoreilly-qc.github.ioïŒp = 9-3ã§ãªã³ã©ã€ã³ã§å®è¡ã§ããŸãã
ãªã¹ã9.3ãQCEngineã§è€éãªæ¯å¹ ã³ãŒãã£ã³ã°ã䜿çšããŠãã¯ãã«ãæºåãã
// ,
// 2
var vector = [-1.0, 1.0, 1.0, 5.0, 5.0, 6.0, 6.0, 6.0];
//
//
var num_qubits = Math.log2(vector.length);
qc.reset(num_qubits);
var amp_enc_reg = qint.new(num_qubits, 'amp_enc_reg');
// amp_enc_reg
amplitude_encode(vector, amp_enc_reg);
ãã®äŸã§ã¯ãè€éãªæ¯å¹ ã³ãŒãã£ã³ã°ãQRAMã«äŸåããããšã瀺ããŠããŸããããã¯ãã«ã¯åŸæ¥ã®ã¡ã¢ãªã«æ ŒçŽãããJavaScripté åãšããŠåçŽã«æž¡ãããŸããã³ã³ãã¥ãŒã¿ã®RAMã®ã¿ãããã°ã©ã ã§äœ¿çšã§ããå ŽåãQCEngineã¯ã©ã®ããã«è€éãªæ¯å¹ ã³ãŒãã£ã³ã°ãå®è¡ããŸããïŒQRAMãªãã§è€éãªæ¯å¹ ã³ãŒãã£ã³ã°ã¹ããŒã ãçæããããšã¯å¯èœã§ããããããå¹ççã«è¡ãããšã¯ç¢ºãã«äžå¯èœã§ããQCEngineã¯ãQRAMã¢ã¯ã»ã¹ã§éæã§ããããšã«ã€ããŠãäœéã§ããå®è¡å¯èœãªã¢ãã«ãæäŸããŸãã
è€éãªæ¯å¹ ã³ãŒãã£ã³ã°ã®å¶é
è€éãªæ¯å¹ ã³ãŒãã£ã³ã°ã®èåŸã«ããèãæ¹ã¯ãæåã¯çŽ æŽãããããã«èŠããŸãã䜿çšãããã¥ãŒããããå°ãªãããã¯ãã«ããŒã¿ãæäœããããã®éåããŒã«ãæäŸããŸãããã®ã¡ã«ããºã ã䜿çšããã¢ããªã±ãŒã·ã§ã³ã§ã¯ãèæ ®ãã¹ã2ã€ã®éèŠãªèŠçŽ ããããŸãã
åé¡1ïŒéåçµæ
ãããã®å¶éã®æåã®ãã®ã«ãã§ã«æ°ä»ããŠãããããããŸãããéåã®éãåããã¯ãéåžžãREADã§ã¯èªã¿åãããšãã§ããŸãããåã³ç§ãã¡ã®äž»ãªæµïŒãã¯ãã«æåãéåéãåããã«åæ£ããããšãå床èªã¿åãããšã¯ã§ããŸãããåœç¶ãããã¯ããã¯ãã«ããŒã¿ãã¡ã¢ãªããå¥ã®QPUããã°ã©ã ã®å ¥åã«è»¢éãããšãã«ç¹å¥ãªåé¡ãåŒãèµ·ãããŸãããããããéåžžã«å€ãã®å Žåãå ¥åã§è€éãªAMãšã³ã³ãŒãããããã¯ãã«ããŒã¿ãåä¿¡ããQPUã¢ããªã±ãŒã·ã§ã³ã¯ãåºåã§è€éãªAMãšã³ã³ãŒãããããã¯ãã«ããŒã¿ãçæããŸãã
ãããã£ãŠãè€éãªæ¯å¹ ã³ãŒãã£ã³ã°ã䜿çšãããšãREADæäœã§ã¢ããªã±ãŒã·ã§ã³åºåãèªã¿åãæ©èœãå€§å¹ ã«å¶éãããŸãã幞ããªããšã«ãè€éãªæ¯å¹ ã³ãŒãã£ã³ã°ã®çµæããæçšãªæ å ±ãæœåºã§ããããšããããããŸããæ¬¡ã®ç« ã§èª¬æããããã«ãåã ã®ã³ã³ããŒãã³ããèªèããããšã¯ã§ããŸãããããã®æ¹æ³ã§ãšã³ã³ãŒãããããã¯ãã«ã®ã°ããŒãã«ããããã£ãèŠã€ããããšãã§ããŸãããã ããè€éãªæ¯å¹ ã³ãŒãã£ã³ã°ã¯äžèœè¬ã§ã¯ãªãããã®ã¢ããªã±ãŒã·ã§ã³ãæåãããã«ã¯æ³šæãšå·¥å€«ãå¿ èŠã§ãã
åé¡2ïŒãã¯ãã«ãæ£èŠåããããã®èŠä»¶
è€éãªæ¯å¹ ã³ãŒãã£ã³ã°ã«é¢é£ãã2çªç®ã®åé¡ã¯ã衚ã«é ãããŠããŸãã 9.1ãè¡šã®æåã®2ã€ã®ãã¯ãã«[0,1,2,3]ãš[6,1,1,4]ã®è€çŽ æ¯å¹ ã³ãŒãã£ã³ã°ã詳ããèŠãŠã¿ãŸãããã 2ãã¥ãŒãããQPUã¬ãžã¹ã¿ã®è€çŽ æ¯å¹ ã¯ãå€[0,1,2,3]ãŸãã¯å€[6,1,1,4]ãåãããšãã§ããŸããïŒæ®å¿µãªããéããŸããåã®ç« ã§ã¯ãéåžžãæ¯å¹ ãšçžå¯Ÿäœçžã®èª¬æããã€ãã¹ããŠãããçŽæçãªå圢衚èšãæ¡çšããŸããããã®ã¢ãããŒãã¯ããçŽæçã§ããããè€çŽ æ°ã®æ¯å¹ ã«é¢ãã1ã€ã®éèŠãªæ°å€èŠåããä¿è·ãããŸãããã¬ãžã¹ã¿ãŒã®è€çŽ æ°ã®æ¯å¹ ã®2ä¹ã¯åèšã§1ã«ãªãå¿ èŠããããŸããæ£èŠåãšåŒã°ãããã®èŠä»¶ã¯ãã¬ãžã¹ã¿ãŒã®æ¯å¹ ã®2ä¹ãèªã¿åãã®ç¢ºçã«å¯Ÿå¿ããããšãæãåºããšè«ççã«èŠããŸããç°ãªãçµæã1ã€ã®çµæãååŸããå¿ èŠãããããããããã®ç¢ºçïŒãããã£ãŠããã¹ãŠã®è€çŽ æ¯å¹ ã®2ä¹ïŒã¯åèšã§1ã«ãªããŸãã䟿å©ãªå圢衚èšã䜿çšãããšãæ£èŠåãå¿ããã¡ã§ãããã©ã®ãã¯ãã«ã«éèŠãªå¶çŽãèšå®ãããŸããè€éãªæ¯å¹ ã³ãŒãã£ã³ã°ãããŒã¿ã«é©çšã§ããŸããç©çæ³åã§ã¯ãè€éãªæ¯å¹ [0,1,2,3]ãŸãã¯[6,1,1,4]ãšéãåããããã¬ãžã¹ã¿ãäœæããããšã¯èš±å¯ãããŠããŸãããããã¯ãè€çŽ æ¯å¹ [0,1,2,3]ãŸãã¯[6,1,1,4]ãšéãåããããŠããŸããè€éãªæ¯å¹ [0,1,2,3]ãŸãã¯[6,1,1,4]ãšéãåãããŠããã
衚ã®2ã€ã®åé¡ãã¯ãã«ã«è€çŽ æ¯å¹ ã³ãŒãã£ã³ã°ãé©çšããŸãã 9.1ã§ã¯ãæåã«ãåã³ã³ããŒãã³ãããã¹ãŠã®ã³ã³ããŒãã³ãã®2ä¹ã®åèšã§å²ã£ãŠãããããæ£èŠåããå¿ èŠããããŸããããšãã°ããã¯ãã«[0,1,2,3]ã®è€çŽ æ¯å¹ ãšã³ã³ãŒãã§ã¯ãæåã«ãã¹ãŠã®ã³ã³ããŒãã³ãã3.74ã§é€ç®ããŠãæ£èŠåããããã¯ãã«[0.00ã0.27ã0.53ã0.80]ãååŸããå¿ èŠããããŸããããã¯ãè€çŽ éãåããæ¯å¹ ã§ã®ãšã³ã³ãŒãã«é©ããŠããŸãã
ãã¯ãã«ããŒã¿ã®æ£èŠåã«ã¯æãŸãããªã圱é¿ããããŸããïŒããŒã¿ãå®å šã«å€ãã£ãããã§ãïŒå®éãæ£èŠåã§ã¯éèŠãªæ å ±ã®ã»ãšãã©ã倿ŽãããŸããïŒå¹ŸäœåŠç衚çŸã§ã¯ããã¯ãã«ã®é·ããã¹ã±ãŒãªã³ã°ããã ãã§ãæ¹åã¯å€æŽãããŸããïŒãæ£èŠåãããããŒã¿ãå ã®ããŒã¿ãå®å šã«çœ®ãæãããšæ³å®ã§ããŸããïŒããã¯ããããã䜿çšããäºå®ã®ç¹å®ã®QPUã¢ããªã±ãŒã·ã§ã³ã®ããŒãºã«ãã£ãŠç°ãªããŸããå¿ èŠã«å¿ããŠãæ£èŠåä¿æ°ã®æ°å€ãå¥ã®ã¬ãžã¹ã¿ã«æ ŒçŽã§ããããšãå¿ããªãã§ãã ããã
è€éãªæ¯å¹ ã³ãŒãã£ã³ã°ãšåŸªç°èšé²
ã¬ãžã¹ã¿ãŒã®è€çŽ æ¯å¹ ã®æ°å€ã«ã€ããŠããå ·äœçã«èãå§ãããšãè€çŽ æ¯å¹ ãå圢衚èšã§ã©ã®ããã«è¡šãããŠããããæãåºããèµ·ããããèœãšãç©Žã«æ°ä»ãããšã圹ç«ã¡ãŸããå圢衚èšã®å¡ãã€ã¶ãããé åã¯ãéåç¶æ ã®è€çŽ æ¯å¹ ã®æ¯å¹ ã®2ä¹ã衚ããŸããè€çŽ æ¯å¹ ã³ãŒãã£ã³ã°ãªã©ãè€çŽ æ¯å¹ ãå®éã®å€ãæã€ãã¯ãã«ã®ã³ã³ããŒãã³ãã衚ãå¿ èŠãããç¶æ³ã§ã¯ãããã¯ãå¡ãã€ã¶ãããé åããã³ã³ããŒãã³ãèªäœã§ã¯ãªãã察å¿ãããã¯ãã«ã³ã³ããŒãã³ãã®2ä¹ã«ãã£ãŠæ±ºå®ãããããšãæå³ããŸããå³ã§ã¯9.8ã¯ã埪ç°è¡šèšã§æ£èŠåããåŸããã¯ãã«[0,1,2,3]ã®è¡šçŸãæ£ããè§£éããæ¹æ³ã瀺ããŠããŸãã

ããã§ãæ¬ã§ç޹ä»ããQPUã¢ããªã±ãŒã·ã§ã³ãçè§£ããã®ã«ååãªãè€éãªæ¯å¹ ã³ãŒãåãã¯ãã«ã«ã€ããŠçè§£ã§ããŸãããããããå€ãã®ã¢ããªã±ãŒã·ã§ã³ãç¹ã«éåãã·ã³åŠç¿ã«é¢é£ããã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããã«äžæ©é²ãã§QPUã䜿çšããŠããã¯ãã«ã ãã§ãªãããŒã¿ãããªãã¯ã¹å šäœãæäœããå¿ èŠããããŸããæ°å€ã®2次å é åãã©ã®ããã«ãšã³ã³ãŒãããŸããïŒ
»æ¬ã®è©³çްã«ã€ããŠã¯ãåºç瀟ã®ãŠã§ããµã€ããã芧ãã ãã
Â»ç®æ¬¡
» äœæ°åãã®æç²
ã¯ãŒãã³ã®25ïŒ å²åŒ-ããã°ã©ãã³ã°
æ¬ã®çŽçã®æ¯æãæã«ãé»åæžç±ãé»åã¡ãŒã«ã§éä¿¡ãããŸãã